From 2487d8a53907bf1cdd2f6287c1216464321c2023 Mon Sep 17 00:00:00 2001 From: Quentin Rousseau Date: Fri, 14 Aug 2026 09:53:37 -0700 Subject: [PATCH] Regenerate client and prepare v2.0.0 --- .github/release-drafter.yml | 64 + .github/workflows/maven.yml | 4 +- .github/workflows/publish.yml | 49 +- .github/workflows/release-drafter.yml | 138 + .github/workflows/test.yml | 4 +- .openapi-generator-ignore | 4 + .openapi-generator/FILES | 1093 +- Makefile | 4 +- api/openapi.yaml | 61809 +++++++--------- build.gradle | 2 +- build.sbt | 2 +- docs/ActionItemTriggerParams.md | 19 + docs/AddSlackBookmarkTaskParamsAnyOf.md | 14 + docs/AddSlackBookmarkTaskParamsAnyOf1.md | 13 + docs/AiChatApi.md | 299 + docs/AiChatResponse.md | 14 + docs/AiChatResponseData.md | 23 + docs/AiChatResponseDataAttributes.md | 23 + docs/AiChatSessionMessage.md | 25 + docs/AiChatSessionMessageList.md | 14 + docs/Alert.md | 74 +- docs/AlertAlertFieldValuesInner.md | 18 + docs/AlertAlertingTargetsInner.md | 14 + docs/AlertEvent.md | 19 + docs/AlertEventEscalationTarget.md | 14 + docs/AlertEventEscalationTargetData.md | 15 + docs/AlertEventFeedList.md | 16 + docs/AlertEventFeedMeta.md | 19 + docs/AlertEventIncident.md | 25 + docs/AlertEventList.md | 1 + docs/AlertEventResponse.md | 1 + docs/AlertEventSchedule.md | 18 + ...ertEventScheduleEscalationPoliciesInner.md | 16 + docs/AlertEventUser.md | 22 + docs/AlertEventsApi.md | 88 + docs/AlertField.md | 2 +- docs/AlertFieldList.md | 1 + docs/AlertFieldResponse.md | 1 + docs/AlertFieldsApi.md | 22 +- docs/AlertGroup.md | 2 +- docs/AlertGroupList.md | 1 + docs/AlertGroupResponse.md | 1 + docs/AlertGroupsApi.md | 20 +- docs/AlertList.md | 1 + docs/AlertResponse.md | 1 + docs/AlertResponseData.md | 52 +- docs/AlertRetriggerRule.md | 28 + docs/AlertRetriggerRuleConditionsInner.md | 47 + docs/AlertRetriggerRuleList.md | 16 + docs/AlertRetriggerRuleResponse.md | 14 + docs/AlertRetriggerRuleResponseData.md | 23 + docs/AlertRetriggerRulesApi.md | 336 + docs/AlertRoutesApi.md | 97 +- docs/AlertRoutingRuleDestination.md | 3 +- docs/AlertRoutingRuleList.md | 1 + docs/AlertRoutingRuleResponse.md | 1 + docs/AlertRoutingRuleTarget.md | 3 +- docs/AlertRoutingRulesApi.md | 20 +- docs/AlertSourcesApi.md | 11 +- docs/AlertTriggerParams.md | 19 + docs/AlertUrgenciesApi.md | 12 +- docs/AlertUrgency.md | 6 + docs/AlertUrgencyList.md | 1 + docs/AlertUrgencyResponse.md | 1 + docs/AlertsApi.md | 288 +- docs/AlertsSource.md | 6 +- docs/AlertsSourceList.md | 1 + docs/AlertsSourceResponse.md | 1 + docs/AlertsSourceSourceableAttributes.md | 18 + docs/ApiKeyList.md | 1 + docs/ApiKeyResponse.md | 1 + docs/ApiKeyWithTokenResponse.md | 1 + docs/ArchiveGoogleChatSpacesTaskParams.md | 22 + ...ectivePdfToFreshserviceTicketTaskParams.md | 23 + ...chRetrospectivePdfToJiraIssueTaskParams.md | 24 + docs/Audit.md | 32 + docs/AuditsApi.md | 36 +- docs/AuditsList.md | 1 + docs/AuthorizationList.md | 1 + docs/AuthorizationResponse.md | 1 + .../AutoAssignRolePagerdutyTaskParamsAnyOf.md | 13 + ...AutoAssignRolePagerdutyTaskParamsAnyOf1.md | 13 + docs/AutoAssignRoleRootlyTaskParams.md | 10 +- docs/AutoAssignRoleRootlyTaskParamsOneOf.md | 13 + docs/AutoAssignRoleRootlyTaskParamsOneOf1.md | 13 + docs/AutoAssignRoleRootlyTaskParamsOneOf2.md | 13 + docs/AutoAssignRoleRootlyTaskParamsOneOf3.md | 13 + docs/AutoAssignRoleRootlyTaskParamsOneOf4.md | 13 + docs/BulkDeleteCatalogEntities422Response.md | 14 + docs/BulkDeleteEnvironments422Response.md | 14 + docs/BulkDeleteFunctionalities422Response.md | 14 + docs/BulkDeleteGroups422Response.md | 14 + docs/BulkDeleteServices422Response.md | 14 + docs/BulkDestroyCatalogEntities.md | 28 + docs/BulkDestroyCatalogEntitiesOneOf.md | 13 + docs/BulkDestroyCatalogEntitiesOneOf1.md | 26 + docs/BulkDestroyCatalogEntitiesResponse.md | 13 + .../BulkDestroyCatalogEntitiesResponseData.md | 15 + docs/BulkDestroyEnvironments.md | 28 + docs/BulkDestroyEnvironmentsOneOf.md | 26 + docs/BulkDestroyEnvironmentsResponse.md | 13 + docs/BulkDestroyFunctionalities.md | 28 + docs/BulkDestroyFunctionalitiesResponse.md | 13 + docs/BulkDestroyServices.md | 28 + docs/BulkDestroyServicesResponse.md | 13 + docs/BulkDestroyTeams.md | 28 + docs/BulkDestroyTeamsResponse.md | 13 + docs/BulkUpsertCatalogEntities.md | 13 + docs/BulkUpsertCatalogEntities422Response.md | 13 + .../BulkUpsertCatalogEntitiesEntitiesInner.md | 18 + ...CatalogEntitiesEntitiesInnerFieldsInner.md | 16 + docs/BulkUpsertCatalogEntitiesError.md | 13 + ...lkUpsertCatalogEntitiesErrorErrorsInner.md | 15 + docs/BulkUpsertCatalogEntitiesResponse.md | 13 + ...kUpsertCatalogEntitiesResponseDataInner.md | 23 + docs/BulkUpsertEnvironments.md | 13 + docs/BulkUpsertEnvironments422Response.md | 13 + docs/BulkUpsertEnvironmentsEntitiesInner.md | 20 + docs/BulkUpsertEnvironmentsError.md | 13 + .../BulkUpsertEnvironmentsErrorErrorsInner.md | 15 + docs/BulkUpsertEnvironmentsResponse.md | 13 + ...BulkUpsertEnvironmentsResponseDataInner.md | 23 + docs/BulkUpsertFunctionalities.md | 13 + docs/BulkUpsertFunctionalities422Response.md | 13 + .../BulkUpsertFunctionalitiesEntitiesInner.md | 29 + docs/BulkUpsertFunctionalitiesError.md | 13 + docs/BulkUpsertFunctionalitiesResponse.md | 13 + ...kUpsertFunctionalitiesResponseDataInner.md | 23 + docs/BulkUpsertGroups422Response.md | 13 + docs/BulkUpsertServices.md | 13 + docs/BulkUpsertServices422Response.md | 13 + docs/BulkUpsertServicesEntitiesInner.md | 35 + docs/BulkUpsertServicesError.md | 13 + docs/BulkUpsertServicesResponse.md | 13 + docs/BulkUpsertServicesResponseDataInner.md | 23 + docs/BulkUpsertTeams.md | 13 + docs/BulkUpsertTeamsEntitiesInner.md | 30 + docs/BulkUpsertTeamsError.md | 13 + docs/BulkUpsertTeamsResponse.md | 13 + docs/BulkUpsertTeamsResponseDataInner.md | 23 + docs/Catalog.md | 17 + docs/CatalogChecklistTemplate.md | 2 +- docs/CatalogChecklistTemplateList.md | 1 + docs/CatalogChecklistTemplateResponse.md | 1 + docs/CatalogEntitiesApi.md | 186 +- docs/CatalogEntity.md | 20 + docs/CatalogEntityChecklistList.md | 1 + docs/CatalogEntityChecklistResponse.md | 1 + docs/CatalogEntityList.md | 1 + docs/CatalogEntityPropertiesApi.md | 10 +- docs/CatalogEntityProperty.md | 2 + docs/CatalogEntityPropertyList.md | 2 + docs/CatalogEntityPropertyResponse.md | 2 + docs/CatalogEntityResponse.md | 1 + docs/CatalogField.md | 34 +- docs/CatalogFieldList.md | 1 + docs/CatalogFieldResponse.md | 1 + docs/CatalogFieldResponseData.md | 2 +- docs/CatalogList.md | 1 + docs/CatalogProperty.md | 18 +- docs/CatalogPropertyList.md | 1 + docs/CatalogPropertyResponse.md | 1 + docs/CatalogResponse.md | 1 + docs/CatalogsApi.md | 34 +- docs/Cause.md | 4 +- docs/CauseList.md | 1 + docs/CauseResponse.md | 1 + docs/CausesApi.md | 178 +- .../ChangeGoogleChatSpacePrivacyTaskParams.md | 23 + docs/ChangeSlackChannelPrivacyTaskParams.md | 4 +- docs/CommunicationsGroup.md | 2 +- docs/CommunicationsGroupResponse.md | 1 + docs/CommunicationsGroupsResponse.md | 1 + docs/CommunicationsStage.md | 2 +- docs/CommunicationsStageResponse.md | 1 + docs/CommunicationsStagesResponse.md | 1 + docs/CommunicationsTemplate.md | 2 +- ...emplateCommunicationTemplateStagesInner.md | 7 +- docs/CommunicationsTemplateResponse.md | 1 + docs/CommunicationsTemplatesResponse.md | 1 + docs/CommunicationsType.md | 2 +- docs/CommunicationsTypeResponse.md | 1 + docs/CommunicationsTypesResponse.md | 1 + ...CreateAnthropicChatCompletionTaskParams.md | 1 + docs/CreateClickupTaskTaskParams.md | 1 + docs/CreateConfluencePageTaskParams.md | 4 + ...reateEdgeConnectorRequestDataAttributes.md | 1 + ...geConnectorRequestDataAttributesFilters.md | 17 + docs/CreateGithubIssueTaskParams.md | 4 + docs/CreateGitlabIssueTaskParams.md | 2 +- docs/CreateGoogleChatSpaceTaskParams.md | 24 + docs/CreateGoogleDocsPageTaskParams.md | 3 + docs/CreateGoogleMeetingTaskParams.md | 12 + docs/CreateJiraIssueTaskParams.md | 2 + docs/CreateJiraSubtaskTaskParams.md | 2 + docs/CreateJsmopsAlertTaskParams.md | 1 - docs/CreateLinearIssueTaskParams.md | 1 + docs/CreateLinearSubtaskIssueTaskParams.md | 1 + docs/CreateMicrosoftTeamsChannelTaskParams.md | 2 +- docs/CreateMicrosoftTeamsMeetingTaskParams.md | 12 + docs/CreateMotionTaskTaskParams.md | 2 +- ...eateOpenaiChatCompletionTaskParamsModel.md | 2 +- docs/CreateShortcutStoryTaskParamsAnyOf.md | 13 + docs/CreateShortcutStoryTaskParamsAnyOf1.md | 13 + docs/CreateWebexMeetingTaskParams.md | 12 + docs/CreateZoomMeetingTaskParams.md | 13 + docs/CustomField.md | 39 +- docs/CustomFieldList.md | 1 + docs/CustomFieldOptionList.md | 1 + docs/CustomFieldOptionResponse.md | 1 + docs/CustomFieldResponse.md | 1 + docs/CustomForm.md | 2 +- docs/CustomFormList.md | 1 + docs/CustomFormResponse.md | 1 + docs/DashboardList.md | 1 + docs/DashboardPanelList.md | 1 + docs/DashboardPanelResponse.md | 1 + docs/DashboardResponse.md | 1 + docs/DeprecatedCustomFieldsApi.md | 36 +- ...ctorActionDataAttributesParametersInner.md | 2 +- docs/EdgeConnectorActionsApi.md | 92 +- docs/EdgeConnectorsApi.md | 106 +- docs/Environment.md | 20 +- docs/EnvironmentList.md | 1 + docs/EnvironmentResponse.md | 1 + docs/EnvironmentsApi.md | 326 +- docs/EscalationPathsApi.md | 6 +- docs/EscalationPoliciesApi.md | 22 +- docs/EscalationPolicyLevel.md | 24 +- docs/EscalationPolicyLevelList.md | 1 + docs/EscalationPolicyLevelResponse.md | 1 + docs/EscalationPolicyList.md | 1 + docs/EscalationPolicyPath.md | 63 +- docs/EscalationPolicyPathList.md | 1 + docs/EscalationPolicyPathResponse.md | 1 + docs/EscalationPolicyResponse.md | 1 + docs/FormField.md | 17 +- docs/FormFieldList.md | 1 + docs/FormFieldOptionList.md | 1 + docs/FormFieldOptionResponse.md | 1 + docs/FormFieldPlacement.md | 2 +- docs/FormFieldPlacementConditionList.md | 1 + docs/FormFieldPlacementConditionResponse.md | 1 + docs/FormFieldPlacementList.md | 1 + docs/FormFieldPlacementResponse.md | 1 + docs/FormFieldPlacementsApi.md | 5 +- docs/FormFieldPosition.md | 4 + docs/FormFieldPositionList.md | 1 + docs/FormFieldPositionResponse.md | 1 + docs/FormFieldPositionsApi.md | 4 +- docs/FormFieldResponse.md | 1 + docs/FormFieldsApi.md | 40 +- docs/FormSet.md | 4 +- docs/FormSetConditionList.md | 1 + docs/FormSetConditionResponse.md | 1 + docs/FormSetList.md | 1 + docs/FormSetResponse.md | 1 + docs/FunctionalitiesApi.md | 330 +- docs/Functionality.md | 21 +- docs/FunctionalityList.md | 1 + docs/FunctionalityResponse.md | 1 + docs/GetGithubCommitsTaskParamsAnyOf.md | 13 + docs/GetGithubCommitsTaskParamsAnyOf1.md | 13 + docs/GetGitlabCommitsTaskParamsAnyOf.md | 13 + docs/Heartbeat.md | 8 +- docs/HeartbeatList.md | 1 + docs/HeartbeatResponse.md | 1 + docs/HttpClientTaskParams.md | 2 + docs/ImportMeetingRecording.md | 37 + docs/Incident.md | 21 +- docs/IncidentActionItem.md | 1 + docs/IncidentActionItemList.md | 1 + docs/IncidentActionItemResponse.md | 1 + docs/IncidentActionItemsApi.md | 36 +- docs/IncidentCustomFieldSelectionList.md | 1 + docs/IncidentCustomFieldSelectionResponse.md | 1 + docs/IncidentEventFunctionalityList.md | 1 + docs/IncidentEventFunctionalityResponse.md | 1 + docs/IncidentEventList.md | 1 + docs/IncidentEventResponse.md | 1 + docs/IncidentEventServiceList.md | 1 + docs/IncidentEventServiceResponse.md | 1 + docs/IncidentFeedbackList.md | 1 + docs/IncidentFeedbackResponse.md | 1 + docs/IncidentFormFieldSelection.md | 3 + docs/IncidentFormFieldSelectionList.md | 1 + docs/IncidentFormFieldSelectionResponse.md | 1 + docs/IncidentList.md | 1 + docs/IncidentPermissionSet.md | 2 +- docs/IncidentPermissionSetBooleanList.md | 1 + docs/IncidentPermissionSetBooleanResponse.md | 1 + docs/IncidentPermissionSetList.md | 1 + docs/IncidentPermissionSetResourceList.md | 1 + docs/IncidentPermissionSetResourceResponse.md | 1 + docs/IncidentPermissionSetResponse.md | 1 + docs/IncidentPostMortemList.md | 1 + docs/IncidentPostMortemResponse.md | 1 + docs/IncidentResponse.md | 1 + docs/IncidentRetrospectiveStepResponse.md | 1 + docs/IncidentRole.md | 2 +- docs/IncidentRoleList.md | 1 + docs/IncidentRoleResponse.md | 1 + docs/IncidentRoleTaskList.md | 1 + docs/IncidentRoleTaskResponse.md | 1 + docs/IncidentRolesApi.md | 30 +- docs/IncidentStatusPageEvent.md | 1 + docs/IncidentStatusPageEventList.md | 1 + docs/IncidentStatusPageEventResponse.md | 1 + ...tatusPageEventStatusPageComponentsInner.md | 25 + docs/IncidentStatusPageEventsApi.md | 4 +- docs/IncidentSubStatusList.md | 1 + docs/IncidentSubStatusResponse.md | 1 + docs/IncidentTriggerParams.md | 19 + docs/IncidentType.md | 4 +- docs/IncidentTypeList.md | 1 + docs/IncidentTypeResponse.md | 1 + docs/IncidentTypesApi.md | 186 +- docs/IncidentsApi.md | 351 +- docs/IncidentsChartResponse.md | 13 + docs/InviteToGoogleChatSpaceTaskParams.md | 23 + ...ToMicrosoftTeamsChannelRootlyTaskParams.md | 28 + docs/InviteToSlackChannelTaskParamsAnyOf.md | 13 + docs/InviteToSlackChannelTaskParamsAnyOf1.md | 13 + docs/InviteToSlackChannelTaskParamsAnyOf2.md | 13 + docs/JsonapiIncludedResource.md | 16 + docs/LiveCallRouter.md | 6 + docs/LiveCallRouterList.md | 1 + docs/LiveCallRouterResponse.md | 1 + docs/LiveCallRoutersApi.md | 6 +- docs/MeetingRecording.md | 5 +- docs/MeetingRecordingDetail.md | 56 + docs/MeetingRecordingDetailAllOfTranscript.md | 13 + docs/MeetingRecordingDetailResponse.md | 13 + docs/MeetingRecordingDetailResponseData.md | 23 + docs/MeetingRecordingList.md | 2 +- docs/MeetingRecordingResponse.md | 13 + docs/MeetingRecordingResponseData.md | 23 + docs/MeetingRecordingTranscriptSegment.md | 14 + docs/MeetingRecordingTranscriptWord.md | 15 + docs/MeetingRecordingsApi.md | 355 +- docs/Meta.md | 1 + docs/NewAlertDataAttributes.md | 57 +- ...tDataAttributesNotificationTargetsInner.md | 26 + docs/NewAlertFieldDataAttributes.md | 1 + docs/NewAlertGroupDataAttributes.md | 1 + ...NewAlertGroupDataAttributesTargetsInner.md | 5 +- docs/NewAlertRetriggerRule.md | 13 + docs/NewAlertRetriggerRuleData.md | 22 + docs/NewAlertRetriggerRuleDataAttributes.md | 47 + ...riggerRuleDataAttributesConditionsInner.md | 46 + ...taAttributesRulesInnerDestinationsInner.md | 3 +- docs/NewAlertUrgencyDataAttributes.md | 1 + docs/NewAlertsSourceDataAttributes.md | 4 + ...ourceDataAttributesSourceableAttributes.md | 2 +- ...eAttributesFieldMappingsAttributesInner.md | 2 +- ...wCatalogChecklistTemplateDataAttributes.md | 1 + docs/NewCatalogDataAttributes.md | 2 + docs/NewCatalogEntityDataAttributes.md | 5 + docs/NewCatalogEntityProperty.md | 1 + .../NewCatalogEntityPropertyDataAttributes.md | 2 + docs/NewCatalogFieldData.md | 2 +- docs/NewCatalogFieldDataAttributes.md | 26 + docs/NewCatalogPropertyDataAttributes.md | 3 +- docs/NewCauseDataAttributes.md | 3 + docs/NewCommunicationsStageDataAttributes.md | 1 + docs/NewCommunicationsTypeDataAttributes.md | 1 + docs/NewCustomFormDataAttributes.md | 2 +- ...ataAttributesParamsDatasetsInnerGroupBy.md | 1 + ...tributesParamsDatasetsInnerGroupByOneOf.md | 1 + docs/NewEnvironmentDataAttributes.md | 4 + ...lationPolicyDataAttributesBusinessHours.md | 39 +- .../NewEscalationPolicyLevelDataAttributes.md | 24 +- ...AttributesNotificationTargetParamsInner.md | 3 +- docs/NewEscalationPolicyPathDataAttributes.md | 61 +- ...ationPolicyPathDataAttributesRulesInner.md | 330 +- ...olicyPathDataAttributesRulesInnerOneOf2.md | 6 + ...olicyPathDataAttributesRulesInnerOneOf5.md | 31 +- ...olicyPathDataAttributesRulesInnerOneOf6.md | 34 + ...olicyPathDataAttributesRulesInnerOneOf7.md | 31 + docs/NewFormFieldDataAttributes.md | 6 + docs/NewFormFieldPlacementDataAttributes.md | 2 +- docs/NewFormFieldPositionDataAttributes.md | 4 + docs/NewFormSetDataAttributes.md | 3 +- docs/NewFunctionalityDataAttributes.md | 5 +- docs/NewHeartbeatDataAttributes.md | 4 +- docs/NewIncidentActionItemDataAttributes.md | 1 + ...mDataAttributesFormFieldSelectionsInner.md | 25 + ...AttributesFormFieldSelectionsInnerValue.md | 13 + ...ncidentFormFieldSelectionDataAttributes.md | 3 + .../NewIncidentPermissionSetDataAttributes.md | 2 +- docs/NewIncidentRoleDataAttributes.md | 1 + ...ewIncidentStatusPageEventDataAttributes.md | 2 + ...DataAttributesStatusPageComponentsInner.md | 25 + docs/NewIncidentTypeDataAttributes.md | 3 + docs/NewLiveCallRouterDataAttributes.md | 7 + ...AttributesEscalationPolicyTriggerParams.md | 3 +- ...lRouterDataAttributesPagingTargetsInner.md | 3 +- docs/NewOnCallPayReportDataAttributes.md | 2 + docs/NewOnCallRoleDataAttributes.md | 27 +- docs/NewPostMortemTemplateDataAttributes.md | 1 + docs/NewRetrospectiveStepDataAttributes.md | 1 + docs/NewRoleDataAttributes.md | 87 +- docs/NewScheduleDataAttributes.md | 22 + docs/NewScheduleRotationDataAttributes.md | 4 +- docs/NewServiceDataAttributes.md | 4 +- ...viceDataAttributesAlertBroadcastChannel.md | 2 +- ...eDataAttributesIncidentBroadcastChannel.md | 2 +- docs/NewSeverityDataAttributes.md | 1 + docs/NewShiftCoverageRequest.md | 13 + docs/NewShiftCoverageRequestData.md | 22 + docs/NewShiftCoverageRequestDataAttributes.md | 15 + docs/NewSlaDataAttributes.md | 1 + docs/NewStatusPageAnnouncement.md | 13 + docs/NewStatusPageAnnouncementData.md | 22 + ...NewStatusPageAnnouncementDataAttributes.md | 15 + docs/NewStatusPageComponent.md | 13 + docs/NewStatusPageComponentData.md | 22 + docs/NewStatusPageComponentDataAttributes.md | 27 + docs/NewStatusPageComponentGroup.md | 13 + docs/NewStatusPageComponentGroupData.md | 22 + ...wStatusPageComponentGroupDataAttributes.md | 16 + docs/NewStatusPageDataAttributes.md | 13 + docs/NewStatusPageTemplateDataAttributes.md | 1 + docs/NewSubStatusDataAttributes.md | 2 +- docs/NewTeamDataAttributes.md | 15 + docs/NewUserNotificationRuleDataAttributes.md | 2 + docs/NewVerifiedDomain.md | 13 + docs/NewVerifiedDomainData.md | 22 + docs/NewVerifiedDomainDataAttributes.md | 13 + docs/NewWebhooksEndpointDataAttributes.md | 5 + ...ndpointDataAttributesCustomHeadersInner.md | 14 + ...NewWorkflowActionItemFormFieldCondition.md | 13 + ...orkflowActionItemFormFieldConditionData.md | 22 + ...ionItemFormFieldConditionDataAttributes.md | 40 + docs/NewWorkflowDataAttributes.md | 2 +- .../NewWorkflowDataAttributesTriggerParams.md | 38 + ...orkflowFormFieldConditionDataAttributes.md | 3 + docs/NewWorkflowGroupDataAttributes.md | 1 + ...NewWorkflowTaskDataAttributesTaskParams.md | 99 +- docs/OnCallPayReport.md | 3 +- docs/OnCallPayReportList.md | 1 + docs/OnCallPayReportResponse.md | 1 + docs/OnCallRole.md | 27 +- docs/OnCallRoleList.md | 1 + docs/OnCallRoleResponse.md | 1 + docs/OnCallShadowResponse.md | 1 + docs/OnCallShadowsList.md | 1 + docs/OnCallsApi.md | 15 +- docs/Oncall.md | 33 + docs/OncallList.md | 14 + docs/OncallListDataInner.md | 24 + docs/OncallRelationships.md | 15 + docs/OncallRelationshipsEscalationPolicy.md | 13 + ...OncallRelationshipsEscalationPolicyData.md | 22 + docs/OncallRelationshipsSchedule.md | 13 + docs/OncallRelationshipsScheduleData.md | 22 + docs/OncallRelationshipsUser.md | 13 + docs/OncallRelationshipsUserData.md | 22 + docs/OverrideShiftList.md | 1 + docs/OverrideShiftResponse.md | 1 + docs/OverrideShiftsApi.md | 8 +- docs/PageJsmopsOnCallRespondersTaskParams.md | 1 - docs/PageRootlyOnCallRespondersTaskParams.md | 4 +- ...ictorOpsOnCallRespondersTaskParamsAnyOf.md | 13 + ...ctorOpsOnCallRespondersTaskParamsAnyOf1.md | 13 + docs/PlaybookList.md | 1 + docs/PlaybookResponse.md | 1 + docs/PlaybookTaskList.md | 1 + docs/PlaybookTaskResponse.md | 1 + docs/PostMortemTemplate.md | 2 +- docs/PostMortemTemplateList.md | 1 + docs/PostMortemTemplateResponse.md | 1 + docs/PostMortemTriggerParams.md | 19 + docs/PublishIncidentTaskParams.md | 1 + docs/PulseList.md | 1 + docs/PulseResponse.md | 1 + docs/PulsesApi.md | 44 +- docs/Receipt.md | 37 + docs/RenameGoogleChatSpaceTaskParams.md | 23 + docs/RetrospectiveConfigurationList.md | 1 + docs/RetrospectiveConfigurationResponse.md | 1 + docs/RetrospectiveProcessGroupList.md | 1 + docs/RetrospectiveProcessGroupResponse.md | 1 + docs/RetrospectiveProcessGroupStepList.md | 1 + docs/RetrospectiveProcessGroupStepResponse.md | 1 + docs/RetrospectiveProcessList.md | 1 + docs/RetrospectiveProcessResponse.md | 1 + docs/RetrospectiveStep.md | 2 +- docs/RetrospectiveStepList.md | 1 + docs/RetrospectiveStepResponse.md | 1 + docs/Role.md | 87 +- docs/RoleList.md | 1 + docs/RoleResponse.md | 1 + docs/Schedule.md | 22 + docs/ScheduleList.md | 1 + docs/ScheduleResponse.md | 1 + docs/ScheduleRotation.md | 4 +- docs/ScheduleRotationActiveDayList.md | 1 + docs/ScheduleRotationActiveDayResponse.md | 1 + docs/ScheduleRotationList.md | 1 + docs/ScheduleRotationResponse.md | 1 + docs/ScheduleRotationUserList.md | 1 + docs/ScheduleRotationUserResponse.md | 1 + docs/SchedulesApi.md | 22 +- docs/SendGoogleChatAttachmentsTaskParams.md | 23 + docs/SendGoogleChatMessageTaskParams.md | 24 + docs/SendMicrosoftTeamsBlocksTaskParams.md | 11 +- docs/SendMicrosoftTeamsMessageTaskParams.md | 12 +- docs/SendSlackMessageTaskParamsAnyOf.md | 13 + docs/Service.md | 20 +- docs/ServiceList.md | 1 + docs/ServiceResponse.md | 1 + docs/ServicesApi.md | 346 +- docs/SeveritiesApi.md | 36 +- docs/Severity.md | 2 +- docs/SeverityList.md | 1 + docs/SeverityResponse.md | 1 + docs/Shift.md | 1 + docs/ShiftCoverageRequest.md | 24 + docs/ShiftCoverageRequestList.md | 16 + docs/ShiftCoverageRequestResponse.md | 14 + docs/ShiftCoverageRequestResponseData.md | 23 + docs/ShiftCoverageRequestsApi.md | 283 + docs/ShiftList.md | 2 + docs/ShiftOverrideResponse.md | 1 + docs/ShiftRelationships.md | 2 +- docs/ShiftsApi.md | 10 +- docs/SlaList.md | 1 + docs/SlaResponse.md | 1 + docs/SlackChannel.md | 18 + docs/SlasApi.md | 20 +- docs/StartSessionRequest.md | 25 + docs/StartSessionResponse.md | 13 + docs/StartSessionResponseData.md | 15 + docs/Status.md | 2 +- docs/StatusList.md | 1 + docs/StatusPage.md | 14 +- docs/StatusPageAnnouncement.md | 19 + docs/StatusPageAnnouncementList.md | 16 + docs/StatusPageAnnouncementResponse.md | 14 + docs/StatusPageAnnouncementResponseData.md | 23 + docs/StatusPageAnnouncementsApi.md | 363 + docs/StatusPageComponent.md | 35 + docs/StatusPageComponentGroup.md | 19 + docs/StatusPageComponentGroupList.md | 16 + docs/StatusPageComponentGroupResponse.md | 14 + docs/StatusPageComponentGroupResponseData.md | 23 + docs/StatusPageComponentGroupsApi.md | 363 + docs/StatusPageComponentList.md | 16 + docs/StatusPageComponentResponse.md | 14 + docs/StatusPageComponentResponseData.md | 23 + docs/StatusPageComponentsApi.md | 363 + docs/StatusPageList.md | 1 + docs/StatusPageResponse.md | 1 + docs/StatusPageTemplate.md | 1 + docs/StatusPageTemplateList.md | 1 + docs/StatusPageTemplateResponse.md | 1 + docs/StatusPagesApi.md | 23 +- docs/StatusResponse.md | 1 + docs/SubStatus.md | 2 +- docs/SubStatusList.md | 1 + docs/SubStatusResponse.md | 1 + docs/Team.md | 31 +- docs/TeamList.md | 1 + docs/TeamResponse.md | 1 + docs/TeamsApi.md | 352 +- docs/TriggerWorkflowTaskParams.md | 4 +- docs/UpdateAlertData.md | 2 +- docs/UpdateAlertDataAttributes.md | 53 +- docs/UpdateAlertFieldDataAttributes.md | 1 + docs/UpdateAlertGroupDataAttributes.md | 1 + docs/UpdateAlertRetriggerRule.md | 13 + docs/UpdateAlertRetriggerRuleData.md | 22 + .../UpdateAlertRetriggerRuleDataAttributes.md | 47 + docs/UpdateAlertRouteDataAttributes.md | 2 +- ...ertRoutingRuleDataAttributesDestination.md | 3 +- docs/UpdateAlertUrgencyDataAttributes.md | 1 + docs/UpdateAlertsSourceDataAttributes.md | 4 + ...eCatalogChecklistTemplateDataAttributes.md | 1 + docs/UpdateCatalogDataAttributes.md | 2 + docs/UpdateCatalogEntityDataAttributes.md | 5 + docs/UpdateCatalogEntityProperty.md | 1 + ...dateCatalogEntityPropertyDataAttributes.md | 1 + docs/UpdateCatalogFieldData.md | 2 +- docs/UpdateCatalogFieldDataAttributes.md | 27 +- docs/UpdateCatalogPropertyDataAttributes.md | 3 +- docs/UpdateCauseDataAttributes.md | 3 + ...UpdateCommunicationsStageDataAttributes.md | 1 + .../UpdateCommunicationsTypeDataAttributes.md | 1 + docs/UpdateConfluencePageTaskParams.md | 4 + docs/UpdateCustomFieldDataAttributes.md | 1 - docs/UpdateCustomFormDataAttributes.md | 2 +- docs/UpdateEdgeConnector.md | 2 +- docs/UpdateEdgeConnectorAction.md | 2 +- docs/UpdateEdgeConnectorEdgeConnector.md | 25 + ...pdateEdgeConnectorRequestDataAttributes.md | 1 + docs/UpdateEnvironmentDataAttributes.md | 4 + ...dateEscalationPolicyLevelDataAttributes.md | 24 +- ...AttributesNotificationTargetParamsInner.md | 1 + ...pdateEscalationPolicyPathDataAttributes.md | 61 +- ...ationPolicyPathDataAttributesRulesInner.md | 330 +- docs/UpdateFormFieldDataAttributes.md | 6 + .../UpdateFormFieldPlacementDataAttributes.md | 2 +- docs/UpdateFormFieldPositionDataAttributes.md | 4 + docs/UpdateFormSetDataAttributes.md | 3 +- docs/UpdateFunctionalityDataAttributes.md | 9 +- docs/UpdateGithubIssueTaskParams.md | 14 + ...ateGoogleChatSpaceDescriptionTaskParams.md | 23 + docs/UpdateGoogleDocsPageTaskParams.md | 3 + docs/UpdateHeartbeatDataAttributes.md | 4 +- .../UpdateIncidentActionItemDataAttributes.md | 1 + ...ncidentFormFieldSelectionDataAttributes.md | 3 + ...dateIncidentPermissionSetDataAttributes.md | 2 +- docs/UpdateIncidentRoleDataAttributes.md | 1 + ...teIncidentStatusPageEventDataAttributes.md | 1 + docs/UpdateIncidentTypeDataAttributes.md | 3 + docs/UpdateJiraIssueTaskParams.md | 3 + docs/UpdateLinearIssueTaskParams.md | 1 + docs/UpdateLiveCallRouterDataAttributes.md | 7 + ...AttributesEscalationPolicyTriggerParams.md | 3 +- docs/UpdateOnCallPayReportDataAttributes.md | 2 + docs/UpdateOnCallRoleDataAttributes.md | 27 +- docs/UpdateOpsgenieIncidentTaskParams.md | 1 + .../UpdatePostMortemTemplateDataAttributes.md | 1 + docs/UpdatePulseData.md | 2 +- docs/UpdateRetrospectiveStepDataAttributes.md | 1 + docs/UpdateRoleDataAttributes.md | 89 +- docs/UpdateScheduleDataAttributes.md | 22 + docs/UpdateScheduleRotationDataAttributes.md | 4 +- docs/UpdateServiceDataAttributes.md | 8 +- docs/UpdateSeverityDataAttributes.md | 1 + docs/UpdateSlaDataAttributes.md | 1 + docs/UpdateStatusPageAnnouncement.md | 13 + docs/UpdateStatusPageAnnouncementData.md | 22 + ...ateStatusPageAnnouncementDataAttributes.md | 14 + docs/UpdateStatusPageComponent.md | 13 + docs/UpdateStatusPageComponentData.md | 22 + ...UpdateStatusPageComponentDataAttributes.md | 16 + docs/UpdateStatusPageComponentGroup.md | 13 + docs/UpdateStatusPageComponentGroupData.md | 22 + ...eStatusPageComponentGroupDataAttributes.md | 16 + docs/UpdateStatusPageDataAttributes.md | 13 + .../UpdateStatusPageTemplateDataAttributes.md | 1 + docs/UpdateSubStatusDataAttributes.md | 2 +- docs/UpdateTeamDataAttributes.md | 15 + ...pdateUserNotificationRuleDataAttributes.md | 2 + docs/UpdateWebhooksEndpointDataAttributes.md | 5 + ...ateWorkflowActionItemFormFieldCondition.md | 13 + ...orkflowActionItemFormFieldConditionData.md | 22 + ...ionItemFormFieldConditionDataAttributes.md | 39 + docs/UpdateWorkflowData.md | 1 + docs/UpdateWorkflowDataAttributes.md | 2 +- ...orkflowFormFieldConditionDataAttributes.md | 3 + docs/UpdateWorkflowGroupDataAttributes.md | 1 + ...ateWorkflowTaskDataAttributesTaskParams.md | 99 +- docs/UptimeChartResponse.md | 13 + docs/UserEmailAddressList.md | 1 + docs/UserEmailAddressResponse.md | 1 + docs/UserFlatResponse.md | 23 +- docs/UserList.md | 1 + docs/UserNotificationRule.md | 12 + docs/UserNotificationRuleList.md | 1 + docs/UserNotificationRuleResponse.md | 1 + docs/UserPhoneNumberList.md | 1 + docs/UserPhoneNumberResponse.md | 1 + docs/UserResponse.md | 1 + docs/UsersApi.md | 4 +- docs/VerifiedDomain.md | 45 + docs/VerifiedDomainList.md | 16 + docs/VerifiedDomainResponse.md | 14 + docs/VerifiedDomainResponseData.md | 23 + docs/VerifiedDomainsApi.md | 274 + docs/WebhooksDeliveriesApi.md | 23 +- docs/WebhooksDelivery.md | 12 + docs/WebhooksDeliveryList.md | 1 + docs/WebhooksDeliveryResponse.md | 1 + docs/WebhooksEndpoint.md | 6 +- docs/WebhooksEndpointList.md | 1 + docs/WebhooksEndpointResponse.md | 1 + docs/WebhooksEndpointsApi.md | 4 +- docs/Workflow.md | 2 +- docs/WorkflowActionItemFormFieldCondition.md | 41 + ...orkflowActionItemFormFieldConditionList.md | 16 + ...lowActionItemFormFieldConditionResponse.md | 14 + ...ctionItemFormFieldConditionResponseData.md | 23 + ...orkflowActionItemFormFieldConditionsApi.md | 364 + docs/WorkflowCustomFieldSelectionList.md | 1 + docs/WorkflowCustomFieldSelectionResponse.md | 1 + docs/WorkflowFormFieldCondition.md | 3 + docs/WorkflowFormFieldConditionList.md | 1 + docs/WorkflowFormFieldConditionResponse.md | 1 + docs/WorkflowFormFieldConditionsApi.md | 8 +- docs/WorkflowGroup.md | 2 +- docs/WorkflowGroupList.md | 1 + docs/WorkflowGroupResponse.md | 1 + docs/WorkflowList.md | 1 + docs/WorkflowResponse.md | 1 + docs/WorkflowRunResponse.md | 1 + docs/WorkflowRunsList.md | 1 + docs/WorkflowTaskList.md | 1 + docs/WorkflowTaskResponse.md | 1 + docs/WorkflowTasksApi.md | 20 +- docs/WorkflowsApi.md | 22 +- pom.xml | 2 +- .../java/com/rootly/client/ApiException.java | 2 +- .../java/com/rootly/client/Configuration.java | 2 +- src/main/java/com/rootly/client/JSON.java | 351 +- src/main/java/com/rootly/client/Pair.java | 2 +- .../rootly/client/ServerConfiguration.java | 2 +- .../com/rootly/client/ServerVariable.java | 2 +- .../java/com/rootly/client/StringUtil.java | 2 +- .../java/com/rootly/client/api/AiChatApi.java | 665 + .../com/rootly/client/api/AlertEventsApi.java | 206 + .../com/rootly/client/api/AlertFieldsApi.java | 90 +- .../com/rootly/client/api/AlertGroupsApi.java | 82 +- .../client/api/AlertRetriggerRulesApi.java | 713 + .../com/rootly/client/api/AlertRoutesApi.java | 244 +- .../client/api/AlertRoutingRulesApi.java | 82 +- .../rootly/client/api/AlertSourcesApi.java | 46 +- .../rootly/client/api/AlertUrgenciesApi.java | 50 +- .../java/com/rootly/client/api/AlertsApi.java | 697 +- .../com/rootly/client/api/ApiKeysApi.java | 60 +- .../java/com/rootly/client/api/AuditsApi.java | 146 +- .../api/CatalogChecklistTemplatesApi.java | 60 +- .../rootly/client/api/CatalogEntitiesApi.java | 466 +- .../api/CatalogEntityChecklistsApi.java | 20 +- .../api/CatalogEntityPropertiesApi.java | 75 +- .../client/api/CatalogPropertiesApi.java | 50 +- .../com/rootly/client/api/CatalogsApi.java | 138 +- .../java/com/rootly/client/api/CausesApi.java | 425 +- .../client/api/DeprecatedCustomFieldsApi.java | 146 +- .../client/api/EdgeConnectorActionsApi.java | 234 +- .../rootly/client/api/EdgeConnectorsApi.java | 276 +- .../rootly/client/api/EnvironmentsApi.java | 733 +- .../rootly/client/api/EscalationPathsApi.java | 26 +- .../client/api/EscalationPoliciesApi.java | 90 +- .../client/api/FormFieldPlacementsApi.java | 20 +- .../client/api/FormFieldPositionsApi.java | 16 +- .../com/rootly/client/api/FormFieldsApi.java | 162 +- .../rootly/client/api/FunctionalitiesApi.java | 735 +- .../client/api/IncidentActionItemsApi.java | 146 +- .../rootly/client/api/IncidentRolesApi.java | 122 +- .../api/IncidentStatusPageEventsApi.java | 16 +- .../rootly/client/api/IncidentTypesApi.java | 457 +- .../com/rootly/client/api/IncidentsApi.java | 1108 +- .../rootly/client/api/LiveCallRoutersApi.java | 16 +- .../client/api/MeetingRecordingsApi.java | 743 +- .../client/api/OnCallPayReportsApi.java | 50 +- .../com/rootly/client/api/OnCallsApi.java | 39 +- .../rootly/client/api/OverrideShiftsApi.java | 28 +- .../java/com/rootly/client/api/PulsesApi.java | 178 +- .../com/rootly/client/api/SchedulesApi.java | 90 +- .../com/rootly/client/api/ServicesApi.java | 799 +- .../com/rootly/client/api/SeveritiesApi.java | 146 +- .../client/api/ShiftCoverageRequestsApi.java | 600 + .../java/com/rootly/client/api/ShiftsApi.java | 34 +- .../java/com/rootly/client/api/SlasApi.java | 122 +- .../api/StatusPageAnnouncementsApi.java | 778 + .../api/StatusPageComponentGroupsApi.java | 777 + .../client/api/StatusPageComponentsApi.java | 777 + .../com/rootly/client/api/StatusPagesApi.java | 94 +- .../java/com/rootly/client/api/TeamsApi.java | 814 +- .../java/com/rootly/client/api/UsersApi.java | 16 +- .../rootly/client/api/VerifiedDomainsApi.java | 591 + .../client/api/WebhooksDeliveriesApi.java | 95 +- .../client/api/WebhooksEndpointsApi.java | 16 +- ...kflowActionItemFormFieldConditionsApi.java | 782 + .../api/WorkflowFormFieldConditionsApi.java | 32 +- .../rootly/client/api/WorkflowTasksApi.java | 82 +- .../com/rootly/client/api/WorkflowsApi.java | 90 +- .../com/rootly/client/auth/ApiKeyAuth.java | 2 +- .../rootly/client/auth/Authentication.java | 2 +- .../rootly/client/auth/HttpBearerAuth.java | 2 +- .../client/model/AbstractOpenApiSchema.java | 2 +- .../client/model/ActionItemTriggerParams.java | 170 +- .../client/model/AddActionItemTaskParams.java | 2 +- ...AddActionItemTaskParamsAssignedToUser.java | 2 +- ...temTaskParamsPostToSlackChannelsInner.java | 2 +- .../AddMicrosoftTeamsChatTabTaskParams.java | 34 +- .../model/AddMicrosoftTeamsTabTaskParams.java | 565 +- .../client/model/AddRoleTaskParams.java | 2 +- .../AddRoleTaskParamsAssignedToUser.java | 2 +- .../model/AddSlackBookmarkTaskParams.java | 566 +- .../AddSlackBookmarkTaskParamsAnyOf.java | 245 + .../AddSlackBookmarkTaskParamsAnyOf1.java | 214 + .../rootly/client/model/AddSubscribers.java | 2 +- .../client/model/AddSubscribersData.java | 2 +- .../model/AddSubscribersDataAttributes.java | 2 +- .../client/model/AddTeamTaskParams.java | 2 +- .../client/model/AddToTimelineTaskParams.java | 2 +- .../rootly/client/model/AiChatResponse.java | 266 + .../client/model/AiChatResponseData.java | 329 + .../model/AiChatResponseDataAttributes.java | 341 + .../client/model/AiChatSessionMessage.java | 360 + .../model/AiChatSessionMessageList.java | 259 + .../java/com/rootly/client/model/Alert.java | 630 +- .../model/AlertAlertFieldValuesInner.java | 369 + .../model/AlertAlertingTargetsInner.java | 245 + .../com/rootly/client/model/AlertEvent.java | 319 +- .../model/AlertEventEscalationTarget.java | 208 + .../model/AlertEventEscalationTargetData.java | 263 + .../client/model/AlertEventFeedList.java | 345 + .../client/model/AlertEventFeedMeta.java | 361 + .../client/model/AlertEventIncident.java | 569 + .../rootly/client/model/AlertEventList.java | 56 +- .../client/model/AlertEventResponse.java | 58 +- .../client/model/AlertEventResponseData.java | 2 +- .../client/model/AlertEventSchedule.java | 390 + ...tEventScheduleEscalationPoliciesInner.java | 296 + .../rootly/client/model/AlertEventUser.java | 497 + .../com/rootly/client/model/AlertField.java | 11 +- .../rootly/client/model/AlertFieldList.java | 56 +- .../client/model/AlertFieldListDataInner.java | 2 +- .../client/model/AlertFieldResponse.java | 58 +- .../client/model/AlertFieldResponseData.java | 2 +- .../com/rootly/client/model/AlertGroup.java | 24 +- .../model/AlertGroupConditionsInner.java | 2 +- .../AlertGroupConditionsInnerValuesInner.java | 2 +- .../rootly/client/model/AlertGroupList.java | 56 +- .../client/model/AlertGroupResponse.java | 58 +- .../client/model/AlertGroupResponseData.java | 2 +- .../com/rootly/client/model/AlertList.java | 56 +- .../rootly/client/model/AlertResponse.java | 58 +- .../client/model/AlertResponseData.java | 148 +- .../client/model/AlertRetriggerRule.java | 465 + .../AlertRetriggerRuleConditionsInner.java | 517 + .../client/model/AlertRetriggerRuleList.java | 344 + .../model/AlertRetriggerRuleResponse.java | 266 + .../model/AlertRetriggerRuleResponseData.java | 328 + .../com/rootly/client/model/AlertRoute.java | 2 +- .../rootly/client/model/AlertRouteList.java | 2 +- .../client/model/AlertRouteResponse.java | 2 +- .../client/model/AlertRouteResponseData.java | 2 +- .../rootly/client/model/AlertRoutingRule.java | 2 +- .../model/AlertRoutingRuleCondition.java | 2 +- .../model/AlertRoutingRuleConditionGroup.java | 2 +- .../AlertRoutingRuleConditionGroupsInner.java | 2 +- ...leConditionGroupsInnerConditionsInner.java | 2 +- .../AlertRoutingRuleConditionsInner.java | 2 +- .../model/AlertRoutingRuleDestination.java | 8 +- .../client/model/AlertRoutingRuleList.java | 56 +- .../model/AlertRoutingRuleResponse.java | 58 +- .../model/AlertRoutingRuleResponseData.java | 2 +- .../client/model/AlertRoutingRuleTarget.java | 8 +- .../client/model/AlertTriggerParams.java | 178 +- ...riggerParamsAlertFieldConditionsInner.java | 2 +- ...rtTriggerParamsAlertPayloadConditions.java | 18 +- ...AlertPayloadConditionsConditionsInner.java | 34 +- .../com/rootly/client/model/AlertUrgency.java | 192 +- .../rootly/client/model/AlertUrgencyList.java | 56 +- .../client/model/AlertUrgencyResponse.java | 58 +- .../model/AlertUrgencyResponseData.java | 2 +- .../com/rootly/client/model/AlertsSource.java | 49 +- .../rootly/client/model/AlertsSourceList.java | 56 +- .../client/model/AlertsSourceResponse.java | 58 +- .../model/AlertsSourceResponseData.java | 2 +- .../AlertsSourceSourceableAttributes.java | 355 + .../java/com/rootly/client/model/ApiKey.java | 82 +- .../com/rootly/client/model/ApiKeyList.java | 80 +- .../rootly/client/model/ApiKeyResponse.java | 66 +- .../client/model/ApiKeyResponseData.java | 26 +- .../client/model/ApiKeyWithTokenResponse.java | 66 +- .../model/ApiKeyWithTokenResponseData.java | 26 +- ...ApiKeyWithTokenResponseDataAttributes.java | 90 +- .../ArchiveGoogleChatSpacesTaskParams.java | 316 + ...chiveMicrosoftTeamsChannelsTaskParams.java | 2 +- .../model/ArchiveSlackChannelsTaskParams.java | 2 +- .../rootly/client/model/AssignRoleToUser.java | 2 +- .../client/model/AssignRoleToUserData.java | 2 +- .../model/AssignRoleToUserDataAttributes.java | 2 +- .../com/rootly/client/model/AttachAlert.java | 2 +- .../rootly/client/model/AttachAlertData.java | 2 +- .../model/AttachAlertDataAttributes.java | 2 +- .../AttachDatadogDashboardsTaskParams.java | 2 +- ...tivePdfToFreshserviceTicketTaskParams.java | 328 + ...RetrospectivePdfToJiraIssueTaskParams.java | 360 + .../java/com/rootly/client/model/Audit.java | 264 +- .../com/rootly/client/model/AuditsList.java | 56 +- .../client/model/AuditsListDataInner.java | 2 +- .../rootly/client/model/Authorization.java | 2 +- .../client/model/AuthorizationList.java | 56 +- .../client/model/AuthorizationResponse.java | 58 +- .../model/AuthorizationResponseData.java | 2 +- .../AutoAssignRoleOpsgenieTaskParams.java | 2 +- .../AutoAssignRolePagerdutyTaskParams.java | 529 +- ...utoAssignRolePagerdutyTaskParamsAnyOf.java | 214 + ...toAssignRolePagerdutyTaskParamsAnyOf1.java | 214 + .../model/AutoAssignRoleRootlyTaskParams.java | 751 +- .../AutoAssignRoleRootlyTaskParamsOneOf.java | 214 + .../AutoAssignRoleRootlyTaskParamsOneOf1.java | 214 + .../AutoAssignRoleRootlyTaskParamsOneOf2.java | 214 + .../AutoAssignRoleRootlyTaskParamsOneOf3.java | 214 + .../AutoAssignRoleRootlyTaskParamsOneOf4.java | 214 + .../AutoAssignRoleVictorOpsTaskParams.java | 2 +- .../com/rootly/client/model/BuiltinField.java | 18 +- .../BulkDeleteCatalogEntities422Response.java | 271 + .../BulkDeleteEnvironments422Response.java | 271 + .../BulkDeleteFunctionalities422Response.java | 271 + .../model/BulkDeleteGroups422Response.java | 271 + .../model/BulkDeleteServices422Response.java | 271 + .../model/BulkDestroyCatalogEntities.java | 277 + .../BulkDestroyCatalogEntitiesOneOf.java | 227 + .../BulkDestroyCatalogEntitiesOneOf1.java | 315 + .../BulkDestroyCatalogEntitiesResponse.java | 208 + ...ulkDestroyCatalogEntitiesResponseData.java | 295 + .../client/model/BulkDestroyEnvironments.java | 277 + .../model/BulkDestroyEnvironmentsOneOf.java | 315 + .../BulkDestroyEnvironmentsResponse.java | 208 + .../model/BulkDestroyFunctionalities.java | 277 + .../BulkDestroyFunctionalitiesResponse.java | 208 + .../client/model/BulkDestroyServices.java | 277 + .../model/BulkDestroyServicesResponse.java | 208 + .../rootly/client/model/BulkDestroyTeams.java | 277 + .../model/BulkDestroyTeamsResponse.java | 208 + .../model/BulkUpsertCatalogEntities.java | 232 + .../BulkUpsertCatalogEntities422Response.java | 270 + ...ulkUpsertCatalogEntitiesEntitiesInner.java | 398 + ...talogEntitiesEntitiesInnerFieldsInner.java | 274 + .../model/BulkUpsertCatalogEntitiesError.java | 232 + ...UpsertCatalogEntitiesErrorErrorsInner.java | 286 + .../BulkUpsertCatalogEntitiesResponse.java | 228 + ...psertCatalogEntitiesResponseDataInner.java | 322 + .../client/model/BulkUpsertEnvironments.java | 232 + .../BulkUpsertEnvironments422Response.java | 270 + .../BulkUpsertEnvironmentsEntitiesInner.java | 464 + .../model/BulkUpsertEnvironmentsError.java | 232 + ...ulkUpsertEnvironmentsErrorErrorsInner.java | 286 + .../model/BulkUpsertEnvironmentsResponse.java | 228 + ...lkUpsertEnvironmentsResponseDataInner.java | 322 + .../model/BulkUpsertFunctionalities.java | 232 + .../BulkUpsertFunctionalities422Response.java | 270 + ...ulkUpsertFunctionalitiesEntitiesInner.java | 728 + .../model/BulkUpsertFunctionalitiesError.java | 232 + .../BulkUpsertFunctionalitiesResponse.java | 228 + ...psertFunctionalitiesResponseDataInner.java | 322 + .../model/BulkUpsertGroups422Response.java | 270 + .../client/model/BulkUpsertServices.java | 232 + .../model/BulkUpsertServices422Response.java | 270 + .../BulkUpsertServicesEntitiesInner.java | 905 + .../client/model/BulkUpsertServicesError.java | 232 + .../model/BulkUpsertServicesResponse.java | 228 + .../BulkUpsertServicesResponseDataInner.java | 322 + .../rootly/client/model/BulkUpsertTeams.java | 232 + .../model/BulkUpsertTeamsEntitiesInner.java | 761 + .../client/model/BulkUpsertTeamsError.java | 232 + .../client/model/BulkUpsertTeamsResponse.java | 228 + .../BulkUpsertTeamsResponseDataInner.java | 322 + .../client/model/CallPeopleTaskParams.java | 2 +- .../rootly/client/model/CancelIncident.java | 2 +- .../client/model/CancelIncidentData.java | 2 +- .../model/CancelIncidentDataAttributes.java | 2 +- .../java/com/rootly/client/model/Catalog.java | 159 +- .../model/CatalogChecklistTemplate.java | 93 +- .../CatalogChecklistTemplateFieldsInner.java | 26 +- .../model/CatalogChecklistTemplateList.java | 80 +- .../CatalogChecklistTemplateOwnersInner.java | 18 +- .../CatalogChecklistTemplateResponse.java | 66 +- .../CatalogChecklistTemplateResponseData.java | 26 +- .../rootly/client/model/CatalogEntity.java | 273 +- .../client/model/CatalogEntityChecklist.java | 90 +- ...ogEntityChecklistChecklistFieldsInner.java | 10 +- ...tityChecklistChecklistFieldsInnerData.java | 26 +- ...istChecklistFieldsInnerDataAttributes.java | 74 +- ...ogEntityChecklistChecklistOwnersInner.java | 10 +- ...tityChecklistChecklistOwnersInnerData.java | 26 +- ...istChecklistOwnersInnerDataAttributes.java | 34 +- .../model/CatalogEntityChecklistList.java | 80 +- .../model/CatalogEntityChecklistResponse.java | 66 +- .../CatalogEntityChecklistResponseData.java | 26 +- .../client/model/CatalogEntityList.java | 56 +- .../client/model/CatalogEntityProperty.java | 10 +- .../model/CatalogEntityPropertyList.java | 60 +- .../model/CatalogEntityPropertyResponse.java | 62 +- .../CatalogEntityPropertyResponseData.java | 7 +- .../client/model/CatalogEntityResponse.java | 58 +- .../model/CatalogEntityResponseData.java | 2 +- .../com/rootly/client/model/CatalogField.java | 285 +- .../rootly/client/model/CatalogFieldList.java | 56 +- .../client/model/CatalogFieldResponse.java | 58 +- .../model/CatalogFieldResponseData.java | 4 +- .../com/rootly/client/model/CatalogList.java | 56 +- .../rootly/client/model/CatalogProperty.java | 229 +- .../client/model/CatalogPropertyList.java | 80 +- .../client/model/CatalogPropertyResponse.java | 66 +- .../model/CatalogPropertyResponseData.java | 26 +- .../rootly/client/model/CatalogResponse.java | 58 +- .../client/model/CatalogResponseData.java | 2 +- .../java/com/rootly/client/model/Cause.java | 101 +- .../com/rootly/client/model/CauseList.java | 56 +- .../rootly/client/model/CauseResponse.java | 58 +- .../client/model/CauseResponseData.java | 2 +- ...hangeGoogleChatSpacePrivacyTaskParams.java | 340 + .../ChangeSlackChannelPrivacyTaskParams.java | 19 +- .../client/model/CommunicationsGroup.java | 24 +- ...ommunicationExternalGroupMembersInner.java | 2 +- .../model/CommunicationsGroupResponse.java | 58 +- .../CommunicationsGroupResponseData.java | 2 +- .../model/CommunicationsGroupsResponse.java | 56 +- .../client/model/CommunicationsStage.java | 24 +- .../model/CommunicationsStageResponse.java | 58 +- .../CommunicationsStageResponseData.java | 2 +- .../model/CommunicationsStagesResponse.java | 56 +- .../client/model/CommunicationsTemplate.java | 24 +- ...plateCommunicationTemplateStagesInner.java | 200 +- ...eCommunicationTemplateStagesInnerData.java | 26 +- ...tionTemplateStagesInnerDataAttributes.java | 66 +- ...InnerDataAttributesCommunicationStage.java | 18 +- ...erDataAttributesCommunicationTemplate.java | 18 +- ...mmunicationsTemplateCommunicationType.java | 2 +- .../model/CommunicationsTemplateResponse.java | 58 +- .../CommunicationsTemplateResponseData.java | 2 +- .../CommunicationsTemplatesResponse.java | 56 +- .../client/model/CommunicationsType.java | 24 +- .../model/CommunicationsTypeResponse.java | 58 +- .../model/CommunicationsTypeResponseData.java | 2 +- .../model/CommunicationsTypesResponse.java | 56 +- .../CreateAirtableTableRecordTaskParams.java | 2 +- ...eateAnthropicChatCompletionTaskParams.java | 34 +- ...nthropicChatCompletionTaskParamsModel.java | 2 +- .../model/CreateAsanaSubtaskTaskParams.java | 2 +- .../model/CreateAsanaTaskTaskParams.java | 2 +- .../model/CreateClickupTaskTaskParams.java | 35 +- .../model/CreateCodaPageTaskParams.java | 2 +- .../model/CreateCodaPageTaskParamsDoc.java | 2 +- .../CreateCodaPageTaskParamsTemplate.java | 2 +- .../model/CreateConfluencePageTaskParams.java | 114 +- ...teConfluencePageTaskParamsIntegration.java | 2 +- .../CreateDatadogNotebookTaskParams.java | 2 +- .../CreateDropboxPaperPageTaskParams.java | 2 +- .../CreateEdgeConnectorActionRequest.java | 10 +- ...reateEdgeConnectorActionRequestAction.java | 26 +- ...eConnectorActionRequestActionMetadata.java | 26 +- ...nRequestActionMetadataParametersInner.java | 42 +- .../model/CreateEdgeConnectorRequest.java | 10 +- .../model/CreateEdgeConnectorRequestData.java | 18 +- ...ateEdgeConnectorRequestDataAttributes.java | 70 +- ...ConnectorRequestDataAttributesFilters.java | 334 + .../model/CreateGithubIssueTaskParams.java | 161 +- .../CreateGithubIssueTaskParamsIssueType.java | 18 +- .../model/CreateGitlabIssueTaskParams.java | 19 +- .../model/CreateGoToMeetingTaskParams.java | 2 +- .../CreateGoogleCalendarEventTaskParams.java | 2 +- .../CreateGoogleChatSpaceTaskParams.java | 358 + .../model/CreateGoogleDocsPageTaskParams.java | 87 +- ...CreateGoogleDocsPermissionsTaskParams.java | 2 +- ...eGoogleGeminiChatCompletionTaskParams.java | 2 +- ...leGeminiChatCompletionTaskParamsModel.java | 2 +- .../model/CreateGoogleMeetingTaskParams.java | 94 +- .../CreateIncidentPostmortemTaskParams.java | 2 +- ...eIncidentPostmortemTaskParamsTemplate.java | 2 +- .../model/CreateIncidentTaskParams.java | 2 +- .../model/CreateJiraIssueTaskParams.java | 60 +- .../CreateJiraIssueTaskParamsIntegration.java | 2 +- .../CreateJiraIssueTaskParamsIssueType.java | 2 +- .../CreateJiraIssueTaskParamsPriority.java | 2 +- .../CreateJiraIssueTaskParamsStatus.java | 2 +- .../model/CreateJiraSubtaskTaskParams.java | 60 +- .../model/CreateJsmopsAlertTaskParams.java | 76 +- .../CreateLinearIssueCommentTaskParams.java | 2 +- .../model/CreateLinearIssueTaskParams.java | 48 +- .../CreateLinearIssueTaskParamsProject.java | 2 +- .../CreateLinearIssueTaskParamsState.java | 2 +- .../CreateLinearIssueTaskParamsTeam.java | 2 +- .../CreateLinearSubtaskIssueTaskParams.java | 48 +- ...CreateMicrosoftTeamsChannelTaskParams.java | 17 +- .../CreateMicrosoftTeamsChatTaskParams.java | 2 +- ...rosoftTeamsChatTaskParamsMembersInner.java | 2 +- ...CreateMicrosoftTeamsMeetingTaskParams.java | 106 +- ...CreateMistralChatCompletionTaskParams.java | 2 +- ...eMistralChatCompletionTaskParamsModel.java | 2 +- .../model/CreateMotionTaskTaskParams.java | 27 +- .../model/CreateNotionPageTaskParams.java | 2 +- .../CreateNotionPageTaskParamsParentPage.java | 2 +- .../CreateOpenaiChatCompletionTaskParams.java | 2 +- ...teOpenaiChatCompletionTaskParamsModel.java | 4 +- .../model/CreateOpsgenieAlertTaskParams.java | 2 +- .../model/CreateOutlookEventTaskParams.java | 2 +- ...CreatePagerdutyStatusUpdateTaskParams.java | 2 +- .../model/CreatePagertreeAlertTaskParams.java | 2 +- .../model/CreateQuipPageTaskParams.java | 2 +- .../CreateServiceNowIncidentTaskParams.java | 2 +- ...erviceNowIncidentTaskParamsCompletion.java | 2 +- .../model/CreateSharepointPageTaskParams.java | 2 +- .../model/CreateShortcutStoryTaskParams.java | 722 +- .../CreateShortcutStoryTaskParamsAnyOf.java | 214 + .../CreateShortcutStoryTaskParamsAnyOf1.java | 214 + .../model/CreateShortcutTaskTaskParams.java | 2 +- .../model/CreateSlackChannelTaskParams.java | 2 +- .../model/CreateSubIncidentTaskParams.java | 2 +- .../model/CreateTrelloCardTaskParams.java | 2 +- ...CreateTrelloCardTaskParamsArchivation.java | 2 +- .../CreateTrelloCardTaskParamsBoard.java | 2 +- .../model/CreateTrelloCardTaskParamsList.java | 2 +- ...CreateWatsonxChatCompletionTaskParams.java | 2 +- ...eWatsonxChatCompletionTaskParamsModel.java | 2 +- .../model/CreateWebexMeetingTaskParams.java | 106 +- .../CreateZendeskJiraLinkTaskParams.java | 2 +- .../model/CreateZendeskTicketTaskParams.java | 2 +- .../model/CreateZoomMeetingTaskParams.java | 133 +- .../com/rootly/client/model/CustomField.java | 483 +- .../rootly/client/model/CustomFieldList.java | 56 +- .../client/model/CustomFieldOption.java | 2 +- .../client/model/CustomFieldOptionList.java | 56 +- .../model/CustomFieldOptionResponse.java | 58 +- .../model/CustomFieldOptionResponseData.java | 2 +- .../client/model/CustomFieldResponse.java | 58 +- .../client/model/CustomFieldResponseData.java | 2 +- .../com/rootly/client/model/CustomForm.java | 24 +- .../rootly/client/model/CustomFormList.java | 56 +- .../client/model/CustomFormResponse.java | 58 +- .../client/model/CustomFormResponseData.java | 2 +- .../com/rootly/client/model/Dashboard.java | 2 +- .../rootly/client/model/DashboardList.java | 56 +- .../rootly/client/model/DashboardPanel.java | 2 +- .../client/model/DashboardPanelList.java | 56 +- .../client/model/DashboardPanelResponse.java | 58 +- .../model/DashboardPanelResponseData.java | 2 +- .../client/model/DashboardResponse.java | 58 +- .../client/model/DashboardResponseData.java | 2 +- .../model/DeleteAlertRoute200Response.java | 2 +- .../DeleteAlertRoute200ResponseData.java | 2 +- ...teAlertRoute200ResponseDataAttributes.java | 2 +- .../client/model/DuplicateIncident.java | 2 +- .../client/model/DuplicateIncidentData.java | 2 +- .../DuplicateIncidentDataAttributes.java | 2 +- .../rootly/client/model/EdgeConnector.java | 2 +- .../client/model/EdgeConnectorAction.java | 2 +- .../client/model/EdgeConnectorActionData.java | 2 +- .../EdgeConnectorActionDataAttributes.java | 2 +- ...orActionDataAttributesParametersInner.java | 13 +- .../client/model/EdgeConnectorData.java | 2 +- .../model/EdgeConnectorDataAttributes.java | 2 +- .../com/rootly/client/model/Environment.java | 223 +- .../rootly/client/model/EnvironmentList.java | 56 +- .../client/model/EnvironmentResponse.java | 58 +- .../client/model/EnvironmentResponseData.java | 2 +- .../com/rootly/client/model/ErrorsList.java | 2 +- .../client/model/ErrorsListErrorsInner.java | 2 +- .../rootly/client/model/EscalateAlert.java | 10 +- .../client/model/EscalateAlertData.java | 18 +- .../model/EscalateAlertDataAttributes.java | 18 +- .../rootly/client/model/EscalationPolicy.java | 7 +- .../client/model/EscalationPolicyLevel.java | 236 +- .../model/EscalationPolicyLevelList.java | 56 +- .../EscalationPolicyLevelListDataInner.java | 2 +- .../model/EscalationPolicyLevelResponse.java | 58 +- .../EscalationPolicyLevelResponseData.java | 2 +- .../client/model/EscalationPolicyList.java | 56 +- .../client/model/EscalationPolicyPath.java | 327 +- .../model/EscalationPolicyPathList.java | 56 +- .../EscalationPolicyPathListDataInner.java | 2 +- .../model/EscalationPolicyPathResponse.java | 58 +- .../EscalationPolicyPathResponseData.java | 2 +- .../model/EscalationPolicyResponse.java | 58 +- .../model/EscalationPolicyResponseData.java | 2 +- .../com/rootly/client/model/FormField.java | 150 +- .../rootly/client/model/FormFieldList.java | 56 +- .../rootly/client/model/FormFieldOption.java | 2 +- .../client/model/FormFieldOptionList.java | 56 +- .../client/model/FormFieldOptionResponse.java | 58 +- .../model/FormFieldOptionResponseData.java | 2 +- .../client/model/FormFieldPlacement.java | 4 +- .../model/FormFieldPlacementCondition.java | 2 +- .../FormFieldPlacementConditionList.java | 56 +- .../FormFieldPlacementConditionResponse.java | 58 +- ...rmFieldPlacementConditionResponseData.java | 2 +- .../client/model/FormFieldPlacementList.java | 56 +- .../model/FormFieldPlacementResponse.java | 58 +- .../model/FormFieldPlacementResponseData.java | 2 +- .../client/model/FormFieldPosition.java | 12 +- .../client/model/FormFieldPositionList.java | 56 +- .../model/FormFieldPositionResponse.java | 58 +- .../model/FormFieldPositionResponseData.java | 2 +- .../client/model/FormFieldResponse.java | 58 +- .../client/model/FormFieldResponseData.java | 2 +- .../java/com/rootly/client/model/FormSet.java | 26 +- .../rootly/client/model/FormSetCondition.java | 2 +- .../client/model/FormSetConditionList.java | 56 +- .../model/FormSetConditionResponse.java | 58 +- .../model/FormSetConditionResponseData.java | 2 +- .../com/rootly/client/model/FormSetList.java | 56 +- .../rootly/client/model/FormSetResponse.java | 58 +- .../client/model/FormSetResponseData.java | 2 +- .../rootly/client/model/Functionality.java | 195 +- .../client/model/FunctionalityList.java | 56 +- .../client/model/FunctionalityResponse.java | 58 +- .../model/FunctionalityResponseData.java | 2 +- .../model/GetAlertFieldIdParameter.java | 2 +- .../client/model/GetAlertsTaskParams.java | 2 +- .../model/GetGithubCommitsTaskParams.java | 644 +- .../GetGithubCommitsTaskParamsAnyOf.java | 227 + .../GetGithubCommitsTaskParamsAnyOf1.java | 227 + .../model/GetGitlabCommitsTaskParams.java | 644 +- .../GetGitlabCommitsTaskParamsAnyOf.java | 227 + .../client/model/GetPulsesTaskParams.java | 2 +- ...lsesTaskParamsParentMessageThreadTask.java | 2 +- .../client/model/GetTeamIdParameter.java | 2 +- .../com/rootly/client/model/Heartbeat.java | 57 +- .../rootly/client/model/HeartbeatList.java | 56 +- .../client/model/HeartbeatResponse.java | 58 +- .../client/model/HeartbeatResponseData.java | 2 +- .../client/model/HttpClientTaskParams.java | 60 +- .../client/model/ImportMeetingRecording.java | 484 + .../rootly/client/model/InTriageIncident.java | 2 +- .../client/model/InTriageIncidentData.java | 2 +- .../com/rootly/client/model/Incident.java | 560 +- .../client/model/IncidentActionItem.java | 35 +- .../client/model/IncidentActionItemList.java | 56 +- .../model/IncidentActionItemResponse.java | 58 +- .../model/IncidentActionItemResponseData.java | 2 +- .../model/IncidentCustomFieldSelection.java | 2 +- .../IncidentCustomFieldSelectionList.java | 56 +- .../IncidentCustomFieldSelectionResponse.java | 58 +- ...identCustomFieldSelectionResponseData.java | 2 +- .../rootly/client/model/IncidentEvent.java | 2 +- .../model/IncidentEventFunctionality.java | 2 +- .../model/IncidentEventFunctionalityList.java | 56 +- .../IncidentEventFunctionalityResponse.java | 58 +- ...ncidentEventFunctionalityResponseData.java | 2 +- .../client/model/IncidentEventList.java | 56 +- .../client/model/IncidentEventResponse.java | 58 +- .../model/IncidentEventResponseData.java | 2 +- .../client/model/IncidentEventService.java | 2 +- .../model/IncidentEventServiceList.java | 56 +- .../model/IncidentEventServiceResponse.java | 58 +- .../IncidentEventServiceResponseData.java | 2 +- .../rootly/client/model/IncidentFeedback.java | 2 +- .../client/model/IncidentFeedbackList.java | 56 +- .../model/IncidentFeedbackResponse.java | 58 +- .../model/IncidentFeedbackResponseData.java | 2 +- .../model/IncidentFormFieldSelection.java | 123 +- .../model/IncidentFormFieldSelectionList.java | 56 +- .../IncidentFormFieldSelectionResponse.java | 58 +- ...ncidentFormFieldSelectionResponseData.java | 2 +- .../com/rootly/client/model/IncidentList.java | 56 +- .../client/model/IncidentPermissionSet.java | 24 +- .../model/IncidentPermissionSetBoolean.java | 2 +- .../IncidentPermissionSetBooleanList.java | 56 +- .../IncidentPermissionSetBooleanResponse.java | 58 +- ...identPermissionSetBooleanResponseData.java | 2 +- .../model/IncidentPermissionSetList.java | 56 +- .../model/IncidentPermissionSetResource.java | 2 +- .../IncidentPermissionSetResourceList.java | 56 +- ...IncidentPermissionSetResourceResponse.java | 58 +- ...dentPermissionSetResourceResponseData.java | 2 +- .../model/IncidentPermissionSetResponse.java | 58 +- .../IncidentPermissionSetResponseData.java | 2 +- .../client/model/IncidentPostMortem.java | 2 +- .../client/model/IncidentPostMortemList.java | 56 +- .../model/IncidentPostMortemResponse.java | 58 +- .../model/IncidentPostMortemResponseData.java | 2 +- .../rootly/client/model/IncidentResponse.java | 58 +- .../client/model/IncidentResponseData.java | 2 +- .../model/IncidentRetrospectiveStep.java | 2 +- .../IncidentRetrospectiveStepResponse.java | 58 +- ...IncidentRetrospectiveStepResponseData.java | 2 +- .../com/rootly/client/model/IncidentRole.java | 17 +- .../rootly/client/model/IncidentRoleList.java | 56 +- .../client/model/IncidentRoleResponse.java | 58 +- .../model/IncidentRoleResponseData.java | 2 +- .../rootly/client/model/IncidentRoleTask.java | 2 +- .../client/model/IncidentRoleTaskList.java | 56 +- .../model/IncidentRoleTaskResponse.java | 58 +- .../model/IncidentRoleTaskResponseData.java | 2 +- .../client/model/IncidentStatusPageEvent.java | 56 +- .../model/IncidentStatusPageEventList.java | 56 +- .../IncidentStatusPageEventResponse.java | 58 +- .../IncidentStatusPageEventResponseData.java | 2 +- ...tusPageEventStatusPageComponentsInner.java | 316 + .../client/model/IncidentSubStatus.java | 2 +- .../client/model/IncidentSubStatusList.java | 56 +- .../model/IncidentSubStatusResponse.java | 58 +- .../model/IncidentSubStatusResponseData.java | 2 +- .../client/model/IncidentTriggerParams.java | 170 +- .../com/rootly/client/model/IncidentType.java | 99 +- .../rootly/client/model/IncidentTypeList.java | 56 +- .../client/model/IncidentTypeResponse.java | 58 +- .../model/IncidentTypeResponseData.java | 2 +- ...ntZoomMeetingGlobalDialInNumbersInner.java | 42 +- .../client/model/IncidentsChartResponse.java | 211 + .../InviteToGoogleChatSpaceTaskParams.java | 329 + ...MicrosoftTeamsChannelRootlyTaskParams.java | 483 + ...viteToMicrosoftTeamsChannelTaskParams.java | 2 +- ...nviteToSlackChannelOpsgenieTaskParams.java | 2 +- ...viteToSlackChannelPagerdutyTaskParams.java | 543 +- .../InviteToSlackChannelRootlyTaskParams.java | 2 +- .../model/InviteToSlackChannelTaskParams.java | 617 +- .../InviteToSlackChannelTaskParamsAnyOf.java | 232 + .../InviteToSlackChannelTaskParamsAnyOf1.java | 232 + .../InviteToSlackChannelTaskParamsAnyOf2.java | 214 + ...viteToSlackChannelVictorOpsTaskParams.java | 2 +- .../com/rootly/client/model/IpRanges.java | 2 +- .../rootly/client/model/IpRangesResponse.java | 2 +- .../client/model/IpRangesResponseData.java | 2 +- .../client/model/JsonapiIncludedResource.java | 317 + .../java/com/rootly/client/model/Links.java | 12 +- .../rootly/client/model/LiveCallRouter.java | 134 +- .../client/model/LiveCallRouterList.java | 56 +- .../client/model/LiveCallRouterResponse.java | 58 +- .../model/LiveCallRouterResponseData.java | 2 +- .../rootly/client/model/MeetingRecording.java | 217 +- .../client/model/MeetingRecordingDetail.java | 872 + ...MeetingRecordingDetailAllOfTranscript.java | 295 + .../model/MeetingRecordingDetailResponse.java | 214 + .../MeetingRecordingDetailResponseData.java | 328 + .../client/model/MeetingRecordingList.java | 28 +- .../model/MeetingRecordingResponse.java | 214 + .../model/MeetingRecordingResponseData.java | 328 + .../MeetingRecordingTranscriptSegment.java | 263 + .../model/MeetingRecordingTranscriptWord.java | 269 + .../java/com/rootly/client/model/Meta.java | 56 +- .../rootly/client/model/MitigateIncident.java | 2 +- .../client/model/MitigateIncidentData.java | 2 +- .../model/MitigateIncidentDataAttributes.java | 2 +- .../com/rootly/client/model/NewAlert.java | 2 +- .../com/rootly/client/model/NewAlertData.java | 2 +- .../client/model/NewAlertDataAttributes.java | 259 +- ...ibutesAlertFieldValuesAttributesInner.java | 2 +- .../NewAlertDataAttributesLabelsInner.java | 2 +- ...ewAlertDataAttributesLabelsInnerValue.java | 2 +- ...ataAttributesNotificationTargetsInner.java | 305 + .../rootly/client/model/NewAlertEvent.java | 2 +- .../client/model/NewAlertEventData.java | 2 +- .../model/NewAlertEventDataAttributes.java | 2 +- .../rootly/client/model/NewAlertField.java | 2 +- .../client/model/NewAlertFieldData.java | 2 +- .../model/NewAlertFieldDataAttributes.java | 53 +- .../rootly/client/model/NewAlertGroup.java | 2 +- .../client/model/NewAlertGroupData.java | 2 +- .../model/NewAlertGroupDataAttributes.java | 41 +- ...ertGroupDataAttributesAttributesInner.java | 2 +- ...ertGroupDataAttributesConditionsInner.java | 2 +- ...wAlertGroupDataAttributesTargetsInner.java | 12 +- .../client/model/NewAlertRetriggerRule.java | 214 + .../model/NewAlertRetriggerRuleData.java | 297 + .../NewAlertRetriggerRuleDataAttributes.java | 498 + ...ggerRuleDataAttributesConditionsInner.java | 486 + .../rootly/client/model/NewAlertRoute.java | 2 +- .../client/model/NewAlertRouteData.java | 2 +- .../model/NewAlertRouteDataAttributes.java | 2 +- ...NewAlertRouteDataAttributesRulesInner.java | 4 +- ...ributesRulesInnerConditionGroupsInner.java | 2 +- ...erConditionGroupsInnerConditionsInner.java | 2 +- ...AttributesRulesInnerDestinationsInner.java | 8 +- .../client/model/NewAlertRoutingRule.java | 2 +- .../client/model/NewAlertRoutingRuleData.java | 2 +- .../NewAlertRoutingRuleDataAttributes.java | 2 +- ...tingRuleDataAttributesConditionsInner.java | 2 +- .../rootly/client/model/NewAlertUrgency.java | 2 +- .../client/model/NewAlertUrgencyData.java | 2 +- .../model/NewAlertUrgencyDataAttributes.java | 33 +- .../rootly/client/model/NewAlertsSource.java | 2 +- .../client/model/NewAlertsSourceData.java | 2 +- .../model/NewAlertsSourceDataAttributes.java | 37 +- ...butesAlertSourceFieldsAttributesInner.java | 2 +- ...lertSourceUrgencyRulesAttributesInner.java | 2 +- ...DataAttributesAlertTemplateAttributes.java | 2 +- ...ataAttributesResolutionRuleAttributes.java | 2 +- ...leAttributesConditionsAttributesInner.java | 2 +- ...rceDataAttributesSourceableAttributes.java | 4 +- ...ttributesFieldMappingsAttributesInner.java | 4 +- .../com/rootly/client/model/NewApiKey.java | 10 +- .../rootly/client/model/NewApiKeyData.java | 18 +- .../client/model/NewApiKeyDataAttributes.java | 58 +- .../rootly/client/model/NewAuthorization.java | 2 +- .../client/model/NewAuthorizationData.java | 2 +- .../model/NewAuthorizationDataAttributes.java | 2 +- .../com/rootly/client/model/NewCatalog.java | 2 +- .../model/NewCatalogChecklistTemplate.java | 10 +- .../NewCatalogChecklistTemplateData.java | 18 +- ...atalogChecklistTemplateDataAttributes.java | 97 +- ...listTemplateDataAttributesFieldsInner.java | 2 +- ...listTemplateDataAttributesOwnersInner.java | 18 +- .../rootly/client/model/NewCatalogData.java | 2 +- .../model/NewCatalogDataAttributes.java | 73 +- .../rootly/client/model/NewCatalogEntity.java | 2 +- .../client/model/NewCatalogEntityData.java | 2 +- .../model/NewCatalogEntityDataAttributes.java | 185 +- ...ogEntityDataAttributesPropertiesInner.java | 18 +- .../model/NewCatalogEntityProperty.java | 6 +- .../model/NewCatalogEntityPropertyData.java | 2 +- ...ewCatalogEntityPropertyDataAttributes.java | 8 +- .../rootly/client/model/NewCatalogField.java | 2 +- .../client/model/NewCatalogFieldData.java | 4 +- .../model/NewCatalogFieldDataAttributes.java | 214 +- .../client/model/NewCatalogProperty.java | 10 +- .../client/model/NewCatalogPropertyData.java | 18 +- .../NewCatalogPropertyDataAttributes.java | 131 +- .../com/rootly/client/model/NewCause.java | 2 +- .../com/rootly/client/model/NewCauseData.java | 2 +- .../client/model/NewCauseDataAttributes.java | 125 +- ...NewCauseDataAttributesPropertiesInner.java | 18 +- .../client/model/NewCommunicationsGroup.java | 2 +- .../model/NewCommunicationsGroupData.java | 2 +- .../NewCommunicationsGroupDataAttributes.java | 2 +- ...ommunicationExternalGroupMembersInner.java | 2 +- ...utesCommunicationGroupConditionsInner.java | 2 +- .../client/model/NewCommunicationsStage.java | 2 +- .../model/NewCommunicationsStageData.java | 2 +- .../NewCommunicationsStageDataAttributes.java | 41 +- .../model/NewCommunicationsTemplate.java | 2 +- .../model/NewCommunicationsTemplateData.java | 2 +- ...wCommunicationsTemplateDataAttributes.java | 2 +- ...nicationTemplateStagesAttributesInner.java | 2 +- .../client/model/NewCommunicationsType.java | 2 +- .../model/NewCommunicationsTypeData.java | 2 +- .../NewCommunicationsTypeDataAttributes.java | 41 +- .../rootly/client/model/NewCustomField.java | 2 +- .../client/model/NewCustomFieldData.java | 2 +- .../model/NewCustomFieldDataAttributes.java | 2 +- .../client/model/NewCustomFieldOption.java | 2 +- .../model/NewCustomFieldOptionData.java | 2 +- .../NewCustomFieldOptionDataAttributes.java | 2 +- .../rootly/client/model/NewCustomForm.java | 2 +- .../client/model/NewCustomFormData.java | 2 +- .../model/NewCustomFormDataAttributes.java | 69 +- .../com/rootly/client/model/NewDashboard.java | 2 +- .../rootly/client/model/NewDashboardData.java | 2 +- .../model/NewDashboardDataAttributes.java | 2 +- .../client/model/NewDashboardPanel.java | 2 +- .../client/model/NewDashboardPanelData.java | 2 +- .../NewDashboardPanelDataAttributes.java | 2 +- ...NewDashboardPanelDataAttributesParams.java | 2 +- ...rdPanelDataAttributesParamsDatalabels.java | 2 +- ...anelDataAttributesParamsDatasetsInner.java | 2 +- ...ttributesParamsDatasetsInnerAggregate.java | 2 +- ...ributesParamsDatasetsInnerFilterInner.java | 2 +- ...amsDatasetsInnerFilterInnerRulesInner.java | 2 +- ...aAttributesParamsDatasetsInnerGroupBy.java | 11 +- ...ibutesParamsDatasetsInnerGroupByOneOf.java | 6 +- ...hboardPanelDataAttributesParamsLegend.java | 2 +- ...wDashboardPanelDataAttributesPosition.java | 2 +- .../rootly/client/model/NewEdgeConnector.java | 2 +- .../client/model/NewEdgeConnectorAction.java | 2 +- .../model/NewEdgeConnectorActionAction.java | 2 +- .../NewEdgeConnectorActionActionMetadata.java | 2 +- .../model/NewEdgeConnectorEdgeConnector.java | 2 +- .../rootly/client/model/NewEnvironment.java | 2 +- .../client/model/NewEnvironmentData.java | 2 +- .../model/NewEnvironmentDataAttributes.java | 153 +- ...onmentDataAttributesSlackAliasesInner.java | 2 +- ...nmentDataAttributesSlackChannelsInner.java | 2 +- .../client/model/NewEscalationPolicy.java | 2 +- .../client/model/NewEscalationPolicyData.java | 2 +- .../NewEscalationPolicyDataAttributes.java | 7 +- ...tionPolicyDataAttributesBusinessHours.java | 84 +- .../model/NewEscalationPolicyLevel.java | 2 +- .../model/NewEscalationPolicyLevelData.java | 2 +- ...ewEscalationPolicyLevelDataAttributes.java | 236 +- ...tributesNotificationTargetParamsInner.java | 6 +- .../client/model/NewEscalationPolicyPath.java | 2 +- .../model/NewEscalationPolicyPathData.java | 2 +- ...NewEscalationPolicyPathDataAttributes.java | 313 +- ...ionPolicyPathDataAttributesRulesInner.java | 406 +- ...licyPathDataAttributesRulesInnerOneOf.java | 18 +- ...icyPathDataAttributesRulesInnerOneOf1.java | 18 +- ...icyPathDataAttributesRulesInnerOneOf2.java | 54 +- ...icyPathDataAttributesRulesInnerOneOf3.java | 42 +- ...icyPathDataAttributesRulesInnerOneOf4.java | 18 +- ...icyPathDataAttributesRulesInnerOneOf5.java | 90 +- ...ibutesRulesInnerOneOf5TimeBlocksInner.java | 90 +- ...icyPathDataAttributesRulesInnerOneOf6.java | 399 + ...icyPathDataAttributesRulesInnerOneOf7.java | 351 + ...thDataAttributesTimeRestrictionsInner.java | 2 +- .../com/rootly/client/model/NewFormField.java | 2 +- .../rootly/client/model/NewFormFieldData.java | 2 +- .../model/NewFormFieldDataAttributes.java | 83 +- .../client/model/NewFormFieldOption.java | 2 +- .../client/model/NewFormFieldOptionData.java | 2 +- .../NewFormFieldOptionDataAttributes.java | 2 +- .../client/model/NewFormFieldPlacement.java | 2 +- .../model/NewFormFieldPlacementCondition.java | 2 +- .../NewFormFieldPlacementConditionData.java | 2 +- ...FieldPlacementConditionDataAttributes.java | 2 +- .../model/NewFormFieldPlacementData.java | 2 +- .../NewFormFieldPlacementDataAttributes.java | 4 +- .../client/model/NewFormFieldPosition.java | 2 +- .../model/NewFormFieldPositionData.java | 2 +- .../NewFormFieldPositionDataAttributes.java | 12 +- .../com/rootly/client/model/NewFormSet.java | 2 +- .../client/model/NewFormSetCondition.java | 2 +- .../client/model/NewFormSetConditionData.java | 2 +- .../NewFormSetConditionDataAttributes.java | 2 +- .../rootly/client/model/NewFormSetData.java | 2 +- .../model/NewFormSetDataAttributes.java | 55 +- .../rootly/client/model/NewFunctionality.java | 2 +- .../client/model/NewFunctionalityData.java | 2 +- .../model/NewFunctionalityDataAttributes.java | 125 +- .../com/rootly/client/model/NewHeartbeat.java | 2 +- .../rootly/client/model/NewHeartbeatData.java | 2 +- .../model/NewHeartbeatDataAttributes.java | 53 +- .../com/rootly/client/model/NewIncident.java | 2 +- .../client/model/NewIncidentActionItem.java | 2 +- .../model/NewIncidentActionItemData.java | 2 +- .../NewIncidentActionItemDataAttributes.java | 56 +- ...ataAttributesFormFieldSelectionsInner.java | 668 + ...tributesFormFieldSelectionsInnerValue.java | 295 + .../NewIncidentCustomFieldSelection.java | 2 +- .../NewIncidentCustomFieldSelectionData.java | 2 +- ...entCustomFieldSelectionDataAttributes.java | 2 +- .../rootly/client/model/NewIncidentData.java | 2 +- .../model/NewIncidentDataAttributes.java | 2 +- .../rootly/client/model/NewIncidentEvent.java | 2 +- .../client/model/NewIncidentEventData.java | 2 +- .../model/NewIncidentEventDataAttributes.java | 2 +- .../model/NewIncidentEventFunctionality.java | 2 +- .../NewIncidentEventFunctionalityData.java | 2 +- ...identEventFunctionalityDataAttributes.java | 2 +- .../client/model/NewIncidentEventService.java | 2 +- .../model/NewIncidentEventServiceData.java | 2 +- ...NewIncidentEventServiceDataAttributes.java | 2 +- .../client/model/NewIncidentFeedback.java | 2 +- .../client/model/NewIncidentFeedbackData.java | 2 +- .../NewIncidentFeedbackDataAttributes.java | 2 +- .../model/NewIncidentFormFieldSelection.java | 2 +- .../NewIncidentFormFieldSelectionData.java | 2 +- ...identFormFieldSelectionDataAttributes.java | 123 +- .../model/NewIncidentPermissionSet.java | 2 +- .../NewIncidentPermissionSetBoolean.java | 2 +- .../NewIncidentPermissionSetBooleanData.java | 2 +- ...entPermissionSetBooleanDataAttributes.java | 2 +- ...etBooleanDataAttributesSeverityParams.java | 2 +- .../model/NewIncidentPermissionSetData.java | 2 +- ...ewIncidentPermissionSetDataAttributes.java | 69 +- .../NewIncidentPermissionSetResource.java | 2 +- .../NewIncidentPermissionSetResourceData.java | 2 +- ...ntPermissionSetResourceDataAttributes.java | 2 +- .../rootly/client/model/NewIncidentRole.java | 2 +- .../client/model/NewIncidentRoleData.java | 2 +- .../model/NewIncidentRoleDataAttributes.java | 41 +- .../client/model/NewIncidentRoleTask.java | 2 +- .../client/model/NewIncidentRoleTaskData.java | 2 +- .../NewIncidentRoleTaskDataAttributes.java | 2 +- .../model/NewIncidentStatusPageEvent.java | 2 +- .../model/NewIncidentStatusPageEventData.java | 2 +- ...IncidentStatusPageEventDataAttributes.java | 86 +- ...taAttributesStatusPageComponentsInner.java | 316 + .../client/model/NewIncidentSubStatus.java | 2 +- .../model/NewIncidentSubStatusData.java | 2 +- .../NewIncidentSubStatusDataAttributes.java | 2 +- .../rootly/client/model/NewIncidentType.java | 2 +- .../client/model/NewIncidentTypeData.java | 2 +- .../model/NewIncidentTypeDataAttributes.java | 123 +- .../client/model/NewLiveCallRouter.java | 2 +- .../client/model/NewLiveCallRouterData.java | 2 +- .../NewLiveCallRouterDataAttributes.java | 161 +- ...tributesEscalationPolicyTriggerParams.java | 10 +- ...outerDataAttributesPagingTargetsInner.java | 10 +- .../client/model/NewOnCallPayReport.java | 10 +- .../client/model/NewOnCallPayReportData.java | 18 +- .../NewOnCallPayReportDataAttributes.java | 87 +- .../rootly/client/model/NewOnCallRole.java | 2 +- .../client/model/NewOnCallRoleData.java | 2 +- .../model/NewOnCallRoleDataAttributes.java | 275 +- .../rootly/client/model/NewOnCallShadow.java | 2 +- .../client/model/NewOnCallShadowData.java | 2 +- .../model/NewOnCallShadowDataAttributes.java | 2 +- .../rootly/client/model/NewOverrideShift.java | 2 +- .../client/model/NewOverrideShiftData.java | 2 +- .../model/NewOverrideShiftDataAttributes.java | 2 +- .../com/rootly/client/model/NewPlaybook.java | 2 +- .../rootly/client/model/NewPlaybookData.java | 2 +- .../model/NewPlaybookDataAttributes.java | 2 +- .../rootly/client/model/NewPlaybookTask.java | 2 +- .../client/model/NewPlaybookTaskData.java | 2 +- .../model/NewPlaybookTaskDataAttributes.java | 2 +- .../client/model/NewPostMortemTemplate.java | 2 +- .../model/NewPostMortemTemplateData.java | 2 +- .../NewPostMortemTemplateDataAttributes.java | 41 +- .../com/rootly/client/model/NewPulse.java | 2 +- .../com/rootly/client/model/NewPulseData.java | 2 +- .../client/model/NewPulseDataAttributes.java | 2 +- .../NewPulseDataAttributesLabelsInner.java | 2 +- .../NewPulseDataAttributesRefsInner.java | 2 +- .../client/model/NewRetrospectiveProcess.java | 2 +- .../model/NewRetrospectiveProcessData.java | 2 +- ...NewRetrospectiveProcessDataAttributes.java | 2 +- ...sRetrospectiveProcessMatchingCriteria.java | 2 +- ...ospectiveProcessMatchingCriteriaOneOf.java | 2 +- ...spectiveProcessMatchingCriteriaOneOf1.java | 2 +- ...spectiveProcessMatchingCriteriaOneOf2.java | 2 +- .../model/NewRetrospectiveProcessGroup.java | 2 +- .../NewRetrospectiveProcessGroupData.java | 2 +- ...trospectiveProcessGroupDataAttributes.java | 2 +- .../NewRetrospectiveProcessGroupStep.java | 2 +- .../NewRetrospectiveProcessGroupStepData.java | 2 +- ...pectiveProcessGroupStepDataAttributes.java | 2 +- .../client/model/NewRetrospectiveStep.java | 2 +- .../model/NewRetrospectiveStepData.java | 2 +- .../NewRetrospectiveStepDataAttributes.java | 41 +- .../java/com/rootly/client/model/NewRole.java | 2 +- .../com/rootly/client/model/NewRoleData.java | 2 +- .../client/model/NewRoleDataAttributes.java | 726 +- .../com/rootly/client/model/NewSchedule.java | 2 +- .../rootly/client/model/NewScheduleData.java | 2 +- .../model/NewScheduleDataAttributes.java | 297 +- ...NewScheduleDataAttributesSlackChannel.java | 2 +- ...wScheduleDataAttributesSlackUserGroup.java | 2 +- .../client/model/NewScheduleRotation.java | 2 +- .../model/NewScheduleRotationActiveDay.java | 2 +- .../NewScheduleRotationActiveDayData.java | 2 +- ...heduleRotationActiveDayDataAttributes.java | 2 +- ...taAttributesActiveTimeAttributesInner.java | 2 +- .../client/model/NewScheduleRotationData.java | 2 +- .../NewScheduleRotationDataAttributes.java | 24 +- ...taAttributesActiveTimeAttributesInner.java | 2 +- ...ttributesScheduleRotationMembersInner.java | 2 +- ...ributesScheduleRotationableAttributes.java | 2 +- ...esScheduleRotationableAttributesOneOf.java | 2 +- ...sScheduleRotationableAttributesOneOf1.java | 2 +- ...sScheduleRotationableAttributesOneOf2.java | 2 +- ...sScheduleRotationableAttributesOneOf3.java | 2 +- .../client/model/NewScheduleRotationUser.java | 2 +- .../model/NewScheduleRotationUserData.java | 2 +- ...NewScheduleRotationUserDataAttributes.java | 2 +- .../com/rootly/client/model/NewSecret.java | 2 +- .../rootly/client/model/NewSecretData.java | 2 +- .../client/model/NewSecretDataAttributes.java | 2 +- .../com/rootly/client/model/NewService.java | 2 +- .../rootly/client/model/NewServiceData.java | 2 +- .../model/NewServiceDataAttributes.java | 95 +- ...ceDataAttributesAlertBroadcastChannel.java | 13 +- ...ataAttributesIncidentBroadcastChannel.java | 13 +- .../com/rootly/client/model/NewSeverity.java | 2 +- .../rootly/client/model/NewSeverityData.java | 2 +- .../model/NewSeverityDataAttributes.java | 41 +- .../client/model/NewShiftCoverageRequest.java | 214 + .../model/NewShiftCoverageRequestData.java | 297 + ...NewShiftCoverageRequestDataAttributes.java | 267 + .../java/com/rootly/client/model/NewSla.java | 10 +- .../com/rootly/client/model/NewSlaData.java | 18 +- .../client/model/NewSlaDataAttributes.java | 169 +- .../NewSlaDataAttributesConditionsInner.java | 50 +- ...ibutesNotificationConfigurationsInner.java | 18 +- .../rootly/client/model/NewStatusPage.java | 2 +- .../model/NewStatusPageAnnouncement.java | 214 + .../model/NewStatusPageAnnouncementData.java | 297 + ...wStatusPageAnnouncementDataAttributes.java | 272 + .../client/model/NewStatusPageComponent.java | 214 + .../model/NewStatusPageComponentData.java | 297 + .../NewStatusPageComponentDataAttributes.java | 422 + .../model/NewStatusPageComponentGroup.java | 214 + .../NewStatusPageComponentGroupData.java | 297 + ...tatusPageComponentGroupDataAttributes.java | 311 + .../client/model/NewStatusPageData.java | 2 +- .../model/NewStatusPageDataAttributes.java | 173 +- .../client/model/NewStatusPageTemplate.java | 2 +- .../model/NewStatusPageTemplateData.java | 2 +- .../NewStatusPageTemplateDataAttributes.java | 34 +- .../com/rootly/client/model/NewSubStatus.java | 2 +- .../rootly/client/model/NewSubStatusData.java | 2 +- .../model/NewSubStatusDataAttributes.java | 69 +- .../java/com/rootly/client/model/NewTeam.java | 2 +- .../com/rootly/client/model/NewTeamData.java | 2 +- .../client/model/NewTeamDataAttributes.java | 213 +- .../client/model/NewUserEmailAddress.java | 2 +- .../client/model/NewUserEmailAddressData.java | 2 +- .../NewUserEmailAddressDataAttributes.java | 2 +- .../client/model/NewUserNotificationRule.java | 2 +- .../model/NewUserNotificationRuleData.java | 2 +- ...NewUserNotificationRuleDataAttributes.java | 8 +- .../client/model/NewUserPhoneNumber.java | 2 +- .../client/model/NewUserPhoneNumberData.java | 2 +- .../NewUserPhoneNumberDataAttributes.java | 2 +- .../client/model/NewVerifiedDomain.java | 214 + .../client/model/NewVerifiedDomainData.java | 297 + .../NewVerifiedDomainDataAttributes.java | 214 + .../client/model/NewWebhooksEndpoint.java | 2 +- .../client/model/NewWebhooksEndpointData.java | 2 +- .../NewWebhooksEndpointDataAttributes.java | 113 +- ...pointDataAttributesCustomHeadersInner.java | 245 + .../com/rootly/client/model/NewWorkflow.java | 2 +- ...wWorkflowActionItemFormFieldCondition.java | 214 + ...kflowActionItemFormFieldConditionData.java | 297 + ...nItemFormFieldConditionDataAttributes.java | 705 + .../NewWorkflowCustomFieldSelection.java | 2 +- .../NewWorkflowCustomFieldSelectionData.java | 2 +- ...lowCustomFieldSelectionDataAttributes.java | 2 +- .../rootly/client/model/NewWorkflowData.java | 2 +- .../model/NewWorkflowDataAttributes.java | 69 +- ...ewWorkflowDataAttributesTriggerParams.java | 4 +- .../model/NewWorkflowFormFieldCondition.java | 2 +- .../NewWorkflowFormFieldConditionData.java | 2 +- ...kflowFormFieldConditionDataAttributes.java | 123 +- .../rootly/client/model/NewWorkflowGroup.java | 2 +- .../client/model/NewWorkflowGroupData.java | 2 +- .../model/NewWorkflowGroupDataAttributes.java | 41 +- .../rootly/client/model/NewWorkflowRun.java | 2 +- .../client/model/NewWorkflowRunData.java | 2 +- .../model/NewWorkflowRunDataAttributes.java | 2 +- .../NewWorkflowRunDataAttributesAnyOf.java | 2 +- .../NewWorkflowRunDataAttributesAnyOf1.java | 2 +- .../NewWorkflowRunDataAttributesAnyOf2.java | 2 +- .../NewWorkflowRunDataAttributesAnyOf3.java | 2 +- .../NewWorkflowRunDataAttributesAnyOf4.java | 2 +- .../NewWorkflowRunDataAttributesAnyOf5.java | 2 +- .../rootly/client/model/NewWorkflowTask.java | 2 +- .../client/model/NewWorkflowTaskData.java | 2 +- .../model/NewWorkflowTaskDataAttributes.java | 2 +- ...wWorkflowTaskDataAttributesTaskParams.java | 690 +- .../rootly/client/model/OnCallPayReport.java | 193 +- .../client/model/OnCallPayReportList.java | 80 +- .../client/model/OnCallPayReportResponse.java | 66 +- .../model/OnCallPayReportResponseData.java | 26 +- .../com/rootly/client/model/OnCallRole.java | 220 +- .../rootly/client/model/OnCallRoleList.java | 56 +- .../client/model/OnCallRoleRelationship.java | 2 +- .../model/OnCallRoleRelationshipData.java | 2 +- .../client/model/OnCallRoleResponse.java | 58 +- .../client/model/OnCallRoleResponseData.java | 2 +- .../com/rootly/client/model/OnCallShadow.java | 2 +- .../client/model/OnCallShadowResponse.java | 58 +- .../model/OnCallShadowResponseData.java | 2 +- .../client/model/OnCallShadowsList.java | 56 +- .../model/OnCallShadowsListDataInner.java | 2 +- .../java/com/rootly/client/model/Oncall.java | 602 + .../com/rootly/client/model/OncallList.java | 282 + .../client/model/OncallListDataInner.java | 360 + .../client/model/OncallRelationships.java | 272 + .../OncallRelationshipsEscalationPolicy.java | 220 + ...callRelationshipsEscalationPolicyData.java | 290 + .../model/OncallRelationshipsSchedule.java | 220 + .../OncallRelationshipsScheduleData.java | 290 + .../client/model/OncallRelationshipsUser.java | 220 + .../model/OncallRelationshipsUserData.java | 290 + .../rootly/client/model/OverrideShift.java | 2 +- .../client/model/OverrideShiftList.java | 56 +- .../client/model/OverrideShiftResponse.java | 58 +- .../model/OverrideShiftResponseData.java | 2 +- .../PageJsmopsOnCallRespondersTaskParams.java | 60 +- ...ageOpsgenieOnCallRespondersTaskParams.java | 2 +- ...gePagerdutyOnCallRespondersTaskParams.java | 2 +- .../PageRootlyOnCallRespondersTaskParams.java | 75 +- ...geVictorOpsOnCallRespondersTaskParams.java | 537 +- ...torOpsOnCallRespondersTaskParamsAnyOf.java | 232 + ...orOpsOnCallRespondersTaskParamsAnyOf1.java | 232 + .../rootly/client/model/PatchAlertRoute.java | 10 +- .../client/model/PatchAlertRouteData.java | 18 +- .../model/PatchAlertRouteDataAttributes.java | 42 +- ...tchAlertRouteDataAttributesRulesInner.java | 58 +- ...ributesRulesInnerConditionGroupsInner.java | 34 +- ...erConditionGroupsInnerConditionsInner.java | 82 +- ...AttributesRulesInnerDestinationsInner.java | 34 +- .../model/PhoneVerificationResponse.java | 2 +- .../com/rootly/client/model/Playbook.java | 2 +- .../com/rootly/client/model/PlaybookList.java | 56 +- .../rootly/client/model/PlaybookResponse.java | 58 +- .../client/model/PlaybookResponseData.java | 2 +- .../com/rootly/client/model/PlaybookTask.java | 2 +- .../rootly/client/model/PlaybookTaskList.java | 56 +- .../client/model/PlaybookTaskResponse.java | 58 +- .../model/PlaybookTaskResponseData.java | 2 +- .../client/model/PostMortemTemplate.java | 17 +- .../client/model/PostMortemTemplateList.java | 56 +- .../model/PostMortemTemplateResponse.java | 58 +- .../model/PostMortemTemplateResponseData.java | 2 +- .../client/model/PostMortemTriggerParams.java | 170 +- .../rootly/client/model/PrintTaskParams.java | 2 +- .../model/PublishIncidentTaskParams.java | 45 +- .../java/com/rootly/client/model/Pulse.java | 2 +- .../com/rootly/client/model/PulseList.java | 56 +- .../rootly/client/model/PulseResponse.java | 58 +- .../client/model/PulseResponseData.java | 2 +- .../client/model/PulseTriggerParams.java | 2 +- .../java/com/rootly/client/model/Receipt.java | 420 + .../client/model/RedisClientTaskParams.java | 2 +- ...RemoveGoogleDocsPermissionsTaskParams.java | 2 +- .../client/model/RemoveSubscribers.java | 2 +- .../client/model/RemoveSubscribersData.java | 2 +- .../RemoveSubscribersDataAttributes.java | 2 +- .../RenameGoogleChatSpaceTaskParams.java | 329 + ...RenameMicrosoftTeamsChannelTaskParams.java | 2 +- .../model/RenameSlackChannelTaskParams.java | 2 +- .../com/rootly/client/model/ResolveAlert.java | 2 +- .../rootly/client/model/ResolveAlertData.java | 2 +- .../model/ResolveAlertDataAttributes.java | 2 +- .../rootly/client/model/ResolveIncident.java | 2 +- .../client/model/ResolveIncidentData.java | 2 +- .../model/ResolveIncidentDataAttributes.java | 2 +- .../rootly/client/model/RestartIncident.java | 2 +- .../client/model/RestartIncidentData.java | 2 +- .../model/RetrospectiveConfiguration.java | 2 +- .../model/RetrospectiveConfigurationList.java | 56 +- ...trospectiveConfigurationListDataInner.java | 2 +- .../RetrospectiveConfigurationResponse.java | 58 +- ...etrospectiveConfigurationResponseData.java | 2 +- .../client/model/RetrospectiveProcess.java | 2 +- .../model/RetrospectiveProcessGroup.java | 2 +- .../model/RetrospectiveProcessGroupList.java | 56 +- .../RetrospectiveProcessGroupResponse.java | 58 +- ...RetrospectiveProcessGroupResponseData.java | 2 +- .../model/RetrospectiveProcessGroupStep.java | 2 +- .../RetrospectiveProcessGroupStepList.java | 56 +- ...RetrospectiveProcessGroupStepResponse.java | 58 +- ...ospectiveProcessGroupStepResponseData.java | 2 +- .../model/RetrospectiveProcessList.java | 56 +- .../RetrospectiveProcessListDataInner.java | 2 +- .../model/RetrospectiveProcessResponse.java | 58 +- .../RetrospectiveProcessResponseData.java | 2 +- .../client/model/RetrospectiveStep.java | 17 +- .../client/model/RetrospectiveStepList.java | 56 +- .../model/RetrospectiveStepResponse.java | 58 +- .../model/RetrospectiveStepResponseData.java | 2 +- .../java/com/rootly/client/model/Role.java | 693 +- .../com/rootly/client/model/RoleList.java | 56 +- .../rootly/client/model/RoleRelationship.java | 2 +- .../client/model/RoleRelationshipData.java | 2 +- .../com/rootly/client/model/RoleResponse.java | 58 +- .../rootly/client/model/RoleResponseData.java | 2 +- .../com/rootly/client/model/RotateApiKey.java | 10 +- .../rootly/client/model/RotateApiKeyData.java | 18 +- .../model/RotateApiKeyDataAttributes.java | 18 +- .../model/RunCommandHerokuTaskParams.java | 2 +- .../com/rootly/client/model/Schedule.java | 295 +- .../com/rootly/client/model/ScheduleList.java | 56 +- .../client/model/ScheduleListDataInner.java | 2 +- .../rootly/client/model/ScheduleResponse.java | 58 +- .../client/model/ScheduleResponseData.java | 2 +- .../rootly/client/model/ScheduleRotation.java | 24 +- .../model/ScheduleRotationActiveDay.java | 2 +- .../model/ScheduleRotationActiveDayList.java | 56 +- ...cheduleRotationActiveDayListDataInner.java | 2 +- .../ScheduleRotationActiveDayResponse.java | 58 +- ...ScheduleRotationActiveDayResponseData.java | 2 +- .../client/model/ScheduleRotationList.java | 56 +- .../model/ScheduleRotationResponse.java | 58 +- .../model/ScheduleRotationResponseData.java | 2 +- .../client/model/ScheduleRotationUser.java | 2 +- .../model/ScheduleRotationUserList.java | 56 +- .../ScheduleRotationUserListDataInner.java | 2 +- .../model/ScheduleRotationUserResponse.java | 58 +- .../client/model/ScheduleSlackChannel.java | 2 +- .../client/model/ScheduleSlackUserGroup.java | 2 +- .../java/com/rootly/client/model/Secret.java | 2 +- .../com/rootly/client/model/SecretList.java | 2 +- .../rootly/client/model/SecretResponse.java | 2 +- .../client/model/SecretResponseData.java | 2 +- .../model/SendDashboardReportTaskParams.java | 2 +- .../client/model/SendEmailTaskParams.java | 2 +- .../SendGoogleChatAttachmentsTaskParams.java | 347 + .../SendGoogleChatMessageTaskParams.java | 389 + .../SendMicrosoftTeamsBlocksTaskParams.java | 132 +- ...ndMicrosoftTeamsChatMessageTaskParams.java | 26 +- .../SendMicrosoftTeamsMessageTaskParams.java | 155 +- .../model/SendSlackBlocksTaskParams.java | 885 +- .../model/SendSlackMessageTaskParams.java | 968 +- .../SendSlackMessageTaskParamsAnyOf.java | 232 + .../client/model/SendSmsTaskParams.java | 2 +- .../model/SendWhatsappMessageTaskParams.java | 2 +- .../java/com/rootly/client/model/Service.java | 165 +- .../model/ServiceAlertBroadcastChannel.java | 2 +- .../ServiceIncidentBroadcastChannel.java | 2 +- .../com/rootly/client/model/ServiceList.java | 56 +- .../rootly/client/model/ServiceResponse.java | 58 +- .../client/model/ServiceResponseData.java | 2 +- .../com/rootly/client/model/Severity.java | 17 +- .../com/rootly/client/model/SeverityList.java | 56 +- .../rootly/client/model/SeverityResponse.java | 58 +- .../client/model/SeverityResponseData.java | 2 +- .../java/com/rootly/client/model/Shift.java | 32 +- .../client/model/ShiftCoverageRequest.java | 550 + .../model/ShiftCoverageRequestList.java | 346 + .../model/ShiftCoverageRequestResponse.java | 266 + .../ShiftCoverageRequestResponseData.java | 328 + .../com/rootly/client/model/ShiftList.java | 88 +- .../client/model/ShiftListDataInner.java | 2 +- .../rootly/client/model/ShiftOverride.java | 2 +- .../client/model/ShiftOverrideResponse.java | 58 +- .../model/ShiftOverrideResponseData.java | 2 +- .../client/model/ShiftRelationships.java | 14 +- .../model/ShiftRelationshipsAssignee.java | 2 +- .../model/ShiftRelationshipsAssigneeData.java | 2 +- .../ShiftRelationshipsShiftOverride.java | 2 +- .../ShiftRelationshipsShiftOverrideData.java | 2 +- .../client/model/SimpleTriggerParams.java | 2 +- .../java/com/rootly/client/model/Sla.java | 162 +- .../client/model/SlaConditionsInner.java | 58 +- .../java/com/rootly/client/model/SlaList.java | 80 +- .../SlaNotificationConfigurationsInner.java | 42 +- .../com/rootly/client/model/SlaResponse.java | 66 +- .../rootly/client/model/SlaResponseData.java | 26 +- .../com/rootly/client/model/SlackChannel.java | 369 + .../model/SnapshotDatadogGraphTaskParams.java | 2 +- .../SnapshotGrafanaDashboardTaskParams.java | 2 +- .../model/SnapshotLookerLookTaskParams.java | 2 +- .../SnapshotNewRelicGraphTaskParams.java | 2 +- .../com/rootly/client/model/SnoozeAlert.java | 10 +- .../rootly/client/model/SnoozeAlertData.java | 18 +- .../model/SnoozeAlertDataAttributes.java | 12 +- .../client/model/StartSessionRequest.java | 308 + .../client/model/StartSessionResponse.java | 208 + .../model/StartSessionResponseData.java | 277 + .../java/com/rootly/client/model/Status.java | 24 +- .../com/rootly/client/model/StatusList.java | 56 +- .../com/rootly/client/model/StatusPage.java | 135 +- .../client/model/StatusPageAnnouncement.java | 408 + .../model/StatusPageAnnouncementList.java | 344 + .../model/StatusPageAnnouncementResponse.java | 266 + .../StatusPageAnnouncementResponseData.java | 328 + .../client/model/StatusPageComponent.java | 556 + .../model/StatusPageComponentGroup.java | 400 + .../model/StatusPageComponentGroupList.java | 344 + .../StatusPageComponentGroupResponse.java | 266 + .../StatusPageComponentGroupResponseData.java | 328 + .../client/model/StatusPageComponentList.java | 344 + .../model/StatusPageComponentResponse.java | 266 + .../StatusPageComponentResponseData.java | 328 + .../rootly/client/model/StatusPageList.java | 56 +- .../client/model/StatusPageResponse.java | 58 +- .../client/model/StatusPageResponseData.java | 2 +- .../client/model/StatusPageTemplate.java | 34 +- .../client/model/StatusPageTemplateList.java | 56 +- .../StatusPageTemplateListDataInner.java | 2 +- .../model/StatusPageTemplateResponse.java | 58 +- .../model/StatusPageTemplateResponseData.java | 2 +- .../rootly/client/model/StatusResponse.java | 58 +- .../client/model/StatusResponseData.java | 2 +- .../com/rootly/client/model/SubStatus.java | 17 +- .../rootly/client/model/SubStatusList.java | 56 +- .../client/model/SubStatusResponse.java | 58 +- .../client/model/SubStatusResponseData.java | 2 +- .../java/com/rootly/client/model/Team.java | 283 +- .../com/rootly/client/model/TeamList.java | 56 +- .../com/rootly/client/model/TeamResponse.java | 58 +- .../rootly/client/model/TeamResponseData.java | 2 +- .../client/model/TiptapBlockSchema.java | 2 +- .../TiptapBlockSchemaFollowupComponent.java | 2 +- .../TiptapBlockSchemaTimelineComponent.java | 2 +- .../model/TriggerWorkflowTaskParams.java | 10 +- .../model/TweetTwitterMessageTaskParams.java | 2 +- .../client/model/UnassignRoleFromUser.java | 2 +- .../model/UnassignRoleFromUserData.java | 2 +- .../UnassignRoleFromUserDataAttributes.java | 2 +- .../model/UpdateActionItemTaskParams.java | 2 +- .../UpdateAirtableTableRecordTaskParams.java | 2 +- .../com/rootly/client/model/UpdateAlert.java | 2 +- .../rootly/client/model/UpdateAlertData.java | 19 +- .../model/UpdateAlertDataAttributes.java | 196 +- .../rootly/client/model/UpdateAlertEvent.java | 2 +- .../client/model/UpdateAlertEventData.java | 2 +- .../model/UpdateAlertEventDataAttributes.java | 2 +- .../rootly/client/model/UpdateAlertField.java | 2 +- .../client/model/UpdateAlertFieldData.java | 2 +- .../model/UpdateAlertFieldDataAttributes.java | 53 +- .../rootly/client/model/UpdateAlertGroup.java | 2 +- .../client/model/UpdateAlertGroupData.java | 2 +- .../model/UpdateAlertGroupDataAttributes.java | 41 +- .../model/UpdateAlertRetriggerRule.java | 214 + .../model/UpdateAlertRetriggerRuleData.java | 297 + ...pdateAlertRetriggerRuleDataAttributes.java | 490 + .../rootly/client/model/UpdateAlertRoute.java | 2 +- .../client/model/UpdateAlertRouteData.java | 2 +- .../model/UpdateAlertRouteDataAttributes.java | 16 +- .../client/model/UpdateAlertRoutingRule.java | 2 +- .../model/UpdateAlertRoutingRuleData.java | 2 +- .../UpdateAlertRoutingRuleDataAttributes.java | 2 +- ...tingRuleDataAttributesConditionsInner.java | 2 +- ...tRoutingRuleDataAttributesDestination.java | 8 +- .../client/model/UpdateAlertUrgency.java | 2 +- .../client/model/UpdateAlertUrgencyData.java | 2 +- .../UpdateAlertUrgencyDataAttributes.java | 33 +- .../client/model/UpdateAlertsSource.java | 2 +- .../client/model/UpdateAlertsSourceData.java | 2 +- .../UpdateAlertsSourceDataAttributes.java | 37 +- .../com/rootly/client/model/UpdateApiKey.java | 10 +- .../rootly/client/model/UpdateApiKeyData.java | 18 +- .../model/UpdateApiKeyDataAttributes.java | 26 +- .../model/UpdateAsanaTaskTaskParams.java | 2 +- .../model/UpdateAttachedAlertsTaskParams.java | 2 +- .../client/model/UpdateAuthorization.java | 2 +- .../client/model/UpdateAuthorizationData.java | 2 +- .../UpdateAuthorizationDataAttributes.java | 2 +- .../rootly/client/model/UpdateCatalog.java | 2 +- .../model/UpdateCatalogChecklistTemplate.java | 10 +- .../UpdateCatalogChecklistTemplateData.java | 18 +- ...atalogChecklistTemplateDataAttributes.java | 73 +- .../client/model/UpdateCatalogData.java | 2 +- .../model/UpdateCatalogDataAttributes.java | 73 +- .../client/model/UpdateCatalogEntity.java | 2 +- .../client/model/UpdateCatalogEntityData.java | 2 +- .../UpdateCatalogEntityDataAttributes.java | 185 +- .../model/UpdateCatalogEntityProperty.java | 6 +- .../UpdateCatalogEntityPropertyData.java | 2 +- ...teCatalogEntityPropertyDataAttributes.java | 6 +- .../client/model/UpdateCatalogField.java | 2 +- .../client/model/UpdateCatalogFieldData.java | 4 +- .../UpdateCatalogFieldDataAttributes.java | 238 +- .../client/model/UpdateCatalogProperty.java | 10 +- .../model/UpdateCatalogPropertyData.java | 18 +- .../UpdateCatalogPropertyDataAttributes.java | 123 +- .../com/rootly/client/model/UpdateCause.java | 2 +- .../rootly/client/model/UpdateCauseData.java | 2 +- .../model/UpdateCauseDataAttributes.java | 125 +- .../model/UpdateClickupTaskTaskParams.java | 2 +- .../model/UpdateCodaPageTaskParams.java | 2 +- .../model/UpdateCommunicationsGroup.java | 2 +- .../model/UpdateCommunicationsGroupData.java | 2 +- ...dateCommunicationsGroupDataAttributes.java | 2 +- ...ommunicationExternalGroupMembersInner.java | 2 +- ...utesCommunicationGroupConditionsInner.java | 2 +- .../model/UpdateCommunicationsStage.java | 2 +- .../model/UpdateCommunicationsStageData.java | 2 +- ...dateCommunicationsStageDataAttributes.java | 41 +- .../model/UpdateCommunicationsTemplate.java | 2 +- .../UpdateCommunicationsTemplateData.java | 2 +- ...eCommunicationsTemplateDataAttributes.java | 2 +- ...nicationTemplateStagesAttributesInner.java | 2 +- .../model/UpdateCommunicationsType.java | 2 +- .../model/UpdateCommunicationsTypeData.java | 2 +- ...pdateCommunicationsTypeDataAttributes.java | 41 +- .../model/UpdateConfluencePageTaskParams.java | 119 +- ...pdateConfluencePageTaskParamsTemplate.java | 2 +- .../client/model/UpdateCustomField.java | 2 +- .../client/model/UpdateCustomFieldData.java | 2 +- .../UpdateCustomFieldDataAttributes.java | 34 +- .../client/model/UpdateCustomFieldOption.java | 2 +- .../model/UpdateCustomFieldOptionData.java | 2 +- ...UpdateCustomFieldOptionDataAttributes.java | 2 +- .../rootly/client/model/UpdateCustomForm.java | 2 +- .../client/model/UpdateCustomFormData.java | 2 +- .../model/UpdateCustomFormDataAttributes.java | 65 +- .../rootly/client/model/UpdateDashboard.java | 2 +- .../client/model/UpdateDashboardData.java | 2 +- .../model/UpdateDashboardDataAttributes.java | 2 +- .../client/model/UpdateDashboardPanel.java | 2 +- .../model/UpdateDashboardPanelData.java | 2 +- .../UpdateDashboardPanelDataAttributes.java | 2 +- .../UpdateDatadogNotebookTaskParams.java | 2 +- ...dateDatadogNotebookTaskParamsTemplate.java | 2 +- .../UpdateDropboxPaperPageTaskParams.java | 2 +- .../client/model/UpdateEdgeConnector.java | 14 +- .../model/UpdateEdgeConnectorAction.java | 14 +- .../UpdateEdgeConnectorActionRequest.java | 10 +- ...pdateEdgeConnectorActionRequestAction.java | 26 +- .../UpdateEdgeConnectorEdgeConnector.java | 363 + .../model/UpdateEdgeConnectorRequest.java | 10 +- .../model/UpdateEdgeConnectorRequestData.java | 26 +- ...ateEdgeConnectorRequestDataAttributes.java | 65 +- .../client/model/UpdateEnvironment.java | 2 +- .../client/model/UpdateEnvironmentData.java | 2 +- .../UpdateEnvironmentDataAttributes.java | 153 +- .../client/model/UpdateEscalationPolicy.java | 2 +- .../model/UpdateEscalationPolicyData.java | 2 +- .../UpdateEscalationPolicyDataAttributes.java | 7 +- .../model/UpdateEscalationPolicyLevel.java | 2 +- .../UpdateEscalationPolicyLevelData.java | 2 +- ...teEscalationPolicyLevelDataAttributes.java | 236 +- ...tributesNotificationTargetParamsInner.java | 4 +- .../model/UpdateEscalationPolicyPath.java | 2 +- .../model/UpdateEscalationPolicyPathData.java | 2 +- ...ateEscalationPolicyPathDataAttributes.java | 313 +- ...ionPolicyPathDataAttributesRulesInner.java | 406 +- ...thDataAttributesTimeRestrictionsInner.java | 2 +- .../rootly/client/model/UpdateFormField.java | 2 +- .../client/model/UpdateFormFieldData.java | 2 +- .../model/UpdateFormFieldDataAttributes.java | 83 +- .../client/model/UpdateFormFieldOption.java | 2 +- .../model/UpdateFormFieldOptionData.java | 2 +- .../UpdateFormFieldOptionDataAttributes.java | 2 +- .../model/UpdateFormFieldPlacement.java | 2 +- .../UpdateFormFieldPlacementCondition.java | 2 +- ...UpdateFormFieldPlacementConditionData.java | 2 +- ...FieldPlacementConditionDataAttributes.java | 2 +- .../model/UpdateFormFieldPlacementData.java | 2 +- ...pdateFormFieldPlacementDataAttributes.java | 4 +- .../client/model/UpdateFormFieldPosition.java | 2 +- .../model/UpdateFormFieldPositionData.java | 2 +- ...UpdateFormFieldPositionDataAttributes.java | 12 +- .../rootly/client/model/UpdateFormSet.java | 2 +- .../client/model/UpdateFormSetCondition.java | 2 +- .../model/UpdateFormSetConditionData.java | 2 +- .../UpdateFormSetConditionDataAttributes.java | 2 +- .../client/model/UpdateFormSetData.java | 2 +- .../model/UpdateFormSetDataAttributes.java | 55 +- .../client/model/UpdateFunctionality.java | 2 +- .../client/model/UpdateFunctionalityData.java | 2 +- .../UpdateFunctionalityDataAttributes.java | 129 +- .../model/UpdateGithubIssueTaskParams.java | 249 +- ...UpdateGithubIssueTaskParamsRepository.java | 18 +- .../model/UpdateGitlabIssueTaskParams.java | 2 +- .../UpdateGoogleCalendarEventTaskParams.java | 2 +- ...eGoogleChatSpaceDescriptionTaskParams.java | 329 + .../model/UpdateGoogleDocsPageTaskParams.java | 87 +- .../rootly/client/model/UpdateHeartbeat.java | 2 +- .../client/model/UpdateHeartbeatData.java | 2 +- .../model/UpdateHeartbeatDataAttributes.java | 53 +- .../rootly/client/model/UpdateIncident.java | 2 +- .../model/UpdateIncidentActionItem.java | 2 +- .../model/UpdateIncidentActionItemData.java | 2 +- ...pdateIncidentActionItemDataAttributes.java | 56 +- .../UpdateIncidentCustomFieldSelection.java | 2 +- ...pdateIncidentCustomFieldSelectionData.java | 2 +- ...entCustomFieldSelectionDataAttributes.java | 2 +- .../client/model/UpdateIncidentData.java | 2 +- .../model/UpdateIncidentDataAttributes.java | 2 +- .../client/model/UpdateIncidentEvent.java | 2 +- .../client/model/UpdateIncidentEventData.java | 2 +- .../UpdateIncidentEventDataAttributes.java | 2 +- .../UpdateIncidentEventFunctionality.java | 2 +- .../UpdateIncidentEventFunctionalityData.java | 2 +- ...identEventFunctionalityDataAttributes.java | 2 +- .../model/UpdateIncidentEventService.java | 2 +- .../model/UpdateIncidentEventServiceData.java | 2 +- ...ateIncidentEventServiceDataAttributes.java | 2 +- .../client/model/UpdateIncidentFeedback.java | 2 +- .../model/UpdateIncidentFeedbackData.java | 2 +- .../UpdateIncidentFeedbackDataAttributes.java | 2 +- .../UpdateIncidentFormFieldSelection.java | 2 +- .../UpdateIncidentFormFieldSelectionData.java | 2 +- ...identFormFieldSelectionDataAttributes.java | 123 +- .../model/UpdateIncidentPermissionSet.java | 2 +- .../UpdateIncidentPermissionSetBoolean.java | 2 +- ...pdateIncidentPermissionSetBooleanData.java | 2 +- ...entPermissionSetBooleanDataAttributes.java | 2 +- ...etBooleanDataAttributesSeverityParams.java | 2 +- .../UpdateIncidentPermissionSetData.java | 2 +- ...teIncidentPermissionSetDataAttributes.java | 65 +- .../UpdateIncidentPermissionSetResource.java | 2 +- ...dateIncidentPermissionSetResourceData.java | 2 +- ...ntPermissionSetResourceDataAttributes.java | 2 +- .../model/UpdateIncidentPostMortem.java | 2 +- .../model/UpdateIncidentPostMortemData.java | 2 +- ...pdateIncidentPostMortemDataAttributes.java | 2 +- .../UpdateIncidentPostmortemTaskParams.java | 2 +- .../UpdateIncidentRetrospectiveStep.java | 2 +- .../UpdateIncidentRetrospectiveStepData.java | 2 +- ...cidentRetrospectiveStepDataAttributes.java | 2 +- .../client/model/UpdateIncidentRole.java | 2 +- .../client/model/UpdateIncidentRoleData.java | 2 +- .../UpdateIncidentRoleDataAttributes.java | 41 +- .../client/model/UpdateIncidentRoleTask.java | 2 +- .../model/UpdateIncidentRoleTaskData.java | 2 +- .../UpdateIncidentRoleTaskDataAttributes.java | 2 +- .../model/UpdateIncidentStatusPageEvent.java | 2 +- .../UpdateIncidentStatusPageEventData.java | 2 +- ...IncidentStatusPageEventDataAttributes.java | 34 +- ...dateIncidentStatusTimestampTaskParams.java | 2 +- .../client/model/UpdateIncidentSubStatus.java | 2 +- .../model/UpdateIncidentSubStatusData.java | 2 +- ...UpdateIncidentSubStatusDataAttributes.java | 2 +- .../model/UpdateIncidentTaskParams.java | 2 +- .../client/model/UpdateIncidentType.java | 2 +- .../client/model/UpdateIncidentTypeData.java | 2 +- .../UpdateIncidentTypeDataAttributes.java | 123 +- .../model/UpdateJiraIssueTaskParams.java | 92 +- .../model/UpdateLinearIssueTaskParams.java | 36 +- .../UpdateLinearIssueTaskParamsState.java | 2 +- .../client/model/UpdateLiveCallRouter.java | 2 +- .../model/UpdateLiveCallRouterData.java | 2 +- .../UpdateLiveCallRouterDataAttributes.java | 161 +- ...tributesEscalationPolicyTriggerParams.java | 10 +- .../model/UpdateMotionTaskTaskParams.java | 2 +- .../model/UpdateNotionPageTaskParams.java | 2 +- .../client/model/UpdateOnCallPayReport.java | 10 +- .../model/UpdateOnCallPayReportData.java | 18 +- .../UpdateOnCallPayReportDataAttributes.java | 87 +- .../rootly/client/model/UpdateOnCallRole.java | 2 +- .../client/model/UpdateOnCallRoleData.java | 2 +- .../model/UpdateOnCallRoleDataAttributes.java | 273 +- .../client/model/UpdateOnCallShadow.java | 2 +- .../client/model/UpdateOnCallShadowData.java | 2 +- .../UpdateOnCallShadowDataAttributes.java | 2 +- .../model/UpdateOpsgenieAlertTaskParams.java | 2 +- .../UpdateOpsgenieIncidentTaskParams.java | 6 +- .../client/model/UpdateOverrideShift.java | 2 +- .../client/model/UpdateOverrideShiftData.java | 2 +- .../UpdateOverrideShiftDataAttributes.java | 2 +- .../UpdatePagerdutyIncidentTaskParams.java | 2 +- .../model/UpdatePagertreeAlertTaskParams.java | 2 +- .../rootly/client/model/UpdatePlaybook.java | 2 +- .../client/model/UpdatePlaybookData.java | 2 +- .../model/UpdatePlaybookDataAttributes.java | 2 +- .../client/model/UpdatePlaybookTask.java | 2 +- .../client/model/UpdatePlaybookTaskData.java | 2 +- .../UpdatePlaybookTaskDataAttributes.java | 2 +- .../model/UpdatePostMortemTemplate.java | 2 +- .../model/UpdatePostMortemTemplateData.java | 2 +- ...pdatePostMortemTemplateDataAttributes.java | 41 +- .../com/rootly/client/model/UpdatePulse.java | 2 +- .../rootly/client/model/UpdatePulseData.java | 19 +- .../model/UpdatePulseDataAttributes.java | 2 +- .../model/UpdateQuipPageTaskParams.java | 2 +- .../UpdateRetrospectiveConfiguration.java | 2 +- .../UpdateRetrospectiveConfigurationData.java | 2 +- ...rospectiveConfigurationDataAttributes.java | 2 +- .../model/UpdateRetrospectiveProcess.java | 2 +- .../model/UpdateRetrospectiveProcessData.java | 2 +- ...ateRetrospectiveProcessDataAttributes.java | 2 +- .../UpdateRetrospectiveProcessGroup.java | 2 +- .../UpdateRetrospectiveProcessGroupData.java | 2 +- ...trospectiveProcessGroupDataAttributes.java | 2 +- .../UpdateRetrospectiveProcessGroupStep.java | 2 +- ...dateRetrospectiveProcessGroupStepData.java | 2 +- ...pectiveProcessGroupStepDataAttributes.java | 2 +- .../client/model/UpdateRetrospectiveStep.java | 2 +- .../model/UpdateRetrospectiveStepData.java | 2 +- ...UpdateRetrospectiveStepDataAttributes.java | 41 +- .../com/rootly/client/model/UpdateRole.java | 2 +- .../rootly/client/model/UpdateRoleData.java | 2 +- .../model/UpdateRoleDataAttributes.java | 1012 +- .../rootly/client/model/UpdateSchedule.java | 2 +- .../client/model/UpdateScheduleData.java | 2 +- .../model/UpdateScheduleDataAttributes.java | 297 +- .../client/model/UpdateScheduleRotation.java | 2 +- .../UpdateScheduleRotationActiveDay.java | 2 +- .../UpdateScheduleRotationActiveDayData.java | 2 +- ...heduleRotationActiveDayDataAttributes.java | 2 +- .../model/UpdateScheduleRotationData.java | 2 +- .../UpdateScheduleRotationDataAttributes.java | 29 +- .../model/UpdateScheduleRotationUser.java | 2 +- .../model/UpdateScheduleRotationUserData.java | 2 +- ...ateScheduleRotationUserDataAttributes.java | 2 +- .../com/rootly/client/model/UpdateSecret.java | 2 +- .../rootly/client/model/UpdateSecretData.java | 2 +- .../model/UpdateSecretDataAttributes.java | 2 +- .../rootly/client/model/UpdateService.java | 2 +- .../client/model/UpdateServiceData.java | 2 +- .../model/UpdateServiceDataAttributes.java | 99 +- .../UpdateServiceNowIncidentTaskParams.java | 2 +- .../rootly/client/model/UpdateSeverity.java | 2 +- .../client/model/UpdateSeverityData.java | 2 +- .../model/UpdateSeverityDataAttributes.java | 41 +- .../model/UpdateSharepointPageTaskParams.java | 2 +- .../model/UpdateShortcutStoryTaskParams.java | 2 +- .../model/UpdateShortcutTaskTaskParams.java | 2 +- .../com/rootly/client/model/UpdateSla.java | 10 +- .../rootly/client/model/UpdateSlaData.java | 18 +- .../client/model/UpdateSlaDataAttributes.java | 169 +- .../UpdateSlackChannelTopicTaskParams.java | 2 +- .../rootly/client/model/UpdateStatusPage.java | 2 +- .../model/UpdateStatusPageAnnouncement.java | 214 + .../UpdateStatusPageAnnouncementData.java | 297 + ...eStatusPageAnnouncementDataAttributes.java | 236 + .../model/UpdateStatusPageComponent.java | 214 + .../model/UpdateStatusPageComponentData.java | 297 + ...dateStatusPageComponentDataAttributes.java | 306 + .../model/UpdateStatusPageComponentGroup.java | 214 + .../UpdateStatusPageComponentGroupData.java | 297 + ...tatusPageComponentGroupDataAttributes.java | 303 + .../client/model/UpdateStatusPageData.java | 2 +- .../model/UpdateStatusPageDataAttributes.java | 173 +- .../model/UpdateStatusPageTemplate.java | 2 +- .../model/UpdateStatusPageTemplateData.java | 2 +- ...pdateStatusPageTemplateDataAttributes.java | 34 +- .../client/model/UpdateStatusTaskParams.java | 2 +- .../rootly/client/model/UpdateSubStatus.java | 2 +- .../client/model/UpdateSubStatusData.java | 2 +- .../model/UpdateSubStatusDataAttributes.java | 65 +- .../com/rootly/client/model/UpdateTeam.java | 2 +- .../rootly/client/model/UpdateTeamData.java | 2 +- .../model/UpdateTeamDataAttributes.java | 213 +- .../model/UpdateTrelloCardTaskParams.java | 2 +- .../com/rootly/client/model/UpdateUser.java | 2 +- .../rootly/client/model/UpdateUserData.java | 2 +- .../model/UpdateUserDataAttributes.java | 2 +- .../client/model/UpdateUserEmailAddress.java | 2 +- .../model/UpdateUserEmailAddressData.java | 2 +- .../UpdateUserEmailAddressDataAttributes.java | 2 +- .../model/UpdateUserNotificationRule.java | 2 +- .../model/UpdateUserNotificationRuleData.java | 2 +- ...ateUserNotificationRuleDataAttributes.java | 8 +- .../client/model/UpdateUserPhoneNumber.java | 2 +- .../model/UpdateUserPhoneNumberData.java | 2 +- .../UpdateUserPhoneNumberDataAttributes.java | 2 +- .../UpdateVictorOpsIncidentTaskParams.java | 2 +- .../client/model/UpdateWebhooksEndpoint.java | 2 +- .../model/UpdateWebhooksEndpointData.java | 2 +- .../UpdateWebhooksEndpointDataAttributes.java | 113 +- .../rootly/client/model/UpdateWorkflow.java | 2 +- ...eWorkflowActionItemFormFieldCondition.java | 214 + ...kflowActionItemFormFieldConditionData.java | 297 + ...nItemFormFieldConditionDataAttributes.java | 668 + .../UpdateWorkflowCustomFieldSelection.java | 2 +- ...pdateWorkflowCustomFieldSelectionData.java | 2 +- ...lowCustomFieldSelectionDataAttributes.java | 2 +- .../client/model/UpdateWorkflowData.java | 36 +- .../model/UpdateWorkflowDataAttributes.java | 65 +- .../UpdateWorkflowFormFieldCondition.java | 2 +- .../UpdateWorkflowFormFieldConditionData.java | 2 +- ...kflowFormFieldConditionDataAttributes.java | 123 +- .../client/model/UpdateWorkflowGroup.java | 2 +- .../client/model/UpdateWorkflowGroupData.java | 2 +- .../UpdateWorkflowGroupDataAttributes.java | 41 +- .../client/model/UpdateWorkflowTask.java | 2 +- .../client/model/UpdateWorkflowTaskData.java | 2 +- .../UpdateWorkflowTaskDataAttributes.java | 2 +- ...eWorkflowTaskDataAttributesTaskParams.java | 705 +- .../model/UpdateZendeskTicketTaskParams.java | 2 +- .../client/model/UptimeChartResponse.java | 211 + .../java/com/rootly/client/model/User.java | 2 +- .../rootly/client/model/UserEmailAddress.java | 2 +- .../client/model/UserEmailAddressList.java | 56 +- .../model/UserEmailAddressResponse.java | 58 +- .../model/UserEmailAddressResponseData.java | 2 +- .../rootly/client/model/UserFlatResponse.java | 172 +- .../com/rootly/client/model/UserList.java | 56 +- .../client/model/UserNotificationRule.java | 96 +- .../model/UserNotificationRuleList.java | 56 +- .../model/UserNotificationRuleResponse.java | 58 +- .../UserNotificationRuleResponseData.java | 2 +- .../rootly/client/model/UserPhoneNumber.java | 2 +- .../client/model/UserPhoneNumberList.java | 56 +- .../client/model/UserPhoneNumberResponse.java | 58 +- .../model/UserPhoneNumberResponseData.java | 2 +- .../client/model/UserRelationships.java | 2 +- .../com/rootly/client/model/UserResponse.java | 58 +- .../rootly/client/model/UserResponseData.java | 2 +- .../rootly/client/model/VerifiedDomain.java | 668 + .../client/model/VerifiedDomainList.java | 344 + .../client/model/VerifiedDomainResponse.java | 266 + .../model/VerifiedDomainResponseData.java | 328 + .../model/VerifyPhoneNumberRequest.java | 2 +- .../rootly/client/model/WebhooksDelivery.java | 119 +- .../client/model/WebhooksDeliveryList.java | 56 +- .../model/WebhooksDeliveryResponse.java | 58 +- .../model/WebhooksDeliveryResponseData.java | 2 +- .../rootly/client/model/WebhooksEndpoint.java | 84 +- .../client/model/WebhooksEndpointList.java | 56 +- .../model/WebhooksEndpointResponse.java | 58 +- .../model/WebhooksEndpointResponseData.java | 2 +- .../com/rootly/client/model/Workflow.java | 17 +- .../WorkflowActionItemFormFieldCondition.java | 745 + ...kflowActionItemFormFieldConditionList.java | 344 + ...wActionItemFormFieldConditionResponse.java | 266 + ...ionItemFormFieldConditionResponseData.java | 328 + .../model/WorkflowCustomFieldSelection.java | 2 +- .../WorkflowCustomFieldSelectionList.java | 56 +- .../WorkflowCustomFieldSelectionResponse.java | 58 +- ...kflowCustomFieldSelectionResponseData.java | 2 +- .../model/WorkflowFormFieldCondition.java | 123 +- .../model/WorkflowFormFieldConditionList.java | 56 +- .../WorkflowFormFieldConditionResponse.java | 58 +- ...orkflowFormFieldConditionResponseData.java | 2 +- .../rootly/client/model/WorkflowGroup.java | 17 +- .../client/model/WorkflowGroupList.java | 56 +- .../client/model/WorkflowGroupResponse.java | 58 +- .../model/WorkflowGroupResponseData.java | 2 +- .../com/rootly/client/model/WorkflowList.java | 56 +- .../rootly/client/model/WorkflowResponse.java | 58 +- .../client/model/WorkflowResponseData.java | 2 +- .../com/rootly/client/model/WorkflowRun.java | 2 +- .../client/model/WorkflowRunResponse.java | 58 +- .../client/model/WorkflowRunResponseData.java | 2 +- .../rootly/client/model/WorkflowRunsList.java | 56 +- .../com/rootly/client/model/WorkflowTask.java | 2 +- .../rootly/client/model/WorkflowTaskList.java | 56 +- .../client/model/WorkflowTaskResponse.java | 58 +- .../model/WorkflowTaskResponseData.java | 2 +- .../com/rootly/client/api/AiChatApiTest.java | 100 + .../rootly/client/api/AlertEventsApiTest.java | 25 + .../rootly/client/api/AlertFieldsApiTest.java | 10 +- .../rootly/client/api/AlertGroupsApiTest.java | 10 +- .../api/AlertRetriggerRulesApiTest.java | 98 + .../rootly/client/api/AlertRoutesApiTest.java | 30 +- .../client/api/AlertRoutingRulesApiTest.java | 10 +- .../client/api/AlertSourcesApiTest.java | 4 +- .../client/api/AlertUrgenciesApiTest.java | 6 +- .../com/rootly/client/api/AlertsApiTest.java | 78 +- .../com/rootly/client/api/AuditsApiTest.java | 18 +- .../client/api/CatalogEntitiesApiTest.java | 54 +- .../api/CatalogEntityPropertiesApiTest.java | 10 +- .../rootly/client/api/CatalogsApiTest.java | 17 +- .../com/rootly/client/api/CausesApiTest.java | 51 +- .../api/DeprecatedCustomFieldsApiTest.java | 18 +- .../api/EdgeConnectorActionsApiTest.java | 36 +- .../client/api/EdgeConnectorsApiTest.java | 44 +- .../client/api/EnvironmentsApiTest.java | 89 +- .../client/api/EscalationPathsApiTest.java | 3 +- .../client/api/EscalationPoliciesApiTest.java | 11 +- .../rootly/client/api/FormFieldsApiTest.java | 18 +- .../client/api/FunctionalitiesApiTest.java | 91 +- .../api/IncidentActionItemsApiTest.java | 18 +- .../client/api/IncidentRolesApiTest.java | 15 +- .../client/api/IncidentTypesApiTest.java | 55 +- .../rootly/client/api/IncidentsApiTest.java | 132 +- .../client/api/MeetingRecordingsApiTest.java | 80 +- .../com/rootly/client/api/OnCallsApiTest.java | 3 +- .../client/api/OverrideShiftsApiTest.java | 4 +- .../com/rootly/client/api/PulsesApiTest.java | 22 +- .../rootly/client/api/SchedulesApiTest.java | 11 +- .../rootly/client/api/ServicesApiTest.java | 99 +- .../rootly/client/api/SeveritiesApiTest.java | 18 +- .../api/ShiftCoverageRequestsApiTest.java | 94 + .../com/rootly/client/api/ShiftsApiTest.java | 4 +- .../com/rootly/client/api/SlasApiTest.java | 10 +- .../api/StatusPageAnnouncementsApiTest.java | 113 + ... => StatusPageComponentGroupsApiTest.java} | 77 +- .../api/StatusPageComponentsApiTest.java | 114 + .../rootly/client/api/StatusPagesApiTest.java | 10 +- .../com/rootly/client/api/TeamsApiTest.java | 100 +- .../client/api/VerifiedDomainsApiTest.java | 85 + .../client/api/WebhooksDeliveriesApiTest.java | 12 +- ...wActionItemFormFieldConditionsApiTest.java | 113 + .../client/api/WorkflowTasksApiTest.java | 10 +- .../rootly/client/api/WorkflowsApiTest.java | 10 +- .../model/ActionItemTriggerParamsTest.java | 24 + .../AddMicrosoftTeamsTabTaskParamsTest.java | 26 + ...AddSlackBookmarkTaskParamsAnyOf1Test.java} | 19 +- .../AddSlackBookmarkTaskParamsAnyOfTest.java | 56 + .../model/AddSlackBookmarkTaskParamsTest.java | 26 + .../AiChatResponseDataAttributesTest.java | 66 + .../client/model/AiChatResponseDataTest.java | 66 + ...AnyOfTest.java => AiChatResponseTest.java} | 26 +- .../model/AiChatSessionMessageListTest.java | 59 + ...est.java => AiChatSessionMessageTest.java} | 33 +- .../model/AlertAlertFieldValuesInnerTest.java | 88 + ...ava => AlertAlertingTargetsInnerTest.java} | 12 +- .../AlertEventEscalationTargetDataTest.java | 64 + ...va => AlertEventEscalationTargetTest.java} | 20 +- .../client/model/AlertEventFeedListTest.java | 78 + .../client/model/AlertEventFeedMetaTest.java | 89 + ...rTest.java => AlertEventIncidentTest.java} | 95 +- .../client/model/AlertEventListTest.java | 9 + .../client/model/AlertEventResponseTest.java | 11 + ...tScheduleEscalationPoliciesInnerTest.java} | 32 +- ...rTest.java => AlertEventScheduleTest.java} | 46 +- .../rootly/client/model/AlertEventTest.java | 79 + .../client/model/AlertEventUserTest.java | 121 + .../client/model/AlertFieldListTest.java | 9 + .../client/model/AlertFieldResponseTest.java | 11 + .../client/model/AlertGroupListTest.java | 9 + .../client/model/AlertGroupResponseTest.java | 11 + .../rootly/client/model/AlertListTest.java | 9 + .../client/model/AlertResponseTest.java | 11 + ...AlertRetriggerRuleConditionsInnerTest.java | 91 + .../model/AlertRetriggerRuleListTest.java | 78 + .../AlertRetriggerRuleResponseDataTest.java | 65 + ...va => AlertRetriggerRuleResponseTest.java} | 26 +- ...rTest.java => AlertRetriggerRuleTest.java} | 56 +- .../model/AlertRoutingRuleListTest.java | 9 + .../model/AlertRoutingRuleResponseTest.java | 11 + .../com/rootly/client/model/AlertTest.java | 86 +- .../client/model/AlertTriggerParamsTest.java | 26 + .../client/model/AlertUrgencyListTest.java | 9 + .../model/AlertUrgencyResponseTest.java | 11 + .../rootly/client/model/AlertUrgencyTest.java | 49 + .../client/model/AlertsSourceListTest.java | 9 + .../model/AlertsSourceResponseTest.java | 11 + .../AlertsSourceSourceableAttributesTest.java | 85 + .../rootly/client/model/AlertsSourceTest.java | 10 +- .../rootly/client/model/ApiKeyListTest.java | 9 + .../client/model/ApiKeyResponseTest.java | 11 + .../model/ApiKeyWithTokenResponseTest.java | 11 + ...ArchiveGoogleChatSpacesTaskParamsTest.java | 59 + ...PdfToFreshserviceTicketTaskParamsTest.java | 64 + ...ospectivePdfToJiraIssueTaskParamsTest.java | 73 + .../com/rootly/client/model/AuditTest.java | 56 + .../rootly/client/model/AuditsListTest.java | 9 + .../client/model/AuthorizationListTest.java | 9 + .../model/AuthorizationResponseTest.java | 11 + ...signRolePagerdutyTaskParamsAnyOf1Test.java | 49 + ...ssignRolePagerdutyTaskParamsAnyOfTest.java | 49 + ...AutoAssignRolePagerdutyTaskParamsTest.java | 19 + ...oAssignRoleRootlyTaskParamsOneOf1Test.java | 49 + ...oAssignRoleRootlyTaskParamsOneOf2Test.java | 49 + ...oAssignRoleRootlyTaskParamsOneOf3Test.java | 49 + ...oAssignRoleRootlyTaskParamsOneOf4Test.java | 49 + ...toAssignRoleRootlyTaskParamsOneOfTest.java | 49 + .../AutoAssignRoleRootlyTaskParamsTest.java | 21 +- ...kDeleteCatalogEntities422ResponseTest.java | 62 + ...BulkDeleteEnvironments422ResponseTest.java | 62 + ...kDeleteFunctionalities422ResponseTest.java | 62 + .../BulkDeleteGroups422ResponseTest.java | 62 + .../BulkDeleteServices422ResponseTest.java | 62 + .../BulkDestroyCatalogEntitiesOneOf1Test.java | 58 + .../BulkDestroyCatalogEntitiesOneOfTest.java | 50 + ...estroyCatalogEntitiesResponseDataTest.java | 66 + ...ulkDestroyCatalogEntitiesResponseTest.java | 49 + .../model/BulkDestroyCatalogEntitiesTest.java | 68 + .../BulkDestroyEnvironmentsOneOfTest.java | 58 + .../BulkDestroyEnvironmentsResponseTest.java | 49 + .../model/BulkDestroyEnvironmentsTest.java | 68 + ...ulkDestroyFunctionalitiesResponseTest.java | 49 + .../model/BulkDestroyFunctionalitiesTest.java | 68 + .../BulkDestroyServicesResponseTest.java | 49 + .../client/model/BulkDestroyServicesTest.java | 68 + .../model/BulkDestroyTeamsResponseTest.java | 49 + .../client/model/BulkDestroyTeamsTest.java | 68 + ...kUpsertCatalogEntities422ResponseTest.java | 53 + ...gEntitiesEntitiesInnerFieldsInnerTest.java | 64 + ...psertCatalogEntitiesEntitiesInnerTest.java | 92 + ...rtCatalogEntitiesErrorErrorsInnerTest.java | 66 + .../BulkUpsertCatalogEntitiesErrorTest.java | 51 + ...tCatalogEntitiesResponseDataInnerTest.java | 65 + ...BulkUpsertCatalogEntitiesResponseTest.java | 51 + .../model/BulkUpsertCatalogEntitiesTest.java | 51 + ...ulkUpsertEnvironments422ResponseTest.java} | 24 +- ...lkUpsertEnvironmentsEntitiesInnerTest.java | 108 + ...psertEnvironmentsErrorErrorsInnerTest.java | 66 + .../BulkUpsertEnvironmentsErrorTest.java | 51 + ...sertEnvironmentsResponseDataInnerTest.java | 65 + .../BulkUpsertEnvironmentsResponseTest.java | 51 + .../model/BulkUpsertEnvironmentsTest.java | 51 + ...kUpsertFunctionalities422ResponseTest.java | 53 + ...psertFunctionalitiesEntitiesInnerTest.java | 180 + .../BulkUpsertFunctionalitiesErrorTest.java | 51 + ...tFunctionalitiesResponseDataInnerTest.java | 65 + ...BulkUpsertFunctionalitiesResponseTest.java | 51 + .../model/BulkUpsertFunctionalitiesTest.java | 51 + .../BulkUpsertGroups422ResponseTest.java | 53 + .../BulkUpsertServices422ResponseTest.java | 53 + .../BulkUpsertServicesEntitiesInnerTest.java | 228 + .../model/BulkUpsertServicesErrorTest.java | 51 + ...lkUpsertServicesResponseDataInnerTest.java | 65 + .../model/BulkUpsertServicesResponseTest.java | 51 + .../client/model/BulkUpsertServicesTest.java | 51 + .../BulkUpsertTeamsEntitiesInnerTest.java | 188 + .../model/BulkUpsertTeamsErrorTest.java | 51 + .../BulkUpsertTeamsResponseDataInnerTest.java | 65 + .../model/BulkUpsertTeamsResponseTest.java | 51 + .../client/model/BulkUpsertTeamsTest.java | 51 + .../CatalogChecklistTemplateListTest.java | 9 + .../CatalogChecklistTemplateResponseTest.java | 11 + .../model/CatalogEntityChecklistListTest.java | 9 + .../CatalogEntityChecklistResponseTest.java | 11 + .../client/model/CatalogEntityListTest.java | 9 + .../model/CatalogEntityPropertyListTest.java | 9 + .../CatalogEntityPropertyResponseTest.java | 11 + .../model/CatalogEntityResponseTest.java | 11 + .../client/model/CatalogEntityTest.java | 51 + .../client/model/CatalogFieldListTest.java | 9 + .../model/CatalogFieldResponseTest.java | 11 + .../rootly/client/model/CatalogFieldTest.java | 32 + .../rootly/client/model/CatalogListTest.java | 9 + .../client/model/CatalogPropertyListTest.java | 9 + .../model/CatalogPropertyResponseTest.java | 11 + .../client/model/CatalogPropertyTest.java | 16 + .../client/model/CatalogResponseTest.java | 11 + .../com/rootly/client/model/CatalogTest.java | 24 + .../rootly/client/model/CauseListTest.java | 9 + .../client/model/CauseResponseTest.java | 11 + .../com/rootly/client/model/CauseTest.java | 19 + ...eGoogleChatSpacePrivacyTaskParamsTest.java | 66 + .../CommunicationsGroupResponseTest.java | 11 + .../CommunicationsGroupsResponseTest.java | 9 + .../CommunicationsStageResponseTest.java | 11 + .../CommunicationsStagesResponseTest.java | 9 + ...eCommunicationTemplateStagesInnerTest.java | 48 +- .../CommunicationsTemplateResponseTest.java | 11 + .../CommunicationsTemplatesResponseTest.java | 9 + .../model/CommunicationsTypeResponseTest.java | 11 + .../CommunicationsTypesResponseTest.java | 9 + ...AnthropicChatCompletionTaskParamsTest.java | 8 + .../CreateClickupTaskTaskParamsTest.java | 9 + .../CreateConfluencePageTaskParamsTest.java | 32 + ...ectorRequestDataAttributesFiltersTest.java | 74 + ...dgeConnectorRequestDataAttributesTest.java | 9 + .../CreateGithubIssueTaskParamsTest.java | 36 + .../CreateGoogleChatSpaceTaskParamsTest.java | 72 + .../CreateGoogleDocsPageTaskParamsTest.java | 24 + .../CreateGoogleMeetingTaskParamsTest.java | 8 + .../model/CreateJiraIssueTaskParamsTest.java | 16 + .../CreateJiraSubtaskTaskParamsTest.java | 16 + .../CreateLinearIssueTaskParamsTest.java | 9 + ...reateLinearSubtaskIssueTaskParamsTest.java | 9 + ...teMicrosoftTeamsMeetingTaskParamsTest.java | 9 + .../model/CreateMotionTaskTaskParamsTest.java | 2 - ...eateShortcutStoryTaskParamsAnyOf1Test.java | 49 + ...reateShortcutStoryTaskParamsAnyOfTest.java | 49 + .../CreateShortcutStoryTaskParamsTest.java | 19 + .../CreateWebexMeetingTaskParamsTest.java | 9 + .../CreateZoomMeetingTaskParamsTest.java | 17 + .../client/model/CustomFieldListTest.java | 9 + .../model/CustomFieldOptionListTest.java | 9 + .../model/CustomFieldOptionResponseTest.java | 11 + .../client/model/CustomFieldResponseTest.java | 11 + .../rootly/client/model/CustomFieldTest.java | 85 +- .../client/model/CustomFormListTest.java | 9 + .../client/model/CustomFormResponseTest.java | 11 + .../client/model/DashboardListTest.java | 9 + .../client/model/DashboardPanelListTest.java | 9 + .../model/DashboardPanelResponseTest.java | 11 + .../client/model/DashboardResponseTest.java | 11 + .../client/model/EnvironmentListTest.java | 9 + .../client/model/EnvironmentResponseTest.java | 11 + .../rootly/client/model/EnvironmentTest.java | 33 + .../model/EscalationPolicyLevelListTest.java | 9 + .../EscalationPolicyLevelResponseTest.java | 11 + .../model/EscalationPolicyLevelTest.java | 32 + .../model/EscalationPolicyListTest.java | 9 + .../model/EscalationPolicyPathListTest.java | 9 + .../EscalationPolicyPathResponseTest.java | 11 + .../model/EscalationPolicyPathTest.java | 34 +- .../model/EscalationPolicyResponseTest.java | 11 + .../client/model/FormFieldListTest.java | 9 + .../client/model/FormFieldOptionListTest.java | 9 + .../model/FormFieldOptionResponseTest.java | 11 + .../FormFieldPlacementConditionListTest.java | 9 + ...rmFieldPlacementConditionResponseTest.java | 11 + .../model/FormFieldPlacementListTest.java | 9 + .../model/FormFieldPlacementResponseTest.java | 11 + .../model/FormFieldPositionListTest.java | 9 + .../model/FormFieldPositionResponseTest.java | 11 + .../client/model/FormFieldResponseTest.java | 11 + .../rootly/client/model/FormFieldTest.java | 16 + .../model/FormSetConditionListTest.java | 9 + .../model/FormSetConditionResponseTest.java | 11 + .../rootly/client/model/FormSetListTest.java | 9 + .../client/model/FormSetResponseTest.java | 11 + .../client/model/FunctionalityListTest.java | 9 + .../model/FunctionalityResponseTest.java | 11 + .../client/model/FunctionalityTest.java | 25 + .../GetGithubCommitsTaskParamsAnyOf1Test.java | 50 + .../GetGithubCommitsTaskParamsAnyOfTest.java | 50 + .../model/GetGithubCommitsTaskParamsTest.java | 18 + .../GetGitlabCommitsTaskParamsAnyOfTest.java | 50 + .../model/GetGitlabCommitsTaskParamsTest.java | 18 + .../client/model/HeartbeatListTest.java | 9 + .../client/model/HeartbeatResponseTest.java | 11 + .../rootly/client/model/HeartbeatTest.java | 10 + .../model/HttpClientTaskParamsTest.java | 16 + .../model/ImportMeetingRecordingTest.java | 91 + .../model/IncidentActionItemListTest.java | 9 + .../model/IncidentActionItemResponseTest.java | 11 + .../client/model/IncidentActionItemTest.java | 8 + .../IncidentCustomFieldSelectionListTest.java | 9 + ...identCustomFieldSelectionResponseTest.java | 11 + .../IncidentEventFunctionalityListTest.java | 9 + ...ncidentEventFunctionalityResponseTest.java | 11 + .../client/model/IncidentEventListTest.java | 9 + .../model/IncidentEventResponseTest.java | 11 + .../model/IncidentEventServiceListTest.java | 9 + .../IncidentEventServiceResponseTest.java | 11 + .../model/IncidentFeedbackListTest.java | 9 + .../model/IncidentFeedbackResponseTest.java | 11 + .../IncidentFormFieldSelectionListTest.java | 9 + ...ncidentFormFieldSelectionResponseTest.java | 11 + .../model/IncidentFormFieldSelectionTest.java | 24 + .../rootly/client/model/IncidentListTest.java | 9 + .../IncidentPermissionSetBooleanListTest.java | 9 + ...identPermissionSetBooleanResponseTest.java | 11 + .../model/IncidentPermissionSetListTest.java | 9 + ...IncidentPermissionSetResourceListTest.java | 9 + ...dentPermissionSetResourceResponseTest.java | 11 + .../IncidentPermissionSetResponseTest.java | 11 + .../model/IncidentPostMortemListTest.java | 9 + .../model/IncidentPostMortemResponseTest.java | 11 + .../client/model/IncidentResponseTest.java | 11 + ...IncidentRetrospectiveStepResponseTest.java | 11 + .../client/model/IncidentRoleListTest.java | 9 + .../model/IncidentRoleResponseTest.java | 11 + .../model/IncidentRoleTaskListTest.java | 9 + .../model/IncidentRoleTaskResponseTest.java | 11 + .../IncidentStatusPageEventListTest.java | 9 + .../IncidentStatusPageEventResponseTest.java | 11 + ...ageEventStatusPageComponentsInnerTest.java | 57 + .../model/IncidentStatusPageEventTest.java | 11 + .../model/IncidentSubStatusListTest.java | 9 + .../model/IncidentSubStatusResponseTest.java | 11 + .../com/rootly/client/model/IncidentTest.java | 137 + .../model/IncidentTriggerParamsTest.java | 24 + .../client/model/IncidentTypeListTest.java | 9 + .../model/IncidentTypeResponseTest.java | 11 + .../rootly/client/model/IncidentTypeTest.java | 17 + .../model/IncidentsChartResponseTest.java | 48 + ...InviteToGoogleChatSpaceTaskParamsTest.java | 65 + ...softTeamsChannelRootlyTaskParamsTest.java} | 70 +- ...ToSlackChannelPagerdutyTaskParamsTest.java | 19 + ...iteToSlackChannelTaskParamsAnyOf1Test.java | 51 + ...iteToSlackChannelTaskParamsAnyOf2Test.java | 48 + ...viteToSlackChannelTaskParamsAnyOfTest.java | 51 + .../InviteToSlackChannelTaskParamsTest.java | 28 + .../model/JsonapiIncludedResourceTest.java | 74 + .../client/model/LiveCallRouterListTest.java | 9 + .../model/LiveCallRouterResponseTest.java | 11 + .../client/model/LiveCallRouterTest.java | 33 + ...ingRecordingDetailAllOfTranscriptTest.java | 35 + ...eetingRecordingDetailResponseDataTest.java | 65 + .../MeetingRecordingDetailResponseTest.java | 49 + .../model/MeetingRecordingDetailTest.java | 196 + .../model/MeetingRecordingListTest.java | 2 +- ... => MeetingRecordingResponseDataTest.java} | 12 +- .../model/MeetingRecordingResponseTest.java | 49 + .../client/model/MeetingRecordingTest.java | 30 +- ...MeetingRecordingTranscriptSegmentTest.java | 59 + .../MeetingRecordingTranscriptWordTest.java | 65 + .../com/rootly/client/model/MetaTest.java | 9 + ...ttributesNotificationTargetsInnerTest.java | 56 + .../model/NewAlertDataAttributesTest.java | 17 + .../NewAlertFieldDataAttributesTest.java | 9 + .../NewAlertGroupDataAttributesTest.java | 8 + ...RuleDataAttributesConditionsInnerTest.java | 83 + ...AlertRetriggerRuleDataAttributesTest.java} | 38 +- .../model/NewAlertRetriggerRuleDataTest.java | 57 + .../model/NewAlertRetriggerRuleTest.java | 49 + .../NewAlertUrgencyDataAttributesTest.java | 8 + .../NewAlertsSourceDataAttributesTest.java | 8 + ...ogChecklistTemplateDataAttributesTest.java | 8 + .../model/NewCatalogDataAttributesTest.java | 16 + .../NewCatalogEntityDataAttributesTest.java | 43 + .../NewCatalogFieldDataAttributesTest.java | 32 + .../NewCatalogPropertyDataAttributesTest.java | 16 + .../model/NewCauseDataAttributesTest.java | 27 + ...CommunicationsStageDataAttributesTest.java | 8 + ...wCommunicationsTypeDataAttributesTest.java | 8 + .../NewCustomFormDataAttributesTest.java | 12 +- .../NewEnvironmentDataAttributesTest.java | 33 + ...calationPolicyLevelDataAttributesTest.java | 32 + ...thDataAttributesRulesInnerOneOf6Test.java} | 28 +- ...thDataAttributesRulesInnerOneOf7Test.java} | 18 +- ...olicyPathDataAttributesRulesInnerTest.java | 61 +- ...scalationPolicyPathDataAttributesTest.java | 32 + .../model/NewFormFieldDataAttributesTest.java | 16 + .../model/NewFormSetDataAttributesTest.java | 9 + .../NewFunctionalityDataAttributesTest.java | 25 + .../model/NewHeartbeatDataAttributesTest.java | 10 + ...ttributesFormFieldSelectionsInnerTest.java | 148 + ...utesFormFieldSelectionsInnerValueTest.java | 34 + ...wIncidentActionItemDataAttributesTest.java | 9 + ...tFormFieldSelectionDataAttributesTest.java | 24 + ...cidentPermissionSetDataAttributesTest.java | 12 +- .../NewIncidentRoleDataAttributesTest.java | 8 + ...tributesStatusPageComponentsInnerTest.java | 57 + ...dentStatusPageEventDataAttributesTest.java | 20 + .../NewIncidentTypeDataAttributesTest.java | 25 + .../NewLiveCallRouterDataAttributesTest.java | 41 + .../NewOnCallPayReportDataAttributesTest.java | 16 + .../NewOnCallRoleDataAttributesTest.java | 29 +- ...wPostMortemTemplateDataAttributesTest.java | 8 + ...ewRetrospectiveStepDataAttributesTest.java | 8 + .../model/NewRoleDataAttributesTest.java | 68 +- .../model/NewScheduleDataAttributesTest.java | 64 + ...NewScheduleRotationDataAttributesTest.java | 2 +- .../model/NewServiceDataAttributesTest.java | 17 + .../model/NewSeverityDataAttributesTest.java | 8 + ...hiftCoverageRequestDataAttributesTest.java | 65 + .../NewShiftCoverageRequestDataTest.java | 57 + .../model/NewShiftCoverageRequestTest.java | 49 + .../model/NewSlaDataAttributesTest.java | 8 + ...tusPageAnnouncementDataAttributesTest.java | 64 + .../NewStatusPageAnnouncementDataTest.java | 57 + .../model/NewStatusPageAnnouncementTest.java | 49 + ...StatusPageComponentDataAttributesTest.java | 89 + .../model/NewStatusPageComponentDataTest.java | 57 + ...PageComponentGroupDataAttributesTest.java} | 27 +- .../NewStatusPageComponentGroupDataTest.java | 57 + .../NewStatusPageComponentGroupTest.java | 49 + .../model/NewStatusPageComponentTest.java | 49 + .../NewStatusPageDataAttributesTest.java | 24 + ...wStatusPageTemplateDataAttributesTest.java | 8 + .../model/NewSubStatusDataAttributesTest.java | 12 +- .../model/NewTeamDataAttributesTest.java | 33 + .../NewVerifiedDomainDataAttributesTest.java | 48 + .../model/NewVerifiedDomainDataTest.java | 57 + .../client/model/NewVerifiedDomainTest.java | 49 + ...tDataAttributesCustomHeadersInnerTest.java | 56 + ...NewWebhooksEndpointDataAttributesTest.java | 18 + ...mFormFieldConditionDataAttributesTest.java | 138 + ...wActionItemFormFieldConditionDataTest.java | 57 + ...kflowActionItemFormFieldConditionTest.java | 49 + .../model/NewWorkflowDataAttributesTest.java | 12 +- ...rkflowDataAttributesTriggerParamsTest.java | 50 + ...wFormFieldConditionDataAttributesTest.java | 24 + .../NewWorkflowGroupDataAttributesTest.java | 8 + ...kflowTaskDataAttributesTaskParamsTest.java | 228 +- .../client/model/OnCallPayReportListTest.java | 9 + .../model/OnCallPayReportResponseTest.java | 11 + .../client/model/OnCallPayReportTest.java | 8 + .../client/model/OnCallRoleListTest.java | 9 + .../client/model/OnCallRoleResponseTest.java | 11 + .../rootly/client/model/OnCallRoleTest.java | 16 + .../model/OnCallShadowResponseTest.java | 11 + .../client/model/OnCallShadowsListTest.java | 9 + .../client/model/OncallListDataInnerTest.java | 74 + .../rootly/client/model/OncallListTest.java | 60 + ...RelationshipsEscalationPolicyDataTest.java | 56 + ...callRelationshipsEscalationPolicyTest.java | 50 + .../OncallRelationshipsScheduleDataTest.java | 56 + .../OncallRelationshipsScheduleTest.java | 50 + .../client/model/OncallRelationshipsTest.java | 67 + .../OncallRelationshipsUserDataTest.java | 56 + ....java => OncallRelationshipsUserTest.java} | 14 +- .../com/rootly/client/model/OncallTest.java | 138 + .../client/model/OverrideShiftListTest.java | 9 + .../model/OverrideShiftResponseTest.java | 11 + ...eRootlyOnCallRespondersTaskParamsTest.java | 16 + ...sOnCallRespondersTaskParamsAnyOf1Test.java | 51 + ...sOnCallRespondersTaskParamsAnyOfTest.java} | 22 +- ...ctorOpsOnCallRespondersTaskParamsTest.java | 19 + .../rootly/client/model/PlaybookListTest.java | 9 + .../client/model/PlaybookResponseTest.java | 11 + .../client/model/PlaybookTaskListTest.java | 9 + .../model/PlaybookTaskResponseTest.java | 11 + .../model/PostMortemTemplateListTest.java | 9 + .../model/PostMortemTemplateResponseTest.java | 11 + .../model/PostMortemTriggerParamsTest.java | 24 + .../model/PublishIncidentTaskParamsTest.java | 10 + .../rootly/client/model/PulseListTest.java | 9 + .../client/model/PulseResponseTest.java | 11 + .../com/rootly/client/model/ReceiptTest.java | 72 + .../RenameGoogleChatSpaceTaskParamsTest.java | 65 + .../RetrospectiveConfigurationListTest.java | 9 + ...etrospectiveConfigurationResponseTest.java | 11 + .../RetrospectiveProcessGroupListTest.java | 9 + ...RetrospectiveProcessGroupResponseTest.java | 11 + ...RetrospectiveProcessGroupStepListTest.java | 9 + ...ospectiveProcessGroupStepResponseTest.java | 11 + .../model/RetrospectiveProcessListTest.java | 9 + .../RetrospectiveProcessResponseTest.java | 11 + .../model/RetrospectiveStepListTest.java | 9 + .../model/RetrospectiveStepResponseTest.java | 11 + .../com/rootly/client/model/RoleListTest.java | 9 + .../rootly/client/model/RoleResponseTest.java | 11 + .../com/rootly/client/model/RoleTest.java | 56 + .../rootly/client/model/ScheduleListTest.java | 9 + .../client/model/ScheduleResponseTest.java | 11 + .../ScheduleRotationActiveDayListTest.java | 9 + ...ScheduleRotationActiveDayResponseTest.java | 11 + .../model/ScheduleRotationListTest.java | 9 + .../model/ScheduleRotationResponseTest.java | 11 + .../client/model/ScheduleRotationTest.java | 2 +- .../model/ScheduleRotationUserListTest.java | 9 + .../ScheduleRotationUserResponseTest.java | 11 + .../com/rootly/client/model/ScheduleTest.java | 64 + ...ndGoogleChatAttachmentsTaskParamsTest.java | 67 + .../SendGoogleChatMessageTaskParamsTest.java | 76 + ...endMicrosoftTeamsBlocksTaskParamsTest.java | 11 + ...ndMicrosoftTeamsMessageTaskParamsTest.java | 9 + .../model/SendSlackBlocksTaskParamsTest.java | 28 + .../SendSlackMessageTaskParamsAnyOfTest.java | 51 + .../model/SendSlackMessageTaskParamsTest.java | 28 + .../rootly/client/model/ServiceListTest.java | 9 + .../client/model/ServiceResponseTest.java | 11 + .../com/rootly/client/model/ServiceTest.java | 17 + .../rootly/client/model/SeverityListTest.java | 9 + .../client/model/SeverityResponseTest.java | 11 + .../model/ShiftCoverageRequestListTest.java | 78 + .../ShiftCoverageRequestResponseDataTest.java | 65 + .../ShiftCoverageRequestResponseTest.java | 60 + .../model/ShiftCoverageRequestTest.java | 139 + .../rootly/client/model/ShiftListTest.java | 18 + .../model/ShiftOverrideResponseTest.java | 11 + .../client/model/ShiftRelationshipsTest.java | 2 +- .../com/rootly/client/model/ShiftTest.java | 8 + .../com/rootly/client/model/SlaListTest.java | 9 + .../rootly/client/model/SlaResponseTest.java | 11 + .../rootly/client/model/SlackChannelTest.java | 88 + .../client/model/StartSessionRequestTest.java | 57 + .../model/StartSessionResponseDataTest.java | 65 + .../model/StartSessionResponseTest.java | 49 + .../rootly/client/model/StatusListTest.java | 9 + .../model/StatusPageAnnouncementListTest.java | 78 + ...tatusPageAnnouncementResponseDataTest.java | 65 + .../StatusPageAnnouncementResponseTest.java | 60 + .../model/StatusPageAnnouncementTest.java | 97 + .../StatusPageComponentGroupListTest.java | 78 + ...tusPageComponentGroupResponseDataTest.java | 65 + .../StatusPageComponentGroupResponseTest.java | 60 + .../model/StatusPageComponentGroupTest.java | 98 + .../model/StatusPageComponentListTest.java | 78 + .../StatusPageComponentResponseDataTest.java | 65 + .../StatusPageComponentResponseTest.java | 60 + .../client/model/StatusPageComponentTest.java | 122 + .../client/model/StatusPageListTest.java | 9 + .../client/model/StatusPageResponseTest.java | 11 + .../model/StatusPageTemplateListTest.java | 9 + .../model/StatusPageTemplateResponseTest.java | 11 + .../client/model/StatusPageTemplateTest.java | 8 + .../rootly/client/model/StatusPageTest.java | 18 + .../client/model/StatusResponseTest.java | 11 + .../client/model/SubStatusListTest.java | 9 + .../client/model/SubStatusResponseTest.java | 11 + .../com/rootly/client/model/TeamListTest.java | 9 + .../rootly/client/model/TeamResponseTest.java | 11 + .../com/rootly/client/model/TeamTest.java | 33 + .../model/UpdateAlertDataAttributesTest.java | 8 + .../UpdateAlertFieldDataAttributesTest.java | 9 + .../UpdateAlertGroupDataAttributesTest.java | 8 + ...eAlertRetriggerRuleDataAttributesTest.java | 84 + .../UpdateAlertRetriggerRuleDataTest.java | 57 + .../model/UpdateAlertRetriggerRuleTest.java | 49 + .../UpdateAlertRouteDataAttributesTest.java | 2 +- .../UpdateAlertUrgencyDataAttributesTest.java | 8 + .../UpdateAlertsSourceDataAttributesTest.java | 8 + ...ogChecklistTemplateDataAttributesTest.java | 8 + .../UpdateCatalogDataAttributesTest.java | 16 + ...UpdateCatalogEntityDataAttributesTest.java | 43 + .../UpdateCatalogFieldDataAttributesTest.java | 36 +- ...dateCatalogPropertyDataAttributesTest.java | 16 + .../model/UpdateCauseDataAttributesTest.java | 27 + ...CommunicationsStageDataAttributesTest.java | 8 + ...eCommunicationsTypeDataAttributesTest.java | 8 + .../UpdateConfluencePageTaskParamsTest.java | 33 + .../UpdateCustomFieldDataAttributesTest.java | 8 - .../UpdateCustomFormDataAttributesTest.java | 12 +- .../model/UpdateEdgeConnectorActionTest.java | 2 +- ...UpdateEdgeConnectorEdgeConnectorTest.java} | 12 +- ...dgeConnectorRequestDataAttributesTest.java | 8 + .../client/model/UpdateEdgeConnectorTest.java | 2 +- .../UpdateEnvironmentDataAttributesTest.java | 33 + ...calationPolicyLevelDataAttributesTest.java | 32 + ...olicyPathDataAttributesRulesInnerTest.java | 61 +- ...scalationPolicyPathDataAttributesTest.java | 32 + .../UpdateFormFieldDataAttributesTest.java | 16 + .../UpdateFormSetDataAttributesTest.java | 9 + ...UpdateFunctionalityDataAttributesTest.java | 25 + .../UpdateGithubIssueTaskParamsTest.java | 45 + ...gleChatSpaceDescriptionTaskParamsTest.java | 65 + .../UpdateGoogleDocsPageTaskParamsTest.java | 24 + .../UpdateHeartbeatDataAttributesTest.java | 10 + ...eIncidentActionItemDataAttributesTest.java | 9 + ...tFormFieldSelectionDataAttributesTest.java | 24 + ...cidentPermissionSetDataAttributesTest.java | 12 +- .../UpdateIncidentRoleDataAttributesTest.java | 8 + ...dentStatusPageEventDataAttributesTest.java | 9 + .../UpdateIncidentTypeDataAttributesTest.java | 25 + .../model/UpdateJiraIssueTaskParamsTest.java | 25 + .../UpdateLinearIssueTaskParamsTest.java | 8 + ...pdateLiveCallRouterDataAttributesTest.java | 41 + ...dateOnCallPayReportDataAttributesTest.java | 16 + .../UpdateOnCallRoleDataAttributesTest.java | 29 +- ...ePostMortemTemplateDataAttributesTest.java | 8 + ...teRetrospectiveStepDataAttributesTest.java | 8 + .../model/UpdateRoleDataAttributesTest.java | 84 +- .../UpdateScheduleDataAttributesTest.java | 64 + ...ateScheduleRotationDataAttributesTest.java | 1 + .../UpdateServiceDataAttributesTest.java | 17 + .../UpdateSeverityDataAttributesTest.java | 8 + .../model/UpdateSlaDataAttributesTest.java | 8 + ...tusPageAnnouncementDataAttributesTest.java | 56 + .../UpdateStatusPageAnnouncementDataTest.java | 57 + .../UpdateStatusPageAnnouncementTest.java | 49 + ...tatusPageComponentDataAttributesTest.java} | 34 +- .../UpdateStatusPageComponentDataTest.java | 57 + ...sPageComponentGroupDataAttributesTest.java | 73 + ...pdateStatusPageComponentGroupDataTest.java | 57 + .../UpdateStatusPageComponentGroupTest.java | 49 + .../model/UpdateStatusPageComponentTest.java | 49 + .../UpdateStatusPageDataAttributesTest.java | 24 + ...eStatusPageTemplateDataAttributesTest.java | 8 + .../UpdateSubStatusDataAttributesTest.java | 12 +- .../model/UpdateTeamDataAttributesTest.java | 33 + ...ateWebhooksEndpointDataAttributesTest.java | 18 + ...mFormFieldConditionDataAttributesTest.java | 130 + ...wActionItemFormFieldConditionDataTest.java | 57 + ...kflowActionItemFormFieldConditionTest.java | 49 + .../UpdateWorkflowDataAttributesTest.java | 12 +- .../client/model/UpdateWorkflowDataTest.java | 8 + ...wFormFieldConditionDataAttributesTest.java | 24 + ...UpdateWorkflowGroupDataAttributesTest.java | 8 + ...kflowTaskDataAttributesTaskParamsTest.java | 228 +- .../client/model/UptimeChartResponseTest.java | 48 + .../model/UserEmailAddressListTest.java | 9 + .../model/UserEmailAddressResponseTest.java | 11 + .../client/model/UserFlatResponseTest.java | 40 + .../com/rootly/client/model/UserListTest.java | 9 + .../model/UserNotificationRuleListTest.java | 9 + .../UserNotificationRuleResponseTest.java | 11 + .../model/UserNotificationRuleTest.java | 8 + .../client/model/UserPhoneNumberListTest.java | 9 + .../model/UserPhoneNumberResponseTest.java | 11 + .../rootly/client/model/UserResponseTest.java | 11 + .../client/model/VerifiedDomainListTest.java | 78 + .../model/VerifiedDomainResponseDataTest.java | 65 + .../model/VerifiedDomainResponseTest.java | 60 + .../client/model/VerifiedDomainTest.java | 137 + .../model/WebhooksDeliveryListTest.java | 9 + .../model/WebhooksDeliveryResponseTest.java | 11 + .../client/model/WebhooksDeliveryTest.java | 16 + .../model/WebhooksEndpointListTest.java | 9 + .../model/WebhooksEndpointResponseTest.java | 11 + .../client/model/WebhooksEndpointTest.java | 9 + ...ActionItemFormFieldConditionListTest.java} | 43 +- ...temFormFieldConditionResponseDataTest.java | 65 + ...ionItemFormFieldConditionResponseTest.java | 60 + ...kflowActionItemFormFieldConditionTest.java | 146 + .../WorkflowCustomFieldSelectionListTest.java | 9 + ...kflowCustomFieldSelectionResponseTest.java | 11 + .../WorkflowFormFieldConditionListTest.java | 9 + ...orkflowFormFieldConditionResponseTest.java | 11 + .../model/WorkflowFormFieldConditionTest.java | 24 + .../client/model/WorkflowGroupListTest.java | 9 + .../model/WorkflowGroupResponseTest.java | 11 + .../rootly/client/model/WorkflowListTest.java | 9 + .../client/model/WorkflowResponseTest.java | 11 + .../client/model/WorkflowRunResponseTest.java | 11 + .../client/model/WorkflowRunsListTest.java | 9 + .../client/model/WorkflowTaskListTest.java | 9 + .../model/WorkflowTaskResponseTest.java | 11 + 2979 files changed, 180150 insertions(+), 48562 deletions(-) create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/release-drafter.yml create mode 100644 docs/AddSlackBookmarkTaskParamsAnyOf.md create mode 100644 docs/AddSlackBookmarkTaskParamsAnyOf1.md create mode 100644 docs/AiChatApi.md create mode 100644 docs/AiChatResponse.md create mode 100644 docs/AiChatResponseData.md create mode 100644 docs/AiChatResponseDataAttributes.md create mode 100644 docs/AiChatSessionMessage.md create mode 100644 docs/AiChatSessionMessageList.md create mode 100644 docs/AlertAlertFieldValuesInner.md create mode 100644 docs/AlertAlertingTargetsInner.md create mode 100644 docs/AlertEventEscalationTarget.md create mode 100644 docs/AlertEventEscalationTargetData.md create mode 100644 docs/AlertEventFeedList.md create mode 100644 docs/AlertEventFeedMeta.md create mode 100644 docs/AlertEventIncident.md create mode 100644 docs/AlertEventSchedule.md create mode 100644 docs/AlertEventScheduleEscalationPoliciesInner.md create mode 100644 docs/AlertEventUser.md create mode 100644 docs/AlertRetriggerRule.md create mode 100644 docs/AlertRetriggerRuleConditionsInner.md create mode 100644 docs/AlertRetriggerRuleList.md create mode 100644 docs/AlertRetriggerRuleResponse.md create mode 100644 docs/AlertRetriggerRuleResponseData.md create mode 100644 docs/AlertRetriggerRulesApi.md create mode 100644 docs/AlertsSourceSourceableAttributes.md create mode 100644 docs/ArchiveGoogleChatSpacesTaskParams.md create mode 100644 docs/AttachRetrospectivePdfToFreshserviceTicketTaskParams.md create mode 100644 docs/AttachRetrospectivePdfToJiraIssueTaskParams.md create mode 100644 docs/AutoAssignRolePagerdutyTaskParamsAnyOf.md create mode 100644 docs/AutoAssignRolePagerdutyTaskParamsAnyOf1.md create mode 100644 docs/AutoAssignRoleRootlyTaskParamsOneOf.md create mode 100644 docs/AutoAssignRoleRootlyTaskParamsOneOf1.md create mode 100644 docs/AutoAssignRoleRootlyTaskParamsOneOf2.md create mode 100644 docs/AutoAssignRoleRootlyTaskParamsOneOf3.md create mode 100644 docs/AutoAssignRoleRootlyTaskParamsOneOf4.md create mode 100644 docs/BulkDeleteCatalogEntities422Response.md create mode 100644 docs/BulkDeleteEnvironments422Response.md create mode 100644 docs/BulkDeleteFunctionalities422Response.md create mode 100644 docs/BulkDeleteGroups422Response.md create mode 100644 docs/BulkDeleteServices422Response.md create mode 100644 docs/BulkDestroyCatalogEntities.md create mode 100644 docs/BulkDestroyCatalogEntitiesOneOf.md create mode 100644 docs/BulkDestroyCatalogEntitiesOneOf1.md create mode 100644 docs/BulkDestroyCatalogEntitiesResponse.md create mode 100644 docs/BulkDestroyCatalogEntitiesResponseData.md create mode 100644 docs/BulkDestroyEnvironments.md create mode 100644 docs/BulkDestroyEnvironmentsOneOf.md create mode 100644 docs/BulkDestroyEnvironmentsResponse.md create mode 100644 docs/BulkDestroyFunctionalities.md create mode 100644 docs/BulkDestroyFunctionalitiesResponse.md create mode 100644 docs/BulkDestroyServices.md create mode 100644 docs/BulkDestroyServicesResponse.md create mode 100644 docs/BulkDestroyTeams.md create mode 100644 docs/BulkDestroyTeamsResponse.md create mode 100644 docs/BulkUpsertCatalogEntities.md create mode 100644 docs/BulkUpsertCatalogEntities422Response.md create mode 100644 docs/BulkUpsertCatalogEntitiesEntitiesInner.md create mode 100644 docs/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md create mode 100644 docs/BulkUpsertCatalogEntitiesError.md create mode 100644 docs/BulkUpsertCatalogEntitiesErrorErrorsInner.md create mode 100644 docs/BulkUpsertCatalogEntitiesResponse.md create mode 100644 docs/BulkUpsertCatalogEntitiesResponseDataInner.md create mode 100644 docs/BulkUpsertEnvironments.md create mode 100644 docs/BulkUpsertEnvironments422Response.md create mode 100644 docs/BulkUpsertEnvironmentsEntitiesInner.md create mode 100644 docs/BulkUpsertEnvironmentsError.md create mode 100644 docs/BulkUpsertEnvironmentsErrorErrorsInner.md create mode 100644 docs/BulkUpsertEnvironmentsResponse.md create mode 100644 docs/BulkUpsertEnvironmentsResponseDataInner.md create mode 100644 docs/BulkUpsertFunctionalities.md create mode 100644 docs/BulkUpsertFunctionalities422Response.md create mode 100644 docs/BulkUpsertFunctionalitiesEntitiesInner.md create mode 100644 docs/BulkUpsertFunctionalitiesError.md create mode 100644 docs/BulkUpsertFunctionalitiesResponse.md create mode 100644 docs/BulkUpsertFunctionalitiesResponseDataInner.md create mode 100644 docs/BulkUpsertGroups422Response.md create mode 100644 docs/BulkUpsertServices.md create mode 100644 docs/BulkUpsertServices422Response.md create mode 100644 docs/BulkUpsertServicesEntitiesInner.md create mode 100644 docs/BulkUpsertServicesError.md create mode 100644 docs/BulkUpsertServicesResponse.md create mode 100644 docs/BulkUpsertServicesResponseDataInner.md create mode 100644 docs/BulkUpsertTeams.md create mode 100644 docs/BulkUpsertTeamsEntitiesInner.md create mode 100644 docs/BulkUpsertTeamsError.md create mode 100644 docs/BulkUpsertTeamsResponse.md create mode 100644 docs/BulkUpsertTeamsResponseDataInner.md create mode 100644 docs/ChangeGoogleChatSpacePrivacyTaskParams.md create mode 100644 docs/CreateEdgeConnectorRequestDataAttributesFilters.md create mode 100644 docs/CreateGoogleChatSpaceTaskParams.md create mode 100644 docs/CreateShortcutStoryTaskParamsAnyOf.md create mode 100644 docs/CreateShortcutStoryTaskParamsAnyOf1.md create mode 100644 docs/GetGithubCommitsTaskParamsAnyOf.md create mode 100644 docs/GetGithubCommitsTaskParamsAnyOf1.md create mode 100644 docs/GetGitlabCommitsTaskParamsAnyOf.md create mode 100644 docs/ImportMeetingRecording.md create mode 100644 docs/IncidentStatusPageEventStatusPageComponentsInner.md create mode 100644 docs/IncidentsChartResponse.md create mode 100644 docs/InviteToGoogleChatSpaceTaskParams.md create mode 100644 docs/InviteToMicrosoftTeamsChannelRootlyTaskParams.md create mode 100644 docs/InviteToSlackChannelTaskParamsAnyOf.md create mode 100644 docs/InviteToSlackChannelTaskParamsAnyOf1.md create mode 100644 docs/InviteToSlackChannelTaskParamsAnyOf2.md create mode 100644 docs/JsonapiIncludedResource.md create mode 100644 docs/MeetingRecordingDetail.md create mode 100644 docs/MeetingRecordingDetailAllOfTranscript.md create mode 100644 docs/MeetingRecordingDetailResponse.md create mode 100644 docs/MeetingRecordingDetailResponseData.md create mode 100644 docs/MeetingRecordingResponse.md create mode 100644 docs/MeetingRecordingResponseData.md create mode 100644 docs/MeetingRecordingTranscriptSegment.md create mode 100644 docs/MeetingRecordingTranscriptWord.md create mode 100644 docs/NewAlertDataAttributesNotificationTargetsInner.md create mode 100644 docs/NewAlertRetriggerRule.md create mode 100644 docs/NewAlertRetriggerRuleData.md create mode 100644 docs/NewAlertRetriggerRuleDataAttributes.md create mode 100644 docs/NewAlertRetriggerRuleDataAttributesConditionsInner.md create mode 100644 docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.md create mode 100644 docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.md create mode 100644 docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.md create mode 100644 docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.md create mode 100644 docs/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.md create mode 100644 docs/NewShiftCoverageRequest.md create mode 100644 docs/NewShiftCoverageRequestData.md create mode 100644 docs/NewShiftCoverageRequestDataAttributes.md create mode 100644 docs/NewStatusPageAnnouncement.md create mode 100644 docs/NewStatusPageAnnouncementData.md create mode 100644 docs/NewStatusPageAnnouncementDataAttributes.md create mode 100644 docs/NewStatusPageComponent.md create mode 100644 docs/NewStatusPageComponentData.md create mode 100644 docs/NewStatusPageComponentDataAttributes.md create mode 100644 docs/NewStatusPageComponentGroup.md create mode 100644 docs/NewStatusPageComponentGroupData.md create mode 100644 docs/NewStatusPageComponentGroupDataAttributes.md create mode 100644 docs/NewVerifiedDomain.md create mode 100644 docs/NewVerifiedDomainData.md create mode 100644 docs/NewVerifiedDomainDataAttributes.md create mode 100644 docs/NewWebhooksEndpointDataAttributesCustomHeadersInner.md create mode 100644 docs/NewWorkflowActionItemFormFieldCondition.md create mode 100644 docs/NewWorkflowActionItemFormFieldConditionData.md create mode 100644 docs/NewWorkflowActionItemFormFieldConditionDataAttributes.md create mode 100644 docs/Oncall.md create mode 100644 docs/OncallList.md create mode 100644 docs/OncallListDataInner.md create mode 100644 docs/OncallRelationships.md create mode 100644 docs/OncallRelationshipsEscalationPolicy.md create mode 100644 docs/OncallRelationshipsEscalationPolicyData.md create mode 100644 docs/OncallRelationshipsSchedule.md create mode 100644 docs/OncallRelationshipsScheduleData.md create mode 100644 docs/OncallRelationshipsUser.md create mode 100644 docs/OncallRelationshipsUserData.md create mode 100644 docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf.md create mode 100644 docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.md create mode 100644 docs/Receipt.md create mode 100644 docs/RenameGoogleChatSpaceTaskParams.md create mode 100644 docs/SendGoogleChatAttachmentsTaskParams.md create mode 100644 docs/SendGoogleChatMessageTaskParams.md create mode 100644 docs/SendSlackMessageTaskParamsAnyOf.md create mode 100644 docs/ShiftCoverageRequest.md create mode 100644 docs/ShiftCoverageRequestList.md create mode 100644 docs/ShiftCoverageRequestResponse.md create mode 100644 docs/ShiftCoverageRequestResponseData.md create mode 100644 docs/ShiftCoverageRequestsApi.md create mode 100644 docs/SlackChannel.md create mode 100644 docs/StartSessionRequest.md create mode 100644 docs/StartSessionResponse.md create mode 100644 docs/StartSessionResponseData.md create mode 100644 docs/StatusPageAnnouncement.md create mode 100644 docs/StatusPageAnnouncementList.md create mode 100644 docs/StatusPageAnnouncementResponse.md create mode 100644 docs/StatusPageAnnouncementResponseData.md create mode 100644 docs/StatusPageAnnouncementsApi.md create mode 100644 docs/StatusPageComponent.md create mode 100644 docs/StatusPageComponentGroup.md create mode 100644 docs/StatusPageComponentGroupList.md create mode 100644 docs/StatusPageComponentGroupResponse.md create mode 100644 docs/StatusPageComponentGroupResponseData.md create mode 100644 docs/StatusPageComponentGroupsApi.md create mode 100644 docs/StatusPageComponentList.md create mode 100644 docs/StatusPageComponentResponse.md create mode 100644 docs/StatusPageComponentResponseData.md create mode 100644 docs/StatusPageComponentsApi.md create mode 100644 docs/UpdateAlertRetriggerRule.md create mode 100644 docs/UpdateAlertRetriggerRuleData.md create mode 100644 docs/UpdateAlertRetriggerRuleDataAttributes.md create mode 100644 docs/UpdateEdgeConnectorEdgeConnector.md create mode 100644 docs/UpdateGoogleChatSpaceDescriptionTaskParams.md create mode 100644 docs/UpdateStatusPageAnnouncement.md create mode 100644 docs/UpdateStatusPageAnnouncementData.md create mode 100644 docs/UpdateStatusPageAnnouncementDataAttributes.md create mode 100644 docs/UpdateStatusPageComponent.md create mode 100644 docs/UpdateStatusPageComponentData.md create mode 100644 docs/UpdateStatusPageComponentDataAttributes.md create mode 100644 docs/UpdateStatusPageComponentGroup.md create mode 100644 docs/UpdateStatusPageComponentGroupData.md create mode 100644 docs/UpdateStatusPageComponentGroupDataAttributes.md create mode 100644 docs/UpdateWorkflowActionItemFormFieldCondition.md create mode 100644 docs/UpdateWorkflowActionItemFormFieldConditionData.md create mode 100644 docs/UpdateWorkflowActionItemFormFieldConditionDataAttributes.md create mode 100644 docs/UptimeChartResponse.md create mode 100644 docs/VerifiedDomain.md create mode 100644 docs/VerifiedDomainList.md create mode 100644 docs/VerifiedDomainResponse.md create mode 100644 docs/VerifiedDomainResponseData.md create mode 100644 docs/VerifiedDomainsApi.md create mode 100644 docs/WorkflowActionItemFormFieldCondition.md create mode 100644 docs/WorkflowActionItemFormFieldConditionList.md create mode 100644 docs/WorkflowActionItemFormFieldConditionResponse.md create mode 100644 docs/WorkflowActionItemFormFieldConditionResponseData.md create mode 100644 docs/WorkflowActionItemFormFieldConditionsApi.md create mode 100644 src/main/java/com/rootly/client/api/AiChatApi.java create mode 100644 src/main/java/com/rootly/client/api/AlertRetriggerRulesApi.java create mode 100644 src/main/java/com/rootly/client/api/ShiftCoverageRequestsApi.java create mode 100644 src/main/java/com/rootly/client/api/StatusPageAnnouncementsApi.java create mode 100644 src/main/java/com/rootly/client/api/StatusPageComponentGroupsApi.java create mode 100644 src/main/java/com/rootly/client/api/StatusPageComponentsApi.java create mode 100644 src/main/java/com/rootly/client/api/VerifiedDomainsApi.java create mode 100644 src/main/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApi.java create mode 100644 src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1.java create mode 100644 src/main/java/com/rootly/client/model/AiChatResponse.java create mode 100644 src/main/java/com/rootly/client/model/AiChatResponseData.java create mode 100644 src/main/java/com/rootly/client/model/AiChatResponseDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/AiChatSessionMessage.java create mode 100644 src/main/java/com/rootly/client/model/AiChatSessionMessageList.java create mode 100644 src/main/java/com/rootly/client/model/AlertAlertFieldValuesInner.java create mode 100644 src/main/java/com/rootly/client/model/AlertAlertingTargetsInner.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventEscalationTarget.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventEscalationTargetData.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventFeedList.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventFeedMeta.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventIncident.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventSchedule.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInner.java create mode 100644 src/main/java/com/rootly/client/model/AlertEventUser.java create mode 100644 src/main/java/com/rootly/client/model/AlertRetriggerRule.java create mode 100644 src/main/java/com/rootly/client/model/AlertRetriggerRuleConditionsInner.java create mode 100644 src/main/java/com/rootly/client/model/AlertRetriggerRuleList.java create mode 100644 src/main/java/com/rootly/client/model/AlertRetriggerRuleResponse.java create mode 100644 src/main/java/com/rootly/client/model/AlertRetriggerRuleResponseData.java create mode 100644 src/main/java/com/rootly/client/model/AlertsSourceSourceableAttributes.java create mode 100644 src/main/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1.java create mode 100644 src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf.java create mode 100644 src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1.java create mode 100644 src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2.java create mode 100644 src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3.java create mode 100644 src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4.java create mode 100644 src/main/java/com/rootly/client/model/BulkDeleteCatalogEntities422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkDeleteEnvironments422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkDeleteFunctionalities422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkDeleteGroups422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkDeleteServices422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyCatalogEntities.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseData.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyEnvironments.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOf.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyFunctionalities.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyServices.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyServicesResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyTeams.java create mode 100644 src/main/java/com/rootly/client/model/BulkDestroyTeamsResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesError.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertEnvironments.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertEnvironments422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsError.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertFunctionalities.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertFunctionalities422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesError.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertGroups422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertServices.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertServices422Response.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertServicesEntitiesInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertServicesError.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertServicesResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertServicesResponseDataInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertTeams.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInner.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertTeamsError.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertTeamsResponse.java create mode 100644 src/main/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInner.java create mode 100644 src/main/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFilters.java create mode 100644 src/main/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1.java create mode 100644 src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1.java create mode 100644 src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/ImportMeetingRecording.java create mode 100644 src/main/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInner.java create mode 100644 src/main/java/com/rootly/client/model/IncidentsChartResponse.java create mode 100644 src/main/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1.java create mode 100644 src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2.java create mode 100644 src/main/java/com/rootly/client/model/JsonapiIncludedResource.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingDetail.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscript.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingDetailResponse.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingDetailResponseData.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingResponse.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingResponseData.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingTranscriptSegment.java create mode 100644 src/main/java/com/rootly/client/model/MeetingRecordingTranscriptWord.java create mode 100644 src/main/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInner.java create mode 100644 src/main/java/com/rootly/client/model/NewAlertRetriggerRule.java create mode 100644 src/main/java/com/rootly/client/model/NewAlertRetriggerRuleData.java create mode 100644 src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInner.java create mode 100644 src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.java create mode 100644 src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.java create mode 100644 src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.java create mode 100644 src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.java create mode 100644 src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.java create mode 100644 src/main/java/com/rootly/client/model/NewShiftCoverageRequest.java create mode 100644 src/main/java/com/rootly/client/model/NewShiftCoverageRequestData.java create mode 100644 src/main/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageAnnouncement.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageAnnouncementData.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageComponent.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageComponentData.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageComponentDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageComponentGroup.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageComponentGroupData.java create mode 100644 src/main/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/NewVerifiedDomain.java create mode 100644 src/main/java/com/rootly/client/model/NewVerifiedDomainData.java create mode 100644 src/main/java/com/rootly/client/model/NewVerifiedDomainDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInner.java create mode 100644 src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldCondition.java create mode 100644 src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionData.java create mode 100644 src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/Oncall.java create mode 100644 src/main/java/com/rootly/client/model/OncallList.java create mode 100644 src/main/java/com/rootly/client/model/OncallListDataInner.java create mode 100644 src/main/java/com/rootly/client/model/OncallRelationships.java create mode 100644 src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicy.java create mode 100644 src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyData.java create mode 100644 src/main/java/com/rootly/client/model/OncallRelationshipsSchedule.java create mode 100644 src/main/java/com/rootly/client/model/OncallRelationshipsScheduleData.java create mode 100644 src/main/java/com/rootly/client/model/OncallRelationshipsUser.java create mode 100644 src/main/java/com/rootly/client/model/OncallRelationshipsUserData.java create mode 100644 src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.java create mode 100644 src/main/java/com/rootly/client/model/Receipt.java create mode 100644 src/main/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/SendGoogleChatMessageTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOf.java create mode 100644 src/main/java/com/rootly/client/model/ShiftCoverageRequest.java create mode 100644 src/main/java/com/rootly/client/model/ShiftCoverageRequestList.java create mode 100644 src/main/java/com/rootly/client/model/ShiftCoverageRequestResponse.java create mode 100644 src/main/java/com/rootly/client/model/ShiftCoverageRequestResponseData.java create mode 100644 src/main/java/com/rootly/client/model/SlackChannel.java create mode 100644 src/main/java/com/rootly/client/model/StartSessionRequest.java create mode 100644 src/main/java/com/rootly/client/model/StartSessionResponse.java create mode 100644 src/main/java/com/rootly/client/model/StartSessionResponseData.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageAnnouncement.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageAnnouncementList.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageAnnouncementResponse.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageAnnouncementResponseData.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponent.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponentGroup.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponentGroupList.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponentGroupResponse.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponentGroupResponseData.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponentList.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponentResponse.java create mode 100644 src/main/java/com/rootly/client/model/StatusPageComponentResponseData.java create mode 100644 src/main/java/com/rootly/client/model/UpdateAlertRetriggerRule.java create mode 100644 src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleData.java create mode 100644 src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnector.java create mode 100644 src/main/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParams.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncement.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementData.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageComponent.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageComponentData.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroup.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupData.java create mode 100644 src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldCondition.java create mode 100644 src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionData.java create mode 100644 src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributes.java create mode 100644 src/main/java/com/rootly/client/model/UptimeChartResponse.java create mode 100644 src/main/java/com/rootly/client/model/VerifiedDomain.java create mode 100644 src/main/java/com/rootly/client/model/VerifiedDomainList.java create mode 100644 src/main/java/com/rootly/client/model/VerifiedDomainResponse.java create mode 100644 src/main/java/com/rootly/client/model/VerifiedDomainResponseData.java create mode 100644 src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldCondition.java create mode 100644 src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionList.java create mode 100644 src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponse.java create mode 100644 src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseData.java create mode 100644 src/test/java/com/rootly/client/api/AiChatApiTest.java create mode 100644 src/test/java/com/rootly/client/api/AlertRetriggerRulesApiTest.java create mode 100644 src/test/java/com/rootly/client/api/ShiftCoverageRequestsApiTest.java create mode 100644 src/test/java/com/rootly/client/api/StatusPageAnnouncementsApiTest.java rename src/test/java/com/rootly/client/api/{CatalogFieldsApiTest.java => StatusPageComponentGroupsApiTest.java} (65%) create mode 100644 src/test/java/com/rootly/client/api/StatusPageComponentsApiTest.java create mode 100644 src/test/java/com/rootly/client/api/VerifiedDomainsApiTest.java create mode 100644 src/test/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApiTest.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsPostRequestTest.java => AddSlackBookmarkTaskParamsAnyOf1Test.java} (87%) create mode 100644 src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOfTest.java create mode 100644 src/test/java/com/rootly/client/model/AiChatResponseDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/AiChatResponseDataTest.java rename src/test/java/com/rootly/client/model/{EscalationPolicyPathRulesInnerAnyOfTest.java => AiChatResponseTest.java} (85%) create mode 100644 src/test/java/com/rootly/client/model/AiChatSessionMessageListTest.java rename src/test/java/com/rootly/client/model/{UpdateAlertRouteDataAttributesRulesInnerDestinationsInnerTest.java => AiChatSessionMessageTest.java} (83%) create mode 100644 src/test/java/com/rootly/client/model/AlertAlertFieldValuesInnerTest.java rename src/test/java/com/rootly/client/model/{ShiftRelationshipsUserDataTest.java => AlertAlertingTargetsInnerTest.java} (91%) create mode 100644 src/test/java/com/rootly/client/model/AlertEventEscalationTargetDataTest.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsIdPatchRequestTest.java => AlertEventEscalationTargetTest.java} (86%) create mode 100644 src/test/java/com/rootly/client/model/AlertEventFeedListTest.java create mode 100644 src/test/java/com/rootly/client/model/AlertEventFeedMetaTest.java rename src/test/java/com/rootly/client/model/{UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest.java => AlertEventIncidentTest.java} (68%) rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestActionTest.java => AlertEventScheduleEscalationPoliciesInnerTest.java} (82%) rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInnerTest.java => AlertEventScheduleTest.java} (79%) create mode 100644 src/test/java/com/rootly/client/model/AlertEventUserTest.java create mode 100644 src/test/java/com/rootly/client/model/AlertRetriggerRuleConditionsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/AlertRetriggerRuleListTest.java create mode 100644 src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseDataTest.java rename src/test/java/com/rootly/client/model/{NewEscalationPolicyPathDataAttributesRulesInnerAnyOfTest.java => AlertRetriggerRuleResponseTest.java} (83%) rename src/test/java/com/rootly/client/model/{UpdateAlertRouteDataAttributesRulesInnerTest.java => AlertRetriggerRuleTest.java} (78%) create mode 100644 src/test/java/com/rootly/client/model/AlertsSourceSourceableAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1Test.java create mode 100644 src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOfTest.java create mode 100644 src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1Test.java create mode 100644 src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2Test.java create mode 100644 src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3Test.java create mode 100644 src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4Test.java create mode 100644 src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOfTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDeleteCatalogEntities422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDeleteEnvironments422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDeleteFunctionalities422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDeleteGroups422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDeleteServices422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1Test.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOfTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOfTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyServicesResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyServicesTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyTeamsResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkDestroyTeamsTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntities422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesTest.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestTest.java => BulkUpsertEnvironments422ResponseTest.java} (83%) create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertFunctionalities422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesErrorTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertGroups422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertServices422ResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertServicesEntitiesInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertServicesErrorTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertServicesResponseDataInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertServicesResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertServicesTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertTeamsErrorTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/BulkUpsertTeamsTest.java create mode 100644 src/test/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFiltersTest.java create mode 100644 src/test/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1Test.java create mode 100644 src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOfTest.java create mode 100644 src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1Test.java create mode 100644 src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOfTest.java create mode 100644 src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOfTest.java create mode 100644 src/test/java/com/rootly/client/model/ImportMeetingRecordingTest.java create mode 100644 src/test/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/IncidentsChartResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParamsTest.java rename src/test/java/com/rootly/client/model/{EscalationPolicyPathRulesInnerTest.java => InviteToMicrosoftTeamsChannelRootlyTaskParamsTest.java} (71%) create mode 100644 src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1Test.java create mode 100644 src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2Test.java create mode 100644 src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOfTest.java create mode 100644 src/test/java/com/rootly/client/model/JsonapiIncludedResourceTest.java create mode 100644 src/test/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscriptTest.java create mode 100644 src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/MeetingRecordingDetailTest.java rename src/test/java/com/rootly/client/model/{MeetingRecordingListDataInnerTest.java => MeetingRecordingResponseDataTest.java} (91%) create mode 100644 src/test/java/com/rootly/client/model/MeetingRecordingResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/MeetingRecordingTranscriptSegmentTest.java create mode 100644 src/test/java/com/rootly/client/model/MeetingRecordingTranscriptWordTest.java create mode 100644 src/test/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInnerTest.java rename src/test/java/com/rootly/client/model/{UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest.java => NewAlertRetriggerRuleDataAttributesTest.java} (80%) create mode 100644 src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataTest.java create mode 100644 src/test/java/com/rootly/client/model/NewAlertRetriggerRuleTest.java rename src/test/java/com/rootly/client/model/{NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2Test.java => NewEscalationPolicyPathDataAttributesRulesInnerOneOf6Test.java} (90%) rename src/test/java/com/rootly/client/model/{NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1Test.java => NewEscalationPolicyPathDataAttributesRulesInnerOneOf7Test.java} (92%) create mode 100644 src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValueTest.java create mode 100644 src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataTest.java create mode 100644 src/test/java/com/rootly/client/model/NewShiftCoverageRequestTest.java create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataTest.java create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageAnnouncementTest.java create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageComponentDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageComponentDataTest.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsIdPatchRequestEdgeConnectorTest.java => NewStatusPageComponentGroupDataAttributesTest.java} (84%) create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataTest.java create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageComponentGroupTest.java create mode 100644 src/test/java/com/rootly/client/model/NewStatusPageComponentTest.java create mode 100644 src/test/java/com/rootly/client/model/NewVerifiedDomainDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/NewVerifiedDomainDataTest.java create mode 100644 src/test/java/com/rootly/client/model/NewVerifiedDomainTest.java create mode 100644 src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataTest.java create mode 100644 src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallListDataInnerTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallListTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyDataTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallRelationshipsScheduleDataTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallRelationshipsScheduleTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallRelationshipsTest.java create mode 100644 src/test/java/com/rootly/client/model/OncallRelationshipsUserDataTest.java rename src/test/java/com/rootly/client/model/{ShiftRelationshipsUserTest.java => OncallRelationshipsUserTest.java} (90%) create mode 100644 src/test/java/com/rootly/client/model/OncallTest.java create mode 100644 src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1Test.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsEdgeConnectorIdActionsPostRequestTest.java => PageVictorOpsOnCallRespondersTaskParamsAnyOfTest.java} (83%) create mode 100644 src/test/java/com/rootly/client/model/ReceiptTest.java create mode 100644 src/test/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/SendGoogleChatMessageTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOfTest.java create mode 100644 src/test/java/com/rootly/client/model/ShiftCoverageRequestListTest.java create mode 100644 src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/ShiftCoverageRequestTest.java create mode 100644 src/test/java/com/rootly/client/model/SlackChannelTest.java create mode 100644 src/test/java/com/rootly/client/model/StartSessionRequestTest.java create mode 100644 src/test/java/com/rootly/client/model/StartSessionResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/StartSessionResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageAnnouncementListTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageAnnouncementTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentGroupListTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentGroupTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentListTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/StatusPageComponentTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleTest.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsPostRequestEdgeConnectorTest.java => UpdateEdgeConnectorEdgeConnectorTest.java} (90%) create mode 100644 src/test/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParamsTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementTest.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionTest.java => UpdateStatusPageComponentDataAttributesTest.java} (80%) create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateStatusPageComponentTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributesTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataTest.java create mode 100644 src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionTest.java create mode 100644 src/test/java/com/rootly/client/model/UptimeChartResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/VerifiedDomainListTest.java create mode 100644 src/test/java/com/rootly/client/model/VerifiedDomainResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/VerifiedDomainResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/VerifiedDomainTest.java rename src/test/java/com/rootly/client/model/{V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataTest.java => WorkflowActionItemFormFieldConditionListTest.java} (77%) create mode 100644 src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseDataTest.java create mode 100644 src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseTest.java create mode 100644 src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionTest.java diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 00000000..9f9cdc82 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,64 @@ +# Configuration for Release Drafter: https://github.com/release-drafter/release-drafter +name-template: $NEXT_PATCH_VERSION +tag-template: $NEXT_PATCH_VERSION + +template: | + $CHANGES + + ## OpenAPI spec + + + +categories: + - title: 🚀 New features and improvements + labels: + - enhancement + - title: 🐛 Bug fixes + labels: + - bug + - title: 📝 Documentation updates + labels: + - documentation + - title: 👻 Maintenance + labels: + - chore + - maintenance + - title: 🚦 Tests + labels: + - test + - title: ✍ Other changes + - title: 📦 Dependency updates + labels: + - dependencies + collapse-after: 5 + - title: 🔐 Security + labels: + - "🔐 security" + +exclude-labels: + - skip-changelog + - invalid + +autolabeler: + - label: documentation + files: + - "*.md" + +version-resolver: + major: + labels: + - major + - breaking + minor: + labels: + - minor + - enhancement + patch: + labels: + - patch + - bug + - chore + - maintenance + - dependencies + - documentation + default: patch diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index b57baa9c..d4109a91 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -14,10 +14,10 @@ on: jobs: build: name: Build Rootly API v1 - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 strategy: matrix: - java: [ 17, 21 ] + java: [ 17, 21, 25 ] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f09351ba..6009809a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,9 +7,9 @@ on: jobs: publish: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 permissions: - contents: write + contents: read packages: write steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -48,48 +48,3 @@ jobs: run: mvn --batch-mode deploy -DaltDeploymentRepository=github::default::https://maven.pkg.github.com/${{ github.repository }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract version from tag - id: version - run: echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT - - - name: Extract changelog for version - id: changelog - run: | - # Extract the section for this version from CHANGELOG.md - VERSION="${{ steps.version.outputs.version }}" - - # Get changelog content between version headers - CHANGELOG=$(awk "/## \[$VERSION\]/,/## \[/" CHANGELOG.md | sed '1d;$d' | sed '/^$/d') - - # If changelog extraction failed, use a default message - if [ -z "$CHANGELOG" ]; then - CHANGELOG="Release version $VERSION - - See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/master/CHANGELOG.md) for details." - fi - - # Save to output using heredoc to handle multiline content - { - echo 'notes<> $GITHUB_OUTPUT - - - name: Create GitHub Release - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const tag = context.ref.replace('refs/tags/', ''); - const version = tag.replace('v', ''); - - await github.rest.repos.createRelease({ - owner: context.repo.owner, - repo: context.repo.repo, - tag_name: tag, - name: `Release ${version}`, - body: `${{ steps.changelog.outputs.notes }}`, - draft: false, - prerelease: version.includes('-') || version.includes('alpha') || version.includes('beta') || version.includes('rc') - }); \ No newline at end of file diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 00000000..11b0dc62 --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,138 @@ +name: Release Drafter + +on: + push: + branches: + - master + tags: + - "v*" + workflow_dispatch: {} + +permissions: + contents: read + +jobs: + update_release_draft: + permissions: + contents: write + pull-requests: write + runs-on: blacksmith-2vcpu-ubuntu-2404 + steps: + - name: Checkout Repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + fetch-depth: 0 + + - name: Install oasdiff + env: + OASDIFF_VERSION: 1.28.0 + run: | + curl -fsSL -o /tmp/oasdiff.tar.gz \ + "https://github.com/oasdiff/oasdiff/releases/download/v${OASDIFF_VERSION}/oasdiff_${OASDIFF_VERSION}_linux_amd64.tar.gz" + tar -xzf /tmp/oasdiff.tar.gz -C /usr/local/bin oasdiff + + - name: Generate OpenAPI diff since last release + run: | + LATEST_TAG=$(git tag -l 'v*' --sort=-v:refname | grep -v "^${GITHUB_REF_NAME}$" | head -1) + if [ -n "$LATEST_TAG" ] && git show "${LATEST_TAG}:api/openapi.yaml" > /tmp/base-openapi.yaml 2>/dev/null; then + CHANGELOG=$(oasdiff changelog --format markdown /tmp/base-openapi.yaml api/openapi.yaml || true) + if [ -z "$CHANGELOG" ] || echo "$CHANGELOG" | grep -q "No changes detected"; then + SUMMARY="_No API changes detected._" + echo "OPENAPI_HAS_CHANGES=false" >> "$GITHUB_ENV" + else + CHANGE_COUNT=$(echo "$CHANGELOG" | grep -c '^- ' || echo 0) + BREAKING_OUTPUT=$(oasdiff breaking --format text /tmp/base-openapi.yaml api/openapi.yaml 2>/dev/null || true) + BREAKING_COUNT=$(echo "$BREAKING_OUTPUT" | grep -c '^error' || echo 0) + WARNING_COUNT=$(echo "$BREAKING_OUTPUT" | grep -c '^warning' || echo 0) + COUNTS="${CHANGE_COUNT} API change(s)" + if [ "$BREAKING_COUNT" -gt 0 ] && [ "$WARNING_COUNT" -gt 0 ]; then + COUNTS="${COUNTS} (${BREAKING_COUNT} breaking, ${WARNING_COUNT} potentially breaking)" + elif [ "$BREAKING_COUNT" -gt 0 ]; then + COUNTS="${COUNTS} (${BREAKING_COUNT} breaking)" + elif [ "$WARNING_COUNT" -gt 0 ]; then + COUNTS="${COUNTS} (${WARNING_COUNT} potentially breaking)" + fi + SUMMARY="This release includes ${COUNTS}, via [\`oasdiff\`](https://github.com/oasdiff/oasdiff). The full changelog [can be found attached to this release]()." + if [ "$BREAKING_COUNT" -gt 0 ] || [ "$WARNING_COUNT" -gt 0 ]; then + BREAKING_MD=$(oasdiff breaking --format markdown /tmp/base-openapi.yaml api/openapi.yaml 2>/dev/null || true) + SUMMARY=$(printf '%s\n\n
\nBreaking and potentially breaking changes\n\n%s\n\n
' "$SUMMARY" "$BREAKING_MD") + fi + echo "OPENAPI_HAS_CHANGES=true" >> "$GITHUB_ENV" + fi + elif [ -n "$LATEST_TAG" ]; then + SUMMARY="_No OpenAPI spec found for tag \`${LATEST_TAG}\`._" + echo "OPENAPI_HAS_CHANGES=false" >> "$GITHUB_ENV" + else + SUMMARY="_No previous release tag found._" + echo "OPENAPI_HAS_CHANGES=false" >> "$GITHUB_ENV" + fi + echo "$SUMMARY" > /tmp/openapi-summary.txt + echo "${CHANGELOG:-}" > /tmp/openapi-diff.md + + - id: release_drafter + uses: release-drafter/release-drafter@34d80673e067bdc0c24568d3af899c216adcfaa9 # v7.7.0 + with: + name: ${{ github.ref_type == 'tag' && github.ref_name || 'next' }} + tag: ${{ github.ref_type == 'tag' && github.ref_name || 'next' }} + version: ${{ github.ref_type == 'tag' && github.ref_name || 'next' }} + publish: ${{ github.ref_type == 'tag' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Inject OpenAPI diff into release body + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const fs = require('fs'); + const releaseId = ${{ steps.release_drafter.outputs.id }}; + const hasChanges = '${{ env.OPENAPI_HAS_CHANGES }}' === 'true'; + const summary = fs.readFileSync('/tmp/openapi-summary.txt', 'utf8').trim(); + + let inlineContent = summary; + + if (hasChanges) { + const { data: assets } = await github.rest.repos.listReleaseAssets({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: releaseId, + }); + const existing = assets.find(a => a.name === 'openapi-diff.md'); + if (existing) { + await github.rest.repos.deleteReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + asset_id: existing.id, + }); + } + + const diff = fs.readFileSync('/tmp/openapi-diff.md', 'utf8'); + const { data: asset } = await github.rest.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: releaseId, + name: 'openapi-diff.md', + data: diff, + }); + + inlineContent = summary.replace('', asset.browser_download_url); + } + + const { data: release } = await github.rest.repos.getRelease({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: releaseId, + }); + + const bodyLimit = 125000; + let newBody = release.body.replace('', inlineContent); + if (newBody.length > bodyLimit) { + const fallback = inlineContent.replace(/
[\s\S]*<\/details>/, '_Breaking and potentially breaking changes omitted — see attached `openapi-diff.md` for details._'); + newBody = release.body.replace('', fallback); + } + + await github.rest.repos.updateRelease({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: releaseId, + body: newBody, + }); diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 45d3b314..c23a1683 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ on: jobs: test: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK @@ -19,4 +19,4 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x ./gradlew - name: Run tests - run: ./gradlew test --no-daemon \ No newline at end of file + run: ./gradlew test --no-daemon diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore index c1efc2fe..062bb1cc 100644 --- a/.openapi-generator-ignore +++ b/.openapi-generator-ignore @@ -25,9 +25,13 @@ # Protect custom files from regeneration build.gradle pom.xml +gradlew +gradlew.bat +gradle/wrapper/** LICENSE README.md CLAUDE.md PUBLISHING.md CHANGELOG.md .github/dependabot.yml +.github/workflows/maven.yml diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 801373b6..451dee74 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -1,4 +1,3 @@ -.github/workflows/maven.yml .gitignore .travis.yml api/openapi.yaml @@ -7,20 +6,39 @@ docs/ActionItemTriggerParams.md docs/AddActionItemTaskParams.md docs/AddActionItemTaskParamsAssignedToUser.md docs/AddActionItemTaskParamsPostToSlackChannelsInner.md +docs/AddMicrosoftTeamsChatTabTaskParams.md docs/AddMicrosoftTeamsTabTaskParams.md docs/AddRoleTaskParams.md docs/AddRoleTaskParamsAssignedToUser.md docs/AddSlackBookmarkTaskParams.md +docs/AddSlackBookmarkTaskParamsAnyOf.md +docs/AddSlackBookmarkTaskParamsAnyOf1.md docs/AddSubscribers.md docs/AddSubscribersData.md docs/AddSubscribersDataAttributes.md docs/AddTeamTaskParams.md docs/AddToTimelineTaskParams.md +docs/AiChatApi.md +docs/AiChatResponse.md +docs/AiChatResponseData.md +docs/AiChatResponseDataAttributes.md +docs/AiChatSessionMessage.md +docs/AiChatSessionMessageList.md docs/Alert.md +docs/AlertAlertFieldValuesInner.md +docs/AlertAlertingTargetsInner.md docs/AlertEvent.md +docs/AlertEventEscalationTarget.md +docs/AlertEventEscalationTargetData.md +docs/AlertEventFeedList.md +docs/AlertEventFeedMeta.md +docs/AlertEventIncident.md docs/AlertEventList.md docs/AlertEventResponse.md docs/AlertEventResponseData.md +docs/AlertEventSchedule.md +docs/AlertEventScheduleEscalationPoliciesInner.md +docs/AlertEventUser.md docs/AlertEventsApi.md docs/AlertField.md docs/AlertFieldList.md @@ -38,6 +56,12 @@ docs/AlertGroupsApi.md docs/AlertList.md docs/AlertResponse.md docs/AlertResponseData.md +docs/AlertRetriggerRule.md +docs/AlertRetriggerRuleConditionsInner.md +docs/AlertRetriggerRuleList.md +docs/AlertRetriggerRuleResponse.md +docs/AlertRetriggerRuleResponseData.md +docs/AlertRetriggerRulesApi.md docs/AlertRoute.md docs/AlertRouteList.md docs/AlertRouteResponse.md @@ -58,6 +82,8 @@ docs/AlertRoutingRulesApi.md docs/AlertSourcesApi.md docs/AlertTriggerParams.md docs/AlertTriggerParamsAlertFieldConditionsInner.md +docs/AlertTriggerParamsAlertPayloadConditions.md +docs/AlertTriggerParamsAlertPayloadConditionsConditionsInner.md docs/AlertUrgenciesApi.md docs/AlertUrgency.md docs/AlertUrgencyList.md @@ -68,6 +94,16 @@ docs/AlertsSource.md docs/AlertsSourceList.md docs/AlertsSourceResponse.md docs/AlertsSourceResponseData.md +docs/AlertsSourceSourceableAttributes.md +docs/ApiKey.md +docs/ApiKeyList.md +docs/ApiKeyResponse.md +docs/ApiKeyResponseData.md +docs/ApiKeyWithTokenResponse.md +docs/ApiKeyWithTokenResponseData.md +docs/ApiKeyWithTokenResponseDataAttributes.md +docs/ApiKeysApi.md +docs/ArchiveGoogleChatSpacesTaskParams.md docs/ArchiveMicrosoftTeamsChannelsTaskParams.md docs/ArchiveSlackChannelsTaskParams.md docs/AssignRoleToUser.md @@ -77,6 +113,8 @@ docs/AttachAlert.md docs/AttachAlertData.md docs/AttachAlertDataAttributes.md docs/AttachDatadogDashboardsTaskParams.md +docs/AttachRetrospectivePdfToFreshserviceTicketTaskParams.md +docs/AttachRetrospectivePdfToJiraIssueTaskParams.md docs/Audit.md docs/AuditsApi.md docs/AuditsList.md @@ -88,15 +126,93 @@ docs/AuthorizationResponseData.md docs/AuthorizationsApi.md docs/AutoAssignRoleOpsgenieTaskParams.md docs/AutoAssignRolePagerdutyTaskParams.md +docs/AutoAssignRolePagerdutyTaskParamsAnyOf.md +docs/AutoAssignRolePagerdutyTaskParamsAnyOf1.md docs/AutoAssignRoleRootlyTaskParams.md +docs/AutoAssignRoleRootlyTaskParamsOneOf.md +docs/AutoAssignRoleRootlyTaskParamsOneOf1.md +docs/AutoAssignRoleRootlyTaskParamsOneOf2.md +docs/AutoAssignRoleRootlyTaskParamsOneOf3.md +docs/AutoAssignRoleRootlyTaskParamsOneOf4.md docs/AutoAssignRoleVictorOpsTaskParams.md +docs/BuiltinField.md +docs/BulkDeleteCatalogEntities422Response.md +docs/BulkDeleteEnvironments422Response.md +docs/BulkDeleteFunctionalities422Response.md +docs/BulkDeleteGroups422Response.md +docs/BulkDeleteServices422Response.md +docs/BulkDestroyCatalogEntities.md +docs/BulkDestroyCatalogEntitiesOneOf.md +docs/BulkDestroyCatalogEntitiesOneOf1.md +docs/BulkDestroyCatalogEntitiesResponse.md +docs/BulkDestroyCatalogEntitiesResponseData.md +docs/BulkDestroyEnvironments.md +docs/BulkDestroyEnvironmentsOneOf.md +docs/BulkDestroyEnvironmentsResponse.md +docs/BulkDestroyFunctionalities.md +docs/BulkDestroyFunctionalitiesResponse.md +docs/BulkDestroyServices.md +docs/BulkDestroyServicesResponse.md +docs/BulkDestroyTeams.md +docs/BulkDestroyTeamsResponse.md +docs/BulkUpsertCatalogEntities.md +docs/BulkUpsertCatalogEntities422Response.md +docs/BulkUpsertCatalogEntitiesEntitiesInner.md +docs/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md +docs/BulkUpsertCatalogEntitiesError.md +docs/BulkUpsertCatalogEntitiesErrorErrorsInner.md +docs/BulkUpsertCatalogEntitiesResponse.md +docs/BulkUpsertCatalogEntitiesResponseDataInner.md +docs/BulkUpsertEnvironments.md +docs/BulkUpsertEnvironments422Response.md +docs/BulkUpsertEnvironmentsEntitiesInner.md +docs/BulkUpsertEnvironmentsError.md +docs/BulkUpsertEnvironmentsErrorErrorsInner.md +docs/BulkUpsertEnvironmentsResponse.md +docs/BulkUpsertEnvironmentsResponseDataInner.md +docs/BulkUpsertFunctionalities.md +docs/BulkUpsertFunctionalities422Response.md +docs/BulkUpsertFunctionalitiesEntitiesInner.md +docs/BulkUpsertFunctionalitiesError.md +docs/BulkUpsertFunctionalitiesResponse.md +docs/BulkUpsertFunctionalitiesResponseDataInner.md +docs/BulkUpsertGroups422Response.md +docs/BulkUpsertServices.md +docs/BulkUpsertServices422Response.md +docs/BulkUpsertServicesEntitiesInner.md +docs/BulkUpsertServicesError.md +docs/BulkUpsertServicesResponse.md +docs/BulkUpsertServicesResponseDataInner.md +docs/BulkUpsertTeams.md +docs/BulkUpsertTeamsEntitiesInner.md +docs/BulkUpsertTeamsError.md +docs/BulkUpsertTeamsResponse.md +docs/BulkUpsertTeamsResponseDataInner.md docs/CallPeopleTaskParams.md docs/CancelIncident.md docs/CancelIncidentData.md docs/CancelIncidentDataAttributes.md docs/Catalog.md +docs/CatalogChecklistTemplate.md +docs/CatalogChecklistTemplateFieldsInner.md +docs/CatalogChecklistTemplateList.md +docs/CatalogChecklistTemplateOwnersInner.md +docs/CatalogChecklistTemplateResponse.md +docs/CatalogChecklistTemplateResponseData.md +docs/CatalogChecklistTemplatesApi.md docs/CatalogEntitiesApi.md docs/CatalogEntity.md +docs/CatalogEntityChecklist.md +docs/CatalogEntityChecklistChecklistFieldsInner.md +docs/CatalogEntityChecklistChecklistFieldsInnerData.md +docs/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.md +docs/CatalogEntityChecklistChecklistOwnersInner.md +docs/CatalogEntityChecklistChecklistOwnersInnerData.md +docs/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.md +docs/CatalogEntityChecklistList.md +docs/CatalogEntityChecklistResponse.md +docs/CatalogEntityChecklistResponseData.md +docs/CatalogEntityChecklistsApi.md docs/CatalogEntityList.md docs/CatalogEntityPropertiesApi.md docs/CatalogEntityProperty.md @@ -109,8 +225,12 @@ docs/CatalogField.md docs/CatalogFieldList.md docs/CatalogFieldResponse.md docs/CatalogFieldResponseData.md -docs/CatalogFieldsApi.md docs/CatalogList.md +docs/CatalogPropertiesApi.md +docs/CatalogProperty.md +docs/CatalogPropertyList.md +docs/CatalogPropertyResponse.md +docs/CatalogPropertyResponseData.md docs/CatalogResponse.md docs/CatalogResponseData.md docs/CatalogsApi.md @@ -119,6 +239,7 @@ docs/CauseList.md docs/CauseResponse.md docs/CauseResponseData.md docs/CausesApi.md +docs/ChangeGoogleChatSpacePrivacyTaskParams.md docs/ChangeSlackChannelPrivacyTaskParams.md docs/CommunicationsGroup.md docs/CommunicationsGroupCommunicationExternalGroupMembersInner.md @@ -133,6 +254,10 @@ docs/CommunicationsStagesApi.md docs/CommunicationsStagesResponse.md docs/CommunicationsTemplate.md docs/CommunicationsTemplateCommunicationTemplateStagesInner.md +docs/CommunicationsTemplateCommunicationTemplateStagesInnerData.md +docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.md +docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.md +docs/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.md docs/CommunicationsTemplateCommunicationType.md docs/CommunicationsTemplateResponse.md docs/CommunicationsTemplateResponseData.md @@ -156,10 +281,20 @@ docs/CreateConfluencePageTaskParams.md docs/CreateConfluencePageTaskParamsIntegration.md docs/CreateDatadogNotebookTaskParams.md docs/CreateDropboxPaperPageTaskParams.md +docs/CreateEdgeConnectorActionRequest.md +docs/CreateEdgeConnectorActionRequestAction.md +docs/CreateEdgeConnectorActionRequestActionMetadata.md +docs/CreateEdgeConnectorActionRequestActionMetadataParametersInner.md +docs/CreateEdgeConnectorRequest.md +docs/CreateEdgeConnectorRequestData.md +docs/CreateEdgeConnectorRequestDataAttributes.md +docs/CreateEdgeConnectorRequestDataAttributesFilters.md docs/CreateGithubIssueTaskParams.md +docs/CreateGithubIssueTaskParamsIssueType.md docs/CreateGitlabIssueTaskParams.md docs/CreateGoToMeetingTaskParams.md docs/CreateGoogleCalendarEventTaskParams.md +docs/CreateGoogleChatSpaceTaskParams.md docs/CreateGoogleDocsPageTaskParams.md docs/CreateGoogleDocsPermissionsTaskParams.md docs/CreateGoogleGeminiChatCompletionTaskParams.md @@ -174,6 +309,7 @@ docs/CreateJiraIssueTaskParamsIssueType.md docs/CreateJiraIssueTaskParamsPriority.md docs/CreateJiraIssueTaskParamsStatus.md docs/CreateJiraSubtaskTaskParams.md +docs/CreateJsmopsAlertTaskParams.md docs/CreateLinearIssueCommentTaskParams.md docs/CreateLinearIssueTaskParams.md docs/CreateLinearIssueTaskParamsProject.md @@ -200,6 +336,8 @@ docs/CreateServiceNowIncidentTaskParams.md docs/CreateServiceNowIncidentTaskParamsCompletion.md docs/CreateSharepointPageTaskParams.md docs/CreateShortcutStoryTaskParams.md +docs/CreateShortcutStoryTaskParamsAnyOf.md +docs/CreateShortcutStoryTaskParamsAnyOf1.md docs/CreateShortcutTaskTaskParams.md docs/CreateSlackChannelTaskParams.md docs/CreateSubIncidentTaskParams.md @@ -262,6 +400,9 @@ docs/EnvironmentResponseData.md docs/EnvironmentsApi.md docs/ErrorsList.md docs/ErrorsListErrorsInner.md +docs/EscalateAlert.md +docs/EscalateAlertData.md +docs/EscalateAlertDataAttributes.md docs/EscalationLevelsApi.md docs/EscalationLevelsPathApi.md docs/EscalationLevelsPoliciesApi.md @@ -279,8 +420,6 @@ docs/EscalationPolicyPathList.md docs/EscalationPolicyPathListDataInner.md docs/EscalationPolicyPathResponse.md docs/EscalationPolicyPathResponseData.md -docs/EscalationPolicyPathRulesInner.md -docs/EscalationPolicyPathRulesInnerAnyOf.md docs/EscalationPolicyResponse.md docs/EscalationPolicyResponseData.md docs/FormField.md @@ -326,7 +465,10 @@ docs/FunctionalityResponseData.md docs/GetAlertFieldIdParameter.md docs/GetAlertsTaskParams.md docs/GetGithubCommitsTaskParams.md +docs/GetGithubCommitsTaskParamsAnyOf.md +docs/GetGithubCommitsTaskParamsAnyOf1.md docs/GetGitlabCommitsTaskParams.md +docs/GetGitlabCommitsTaskParamsAnyOf.md docs/GetPulsesTaskParams.md docs/GetPulsesTaskParamsParentMessageThreadTask.md docs/GetTeamIdParameter.md @@ -336,6 +478,7 @@ docs/HeartbeatResponse.md docs/HeartbeatResponseData.md docs/HeartbeatsApi.md docs/HttpClientTaskParams.md +docs/ImportMeetingRecording.md docs/InTriageIncident.md docs/InTriageIncidentData.md docs/Incident.md @@ -414,6 +557,7 @@ docs/IncidentStatusPageEvent.md docs/IncidentStatusPageEventList.md docs/IncidentStatusPageEventResponse.md docs/IncidentStatusPageEventResponseData.md +docs/IncidentStatusPageEventStatusPageComponentsInner.md docs/IncidentStatusPageEventsApi.md docs/IncidentSubStatus.md docs/IncidentSubStatusList.md @@ -426,23 +570,42 @@ docs/IncidentTypeList.md docs/IncidentTypeResponse.md docs/IncidentTypeResponseData.md docs/IncidentTypesApi.md +docs/IncidentZoomMeetingGlobalDialInNumbersInner.md docs/IncidentsApi.md +docs/IncidentsChartResponse.md +docs/InviteToGoogleChatSpaceTaskParams.md +docs/InviteToMicrosoftTeamsChannelRootlyTaskParams.md docs/InviteToMicrosoftTeamsChannelTaskParams.md docs/InviteToSlackChannelOpsgenieTaskParams.md docs/InviteToSlackChannelPagerdutyTaskParams.md docs/InviteToSlackChannelRootlyTaskParams.md docs/InviteToSlackChannelTaskParams.md +docs/InviteToSlackChannelTaskParamsAnyOf.md +docs/InviteToSlackChannelTaskParamsAnyOf1.md +docs/InviteToSlackChannelTaskParamsAnyOf2.md docs/InviteToSlackChannelVictorOpsTaskParams.md docs/IpRanges.md docs/IpRangesApi.md docs/IpRangesResponse.md docs/IpRangesResponseData.md +docs/JsonapiIncludedResource.md docs/Links.md docs/LiveCallRouter.md docs/LiveCallRouterList.md docs/LiveCallRouterResponse.md docs/LiveCallRouterResponseData.md docs/LiveCallRoutersApi.md +docs/MeetingRecording.md +docs/MeetingRecordingDetail.md +docs/MeetingRecordingDetailAllOfTranscript.md +docs/MeetingRecordingDetailResponse.md +docs/MeetingRecordingDetailResponseData.md +docs/MeetingRecordingList.md +docs/MeetingRecordingResponse.md +docs/MeetingRecordingResponseData.md +docs/MeetingRecordingTranscriptSegment.md +docs/MeetingRecordingTranscriptWord.md +docs/MeetingRecordingsApi.md docs/Meta.md docs/MitigateIncident.md docs/MitigateIncidentData.md @@ -453,6 +616,7 @@ docs/NewAlertDataAttributes.md docs/NewAlertDataAttributesAlertFieldValuesAttributesInner.md docs/NewAlertDataAttributesLabelsInner.md docs/NewAlertDataAttributesLabelsInnerValue.md +docs/NewAlertDataAttributesNotificationTargetsInner.md docs/NewAlertEvent.md docs/NewAlertEventData.md docs/NewAlertEventDataAttributes.md @@ -465,6 +629,10 @@ docs/NewAlertGroupDataAttributes.md docs/NewAlertGroupDataAttributesAttributesInner.md docs/NewAlertGroupDataAttributesConditionsInner.md docs/NewAlertGroupDataAttributesTargetsInner.md +docs/NewAlertRetriggerRule.md +docs/NewAlertRetriggerRuleData.md +docs/NewAlertRetriggerRuleDataAttributes.md +docs/NewAlertRetriggerRuleDataAttributesConditionsInner.md docs/NewAlertRoute.md docs/NewAlertRouteData.md docs/NewAlertRouteDataAttributes.md @@ -489,24 +657,37 @@ docs/NewAlertsSourceDataAttributesResolutionRuleAttributes.md docs/NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner.md docs/NewAlertsSourceDataAttributesSourceableAttributes.md docs/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.md +docs/NewApiKey.md +docs/NewApiKeyData.md +docs/NewApiKeyDataAttributes.md docs/NewAuthorization.md docs/NewAuthorizationData.md docs/NewAuthorizationDataAttributes.md docs/NewCatalog.md +docs/NewCatalogChecklistTemplate.md +docs/NewCatalogChecklistTemplateData.md +docs/NewCatalogChecklistTemplateDataAttributes.md +docs/NewCatalogChecklistTemplateDataAttributesFieldsInner.md +docs/NewCatalogChecklistTemplateDataAttributesOwnersInner.md docs/NewCatalogData.md docs/NewCatalogDataAttributes.md docs/NewCatalogEntity.md docs/NewCatalogEntityData.md docs/NewCatalogEntityDataAttributes.md +docs/NewCatalogEntityDataAttributesPropertiesInner.md docs/NewCatalogEntityProperty.md docs/NewCatalogEntityPropertyData.md docs/NewCatalogEntityPropertyDataAttributes.md docs/NewCatalogField.md docs/NewCatalogFieldData.md docs/NewCatalogFieldDataAttributes.md +docs/NewCatalogProperty.md +docs/NewCatalogPropertyData.md +docs/NewCatalogPropertyDataAttributes.md docs/NewCause.md docs/NewCauseData.md docs/NewCauseDataAttributes.md +docs/NewCauseDataAttributesPropertiesInner.md docs/NewCommunicationsGroup.md docs/NewCommunicationsGroupData.md docs/NewCommunicationsGroupDataAttributes.md @@ -569,9 +750,15 @@ docs/NewEscalationPolicyPath.md docs/NewEscalationPolicyPathData.md docs/NewEscalationPolicyPathDataAttributes.md docs/NewEscalationPolicyPathDataAttributesRulesInner.md -docs/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.md -docs/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.md -docs/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.md +docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.md docs/NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.md docs/NewFormField.md docs/NewFormFieldData.md @@ -604,6 +791,8 @@ docs/NewIncident.md docs/NewIncidentActionItem.md docs/NewIncidentActionItemData.md docs/NewIncidentActionItemDataAttributes.md +docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.md +docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.md docs/NewIncidentCustomFieldSelection.md docs/NewIncidentCustomFieldSelectionData.md docs/NewIncidentCustomFieldSelectionDataAttributes.md @@ -643,6 +832,7 @@ docs/NewIncidentRoleTaskDataAttributes.md docs/NewIncidentStatusPageEvent.md docs/NewIncidentStatusPageEventData.md docs/NewIncidentStatusPageEventDataAttributes.md +docs/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.md docs/NewIncidentSubStatus.md docs/NewIncidentSubStatusData.md docs/NewIncidentSubStatusDataAttributes.md @@ -654,6 +844,9 @@ docs/NewLiveCallRouterData.md docs/NewLiveCallRouterDataAttributes.md docs/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md docs/NewLiveCallRouterDataAttributesPagingTargetsInner.md +docs/NewOnCallPayReport.md +docs/NewOnCallPayReportData.md +docs/NewOnCallPayReportDataAttributes.md docs/NewOnCallRole.md docs/NewOnCallRoleData.md docs/NewOnCallRoleDataAttributes.md @@ -729,7 +922,24 @@ docs/NewServiceDataAttributesIncidentBroadcastChannel.md docs/NewSeverity.md docs/NewSeverityData.md docs/NewSeverityDataAttributes.md +docs/NewShiftCoverageRequest.md +docs/NewShiftCoverageRequestData.md +docs/NewShiftCoverageRequestDataAttributes.md +docs/NewSla.md +docs/NewSlaData.md +docs/NewSlaDataAttributes.md +docs/NewSlaDataAttributesConditionsInner.md +docs/NewSlaDataAttributesNotificationConfigurationsInner.md docs/NewStatusPage.md +docs/NewStatusPageAnnouncement.md +docs/NewStatusPageAnnouncementData.md +docs/NewStatusPageAnnouncementDataAttributes.md +docs/NewStatusPageComponent.md +docs/NewStatusPageComponentData.md +docs/NewStatusPageComponentDataAttributes.md +docs/NewStatusPageComponentGroup.md +docs/NewStatusPageComponentGroupData.md +docs/NewStatusPageComponentGroupDataAttributes.md docs/NewStatusPageData.md docs/NewStatusPageDataAttributes.md docs/NewStatusPageTemplate.md @@ -750,10 +960,17 @@ docs/NewUserNotificationRuleDataAttributes.md docs/NewUserPhoneNumber.md docs/NewUserPhoneNumberData.md docs/NewUserPhoneNumberDataAttributes.md +docs/NewVerifiedDomain.md +docs/NewVerifiedDomainData.md +docs/NewVerifiedDomainDataAttributes.md docs/NewWebhooksEndpoint.md docs/NewWebhooksEndpointData.md docs/NewWebhooksEndpointDataAttributes.md +docs/NewWebhooksEndpointDataAttributesCustomHeadersInner.md docs/NewWorkflow.md +docs/NewWorkflowActionItemFormFieldCondition.md +docs/NewWorkflowActionItemFormFieldConditionData.md +docs/NewWorkflowActionItemFormFieldConditionDataAttributes.md docs/NewWorkflowCustomFieldSelection.md docs/NewWorkflowCustomFieldSelectionData.md docs/NewWorkflowCustomFieldSelectionDataAttributes.md @@ -779,6 +996,11 @@ docs/NewWorkflowTask.md docs/NewWorkflowTaskData.md docs/NewWorkflowTaskDataAttributes.md docs/NewWorkflowTaskDataAttributesTaskParams.md +docs/OnCallPayReport.md +docs/OnCallPayReportList.md +docs/OnCallPayReportResponse.md +docs/OnCallPayReportResponseData.md +docs/OnCallPayReportsApi.md docs/OnCallRole.md docs/OnCallRoleList.md docs/OnCallRoleRelationship.md @@ -792,15 +1014,36 @@ docs/OnCallShadowResponseData.md docs/OnCallShadowsApi.md docs/OnCallShadowsList.md docs/OnCallShadowsListDataInner.md +docs/OnCallsApi.md +docs/Oncall.md +docs/OncallList.md +docs/OncallListDataInner.md +docs/OncallRelationships.md +docs/OncallRelationshipsEscalationPolicy.md +docs/OncallRelationshipsEscalationPolicyData.md +docs/OncallRelationshipsSchedule.md +docs/OncallRelationshipsScheduleData.md +docs/OncallRelationshipsUser.md +docs/OncallRelationshipsUserData.md docs/OverrideShift.md docs/OverrideShiftList.md docs/OverrideShiftResponse.md docs/OverrideShiftResponseData.md docs/OverrideShiftsApi.md +docs/PageJsmopsOnCallRespondersTaskParams.md docs/PageOpsgenieOnCallRespondersTaskParams.md docs/PagePagerdutyOnCallRespondersTaskParams.md docs/PageRootlyOnCallRespondersTaskParams.md docs/PageVictorOpsOnCallRespondersTaskParams.md +docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf.md +docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.md +docs/PatchAlertRoute.md +docs/PatchAlertRouteData.md +docs/PatchAlertRouteDataAttributes.md +docs/PatchAlertRouteDataAttributesRulesInner.md +docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.md +docs/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.md +docs/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.md docs/PhoneVerificationResponse.md docs/Playbook.md docs/PlaybookList.md @@ -825,11 +1068,13 @@ docs/PulseResponse.md docs/PulseResponseData.md docs/PulseTriggerParams.md docs/PulsesApi.md +docs/Receipt.md docs/RedisClientTaskParams.md docs/RemoveGoogleDocsPermissionsTaskParams.md docs/RemoveSubscribers.md docs/RemoveSubscribersData.md docs/RemoveSubscribersDataAttributes.md +docs/RenameGoogleChatSpaceTaskParams.md docs/RenameMicrosoftTeamsChannelTaskParams.md docs/RenameSlackChannelTaskParams.md docs/ResolveAlert.md @@ -875,6 +1120,9 @@ docs/RoleRelationshipData.md docs/RoleResponse.md docs/RoleResponseData.md docs/RolesApi.md +docs/RotateApiKey.md +docs/RotateApiKeyData.md +docs/RotateApiKeyDataAttributes.md docs/RunCommandHerokuTaskParams.md docs/Schedule.md docs/ScheduleList.md @@ -907,10 +1155,14 @@ docs/SecretResponseData.md docs/SecretsApi.md docs/SendDashboardReportTaskParams.md docs/SendEmailTaskParams.md +docs/SendGoogleChatAttachmentsTaskParams.md +docs/SendGoogleChatMessageTaskParams.md docs/SendMicrosoftTeamsBlocksTaskParams.md +docs/SendMicrosoftTeamsChatMessageTaskParams.md docs/SendMicrosoftTeamsMessageTaskParams.md docs/SendSlackBlocksTaskParams.md docs/SendSlackMessageTaskParams.md +docs/SendSlackMessageTaskParamsAnyOf.md docs/SendSmsTaskParams.md docs/SendWhatsappMessageTaskParams.md docs/Service.md @@ -926,6 +1178,11 @@ docs/SeverityList.md docs/SeverityResponse.md docs/SeverityResponseData.md docs/Shift.md +docs/ShiftCoverageRequest.md +docs/ShiftCoverageRequestList.md +docs/ShiftCoverageRequestResponse.md +docs/ShiftCoverageRequestResponseData.md +docs/ShiftCoverageRequestsApi.md docs/ShiftList.md docs/ShiftListDataInner.md docs/ShiftOverride.md @@ -936,17 +1193,44 @@ docs/ShiftRelationshipsAssignee.md docs/ShiftRelationshipsAssigneeData.md docs/ShiftRelationshipsShiftOverride.md docs/ShiftRelationshipsShiftOverrideData.md -docs/ShiftRelationshipsUser.md -docs/ShiftRelationshipsUserData.md docs/ShiftsApi.md docs/SimpleTriggerParams.md +docs/Sla.md +docs/SlaConditionsInner.md +docs/SlaList.md +docs/SlaNotificationConfigurationsInner.md +docs/SlaResponse.md +docs/SlaResponseData.md +docs/SlackChannel.md +docs/SlasApi.md docs/SnapshotDatadogGraphTaskParams.md docs/SnapshotGrafanaDashboardTaskParams.md docs/SnapshotLookerLookTaskParams.md docs/SnapshotNewRelicGraphTaskParams.md +docs/SnoozeAlert.md +docs/SnoozeAlertData.md +docs/SnoozeAlertDataAttributes.md +docs/StartSessionRequest.md +docs/StartSessionResponse.md +docs/StartSessionResponseData.md docs/Status.md docs/StatusList.md docs/StatusPage.md +docs/StatusPageAnnouncement.md +docs/StatusPageAnnouncementList.md +docs/StatusPageAnnouncementResponse.md +docs/StatusPageAnnouncementResponseData.md +docs/StatusPageAnnouncementsApi.md +docs/StatusPageComponent.md +docs/StatusPageComponentGroup.md +docs/StatusPageComponentGroupList.md +docs/StatusPageComponentGroupResponse.md +docs/StatusPageComponentGroupResponseData.md +docs/StatusPageComponentGroupsApi.md +docs/StatusPageComponentList.md +docs/StatusPageComponentResponse.md +docs/StatusPageComponentResponseData.md +docs/StatusPageComponentsApi.md docs/StatusPageList.md docs/StatusPageResponse.md docs/StatusPageResponseData.md @@ -992,13 +1276,12 @@ docs/UpdateAlertFieldDataAttributes.md docs/UpdateAlertGroup.md docs/UpdateAlertGroupData.md docs/UpdateAlertGroupDataAttributes.md +docs/UpdateAlertRetriggerRule.md +docs/UpdateAlertRetriggerRuleData.md +docs/UpdateAlertRetriggerRuleDataAttributes.md docs/UpdateAlertRoute.md docs/UpdateAlertRouteData.md docs/UpdateAlertRouteDataAttributes.md -docs/UpdateAlertRouteDataAttributesRulesInner.md -docs/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner.md -docs/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.md -docs/UpdateAlertRouteDataAttributesRulesInnerDestinationsInner.md docs/UpdateAlertRoutingRule.md docs/UpdateAlertRoutingRuleData.md docs/UpdateAlertRoutingRuleDataAttributes.md @@ -1010,12 +1293,18 @@ docs/UpdateAlertUrgencyDataAttributes.md docs/UpdateAlertsSource.md docs/UpdateAlertsSourceData.md docs/UpdateAlertsSourceDataAttributes.md +docs/UpdateApiKey.md +docs/UpdateApiKeyData.md +docs/UpdateApiKeyDataAttributes.md docs/UpdateAsanaTaskTaskParams.md docs/UpdateAttachedAlertsTaskParams.md docs/UpdateAuthorization.md docs/UpdateAuthorizationData.md docs/UpdateAuthorizationDataAttributes.md docs/UpdateCatalog.md +docs/UpdateCatalogChecklistTemplate.md +docs/UpdateCatalogChecklistTemplateData.md +docs/UpdateCatalogChecklistTemplateDataAttributes.md docs/UpdateCatalogData.md docs/UpdateCatalogDataAttributes.md docs/UpdateCatalogEntity.md @@ -1027,6 +1316,9 @@ docs/UpdateCatalogEntityPropertyDataAttributes.md docs/UpdateCatalogField.md docs/UpdateCatalogFieldData.md docs/UpdateCatalogFieldDataAttributes.md +docs/UpdateCatalogProperty.md +docs/UpdateCatalogPropertyData.md +docs/UpdateCatalogPropertyDataAttributes.md docs/UpdateCause.md docs/UpdateCauseData.md docs/UpdateCauseDataAttributes.md @@ -1069,6 +1361,12 @@ docs/UpdateDatadogNotebookTaskParamsTemplate.md docs/UpdateDropboxPaperPageTaskParams.md docs/UpdateEdgeConnector.md docs/UpdateEdgeConnectorAction.md +docs/UpdateEdgeConnectorActionRequest.md +docs/UpdateEdgeConnectorActionRequestAction.md +docs/UpdateEdgeConnectorEdgeConnector.md +docs/UpdateEdgeConnectorRequest.md +docs/UpdateEdgeConnectorRequestData.md +docs/UpdateEdgeConnectorRequestDataAttributes.md docs/UpdateEnvironment.md docs/UpdateEnvironmentData.md docs/UpdateEnvironmentDataAttributes.md @@ -1109,8 +1407,10 @@ docs/UpdateFunctionality.md docs/UpdateFunctionalityData.md docs/UpdateFunctionalityDataAttributes.md docs/UpdateGithubIssueTaskParams.md +docs/UpdateGithubIssueTaskParamsRepository.md docs/UpdateGitlabIssueTaskParams.md docs/UpdateGoogleCalendarEventTaskParams.md +docs/UpdateGoogleChatSpaceDescriptionTaskParams.md docs/UpdateGoogleDocsPageTaskParams.md docs/UpdateHeartbeat.md docs/UpdateHeartbeatData.md @@ -1182,6 +1482,9 @@ docs/UpdateLiveCallRouterDataAttributes.md docs/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md docs/UpdateMotionTaskTaskParams.md docs/UpdateNotionPageTaskParams.md +docs/UpdateOnCallPayReport.md +docs/UpdateOnCallPayReportData.md +docs/UpdateOnCallPayReportDataAttributes.md docs/UpdateOnCallRole.md docs/UpdateOnCallRoleData.md docs/UpdateOnCallRoleDataAttributes.md @@ -1251,8 +1554,20 @@ docs/UpdateSeverityDataAttributes.md docs/UpdateSharepointPageTaskParams.md docs/UpdateShortcutStoryTaskParams.md docs/UpdateShortcutTaskTaskParams.md +docs/UpdateSla.md +docs/UpdateSlaData.md +docs/UpdateSlaDataAttributes.md docs/UpdateSlackChannelTopicTaskParams.md docs/UpdateStatusPage.md +docs/UpdateStatusPageAnnouncement.md +docs/UpdateStatusPageAnnouncementData.md +docs/UpdateStatusPageAnnouncementDataAttributes.md +docs/UpdateStatusPageComponent.md +docs/UpdateStatusPageComponentData.md +docs/UpdateStatusPageComponentDataAttributes.md +docs/UpdateStatusPageComponentGroup.md +docs/UpdateStatusPageComponentGroupData.md +docs/UpdateStatusPageComponentGroupDataAttributes.md docs/UpdateStatusPageData.md docs/UpdateStatusPageDataAttributes.md docs/UpdateStatusPageTemplate.md @@ -1283,6 +1598,9 @@ docs/UpdateWebhooksEndpoint.md docs/UpdateWebhooksEndpointData.md docs/UpdateWebhooksEndpointDataAttributes.md docs/UpdateWorkflow.md +docs/UpdateWorkflowActionItemFormFieldCondition.md +docs/UpdateWorkflowActionItemFormFieldConditionData.md +docs/UpdateWorkflowActionItemFormFieldConditionDataAttributes.md docs/UpdateWorkflowCustomFieldSelection.md docs/UpdateWorkflowCustomFieldSelectionData.md docs/UpdateWorkflowCustomFieldSelectionDataAttributes.md @@ -1299,6 +1617,7 @@ docs/UpdateWorkflowTaskData.md docs/UpdateWorkflowTaskDataAttributes.md docs/UpdateWorkflowTaskDataAttributesTaskParams.md docs/UpdateZendeskTicketTaskParams.md +docs/UptimeChartResponse.md docs/User.md docs/UserEmailAddress.md docs/UserEmailAddressList.md @@ -1321,16 +1640,11 @@ docs/UserRelationships.md docs/UserResponse.md docs/UserResponseData.md docs/UsersApi.md -docs/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest.md -docs/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction.md -docs/V1EdgeConnectorsEdgeConnectorIdActionsPostRequest.md -docs/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction.md -docs/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata.md -docs/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner.md -docs/V1EdgeConnectorsIdPatchRequest.md -docs/V1EdgeConnectorsIdPatchRequestEdgeConnector.md -docs/V1EdgeConnectorsPostRequest.md -docs/V1EdgeConnectorsPostRequestEdgeConnector.md +docs/VerifiedDomain.md +docs/VerifiedDomainList.md +docs/VerifiedDomainResponse.md +docs/VerifiedDomainResponseData.md +docs/VerifiedDomainsApi.md docs/VerifyPhoneNumberRequest.md docs/WebhooksDeliveriesApi.md docs/WebhooksDelivery.md @@ -1343,6 +1657,11 @@ docs/WebhooksEndpointResponse.md docs/WebhooksEndpointResponseData.md docs/WebhooksEndpointsApi.md docs/Workflow.md +docs/WorkflowActionItemFormFieldCondition.md +docs/WorkflowActionItemFormFieldConditionList.md +docs/WorkflowActionItemFormFieldConditionResponse.md +docs/WorkflowActionItemFormFieldConditionResponseData.md +docs/WorkflowActionItemFormFieldConditionsApi.md docs/WorkflowCustomFieldSelection.md docs/WorkflowCustomFieldSelectionList.md docs/WorkflowCustomFieldSelectionResponse.md @@ -1392,19 +1711,24 @@ src/main/java/com/rootly/client/ProgressResponseBody.java src/main/java/com/rootly/client/ServerConfiguration.java src/main/java/com/rootly/client/ServerVariable.java src/main/java/com/rootly/client/StringUtil.java +src/main/java/com/rootly/client/api/AiChatApi.java src/main/java/com/rootly/client/api/AlertEventsApi.java src/main/java/com/rootly/client/api/AlertFieldsApi.java src/main/java/com/rootly/client/api/AlertGroupsApi.java +src/main/java/com/rootly/client/api/AlertRetriggerRulesApi.java src/main/java/com/rootly/client/api/AlertRoutesApi.java src/main/java/com/rootly/client/api/AlertRoutingRulesApi.java src/main/java/com/rootly/client/api/AlertSourcesApi.java src/main/java/com/rootly/client/api/AlertUrgenciesApi.java src/main/java/com/rootly/client/api/AlertsApi.java +src/main/java/com/rootly/client/api/ApiKeysApi.java src/main/java/com/rootly/client/api/AuditsApi.java src/main/java/com/rootly/client/api/AuthorizationsApi.java +src/main/java/com/rootly/client/api/CatalogChecklistTemplatesApi.java src/main/java/com/rootly/client/api/CatalogEntitiesApi.java +src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java src/main/java/com/rootly/client/api/CatalogEntityPropertiesApi.java -src/main/java/com/rootly/client/api/CatalogFieldsApi.java +src/main/java/com/rootly/client/api/CatalogPropertiesApi.java src/main/java/com/rootly/client/api/CatalogsApi.java src/main/java/com/rootly/client/api/CausesApi.java src/main/java/com/rootly/client/api/CommunicationsGroupsApi.java @@ -1454,8 +1778,11 @@ src/main/java/com/rootly/client/api/IncidentTypesApi.java src/main/java/com/rootly/client/api/IncidentsApi.java src/main/java/com/rootly/client/api/IpRangesApi.java src/main/java/com/rootly/client/api/LiveCallRoutersApi.java +src/main/java/com/rootly/client/api/MeetingRecordingsApi.java +src/main/java/com/rootly/client/api/OnCallPayReportsApi.java src/main/java/com/rootly/client/api/OnCallRolesApi.java src/main/java/com/rootly/client/api/OnCallShadowsApi.java +src/main/java/com/rootly/client/api/OnCallsApi.java src/main/java/com/rootly/client/api/OverrideShiftsApi.java src/main/java/com/rootly/client/api/PlaybookTasksApi.java src/main/java/com/rootly/client/api/PlaybooksApi.java @@ -1474,7 +1801,12 @@ src/main/java/com/rootly/client/api/SchedulesApi.java src/main/java/com/rootly/client/api/SecretsApi.java src/main/java/com/rootly/client/api/ServicesApi.java src/main/java/com/rootly/client/api/SeveritiesApi.java +src/main/java/com/rootly/client/api/ShiftCoverageRequestsApi.java src/main/java/com/rootly/client/api/ShiftsApi.java +src/main/java/com/rootly/client/api/SlasApi.java +src/main/java/com/rootly/client/api/StatusPageAnnouncementsApi.java +src/main/java/com/rootly/client/api/StatusPageComponentGroupsApi.java +src/main/java/com/rootly/client/api/StatusPageComponentsApi.java src/main/java/com/rootly/client/api/StatusPageTemplatesApi.java src/main/java/com/rootly/client/api/StatusPagesApi.java src/main/java/com/rootly/client/api/StatusesApi.java @@ -1484,8 +1816,10 @@ src/main/java/com/rootly/client/api/UserEmailAddressesApi.java src/main/java/com/rootly/client/api/UserNotificationRulesApi.java src/main/java/com/rootly/client/api/UserPhoneNumbersApi.java src/main/java/com/rootly/client/api/UsersApi.java +src/main/java/com/rootly/client/api/VerifiedDomainsApi.java src/main/java/com/rootly/client/api/WebhooksDeliveriesApi.java src/main/java/com/rootly/client/api/WebhooksEndpointsApi.java +src/main/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApi.java src/main/java/com/rootly/client/api/WorkflowFormFieldConditionsApi.java src/main/java/com/rootly/client/api/WorkflowGroupsApi.java src/main/java/com/rootly/client/api/WorkflowRunsApi.java @@ -1500,20 +1834,38 @@ src/main/java/com/rootly/client/model/ActionItemTriggerParams.java src/main/java/com/rootly/client/model/AddActionItemTaskParams.java src/main/java/com/rootly/client/model/AddActionItemTaskParamsAssignedToUser.java src/main/java/com/rootly/client/model/AddActionItemTaskParamsPostToSlackChannelsInner.java +src/main/java/com/rootly/client/model/AddMicrosoftTeamsChatTabTaskParams.java src/main/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParams.java src/main/java/com/rootly/client/model/AddRoleTaskParams.java src/main/java/com/rootly/client/model/AddRoleTaskParamsAssignedToUser.java src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParams.java +src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf.java +src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1.java src/main/java/com/rootly/client/model/AddSubscribers.java src/main/java/com/rootly/client/model/AddSubscribersData.java src/main/java/com/rootly/client/model/AddSubscribersDataAttributes.java src/main/java/com/rootly/client/model/AddTeamTaskParams.java src/main/java/com/rootly/client/model/AddToTimelineTaskParams.java +src/main/java/com/rootly/client/model/AiChatResponse.java +src/main/java/com/rootly/client/model/AiChatResponseData.java +src/main/java/com/rootly/client/model/AiChatResponseDataAttributes.java +src/main/java/com/rootly/client/model/AiChatSessionMessage.java +src/main/java/com/rootly/client/model/AiChatSessionMessageList.java src/main/java/com/rootly/client/model/Alert.java +src/main/java/com/rootly/client/model/AlertAlertFieldValuesInner.java +src/main/java/com/rootly/client/model/AlertAlertingTargetsInner.java src/main/java/com/rootly/client/model/AlertEvent.java +src/main/java/com/rootly/client/model/AlertEventEscalationTarget.java +src/main/java/com/rootly/client/model/AlertEventEscalationTargetData.java +src/main/java/com/rootly/client/model/AlertEventFeedList.java +src/main/java/com/rootly/client/model/AlertEventFeedMeta.java +src/main/java/com/rootly/client/model/AlertEventIncident.java src/main/java/com/rootly/client/model/AlertEventList.java src/main/java/com/rootly/client/model/AlertEventResponse.java src/main/java/com/rootly/client/model/AlertEventResponseData.java +src/main/java/com/rootly/client/model/AlertEventSchedule.java +src/main/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInner.java +src/main/java/com/rootly/client/model/AlertEventUser.java src/main/java/com/rootly/client/model/AlertField.java src/main/java/com/rootly/client/model/AlertFieldList.java src/main/java/com/rootly/client/model/AlertFieldListDataInner.java @@ -1528,6 +1880,11 @@ src/main/java/com/rootly/client/model/AlertGroupResponseData.java src/main/java/com/rootly/client/model/AlertList.java src/main/java/com/rootly/client/model/AlertResponse.java src/main/java/com/rootly/client/model/AlertResponseData.java +src/main/java/com/rootly/client/model/AlertRetriggerRule.java +src/main/java/com/rootly/client/model/AlertRetriggerRuleConditionsInner.java +src/main/java/com/rootly/client/model/AlertRetriggerRuleList.java +src/main/java/com/rootly/client/model/AlertRetriggerRuleResponse.java +src/main/java/com/rootly/client/model/AlertRetriggerRuleResponseData.java src/main/java/com/rootly/client/model/AlertRoute.java src/main/java/com/rootly/client/model/AlertRouteList.java src/main/java/com/rootly/client/model/AlertRouteResponse.java @@ -1545,6 +1902,8 @@ src/main/java/com/rootly/client/model/AlertRoutingRuleResponseData.java src/main/java/com/rootly/client/model/AlertRoutingRuleTarget.java src/main/java/com/rootly/client/model/AlertTriggerParams.java src/main/java/com/rootly/client/model/AlertTriggerParamsAlertFieldConditionsInner.java +src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditions.java +src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditionsConditionsInner.java src/main/java/com/rootly/client/model/AlertUrgency.java src/main/java/com/rootly/client/model/AlertUrgencyList.java src/main/java/com/rootly/client/model/AlertUrgencyResponse.java @@ -1553,6 +1912,15 @@ src/main/java/com/rootly/client/model/AlertsSource.java src/main/java/com/rootly/client/model/AlertsSourceList.java src/main/java/com/rootly/client/model/AlertsSourceResponse.java src/main/java/com/rootly/client/model/AlertsSourceResponseData.java +src/main/java/com/rootly/client/model/AlertsSourceSourceableAttributes.java +src/main/java/com/rootly/client/model/ApiKey.java +src/main/java/com/rootly/client/model/ApiKeyList.java +src/main/java/com/rootly/client/model/ApiKeyResponse.java +src/main/java/com/rootly/client/model/ApiKeyResponseData.java +src/main/java/com/rootly/client/model/ApiKeyWithTokenResponse.java +src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseData.java +src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseDataAttributes.java +src/main/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParams.java src/main/java/com/rootly/client/model/ArchiveMicrosoftTeamsChannelsTaskParams.java src/main/java/com/rootly/client/model/ArchiveSlackChannelsTaskParams.java src/main/java/com/rootly/client/model/AssignRoleToUser.java @@ -1562,6 +1930,8 @@ src/main/java/com/rootly/client/model/AttachAlert.java src/main/java/com/rootly/client/model/AttachAlertData.java src/main/java/com/rootly/client/model/AttachAlertDataAttributes.java src/main/java/com/rootly/client/model/AttachDatadogDashboardsTaskParams.java +src/main/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParams.java +src/main/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParams.java src/main/java/com/rootly/client/model/Audit.java src/main/java/com/rootly/client/model/AuditsList.java src/main/java/com/rootly/client/model/AuditsListDataInner.java @@ -1571,14 +1941,90 @@ src/main/java/com/rootly/client/model/AuthorizationResponse.java src/main/java/com/rootly/client/model/AuthorizationResponseData.java src/main/java/com/rootly/client/model/AutoAssignRoleOpsgenieTaskParams.java src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParams.java +src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf.java +src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1.java src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParams.java +src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf.java +src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1.java +src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2.java +src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3.java +src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4.java src/main/java/com/rootly/client/model/AutoAssignRoleVictorOpsTaskParams.java +src/main/java/com/rootly/client/model/BuiltinField.java +src/main/java/com/rootly/client/model/BulkDeleteCatalogEntities422Response.java +src/main/java/com/rootly/client/model/BulkDeleteEnvironments422Response.java +src/main/java/com/rootly/client/model/BulkDeleteFunctionalities422Response.java +src/main/java/com/rootly/client/model/BulkDeleteGroups422Response.java +src/main/java/com/rootly/client/model/BulkDeleteServices422Response.java +src/main/java/com/rootly/client/model/BulkDestroyCatalogEntities.java +src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf.java +src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1.java +src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponse.java +src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseData.java +src/main/java/com/rootly/client/model/BulkDestroyEnvironments.java +src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOf.java +src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsResponse.java +src/main/java/com/rootly/client/model/BulkDestroyFunctionalities.java +src/main/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponse.java +src/main/java/com/rootly/client/model/BulkDestroyServices.java +src/main/java/com/rootly/client/model/BulkDestroyServicesResponse.java +src/main/java/com/rootly/client/model/BulkDestroyTeams.java +src/main/java/com/rootly/client/model/BulkDestroyTeamsResponse.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities422Response.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInner.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesError.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInner.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponse.java +src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInner.java +src/main/java/com/rootly/client/model/BulkUpsertEnvironments.java +src/main/java/com/rootly/client/model/BulkUpsertEnvironments422Response.java +src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInner.java +src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsError.java +src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInner.java +src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponse.java +src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInner.java +src/main/java/com/rootly/client/model/BulkUpsertFunctionalities.java +src/main/java/com/rootly/client/model/BulkUpsertFunctionalities422Response.java +src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInner.java +src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesError.java +src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponse.java +src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInner.java +src/main/java/com/rootly/client/model/BulkUpsertGroups422Response.java +src/main/java/com/rootly/client/model/BulkUpsertServices.java +src/main/java/com/rootly/client/model/BulkUpsertServices422Response.java +src/main/java/com/rootly/client/model/BulkUpsertServicesEntitiesInner.java +src/main/java/com/rootly/client/model/BulkUpsertServicesError.java +src/main/java/com/rootly/client/model/BulkUpsertServicesResponse.java +src/main/java/com/rootly/client/model/BulkUpsertServicesResponseDataInner.java +src/main/java/com/rootly/client/model/BulkUpsertTeams.java +src/main/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInner.java +src/main/java/com/rootly/client/model/BulkUpsertTeamsError.java +src/main/java/com/rootly/client/model/BulkUpsertTeamsResponse.java +src/main/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInner.java src/main/java/com/rootly/client/model/CallPeopleTaskParams.java src/main/java/com/rootly/client/model/CancelIncident.java src/main/java/com/rootly/client/model/CancelIncidentData.java src/main/java/com/rootly/client/model/CancelIncidentDataAttributes.java src/main/java/com/rootly/client/model/Catalog.java +src/main/java/com/rootly/client/model/CatalogChecklistTemplate.java +src/main/java/com/rootly/client/model/CatalogChecklistTemplateFieldsInner.java +src/main/java/com/rootly/client/model/CatalogChecklistTemplateList.java +src/main/java/com/rootly/client/model/CatalogChecklistTemplateOwnersInner.java +src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponse.java +src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponseData.java src/main/java/com/rootly/client/model/CatalogEntity.java +src/main/java/com/rootly/client/model/CatalogEntityChecklist.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInner.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerData.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInner.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerData.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistList.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistResponse.java +src/main/java/com/rootly/client/model/CatalogEntityChecklistResponseData.java src/main/java/com/rootly/client/model/CatalogEntityList.java src/main/java/com/rootly/client/model/CatalogEntityProperty.java src/main/java/com/rootly/client/model/CatalogEntityPropertyList.java @@ -1591,12 +2037,17 @@ src/main/java/com/rootly/client/model/CatalogFieldList.java src/main/java/com/rootly/client/model/CatalogFieldResponse.java src/main/java/com/rootly/client/model/CatalogFieldResponseData.java src/main/java/com/rootly/client/model/CatalogList.java +src/main/java/com/rootly/client/model/CatalogProperty.java +src/main/java/com/rootly/client/model/CatalogPropertyList.java +src/main/java/com/rootly/client/model/CatalogPropertyResponse.java +src/main/java/com/rootly/client/model/CatalogPropertyResponseData.java src/main/java/com/rootly/client/model/CatalogResponse.java src/main/java/com/rootly/client/model/CatalogResponseData.java src/main/java/com/rootly/client/model/Cause.java src/main/java/com/rootly/client/model/CauseList.java src/main/java/com/rootly/client/model/CauseResponse.java src/main/java/com/rootly/client/model/CauseResponseData.java +src/main/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParams.java src/main/java/com/rootly/client/model/ChangeSlackChannelPrivacyTaskParams.java src/main/java/com/rootly/client/model/CommunicationsGroup.java src/main/java/com/rootly/client/model/CommunicationsGroupCommunicationExternalGroupMembersInner.java @@ -1609,6 +2060,10 @@ src/main/java/com/rootly/client/model/CommunicationsStageResponseData.java src/main/java/com/rootly/client/model/CommunicationsStagesResponse.java src/main/java/com/rootly/client/model/CommunicationsTemplate.java src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInner.java +src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerData.java +src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.java +src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.java +src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.java src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationType.java src/main/java/com/rootly/client/model/CommunicationsTemplateResponse.java src/main/java/com/rootly/client/model/CommunicationsTemplateResponseData.java @@ -1630,10 +2085,20 @@ src/main/java/com/rootly/client/model/CreateConfluencePageTaskParams.java src/main/java/com/rootly/client/model/CreateConfluencePageTaskParamsIntegration.java src/main/java/com/rootly/client/model/CreateDatadogNotebookTaskParams.java src/main/java/com/rootly/client/model/CreateDropboxPaperPageTaskParams.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequest.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestAction.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadata.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadataParametersInner.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorRequest.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestData.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributes.java +src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFilters.java src/main/java/com/rootly/client/model/CreateGithubIssueTaskParams.java +src/main/java/com/rootly/client/model/CreateGithubIssueTaskParamsIssueType.java src/main/java/com/rootly/client/model/CreateGitlabIssueTaskParams.java src/main/java/com/rootly/client/model/CreateGoToMeetingTaskParams.java src/main/java/com/rootly/client/model/CreateGoogleCalendarEventTaskParams.java +src/main/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParams.java src/main/java/com/rootly/client/model/CreateGoogleDocsPageTaskParams.java src/main/java/com/rootly/client/model/CreateGoogleDocsPermissionsTaskParams.java src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParams.java @@ -1648,6 +2113,7 @@ src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIssueType.java src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsPriority.java src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsStatus.java src/main/java/com/rootly/client/model/CreateJiraSubtaskTaskParams.java +src/main/java/com/rootly/client/model/CreateJsmopsAlertTaskParams.java src/main/java/com/rootly/client/model/CreateLinearIssueCommentTaskParams.java src/main/java/com/rootly/client/model/CreateLinearIssueTaskParams.java src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsProject.java @@ -1674,6 +2140,8 @@ src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParams.java src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParamsCompletion.java src/main/java/com/rootly/client/model/CreateSharepointPageTaskParams.java src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParams.java +src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf.java +src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1.java src/main/java/com/rootly/client/model/CreateShortcutTaskTaskParams.java src/main/java/com/rootly/client/model/CreateSlackChannelTaskParams.java src/main/java/com/rootly/client/model/CreateSubIncidentTaskParams.java @@ -1726,6 +2194,9 @@ src/main/java/com/rootly/client/model/EnvironmentResponse.java src/main/java/com/rootly/client/model/EnvironmentResponseData.java src/main/java/com/rootly/client/model/ErrorsList.java src/main/java/com/rootly/client/model/ErrorsListErrorsInner.java +src/main/java/com/rootly/client/model/EscalateAlert.java +src/main/java/com/rootly/client/model/EscalateAlertData.java +src/main/java/com/rootly/client/model/EscalateAlertDataAttributes.java src/main/java/com/rootly/client/model/EscalationPolicy.java src/main/java/com/rootly/client/model/EscalationPolicyLevel.java src/main/java/com/rootly/client/model/EscalationPolicyLevelList.java @@ -1738,8 +2209,6 @@ src/main/java/com/rootly/client/model/EscalationPolicyPathList.java src/main/java/com/rootly/client/model/EscalationPolicyPathListDataInner.java src/main/java/com/rootly/client/model/EscalationPolicyPathResponse.java src/main/java/com/rootly/client/model/EscalationPolicyPathResponseData.java -src/main/java/com/rootly/client/model/EscalationPolicyPathRulesInner.java -src/main/java/com/rootly/client/model/EscalationPolicyPathRulesInnerAnyOf.java src/main/java/com/rootly/client/model/EscalationPolicyResponse.java src/main/java/com/rootly/client/model/EscalationPolicyResponseData.java src/main/java/com/rootly/client/model/FormField.java @@ -1777,7 +2246,10 @@ src/main/java/com/rootly/client/model/FunctionalityResponseData.java src/main/java/com/rootly/client/model/GetAlertFieldIdParameter.java src/main/java/com/rootly/client/model/GetAlertsTaskParams.java src/main/java/com/rootly/client/model/GetGithubCommitsTaskParams.java +src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf.java +src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1.java src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParams.java +src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOf.java src/main/java/com/rootly/client/model/GetPulsesTaskParams.java src/main/java/com/rootly/client/model/GetPulsesTaskParamsParentMessageThreadTask.java src/main/java/com/rootly/client/model/GetTeamIdParameter.java @@ -1786,6 +2258,7 @@ src/main/java/com/rootly/client/model/HeartbeatList.java src/main/java/com/rootly/client/model/HeartbeatResponse.java src/main/java/com/rootly/client/model/HeartbeatResponseData.java src/main/java/com/rootly/client/model/HttpClientTaskParams.java +src/main/java/com/rootly/client/model/ImportMeetingRecording.java src/main/java/com/rootly/client/model/InTriageIncident.java src/main/java/com/rootly/client/model/InTriageIncidentData.java src/main/java/com/rootly/client/model/Incident.java @@ -1851,6 +2324,7 @@ src/main/java/com/rootly/client/model/IncidentStatusPageEvent.java src/main/java/com/rootly/client/model/IncidentStatusPageEventList.java src/main/java/com/rootly/client/model/IncidentStatusPageEventResponse.java src/main/java/com/rootly/client/model/IncidentStatusPageEventResponseData.java +src/main/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInner.java src/main/java/com/rootly/client/model/IncidentSubStatus.java src/main/java/com/rootly/client/model/IncidentSubStatusList.java src/main/java/com/rootly/client/model/IncidentSubStatusResponse.java @@ -1860,20 +2334,38 @@ src/main/java/com/rootly/client/model/IncidentType.java src/main/java/com/rootly/client/model/IncidentTypeList.java src/main/java/com/rootly/client/model/IncidentTypeResponse.java src/main/java/com/rootly/client/model/IncidentTypeResponseData.java +src/main/java/com/rootly/client/model/IncidentZoomMeetingGlobalDialInNumbersInner.java +src/main/java/com/rootly/client/model/IncidentsChartResponse.java +src/main/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParams.java +src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParams.java src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelTaskParams.java src/main/java/com/rootly/client/model/InviteToSlackChannelOpsgenieTaskParams.java src/main/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParams.java src/main/java/com/rootly/client/model/InviteToSlackChannelRootlyTaskParams.java src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParams.java +src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf.java +src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1.java +src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2.java src/main/java/com/rootly/client/model/InviteToSlackChannelVictorOpsTaskParams.java src/main/java/com/rootly/client/model/IpRanges.java src/main/java/com/rootly/client/model/IpRangesResponse.java src/main/java/com/rootly/client/model/IpRangesResponseData.java +src/main/java/com/rootly/client/model/JsonapiIncludedResource.java src/main/java/com/rootly/client/model/Links.java src/main/java/com/rootly/client/model/LiveCallRouter.java src/main/java/com/rootly/client/model/LiveCallRouterList.java src/main/java/com/rootly/client/model/LiveCallRouterResponse.java src/main/java/com/rootly/client/model/LiveCallRouterResponseData.java +src/main/java/com/rootly/client/model/MeetingRecording.java +src/main/java/com/rootly/client/model/MeetingRecordingDetail.java +src/main/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscript.java +src/main/java/com/rootly/client/model/MeetingRecordingDetailResponse.java +src/main/java/com/rootly/client/model/MeetingRecordingDetailResponseData.java +src/main/java/com/rootly/client/model/MeetingRecordingList.java +src/main/java/com/rootly/client/model/MeetingRecordingResponse.java +src/main/java/com/rootly/client/model/MeetingRecordingResponseData.java +src/main/java/com/rootly/client/model/MeetingRecordingTranscriptSegment.java +src/main/java/com/rootly/client/model/MeetingRecordingTranscriptWord.java src/main/java/com/rootly/client/model/Meta.java src/main/java/com/rootly/client/model/MitigateIncident.java src/main/java/com/rootly/client/model/MitigateIncidentData.java @@ -1884,6 +2376,7 @@ src/main/java/com/rootly/client/model/NewAlertDataAttributes.java src/main/java/com/rootly/client/model/NewAlertDataAttributesAlertFieldValuesAttributesInner.java src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInner.java src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInnerValue.java +src/main/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInner.java src/main/java/com/rootly/client/model/NewAlertEvent.java src/main/java/com/rootly/client/model/NewAlertEventData.java src/main/java/com/rootly/client/model/NewAlertEventDataAttributes.java @@ -1896,6 +2389,10 @@ src/main/java/com/rootly/client/model/NewAlertGroupDataAttributes.java src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesAttributesInner.java src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesConditionsInner.java src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesTargetsInner.java +src/main/java/com/rootly/client/model/NewAlertRetriggerRule.java +src/main/java/com/rootly/client/model/NewAlertRetriggerRuleData.java +src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributes.java +src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInner.java src/main/java/com/rootly/client/model/NewAlertRoute.java src/main/java/com/rootly/client/model/NewAlertRouteData.java src/main/java/com/rootly/client/model/NewAlertRouteDataAttributes.java @@ -1920,24 +2417,37 @@ src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRul src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner.java src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributes.java src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.java +src/main/java/com/rootly/client/model/NewApiKey.java +src/main/java/com/rootly/client/model/NewApiKeyData.java +src/main/java/com/rootly/client/model/NewApiKeyDataAttributes.java src/main/java/com/rootly/client/model/NewAuthorization.java src/main/java/com/rootly/client/model/NewAuthorizationData.java src/main/java/com/rootly/client/model/NewAuthorizationDataAttributes.java src/main/java/com/rootly/client/model/NewCatalog.java +src/main/java/com/rootly/client/model/NewCatalogChecklistTemplate.java +src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateData.java +src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributes.java +src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesFieldsInner.java +src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesOwnersInner.java src/main/java/com/rootly/client/model/NewCatalogData.java src/main/java/com/rootly/client/model/NewCatalogDataAttributes.java src/main/java/com/rootly/client/model/NewCatalogEntity.java src/main/java/com/rootly/client/model/NewCatalogEntityData.java src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributes.java +src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributesPropertiesInner.java src/main/java/com/rootly/client/model/NewCatalogEntityProperty.java src/main/java/com/rootly/client/model/NewCatalogEntityPropertyData.java src/main/java/com/rootly/client/model/NewCatalogEntityPropertyDataAttributes.java src/main/java/com/rootly/client/model/NewCatalogField.java src/main/java/com/rootly/client/model/NewCatalogFieldData.java src/main/java/com/rootly/client/model/NewCatalogFieldDataAttributes.java +src/main/java/com/rootly/client/model/NewCatalogProperty.java +src/main/java/com/rootly/client/model/NewCatalogPropertyData.java +src/main/java/com/rootly/client/model/NewCatalogPropertyDataAttributes.java src/main/java/com/rootly/client/model/NewCause.java src/main/java/com/rootly/client/model/NewCauseData.java src/main/java/com/rootly/client/model/NewCauseDataAttributes.java +src/main/java/com/rootly/client/model/NewCauseDataAttributesPropertiesInner.java src/main/java/com/rootly/client/model/NewCommunicationsGroup.java src/main/java/com/rootly/client/model/NewCommunicationsGroupData.java src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributes.java @@ -2000,9 +2510,15 @@ src/main/java/com/rootly/client/model/NewEscalationPolicyPath.java src/main/java/com/rootly/client/model/NewEscalationPolicyPathData.java src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributes.java src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInner.java -src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.java -src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.java -src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.java +src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.java src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.java src/main/java/com/rootly/client/model/NewFormField.java src/main/java/com/rootly/client/model/NewFormFieldData.java @@ -2035,6 +2551,8 @@ src/main/java/com/rootly/client/model/NewIncident.java src/main/java/com/rootly/client/model/NewIncidentActionItem.java src/main/java/com/rootly/client/model/NewIncidentActionItemData.java src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributes.java +src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.java +src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.java src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelection.java src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionData.java src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionDataAttributes.java @@ -2074,6 +2592,7 @@ src/main/java/com/rootly/client/model/NewIncidentRoleTaskDataAttributes.java src/main/java/com/rootly/client/model/NewIncidentStatusPageEvent.java src/main/java/com/rootly/client/model/NewIncidentStatusPageEventData.java src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributes.java +src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.java src/main/java/com/rootly/client/model/NewIncidentSubStatus.java src/main/java/com/rootly/client/model/NewIncidentSubStatusData.java src/main/java/com/rootly/client/model/NewIncidentSubStatusDataAttributes.java @@ -2085,6 +2604,9 @@ src/main/java/com/rootly/client/model/NewLiveCallRouterData.java src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributes.java src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesPagingTargetsInner.java +src/main/java/com/rootly/client/model/NewOnCallPayReport.java +src/main/java/com/rootly/client/model/NewOnCallPayReportData.java +src/main/java/com/rootly/client/model/NewOnCallPayReportDataAttributes.java src/main/java/com/rootly/client/model/NewOnCallRole.java src/main/java/com/rootly/client/model/NewOnCallRoleData.java src/main/java/com/rootly/client/model/NewOnCallRoleDataAttributes.java @@ -2160,7 +2682,24 @@ src/main/java/com/rootly/client/model/NewServiceDataAttributesIncidentBroadcastC src/main/java/com/rootly/client/model/NewSeverity.java src/main/java/com/rootly/client/model/NewSeverityData.java src/main/java/com/rootly/client/model/NewSeverityDataAttributes.java +src/main/java/com/rootly/client/model/NewShiftCoverageRequest.java +src/main/java/com/rootly/client/model/NewShiftCoverageRequestData.java +src/main/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributes.java +src/main/java/com/rootly/client/model/NewSla.java +src/main/java/com/rootly/client/model/NewSlaData.java +src/main/java/com/rootly/client/model/NewSlaDataAttributes.java +src/main/java/com/rootly/client/model/NewSlaDataAttributesConditionsInner.java +src/main/java/com/rootly/client/model/NewSlaDataAttributesNotificationConfigurationsInner.java src/main/java/com/rootly/client/model/NewStatusPage.java +src/main/java/com/rootly/client/model/NewStatusPageAnnouncement.java +src/main/java/com/rootly/client/model/NewStatusPageAnnouncementData.java +src/main/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributes.java +src/main/java/com/rootly/client/model/NewStatusPageComponent.java +src/main/java/com/rootly/client/model/NewStatusPageComponentData.java +src/main/java/com/rootly/client/model/NewStatusPageComponentDataAttributes.java +src/main/java/com/rootly/client/model/NewStatusPageComponentGroup.java +src/main/java/com/rootly/client/model/NewStatusPageComponentGroupData.java +src/main/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributes.java src/main/java/com/rootly/client/model/NewStatusPageData.java src/main/java/com/rootly/client/model/NewStatusPageDataAttributes.java src/main/java/com/rootly/client/model/NewStatusPageTemplate.java @@ -2181,10 +2720,17 @@ src/main/java/com/rootly/client/model/NewUserNotificationRuleDataAttributes.java src/main/java/com/rootly/client/model/NewUserPhoneNumber.java src/main/java/com/rootly/client/model/NewUserPhoneNumberData.java src/main/java/com/rootly/client/model/NewUserPhoneNumberDataAttributes.java +src/main/java/com/rootly/client/model/NewVerifiedDomain.java +src/main/java/com/rootly/client/model/NewVerifiedDomainData.java +src/main/java/com/rootly/client/model/NewVerifiedDomainDataAttributes.java src/main/java/com/rootly/client/model/NewWebhooksEndpoint.java src/main/java/com/rootly/client/model/NewWebhooksEndpointData.java src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributes.java +src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInner.java src/main/java/com/rootly/client/model/NewWorkflow.java +src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldCondition.java +src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionData.java +src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributes.java src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelection.java src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionData.java src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionDataAttributes.java @@ -2210,6 +2756,10 @@ src/main/java/com/rootly/client/model/NewWorkflowTask.java src/main/java/com/rootly/client/model/NewWorkflowTaskData.java src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributes.java src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParams.java +src/main/java/com/rootly/client/model/OnCallPayReport.java +src/main/java/com/rootly/client/model/OnCallPayReportList.java +src/main/java/com/rootly/client/model/OnCallPayReportResponse.java +src/main/java/com/rootly/client/model/OnCallPayReportResponseData.java src/main/java/com/rootly/client/model/OnCallRole.java src/main/java/com/rootly/client/model/OnCallRoleList.java src/main/java/com/rootly/client/model/OnCallRoleRelationship.java @@ -2221,14 +2771,34 @@ src/main/java/com/rootly/client/model/OnCallShadowResponse.java src/main/java/com/rootly/client/model/OnCallShadowResponseData.java src/main/java/com/rootly/client/model/OnCallShadowsList.java src/main/java/com/rootly/client/model/OnCallShadowsListDataInner.java +src/main/java/com/rootly/client/model/Oncall.java +src/main/java/com/rootly/client/model/OncallList.java +src/main/java/com/rootly/client/model/OncallListDataInner.java +src/main/java/com/rootly/client/model/OncallRelationships.java +src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicy.java +src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyData.java +src/main/java/com/rootly/client/model/OncallRelationshipsSchedule.java +src/main/java/com/rootly/client/model/OncallRelationshipsScheduleData.java +src/main/java/com/rootly/client/model/OncallRelationshipsUser.java +src/main/java/com/rootly/client/model/OncallRelationshipsUserData.java src/main/java/com/rootly/client/model/OverrideShift.java src/main/java/com/rootly/client/model/OverrideShiftList.java src/main/java/com/rootly/client/model/OverrideShiftResponse.java src/main/java/com/rootly/client/model/OverrideShiftResponseData.java +src/main/java/com/rootly/client/model/PageJsmopsOnCallRespondersTaskParams.java src/main/java/com/rootly/client/model/PageOpsgenieOnCallRespondersTaskParams.java src/main/java/com/rootly/client/model/PagePagerdutyOnCallRespondersTaskParams.java src/main/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParams.java src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParams.java +src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf.java +src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.java +src/main/java/com/rootly/client/model/PatchAlertRoute.java +src/main/java/com/rootly/client/model/PatchAlertRouteData.java +src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributes.java +src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInner.java +src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.java +src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java +src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.java src/main/java/com/rootly/client/model/PhoneVerificationResponse.java src/main/java/com/rootly/client/model/Playbook.java src/main/java/com/rootly/client/model/PlaybookList.java @@ -2250,11 +2820,13 @@ src/main/java/com/rootly/client/model/PulseList.java src/main/java/com/rootly/client/model/PulseResponse.java src/main/java/com/rootly/client/model/PulseResponseData.java src/main/java/com/rootly/client/model/PulseTriggerParams.java +src/main/java/com/rootly/client/model/Receipt.java src/main/java/com/rootly/client/model/RedisClientTaskParams.java src/main/java/com/rootly/client/model/RemoveGoogleDocsPermissionsTaskParams.java src/main/java/com/rootly/client/model/RemoveSubscribers.java src/main/java/com/rootly/client/model/RemoveSubscribersData.java src/main/java/com/rootly/client/model/RemoveSubscribersDataAttributes.java +src/main/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParams.java src/main/java/com/rootly/client/model/RenameMicrosoftTeamsChannelTaskParams.java src/main/java/com/rootly/client/model/RenameSlackChannelTaskParams.java src/main/java/com/rootly/client/model/ResolveAlert.java @@ -2293,6 +2865,9 @@ src/main/java/com/rootly/client/model/RoleRelationship.java src/main/java/com/rootly/client/model/RoleRelationshipData.java src/main/java/com/rootly/client/model/RoleResponse.java src/main/java/com/rootly/client/model/RoleResponseData.java +src/main/java/com/rootly/client/model/RotateApiKey.java +src/main/java/com/rootly/client/model/RotateApiKeyData.java +src/main/java/com/rootly/client/model/RotateApiKeyDataAttributes.java src/main/java/com/rootly/client/model/RunCommandHerokuTaskParams.java src/main/java/com/rootly/client/model/Schedule.java src/main/java/com/rootly/client/model/ScheduleList.java @@ -2320,10 +2895,14 @@ src/main/java/com/rootly/client/model/SecretResponse.java src/main/java/com/rootly/client/model/SecretResponseData.java src/main/java/com/rootly/client/model/SendDashboardReportTaskParams.java src/main/java/com/rootly/client/model/SendEmailTaskParams.java +src/main/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParams.java +src/main/java/com/rootly/client/model/SendGoogleChatMessageTaskParams.java src/main/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParams.java +src/main/java/com/rootly/client/model/SendMicrosoftTeamsChatMessageTaskParams.java src/main/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParams.java src/main/java/com/rootly/client/model/SendSlackBlocksTaskParams.java src/main/java/com/rootly/client/model/SendSlackMessageTaskParams.java +src/main/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOf.java src/main/java/com/rootly/client/model/SendSmsTaskParams.java src/main/java/com/rootly/client/model/SendWhatsappMessageTaskParams.java src/main/java/com/rootly/client/model/Service.java @@ -2337,6 +2916,10 @@ src/main/java/com/rootly/client/model/SeverityList.java src/main/java/com/rootly/client/model/SeverityResponse.java src/main/java/com/rootly/client/model/SeverityResponseData.java src/main/java/com/rootly/client/model/Shift.java +src/main/java/com/rootly/client/model/ShiftCoverageRequest.java +src/main/java/com/rootly/client/model/ShiftCoverageRequestList.java +src/main/java/com/rootly/client/model/ShiftCoverageRequestResponse.java +src/main/java/com/rootly/client/model/ShiftCoverageRequestResponseData.java src/main/java/com/rootly/client/model/ShiftList.java src/main/java/com/rootly/client/model/ShiftListDataInner.java src/main/java/com/rootly/client/model/ShiftOverride.java @@ -2347,16 +2930,39 @@ src/main/java/com/rootly/client/model/ShiftRelationshipsAssignee.java src/main/java/com/rootly/client/model/ShiftRelationshipsAssigneeData.java src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverride.java src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverrideData.java -src/main/java/com/rootly/client/model/ShiftRelationshipsUser.java -src/main/java/com/rootly/client/model/ShiftRelationshipsUserData.java src/main/java/com/rootly/client/model/SimpleTriggerParams.java +src/main/java/com/rootly/client/model/Sla.java +src/main/java/com/rootly/client/model/SlaConditionsInner.java +src/main/java/com/rootly/client/model/SlaList.java +src/main/java/com/rootly/client/model/SlaNotificationConfigurationsInner.java +src/main/java/com/rootly/client/model/SlaResponse.java +src/main/java/com/rootly/client/model/SlaResponseData.java +src/main/java/com/rootly/client/model/SlackChannel.java src/main/java/com/rootly/client/model/SnapshotDatadogGraphTaskParams.java src/main/java/com/rootly/client/model/SnapshotGrafanaDashboardTaskParams.java src/main/java/com/rootly/client/model/SnapshotLookerLookTaskParams.java src/main/java/com/rootly/client/model/SnapshotNewRelicGraphTaskParams.java +src/main/java/com/rootly/client/model/SnoozeAlert.java +src/main/java/com/rootly/client/model/SnoozeAlertData.java +src/main/java/com/rootly/client/model/SnoozeAlertDataAttributes.java +src/main/java/com/rootly/client/model/StartSessionRequest.java +src/main/java/com/rootly/client/model/StartSessionResponse.java +src/main/java/com/rootly/client/model/StartSessionResponseData.java src/main/java/com/rootly/client/model/Status.java src/main/java/com/rootly/client/model/StatusList.java src/main/java/com/rootly/client/model/StatusPage.java +src/main/java/com/rootly/client/model/StatusPageAnnouncement.java +src/main/java/com/rootly/client/model/StatusPageAnnouncementList.java +src/main/java/com/rootly/client/model/StatusPageAnnouncementResponse.java +src/main/java/com/rootly/client/model/StatusPageAnnouncementResponseData.java +src/main/java/com/rootly/client/model/StatusPageComponent.java +src/main/java/com/rootly/client/model/StatusPageComponentGroup.java +src/main/java/com/rootly/client/model/StatusPageComponentGroupList.java +src/main/java/com/rootly/client/model/StatusPageComponentGroupResponse.java +src/main/java/com/rootly/client/model/StatusPageComponentGroupResponseData.java +src/main/java/com/rootly/client/model/StatusPageComponentList.java +src/main/java/com/rootly/client/model/StatusPageComponentResponse.java +src/main/java/com/rootly/client/model/StatusPageComponentResponseData.java src/main/java/com/rootly/client/model/StatusPageList.java src/main/java/com/rootly/client/model/StatusPageResponse.java src/main/java/com/rootly/client/model/StatusPageResponseData.java @@ -2397,13 +3003,12 @@ src/main/java/com/rootly/client/model/UpdateAlertFieldDataAttributes.java src/main/java/com/rootly/client/model/UpdateAlertGroup.java src/main/java/com/rootly/client/model/UpdateAlertGroupData.java src/main/java/com/rootly/client/model/UpdateAlertGroupDataAttributes.java +src/main/java/com/rootly/client/model/UpdateAlertRetriggerRule.java +src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleData.java +src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributes.java src/main/java/com/rootly/client/model/UpdateAlertRoute.java src/main/java/com/rootly/client/model/UpdateAlertRouteData.java src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributes.java -src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInner.java -src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner.java -src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java -src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerDestinationsInner.java src/main/java/com/rootly/client/model/UpdateAlertRoutingRule.java src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleData.java src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributes.java @@ -2415,12 +3020,18 @@ src/main/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributes.java src/main/java/com/rootly/client/model/UpdateAlertsSource.java src/main/java/com/rootly/client/model/UpdateAlertsSourceData.java src/main/java/com/rootly/client/model/UpdateAlertsSourceDataAttributes.java +src/main/java/com/rootly/client/model/UpdateApiKey.java +src/main/java/com/rootly/client/model/UpdateApiKeyData.java +src/main/java/com/rootly/client/model/UpdateApiKeyDataAttributes.java src/main/java/com/rootly/client/model/UpdateAsanaTaskTaskParams.java src/main/java/com/rootly/client/model/UpdateAttachedAlertsTaskParams.java src/main/java/com/rootly/client/model/UpdateAuthorization.java src/main/java/com/rootly/client/model/UpdateAuthorizationData.java src/main/java/com/rootly/client/model/UpdateAuthorizationDataAttributes.java src/main/java/com/rootly/client/model/UpdateCatalog.java +src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplate.java +src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateData.java +src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributes.java src/main/java/com/rootly/client/model/UpdateCatalogData.java src/main/java/com/rootly/client/model/UpdateCatalogDataAttributes.java src/main/java/com/rootly/client/model/UpdateCatalogEntity.java @@ -2432,6 +3043,9 @@ src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyDataAttributes. src/main/java/com/rootly/client/model/UpdateCatalogField.java src/main/java/com/rootly/client/model/UpdateCatalogFieldData.java src/main/java/com/rootly/client/model/UpdateCatalogFieldDataAttributes.java +src/main/java/com/rootly/client/model/UpdateCatalogProperty.java +src/main/java/com/rootly/client/model/UpdateCatalogPropertyData.java +src/main/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributes.java src/main/java/com/rootly/client/model/UpdateCause.java src/main/java/com/rootly/client/model/UpdateCauseData.java src/main/java/com/rootly/client/model/UpdateCauseDataAttributes.java @@ -2474,6 +3088,12 @@ src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParamsTemplate.ja src/main/java/com/rootly/client/model/UpdateDropboxPaperPageTaskParams.java src/main/java/com/rootly/client/model/UpdateEdgeConnector.java src/main/java/com/rootly/client/model/UpdateEdgeConnectorAction.java +src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequest.java +src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequestAction.java +src/main/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnector.java +src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequest.java +src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestData.java +src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributes.java src/main/java/com/rootly/client/model/UpdateEnvironment.java src/main/java/com/rootly/client/model/UpdateEnvironmentData.java src/main/java/com/rootly/client/model/UpdateEnvironmentDataAttributes.java @@ -2514,8 +3134,10 @@ src/main/java/com/rootly/client/model/UpdateFunctionality.java src/main/java/com/rootly/client/model/UpdateFunctionalityData.java src/main/java/com/rootly/client/model/UpdateFunctionalityDataAttributes.java src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParams.java +src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParamsRepository.java src/main/java/com/rootly/client/model/UpdateGitlabIssueTaskParams.java src/main/java/com/rootly/client/model/UpdateGoogleCalendarEventTaskParams.java +src/main/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParams.java src/main/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParams.java src/main/java/com/rootly/client/model/UpdateHeartbeat.java src/main/java/com/rootly/client/model/UpdateHeartbeatData.java @@ -2587,6 +3209,9 @@ src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributes.java src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java src/main/java/com/rootly/client/model/UpdateMotionTaskTaskParams.java src/main/java/com/rootly/client/model/UpdateNotionPageTaskParams.java +src/main/java/com/rootly/client/model/UpdateOnCallPayReport.java +src/main/java/com/rootly/client/model/UpdateOnCallPayReportData.java +src/main/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributes.java src/main/java/com/rootly/client/model/UpdateOnCallRole.java src/main/java/com/rootly/client/model/UpdateOnCallRoleData.java src/main/java/com/rootly/client/model/UpdateOnCallRoleDataAttributes.java @@ -2656,8 +3281,20 @@ src/main/java/com/rootly/client/model/UpdateSeverityDataAttributes.java src/main/java/com/rootly/client/model/UpdateSharepointPageTaskParams.java src/main/java/com/rootly/client/model/UpdateShortcutStoryTaskParams.java src/main/java/com/rootly/client/model/UpdateShortcutTaskTaskParams.java +src/main/java/com/rootly/client/model/UpdateSla.java +src/main/java/com/rootly/client/model/UpdateSlaData.java +src/main/java/com/rootly/client/model/UpdateSlaDataAttributes.java src/main/java/com/rootly/client/model/UpdateSlackChannelTopicTaskParams.java src/main/java/com/rootly/client/model/UpdateStatusPage.java +src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncement.java +src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementData.java +src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributes.java +src/main/java/com/rootly/client/model/UpdateStatusPageComponent.java +src/main/java/com/rootly/client/model/UpdateStatusPageComponentData.java +src/main/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributes.java +src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroup.java +src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupData.java +src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributes.java src/main/java/com/rootly/client/model/UpdateStatusPageData.java src/main/java/com/rootly/client/model/UpdateStatusPageDataAttributes.java src/main/java/com/rootly/client/model/UpdateStatusPageTemplate.java @@ -2688,6 +3325,9 @@ src/main/java/com/rootly/client/model/UpdateWebhooksEndpoint.java src/main/java/com/rootly/client/model/UpdateWebhooksEndpointData.java src/main/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributes.java src/main/java/com/rootly/client/model/UpdateWorkflow.java +src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldCondition.java +src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionData.java +src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributes.java src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelection.java src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionData.java src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionDataAttributes.java @@ -2704,6 +3344,7 @@ src/main/java/com/rootly/client/model/UpdateWorkflowTaskData.java src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributes.java src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParams.java src/main/java/com/rootly/client/model/UpdateZendeskTicketTaskParams.java +src/main/java/com/rootly/client/model/UptimeChartResponse.java src/main/java/com/rootly/client/model/User.java src/main/java/com/rootly/client/model/UserEmailAddress.java src/main/java/com/rootly/client/model/UserEmailAddressList.java @@ -2722,16 +3363,10 @@ src/main/java/com/rootly/client/model/UserPhoneNumberResponseData.java src/main/java/com/rootly/client/model/UserRelationships.java src/main/java/com/rootly/client/model/UserResponse.java src/main/java/com/rootly/client/model/UserResponseData.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequest.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequest.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestEdgeConnector.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsPostRequest.java -src/main/java/com/rootly/client/model/V1EdgeConnectorsPostRequestEdgeConnector.java +src/main/java/com/rootly/client/model/VerifiedDomain.java +src/main/java/com/rootly/client/model/VerifiedDomainList.java +src/main/java/com/rootly/client/model/VerifiedDomainResponse.java +src/main/java/com/rootly/client/model/VerifiedDomainResponseData.java src/main/java/com/rootly/client/model/VerifyPhoneNumberRequest.java src/main/java/com/rootly/client/model/WebhooksDelivery.java src/main/java/com/rootly/client/model/WebhooksDeliveryList.java @@ -2742,6 +3377,10 @@ src/main/java/com/rootly/client/model/WebhooksEndpointList.java src/main/java/com/rootly/client/model/WebhooksEndpointResponse.java src/main/java/com/rootly/client/model/WebhooksEndpointResponseData.java src/main/java/com/rootly/client/model/Workflow.java +src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldCondition.java +src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionList.java +src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponse.java +src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseData.java src/main/java/com/rootly/client/model/WorkflowCustomFieldSelection.java src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionList.java src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponse.java @@ -2765,19 +3404,24 @@ src/main/java/com/rootly/client/model/WorkflowTask.java src/main/java/com/rootly/client/model/WorkflowTaskList.java src/main/java/com/rootly/client/model/WorkflowTaskResponse.java src/main/java/com/rootly/client/model/WorkflowTaskResponseData.java +src/test/java/com/rootly/client/api/AiChatApiTest.java src/test/java/com/rootly/client/api/AlertEventsApiTest.java src/test/java/com/rootly/client/api/AlertFieldsApiTest.java src/test/java/com/rootly/client/api/AlertGroupsApiTest.java +src/test/java/com/rootly/client/api/AlertRetriggerRulesApiTest.java src/test/java/com/rootly/client/api/AlertRoutesApiTest.java src/test/java/com/rootly/client/api/AlertRoutingRulesApiTest.java src/test/java/com/rootly/client/api/AlertSourcesApiTest.java src/test/java/com/rootly/client/api/AlertUrgenciesApiTest.java src/test/java/com/rootly/client/api/AlertsApiTest.java +src/test/java/com/rootly/client/api/ApiKeysApiTest.java src/test/java/com/rootly/client/api/AuditsApiTest.java src/test/java/com/rootly/client/api/AuthorizationsApiTest.java +src/test/java/com/rootly/client/api/CatalogChecklistTemplatesApiTest.java src/test/java/com/rootly/client/api/CatalogEntitiesApiTest.java +src/test/java/com/rootly/client/api/CatalogEntityChecklistsApiTest.java src/test/java/com/rootly/client/api/CatalogEntityPropertiesApiTest.java -src/test/java/com/rootly/client/api/CatalogFieldsApiTest.java +src/test/java/com/rootly/client/api/CatalogPropertiesApiTest.java src/test/java/com/rootly/client/api/CatalogsApiTest.java src/test/java/com/rootly/client/api/CausesApiTest.java src/test/java/com/rootly/client/api/CommunicationsGroupsApiTest.java @@ -2827,8 +3471,11 @@ src/test/java/com/rootly/client/api/IncidentTypesApiTest.java src/test/java/com/rootly/client/api/IncidentsApiTest.java src/test/java/com/rootly/client/api/IpRangesApiTest.java src/test/java/com/rootly/client/api/LiveCallRoutersApiTest.java +src/test/java/com/rootly/client/api/MeetingRecordingsApiTest.java +src/test/java/com/rootly/client/api/OnCallPayReportsApiTest.java src/test/java/com/rootly/client/api/OnCallRolesApiTest.java src/test/java/com/rootly/client/api/OnCallShadowsApiTest.java +src/test/java/com/rootly/client/api/OnCallsApiTest.java src/test/java/com/rootly/client/api/OverrideShiftsApiTest.java src/test/java/com/rootly/client/api/PlaybookTasksApiTest.java src/test/java/com/rootly/client/api/PlaybooksApiTest.java @@ -2847,7 +3494,12 @@ src/test/java/com/rootly/client/api/SchedulesApiTest.java src/test/java/com/rootly/client/api/SecretsApiTest.java src/test/java/com/rootly/client/api/ServicesApiTest.java src/test/java/com/rootly/client/api/SeveritiesApiTest.java +src/test/java/com/rootly/client/api/ShiftCoverageRequestsApiTest.java src/test/java/com/rootly/client/api/ShiftsApiTest.java +src/test/java/com/rootly/client/api/SlasApiTest.java +src/test/java/com/rootly/client/api/StatusPageAnnouncementsApiTest.java +src/test/java/com/rootly/client/api/StatusPageComponentGroupsApiTest.java +src/test/java/com/rootly/client/api/StatusPageComponentsApiTest.java src/test/java/com/rootly/client/api/StatusPageTemplatesApiTest.java src/test/java/com/rootly/client/api/StatusPagesApiTest.java src/test/java/com/rootly/client/api/StatusesApiTest.java @@ -2857,8 +3509,10 @@ src/test/java/com/rootly/client/api/UserEmailAddressesApiTest.java src/test/java/com/rootly/client/api/UserNotificationRulesApiTest.java src/test/java/com/rootly/client/api/UserPhoneNumbersApiTest.java src/test/java/com/rootly/client/api/UsersApiTest.java +src/test/java/com/rootly/client/api/VerifiedDomainsApiTest.java src/test/java/com/rootly/client/api/WebhooksDeliveriesApiTest.java src/test/java/com/rootly/client/api/WebhooksEndpointsApiTest.java +src/test/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApiTest.java src/test/java/com/rootly/client/api/WorkflowFormFieldConditionsApiTest.java src/test/java/com/rootly/client/api/WorkflowGroupsApiTest.java src/test/java/com/rootly/client/api/WorkflowRunsApiTest.java @@ -2868,19 +3522,37 @@ src/test/java/com/rootly/client/model/ActionItemTriggerParamsTest.java src/test/java/com/rootly/client/model/AddActionItemTaskParamsAssignedToUserTest.java src/test/java/com/rootly/client/model/AddActionItemTaskParamsPostToSlackChannelsInnerTest.java src/test/java/com/rootly/client/model/AddActionItemTaskParamsTest.java +src/test/java/com/rootly/client/model/AddMicrosoftTeamsChatTabTaskParamsTest.java src/test/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParamsTest.java src/test/java/com/rootly/client/model/AddRoleTaskParamsAssignedToUserTest.java src/test/java/com/rootly/client/model/AddRoleTaskParamsTest.java +src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1Test.java +src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsTest.java src/test/java/com/rootly/client/model/AddSubscribersDataAttributesTest.java src/test/java/com/rootly/client/model/AddSubscribersDataTest.java src/test/java/com/rootly/client/model/AddSubscribersTest.java src/test/java/com/rootly/client/model/AddTeamTaskParamsTest.java src/test/java/com/rootly/client/model/AddToTimelineTaskParamsTest.java +src/test/java/com/rootly/client/model/AiChatResponseDataAttributesTest.java +src/test/java/com/rootly/client/model/AiChatResponseDataTest.java +src/test/java/com/rootly/client/model/AiChatResponseTest.java +src/test/java/com/rootly/client/model/AiChatSessionMessageListTest.java +src/test/java/com/rootly/client/model/AiChatSessionMessageTest.java +src/test/java/com/rootly/client/model/AlertAlertFieldValuesInnerTest.java +src/test/java/com/rootly/client/model/AlertAlertingTargetsInnerTest.java +src/test/java/com/rootly/client/model/AlertEventEscalationTargetDataTest.java +src/test/java/com/rootly/client/model/AlertEventEscalationTargetTest.java +src/test/java/com/rootly/client/model/AlertEventFeedListTest.java +src/test/java/com/rootly/client/model/AlertEventFeedMetaTest.java +src/test/java/com/rootly/client/model/AlertEventIncidentTest.java src/test/java/com/rootly/client/model/AlertEventListTest.java src/test/java/com/rootly/client/model/AlertEventResponseDataTest.java src/test/java/com/rootly/client/model/AlertEventResponseTest.java +src/test/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInnerTest.java +src/test/java/com/rootly/client/model/AlertEventScheduleTest.java src/test/java/com/rootly/client/model/AlertEventTest.java +src/test/java/com/rootly/client/model/AlertEventUserTest.java src/test/java/com/rootly/client/model/AlertFieldListDataInnerTest.java src/test/java/com/rootly/client/model/AlertFieldListTest.java src/test/java/com/rootly/client/model/AlertFieldResponseDataTest.java @@ -2895,6 +3567,11 @@ src/test/java/com/rootly/client/model/AlertGroupTest.java src/test/java/com/rootly/client/model/AlertListTest.java src/test/java/com/rootly/client/model/AlertResponseDataTest.java src/test/java/com/rootly/client/model/AlertResponseTest.java +src/test/java/com/rootly/client/model/AlertRetriggerRuleConditionsInnerTest.java +src/test/java/com/rootly/client/model/AlertRetriggerRuleListTest.java +src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseDataTest.java +src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseTest.java +src/test/java/com/rootly/client/model/AlertRetriggerRuleTest.java src/test/java/com/rootly/client/model/AlertRouteListTest.java src/test/java/com/rootly/client/model/AlertRouteResponseDataTest.java src/test/java/com/rootly/client/model/AlertRouteResponseTest.java @@ -2912,6 +3589,8 @@ src/test/java/com/rootly/client/model/AlertRoutingRuleTargetTest.java src/test/java/com/rootly/client/model/AlertRoutingRuleTest.java src/test/java/com/rootly/client/model/AlertTest.java src/test/java/com/rootly/client/model/AlertTriggerParamsAlertFieldConditionsInnerTest.java +src/test/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditionsConditionsInnerTest.java +src/test/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditionsTest.java src/test/java/com/rootly/client/model/AlertTriggerParamsTest.java src/test/java/com/rootly/client/model/AlertUrgencyListTest.java src/test/java/com/rootly/client/model/AlertUrgencyResponseDataTest.java @@ -2920,7 +3599,16 @@ src/test/java/com/rootly/client/model/AlertUrgencyTest.java src/test/java/com/rootly/client/model/AlertsSourceListTest.java src/test/java/com/rootly/client/model/AlertsSourceResponseDataTest.java src/test/java/com/rootly/client/model/AlertsSourceResponseTest.java +src/test/java/com/rootly/client/model/AlertsSourceSourceableAttributesTest.java src/test/java/com/rootly/client/model/AlertsSourceTest.java +src/test/java/com/rootly/client/model/ApiKeyListTest.java +src/test/java/com/rootly/client/model/ApiKeyResponseDataTest.java +src/test/java/com/rootly/client/model/ApiKeyResponseTest.java +src/test/java/com/rootly/client/model/ApiKeyTest.java +src/test/java/com/rootly/client/model/ApiKeyWithTokenResponseDataAttributesTest.java +src/test/java/com/rootly/client/model/ApiKeyWithTokenResponseDataTest.java +src/test/java/com/rootly/client/model/ApiKeyWithTokenResponseTest.java +src/test/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParamsTest.java src/test/java/com/rootly/client/model/ArchiveMicrosoftTeamsChannelsTaskParamsTest.java src/test/java/com/rootly/client/model/ArchiveSlackChannelsTaskParamsTest.java src/test/java/com/rootly/client/model/AssignRoleToUserDataAttributesTest.java @@ -2930,6 +3618,8 @@ src/test/java/com/rootly/client/model/AttachAlertDataAttributesTest.java src/test/java/com/rootly/client/model/AttachAlertDataTest.java src/test/java/com/rootly/client/model/AttachAlertTest.java src/test/java/com/rootly/client/model/AttachDatadogDashboardsTaskParamsTest.java +src/test/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParamsTest.java +src/test/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParamsTest.java src/test/java/com/rootly/client/model/AuditTest.java src/test/java/com/rootly/client/model/AuditsListDataInnerTest.java src/test/java/com/rootly/client/model/AuditsListTest.java @@ -2938,13 +3628,89 @@ src/test/java/com/rootly/client/model/AuthorizationResponseDataTest.java src/test/java/com/rootly/client/model/AuthorizationResponseTest.java src/test/java/com/rootly/client/model/AuthorizationTest.java src/test/java/com/rootly/client/model/AutoAssignRoleOpsgenieTaskParamsTest.java +src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1Test.java +src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsTest.java +src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1Test.java +src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2Test.java +src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3Test.java +src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4Test.java +src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOfTest.java src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsTest.java src/test/java/com/rootly/client/model/AutoAssignRoleVictorOpsTaskParamsTest.java +src/test/java/com/rootly/client/model/BuiltinFieldTest.java +src/test/java/com/rootly/client/model/BulkDeleteCatalogEntities422ResponseTest.java +src/test/java/com/rootly/client/model/BulkDeleteEnvironments422ResponseTest.java +src/test/java/com/rootly/client/model/BulkDeleteFunctionalities422ResponseTest.java +src/test/java/com/rootly/client/model/BulkDeleteGroups422ResponseTest.java +src/test/java/com/rootly/client/model/BulkDeleteServices422ResponseTest.java +src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1Test.java +src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOfTest.java +src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseDataTest.java +src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseTest.java +src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesTest.java +src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOfTest.java +src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsResponseTest.java +src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsTest.java +src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponseTest.java +src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesTest.java +src/test/java/com/rootly/client/model/BulkDestroyServicesResponseTest.java +src/test/java/com/rootly/client/model/BulkDestroyServicesTest.java +src/test/java/com/rootly/client/model/BulkDestroyTeamsResponseTest.java +src/test/java/com/rootly/client/model/BulkDestroyTeamsTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntities422ResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesTest.java +src/test/java/com/rootly/client/model/BulkUpsertEnvironments422ResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorTest.java +src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsTest.java +src/test/java/com/rootly/client/model/BulkUpsertFunctionalities422ResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesErrorTest.java +src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesTest.java +src/test/java/com/rootly/client/model/BulkUpsertGroups422ResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertServices422ResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertServicesEntitiesInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertServicesErrorTest.java +src/test/java/com/rootly/client/model/BulkUpsertServicesResponseDataInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertServicesResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertServicesTest.java +src/test/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertTeamsErrorTest.java +src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInnerTest.java +src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseTest.java +src/test/java/com/rootly/client/model/BulkUpsertTeamsTest.java src/test/java/com/rootly/client/model/CallPeopleTaskParamsTest.java src/test/java/com/rootly/client/model/CancelIncidentDataAttributesTest.java src/test/java/com/rootly/client/model/CancelIncidentDataTest.java src/test/java/com/rootly/client/model/CancelIncidentTest.java +src/test/java/com/rootly/client/model/CatalogChecklistTemplateFieldsInnerTest.java +src/test/java/com/rootly/client/model/CatalogChecklistTemplateListTest.java +src/test/java/com/rootly/client/model/CatalogChecklistTemplateOwnersInnerTest.java +src/test/java/com/rootly/client/model/CatalogChecklistTemplateResponseDataTest.java +src/test/java/com/rootly/client/model/CatalogChecklistTemplateResponseTest.java +src/test/java/com/rootly/client/model/CatalogChecklistTemplateTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerDataAttributesTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerDataTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerDataAttributesTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerDataTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistListTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistResponseDataTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistResponseTest.java +src/test/java/com/rootly/client/model/CatalogEntityChecklistTest.java src/test/java/com/rootly/client/model/CatalogEntityListTest.java src/test/java/com/rootly/client/model/CatalogEntityPropertyListTest.java src/test/java/com/rootly/client/model/CatalogEntityPropertyResponseDataTest.java @@ -2958,6 +3724,10 @@ src/test/java/com/rootly/client/model/CatalogFieldResponseDataTest.java src/test/java/com/rootly/client/model/CatalogFieldResponseTest.java src/test/java/com/rootly/client/model/CatalogFieldTest.java src/test/java/com/rootly/client/model/CatalogListTest.java +src/test/java/com/rootly/client/model/CatalogPropertyListTest.java +src/test/java/com/rootly/client/model/CatalogPropertyResponseDataTest.java +src/test/java/com/rootly/client/model/CatalogPropertyResponseTest.java +src/test/java/com/rootly/client/model/CatalogPropertyTest.java src/test/java/com/rootly/client/model/CatalogResponseDataTest.java src/test/java/com/rootly/client/model/CatalogResponseTest.java src/test/java/com/rootly/client/model/CatalogTest.java @@ -2965,6 +3735,7 @@ src/test/java/com/rootly/client/model/CauseListTest.java src/test/java/com/rootly/client/model/CauseResponseDataTest.java src/test/java/com/rootly/client/model/CauseResponseTest.java src/test/java/com/rootly/client/model/CauseTest.java +src/test/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParamsTest.java src/test/java/com/rootly/client/model/ChangeSlackChannelPrivacyTaskParamsTest.java src/test/java/com/rootly/client/model/CommunicationsGroupCommunicationExternalGroupMembersInnerTest.java src/test/java/com/rootly/client/model/CommunicationsGroupResponseDataTest.java @@ -2975,6 +3746,10 @@ src/test/java/com/rootly/client/model/CommunicationsStageResponseDataTest.java src/test/java/com/rootly/client/model/CommunicationsStageResponseTest.java src/test/java/com/rootly/client/model/CommunicationsStageTest.java src/test/java/com/rootly/client/model/CommunicationsStagesResponseTest.java +src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStageTest.java +src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplateTest.java +src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesTest.java +src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataTest.java src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerTest.java src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTypeTest.java src/test/java/com/rootly/client/model/CommunicationsTemplateResponseDataTest.java @@ -2998,10 +3773,20 @@ src/test/java/com/rootly/client/model/CreateConfluencePageTaskParamsIntegrationT src/test/java/com/rootly/client/model/CreateConfluencePageTaskParamsTest.java src/test/java/com/rootly/client/model/CreateDatadogNotebookTaskParamsTest.java src/test/java/com/rootly/client/model/CreateDropboxPaperPageTaskParamsTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadataParametersInnerTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadataTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorActionRequestTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFiltersTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataTest.java +src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestTest.java +src/test/java/com/rootly/client/model/CreateGithubIssueTaskParamsIssueTypeTest.java src/test/java/com/rootly/client/model/CreateGithubIssueTaskParamsTest.java src/test/java/com/rootly/client/model/CreateGitlabIssueTaskParamsTest.java src/test/java/com/rootly/client/model/CreateGoToMeetingTaskParamsTest.java src/test/java/com/rootly/client/model/CreateGoogleCalendarEventTaskParamsTest.java +src/test/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParamsTest.java src/test/java/com/rootly/client/model/CreateGoogleDocsPageTaskParamsTest.java src/test/java/com/rootly/client/model/CreateGoogleDocsPermissionsTaskParamsTest.java src/test/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParamsModelTest.java @@ -3016,6 +3801,7 @@ src/test/java/com/rootly/client/model/CreateJiraIssueTaskParamsPriorityTest.java src/test/java/com/rootly/client/model/CreateJiraIssueTaskParamsStatusTest.java src/test/java/com/rootly/client/model/CreateJiraIssueTaskParamsTest.java src/test/java/com/rootly/client/model/CreateJiraSubtaskTaskParamsTest.java +src/test/java/com/rootly/client/model/CreateJsmopsAlertTaskParamsTest.java src/test/java/com/rootly/client/model/CreateLinearIssueCommentTaskParamsTest.java src/test/java/com/rootly/client/model/CreateLinearIssueTaskParamsProjectTest.java src/test/java/com/rootly/client/model/CreateLinearIssueTaskParamsStateTest.java @@ -3041,6 +3827,8 @@ src/test/java/com/rootly/client/model/CreateQuipPageTaskParamsTest.java src/test/java/com/rootly/client/model/CreateServiceNowIncidentTaskParamsCompletionTest.java src/test/java/com/rootly/client/model/CreateServiceNowIncidentTaskParamsTest.java src/test/java/com/rootly/client/model/CreateSharepointPageTaskParamsTest.java +src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1Test.java +src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsTest.java src/test/java/com/rootly/client/model/CreateShortcutTaskTaskParamsTest.java src/test/java/com/rootly/client/model/CreateSlackChannelTaskParamsTest.java @@ -3094,6 +3882,9 @@ src/test/java/com/rootly/client/model/EnvironmentResponseTest.java src/test/java/com/rootly/client/model/EnvironmentTest.java src/test/java/com/rootly/client/model/ErrorsListErrorsInnerTest.java src/test/java/com/rootly/client/model/ErrorsListTest.java +src/test/java/com/rootly/client/model/EscalateAlertDataAttributesTest.java +src/test/java/com/rootly/client/model/EscalateAlertDataTest.java +src/test/java/com/rootly/client/model/EscalateAlertTest.java src/test/java/com/rootly/client/model/EscalationPolicyLevelListDataInnerTest.java src/test/java/com/rootly/client/model/EscalationPolicyLevelListTest.java src/test/java/com/rootly/client/model/EscalationPolicyLevelResponseDataTest.java @@ -3104,8 +3895,6 @@ src/test/java/com/rootly/client/model/EscalationPolicyPathListDataInnerTest.java src/test/java/com/rootly/client/model/EscalationPolicyPathListTest.java src/test/java/com/rootly/client/model/EscalationPolicyPathResponseDataTest.java src/test/java/com/rootly/client/model/EscalationPolicyPathResponseTest.java -src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerAnyOfTest.java -src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerTest.java src/test/java/com/rootly/client/model/EscalationPolicyPathTest.java src/test/java/com/rootly/client/model/EscalationPolicyResponseDataTest.java src/test/java/com/rootly/client/model/EscalationPolicyResponseTest.java @@ -3144,7 +3933,10 @@ src/test/java/com/rootly/client/model/FunctionalityResponseTest.java src/test/java/com/rootly/client/model/FunctionalityTest.java src/test/java/com/rootly/client/model/GetAlertFieldIdParameterTest.java src/test/java/com/rootly/client/model/GetAlertsTaskParamsTest.java +src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1Test.java +src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsTest.java +src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsTest.java src/test/java/com/rootly/client/model/GetPulsesTaskParamsParentMessageThreadTaskTest.java src/test/java/com/rootly/client/model/GetPulsesTaskParamsTest.java @@ -3154,6 +3946,7 @@ src/test/java/com/rootly/client/model/HeartbeatResponseDataTest.java src/test/java/com/rootly/client/model/HeartbeatResponseTest.java src/test/java/com/rootly/client/model/HeartbeatTest.java src/test/java/com/rootly/client/model/HttpClientTaskParamsTest.java +src/test/java/com/rootly/client/model/ImportMeetingRecordingTest.java src/test/java/com/rootly/client/model/InTriageIncidentDataTest.java src/test/java/com/rootly/client/model/InTriageIncidentTest.java src/test/java/com/rootly/client/model/IncidentActionItemListTest.java @@ -3217,6 +4010,7 @@ src/test/java/com/rootly/client/model/IncidentRoleTest.java src/test/java/com/rootly/client/model/IncidentStatusPageEventListTest.java src/test/java/com/rootly/client/model/IncidentStatusPageEventResponseDataTest.java src/test/java/com/rootly/client/model/IncidentStatusPageEventResponseTest.java +src/test/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInnerTest.java src/test/java/com/rootly/client/model/IncidentStatusPageEventTest.java src/test/java/com/rootly/client/model/IncidentSubStatusListTest.java src/test/java/com/rootly/client/model/IncidentSubStatusResponseDataTest.java @@ -3228,20 +4022,38 @@ src/test/java/com/rootly/client/model/IncidentTypeListTest.java src/test/java/com/rootly/client/model/IncidentTypeResponseDataTest.java src/test/java/com/rootly/client/model/IncidentTypeResponseTest.java src/test/java/com/rootly/client/model/IncidentTypeTest.java +src/test/java/com/rootly/client/model/IncidentZoomMeetingGlobalDialInNumbersInnerTest.java +src/test/java/com/rootly/client/model/IncidentsChartResponseTest.java +src/test/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParamsTest.java +src/test/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParamsTest.java src/test/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelTaskParamsTest.java src/test/java/com/rootly/client/model/InviteToSlackChannelOpsgenieTaskParamsTest.java src/test/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParamsTest.java src/test/java/com/rootly/client/model/InviteToSlackChannelRootlyTaskParamsTest.java +src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1Test.java +src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2Test.java +src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsTest.java src/test/java/com/rootly/client/model/InviteToSlackChannelVictorOpsTaskParamsTest.java src/test/java/com/rootly/client/model/IpRangesResponseDataTest.java src/test/java/com/rootly/client/model/IpRangesResponseTest.java src/test/java/com/rootly/client/model/IpRangesTest.java +src/test/java/com/rootly/client/model/JsonapiIncludedResourceTest.java src/test/java/com/rootly/client/model/LinksTest.java src/test/java/com/rootly/client/model/LiveCallRouterListTest.java src/test/java/com/rootly/client/model/LiveCallRouterResponseDataTest.java src/test/java/com/rootly/client/model/LiveCallRouterResponseTest.java src/test/java/com/rootly/client/model/LiveCallRouterTest.java +src/test/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscriptTest.java +src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseDataTest.java +src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseTest.java +src/test/java/com/rootly/client/model/MeetingRecordingDetailTest.java +src/test/java/com/rootly/client/model/MeetingRecordingListTest.java +src/test/java/com/rootly/client/model/MeetingRecordingResponseDataTest.java +src/test/java/com/rootly/client/model/MeetingRecordingResponseTest.java +src/test/java/com/rootly/client/model/MeetingRecordingTest.java +src/test/java/com/rootly/client/model/MeetingRecordingTranscriptSegmentTest.java +src/test/java/com/rootly/client/model/MeetingRecordingTranscriptWordTest.java src/test/java/com/rootly/client/model/MetaTest.java src/test/java/com/rootly/client/model/MitigateIncidentDataAttributesTest.java src/test/java/com/rootly/client/model/MitigateIncidentDataTest.java @@ -3249,6 +4061,7 @@ src/test/java/com/rootly/client/model/MitigateIncidentTest.java src/test/java/com/rootly/client/model/NewAlertDataAttributesAlertFieldValuesAttributesInnerTest.java src/test/java/com/rootly/client/model/NewAlertDataAttributesLabelsInnerTest.java src/test/java/com/rootly/client/model/NewAlertDataAttributesLabelsInnerValueTest.java +src/test/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInnerTest.java src/test/java/com/rootly/client/model/NewAlertDataAttributesTest.java src/test/java/com/rootly/client/model/NewAlertDataTest.java src/test/java/com/rootly/client/model/NewAlertEventDataAttributesTest.java @@ -3263,6 +4076,10 @@ src/test/java/com/rootly/client/model/NewAlertGroupDataAttributesTargetsInnerTes src/test/java/com/rootly/client/model/NewAlertGroupDataAttributesTest.java src/test/java/com/rootly/client/model/NewAlertGroupDataTest.java src/test/java/com/rootly/client/model/NewAlertGroupTest.java +src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInnerTest.java +src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesTest.java +src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataTest.java +src/test/java/com/rootly/client/model/NewAlertRetriggerRuleTest.java src/test/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest.java src/test/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest.java src/test/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerDestinationsInnerTest.java @@ -3288,11 +4105,20 @@ src/test/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAtt src/test/java/com/rootly/client/model/NewAlertsSourceDataAttributesTest.java src/test/java/com/rootly/client/model/NewAlertsSourceDataTest.java src/test/java/com/rootly/client/model/NewAlertsSourceTest.java +src/test/java/com/rootly/client/model/NewApiKeyDataAttributesTest.java +src/test/java/com/rootly/client/model/NewApiKeyDataTest.java +src/test/java/com/rootly/client/model/NewApiKeyTest.java src/test/java/com/rootly/client/model/NewAuthorizationDataAttributesTest.java src/test/java/com/rootly/client/model/NewAuthorizationDataTest.java src/test/java/com/rootly/client/model/NewAuthorizationTest.java +src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesFieldsInnerTest.java +src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesOwnersInnerTest.java +src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesTest.java +src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataTest.java +src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateTest.java src/test/java/com/rootly/client/model/NewCatalogDataAttributesTest.java src/test/java/com/rootly/client/model/NewCatalogDataTest.java +src/test/java/com/rootly/client/model/NewCatalogEntityDataAttributesPropertiesInnerTest.java src/test/java/com/rootly/client/model/NewCatalogEntityDataAttributesTest.java src/test/java/com/rootly/client/model/NewCatalogEntityDataTest.java src/test/java/com/rootly/client/model/NewCatalogEntityPropertyDataAttributesTest.java @@ -3302,7 +4128,11 @@ src/test/java/com/rootly/client/model/NewCatalogEntityTest.java src/test/java/com/rootly/client/model/NewCatalogFieldDataAttributesTest.java src/test/java/com/rootly/client/model/NewCatalogFieldDataTest.java src/test/java/com/rootly/client/model/NewCatalogFieldTest.java +src/test/java/com/rootly/client/model/NewCatalogPropertyDataAttributesTest.java +src/test/java/com/rootly/client/model/NewCatalogPropertyDataTest.java +src/test/java/com/rootly/client/model/NewCatalogPropertyTest.java src/test/java/com/rootly/client/model/NewCatalogTest.java +src/test/java/com/rootly/client/model/NewCauseDataAttributesPropertiesInnerTest.java src/test/java/com/rootly/client/model/NewCauseDataAttributesTest.java src/test/java/com/rootly/client/model/NewCauseDataTest.java src/test/java/com/rootly/client/model/NewCauseTest.java @@ -3363,9 +4193,15 @@ src/test/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesNoti src/test/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesTest.java src/test/java/com/rootly/client/model/NewEscalationPolicyLevelDataTest.java src/test/java/com/rootly/client/model/NewEscalationPolicyLevelTest.java -src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1Test.java -src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2Test.java -src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOfTest.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1Test.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2Test.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3Test.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4Test.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5Test.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInnerTest.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6Test.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7Test.java +src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOfTest.java src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerTest.java src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTest.java src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTimeRestrictionsInnerTest.java @@ -3399,6 +4235,8 @@ src/test/java/com/rootly/client/model/NewFunctionalityTest.java src/test/java/com/rootly/client/model/NewHeartbeatDataAttributesTest.java src/test/java/com/rootly/client/model/NewHeartbeatDataTest.java src/test/java/com/rootly/client/model/NewHeartbeatTest.java +src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerTest.java +src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValueTest.java src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesTest.java src/test/java/com/rootly/client/model/NewIncidentActionItemDataTest.java src/test/java/com/rootly/client/model/NewIncidentActionItemTest.java @@ -3438,6 +4276,7 @@ src/test/java/com/rootly/client/model/NewIncidentRoleTaskDataAttributesTest.java src/test/java/com/rootly/client/model/NewIncidentRoleTaskDataTest.java src/test/java/com/rootly/client/model/NewIncidentRoleTaskTest.java src/test/java/com/rootly/client/model/NewIncidentRoleTest.java +src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInnerTest.java src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesTest.java src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataTest.java src/test/java/com/rootly/client/model/NewIncidentStatusPageEventTest.java @@ -3453,6 +4292,9 @@ src/test/java/com/rootly/client/model/NewLiveCallRouterDataAttributesPagingTarge src/test/java/com/rootly/client/model/NewLiveCallRouterDataAttributesTest.java src/test/java/com/rootly/client/model/NewLiveCallRouterDataTest.java src/test/java/com/rootly/client/model/NewLiveCallRouterTest.java +src/test/java/com/rootly/client/model/NewOnCallPayReportDataAttributesTest.java +src/test/java/com/rootly/client/model/NewOnCallPayReportDataTest.java +src/test/java/com/rootly/client/model/NewOnCallPayReportTest.java src/test/java/com/rootly/client/model/NewOnCallRoleDataAttributesTest.java src/test/java/com/rootly/client/model/NewOnCallRoleDataTest.java src/test/java/com/rootly/client/model/NewOnCallRoleTest.java @@ -3528,6 +4370,23 @@ src/test/java/com/rootly/client/model/NewServiceTest.java src/test/java/com/rootly/client/model/NewSeverityDataAttributesTest.java src/test/java/com/rootly/client/model/NewSeverityDataTest.java src/test/java/com/rootly/client/model/NewSeverityTest.java +src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributesTest.java +src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataTest.java +src/test/java/com/rootly/client/model/NewShiftCoverageRequestTest.java +src/test/java/com/rootly/client/model/NewSlaDataAttributesConditionsInnerTest.java +src/test/java/com/rootly/client/model/NewSlaDataAttributesNotificationConfigurationsInnerTest.java +src/test/java/com/rootly/client/model/NewSlaDataAttributesTest.java +src/test/java/com/rootly/client/model/NewSlaDataTest.java +src/test/java/com/rootly/client/model/NewSlaTest.java +src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributesTest.java +src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataTest.java +src/test/java/com/rootly/client/model/NewStatusPageAnnouncementTest.java +src/test/java/com/rootly/client/model/NewStatusPageComponentDataAttributesTest.java +src/test/java/com/rootly/client/model/NewStatusPageComponentDataTest.java +src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributesTest.java +src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataTest.java +src/test/java/com/rootly/client/model/NewStatusPageComponentGroupTest.java +src/test/java/com/rootly/client/model/NewStatusPageComponentTest.java src/test/java/com/rootly/client/model/NewStatusPageDataAttributesTest.java src/test/java/com/rootly/client/model/NewStatusPageDataTest.java src/test/java/com/rootly/client/model/NewStatusPageTemplateDataAttributesTest.java @@ -3549,9 +4408,16 @@ src/test/java/com/rootly/client/model/NewUserNotificationRuleTest.java src/test/java/com/rootly/client/model/NewUserPhoneNumberDataAttributesTest.java src/test/java/com/rootly/client/model/NewUserPhoneNumberDataTest.java src/test/java/com/rootly/client/model/NewUserPhoneNumberTest.java +src/test/java/com/rootly/client/model/NewVerifiedDomainDataAttributesTest.java +src/test/java/com/rootly/client/model/NewVerifiedDomainDataTest.java +src/test/java/com/rootly/client/model/NewVerifiedDomainTest.java +src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInnerTest.java src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesTest.java src/test/java/com/rootly/client/model/NewWebhooksEndpointDataTest.java src/test/java/com/rootly/client/model/NewWebhooksEndpointTest.java +src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributesTest.java +src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataTest.java +src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionTest.java src/test/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionDataAttributesTest.java src/test/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionDataTest.java src/test/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionTest.java @@ -3578,6 +4444,10 @@ src/test/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTest.java src/test/java/com/rootly/client/model/NewWorkflowTaskDataTest.java src/test/java/com/rootly/client/model/NewWorkflowTaskTest.java src/test/java/com/rootly/client/model/NewWorkflowTest.java +src/test/java/com/rootly/client/model/OnCallPayReportListTest.java +src/test/java/com/rootly/client/model/OnCallPayReportResponseDataTest.java +src/test/java/com/rootly/client/model/OnCallPayReportResponseTest.java +src/test/java/com/rootly/client/model/OnCallPayReportTest.java src/test/java/com/rootly/client/model/OnCallRoleListTest.java src/test/java/com/rootly/client/model/OnCallRoleRelationshipDataTest.java src/test/java/com/rootly/client/model/OnCallRoleRelationshipTest.java @@ -3589,14 +4459,34 @@ src/test/java/com/rootly/client/model/OnCallShadowResponseTest.java src/test/java/com/rootly/client/model/OnCallShadowTest.java src/test/java/com/rootly/client/model/OnCallShadowsListDataInnerTest.java src/test/java/com/rootly/client/model/OnCallShadowsListTest.java +src/test/java/com/rootly/client/model/OncallListDataInnerTest.java +src/test/java/com/rootly/client/model/OncallListTest.java +src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyDataTest.java +src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyTest.java +src/test/java/com/rootly/client/model/OncallRelationshipsScheduleDataTest.java +src/test/java/com/rootly/client/model/OncallRelationshipsScheduleTest.java +src/test/java/com/rootly/client/model/OncallRelationshipsTest.java +src/test/java/com/rootly/client/model/OncallRelationshipsUserDataTest.java +src/test/java/com/rootly/client/model/OncallRelationshipsUserTest.java +src/test/java/com/rootly/client/model/OncallTest.java src/test/java/com/rootly/client/model/OverrideShiftListTest.java src/test/java/com/rootly/client/model/OverrideShiftResponseDataTest.java src/test/java/com/rootly/client/model/OverrideShiftResponseTest.java src/test/java/com/rootly/client/model/OverrideShiftTest.java +src/test/java/com/rootly/client/model/PageJsmopsOnCallRespondersTaskParamsTest.java src/test/java/com/rootly/client/model/PageOpsgenieOnCallRespondersTaskParamsTest.java src/test/java/com/rootly/client/model/PagePagerdutyOnCallRespondersTaskParamsTest.java src/test/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParamsTest.java +src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1Test.java +src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsTest.java +src/test/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest.java +src/test/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest.java +src/test/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerDestinationsInnerTest.java +src/test/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerTest.java +src/test/java/com/rootly/client/model/PatchAlertRouteDataAttributesTest.java +src/test/java/com/rootly/client/model/PatchAlertRouteDataTest.java +src/test/java/com/rootly/client/model/PatchAlertRouteTest.java src/test/java/com/rootly/client/model/PhoneVerificationResponseTest.java src/test/java/com/rootly/client/model/PlaybookListTest.java src/test/java/com/rootly/client/model/PlaybookResponseDataTest.java @@ -3618,11 +4508,13 @@ src/test/java/com/rootly/client/model/PulseResponseDataTest.java src/test/java/com/rootly/client/model/PulseResponseTest.java src/test/java/com/rootly/client/model/PulseTest.java src/test/java/com/rootly/client/model/PulseTriggerParamsTest.java +src/test/java/com/rootly/client/model/ReceiptTest.java src/test/java/com/rootly/client/model/RedisClientTaskParamsTest.java src/test/java/com/rootly/client/model/RemoveGoogleDocsPermissionsTaskParamsTest.java src/test/java/com/rootly/client/model/RemoveSubscribersDataAttributesTest.java src/test/java/com/rootly/client/model/RemoveSubscribersDataTest.java src/test/java/com/rootly/client/model/RemoveSubscribersTest.java +src/test/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParamsTest.java src/test/java/com/rootly/client/model/RenameMicrosoftTeamsChannelTaskParamsTest.java src/test/java/com/rootly/client/model/RenameSlackChannelTaskParamsTest.java src/test/java/com/rootly/client/model/ResolveAlertDataAttributesTest.java @@ -3661,6 +4553,9 @@ src/test/java/com/rootly/client/model/RoleRelationshipTest.java src/test/java/com/rootly/client/model/RoleResponseDataTest.java src/test/java/com/rootly/client/model/RoleResponseTest.java src/test/java/com/rootly/client/model/RoleTest.java +src/test/java/com/rootly/client/model/RotateApiKeyDataAttributesTest.java +src/test/java/com/rootly/client/model/RotateApiKeyDataTest.java +src/test/java/com/rootly/client/model/RotateApiKeyTest.java src/test/java/com/rootly/client/model/RunCommandHerokuTaskParamsTest.java src/test/java/com/rootly/client/model/ScheduleListDataInnerTest.java src/test/java/com/rootly/client/model/ScheduleListTest.java @@ -3688,9 +4583,13 @@ src/test/java/com/rootly/client/model/SecretResponseTest.java src/test/java/com/rootly/client/model/SecretTest.java src/test/java/com/rootly/client/model/SendDashboardReportTaskParamsTest.java src/test/java/com/rootly/client/model/SendEmailTaskParamsTest.java +src/test/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParamsTest.java +src/test/java/com/rootly/client/model/SendGoogleChatMessageTaskParamsTest.java src/test/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParamsTest.java +src/test/java/com/rootly/client/model/SendMicrosoftTeamsChatMessageTaskParamsTest.java src/test/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParamsTest.java src/test/java/com/rootly/client/model/SendSlackBlocksTaskParamsTest.java +src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOfTest.java src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsTest.java src/test/java/com/rootly/client/model/SendSmsTaskParamsTest.java src/test/java/com/rootly/client/model/SendWhatsappMessageTaskParamsTest.java @@ -3704,6 +4603,10 @@ src/test/java/com/rootly/client/model/SeverityListTest.java src/test/java/com/rootly/client/model/SeverityResponseDataTest.java src/test/java/com/rootly/client/model/SeverityResponseTest.java src/test/java/com/rootly/client/model/SeverityTest.java +src/test/java/com/rootly/client/model/ShiftCoverageRequestListTest.java +src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseDataTest.java +src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseTest.java +src/test/java/com/rootly/client/model/ShiftCoverageRequestTest.java src/test/java/com/rootly/client/model/ShiftListDataInnerTest.java src/test/java/com/rootly/client/model/ShiftListTest.java src/test/java/com/rootly/client/model/ShiftOverrideResponseDataTest.java @@ -3714,15 +4617,38 @@ src/test/java/com/rootly/client/model/ShiftRelationshipsAssigneeTest.java src/test/java/com/rootly/client/model/ShiftRelationshipsShiftOverrideDataTest.java src/test/java/com/rootly/client/model/ShiftRelationshipsShiftOverrideTest.java src/test/java/com/rootly/client/model/ShiftRelationshipsTest.java -src/test/java/com/rootly/client/model/ShiftRelationshipsUserDataTest.java -src/test/java/com/rootly/client/model/ShiftRelationshipsUserTest.java src/test/java/com/rootly/client/model/ShiftTest.java src/test/java/com/rootly/client/model/SimpleTriggerParamsTest.java +src/test/java/com/rootly/client/model/SlaConditionsInnerTest.java +src/test/java/com/rootly/client/model/SlaListTest.java +src/test/java/com/rootly/client/model/SlaNotificationConfigurationsInnerTest.java +src/test/java/com/rootly/client/model/SlaResponseDataTest.java +src/test/java/com/rootly/client/model/SlaResponseTest.java +src/test/java/com/rootly/client/model/SlaTest.java +src/test/java/com/rootly/client/model/SlackChannelTest.java src/test/java/com/rootly/client/model/SnapshotDatadogGraphTaskParamsTest.java src/test/java/com/rootly/client/model/SnapshotGrafanaDashboardTaskParamsTest.java src/test/java/com/rootly/client/model/SnapshotLookerLookTaskParamsTest.java src/test/java/com/rootly/client/model/SnapshotNewRelicGraphTaskParamsTest.java +src/test/java/com/rootly/client/model/SnoozeAlertDataAttributesTest.java +src/test/java/com/rootly/client/model/SnoozeAlertDataTest.java +src/test/java/com/rootly/client/model/SnoozeAlertTest.java +src/test/java/com/rootly/client/model/StartSessionRequestTest.java +src/test/java/com/rootly/client/model/StartSessionResponseDataTest.java +src/test/java/com/rootly/client/model/StartSessionResponseTest.java src/test/java/com/rootly/client/model/StatusListTest.java +src/test/java/com/rootly/client/model/StatusPageAnnouncementListTest.java +src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseDataTest.java +src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseTest.java +src/test/java/com/rootly/client/model/StatusPageAnnouncementTest.java +src/test/java/com/rootly/client/model/StatusPageComponentGroupListTest.java +src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseDataTest.java +src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseTest.java +src/test/java/com/rootly/client/model/StatusPageComponentGroupTest.java +src/test/java/com/rootly/client/model/StatusPageComponentListTest.java +src/test/java/com/rootly/client/model/StatusPageComponentResponseDataTest.java +src/test/java/com/rootly/client/model/StatusPageComponentResponseTest.java +src/test/java/com/rootly/client/model/StatusPageComponentTest.java src/test/java/com/rootly/client/model/StatusPageListTest.java src/test/java/com/rootly/client/model/StatusPageResponseDataTest.java src/test/java/com/rootly/client/model/StatusPageResponseTest.java @@ -3764,10 +4690,9 @@ src/test/java/com/rootly/client/model/UpdateAlertFieldTest.java src/test/java/com/rootly/client/model/UpdateAlertGroupDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateAlertGroupDataTest.java src/test/java/com/rootly/client/model/UpdateAlertGroupTest.java -src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest.java -src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest.java -src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerDestinationsInnerTest.java -src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerTest.java +src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataTest.java +src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleTest.java src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateAlertRouteDataTest.java src/test/java/com/rootly/client/model/UpdateAlertRouteTest.java @@ -3783,11 +4708,17 @@ src/test/java/com/rootly/client/model/UpdateAlertUrgencyTest.java src/test/java/com/rootly/client/model/UpdateAlertsSourceDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateAlertsSourceDataTest.java src/test/java/com/rootly/client/model/UpdateAlertsSourceTest.java +src/test/java/com/rootly/client/model/UpdateApiKeyDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateApiKeyDataTest.java +src/test/java/com/rootly/client/model/UpdateApiKeyTest.java src/test/java/com/rootly/client/model/UpdateAsanaTaskTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateAttachedAlertsTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateAuthorizationDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateAuthorizationDataTest.java src/test/java/com/rootly/client/model/UpdateAuthorizationTest.java +src/test/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataTest.java +src/test/java/com/rootly/client/model/UpdateCatalogChecklistTemplateTest.java src/test/java/com/rootly/client/model/UpdateCatalogDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateCatalogDataTest.java src/test/java/com/rootly/client/model/UpdateCatalogEntityDataAttributesTest.java @@ -3799,6 +4730,9 @@ src/test/java/com/rootly/client/model/UpdateCatalogEntityTest.java src/test/java/com/rootly/client/model/UpdateCatalogFieldDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateCatalogFieldDataTest.java src/test/java/com/rootly/client/model/UpdateCatalogFieldTest.java +src/test/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateCatalogPropertyDataTest.java +src/test/java/com/rootly/client/model/UpdateCatalogPropertyTest.java src/test/java/com/rootly/client/model/UpdateCatalogTest.java src/test/java/com/rootly/client/model/UpdateCauseDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateCauseDataTest.java @@ -3840,7 +4774,13 @@ src/test/java/com/rootly/client/model/UpdateDashboardTest.java src/test/java/com/rootly/client/model/UpdateDatadogNotebookTaskParamsTemplateTest.java src/test/java/com/rootly/client/model/UpdateDatadogNotebookTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateDropboxPaperPageTaskParamsTest.java +src/test/java/com/rootly/client/model/UpdateEdgeConnectorActionRequestActionTest.java +src/test/java/com/rootly/client/model/UpdateEdgeConnectorActionRequestTest.java src/test/java/com/rootly/client/model/UpdateEdgeConnectorActionTest.java +src/test/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnectorTest.java +src/test/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataTest.java +src/test/java/com/rootly/client/model/UpdateEdgeConnectorRequestTest.java src/test/java/com/rootly/client/model/UpdateEdgeConnectorTest.java src/test/java/com/rootly/client/model/UpdateEnvironmentDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateEnvironmentDataTest.java @@ -3881,9 +4821,11 @@ src/test/java/com/rootly/client/model/UpdateFormSetTest.java src/test/java/com/rootly/client/model/UpdateFunctionalityDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateFunctionalityDataTest.java src/test/java/com/rootly/client/model/UpdateFunctionalityTest.java +src/test/java/com/rootly/client/model/UpdateGithubIssueTaskParamsRepositoryTest.java src/test/java/com/rootly/client/model/UpdateGithubIssueTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateGitlabIssueTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateGoogleCalendarEventTaskParamsTest.java +src/test/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateHeartbeatDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateHeartbeatDataTest.java @@ -3955,6 +4897,9 @@ src/test/java/com/rootly/client/model/UpdateLiveCallRouterDataTest.java src/test/java/com/rootly/client/model/UpdateLiveCallRouterTest.java src/test/java/com/rootly/client/model/UpdateMotionTaskTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateNotionPageTaskParamsTest.java +src/test/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateOnCallPayReportDataTest.java +src/test/java/com/rootly/client/model/UpdateOnCallPayReportTest.java src/test/java/com/rootly/client/model/UpdateOnCallRoleDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateOnCallRoleDataTest.java src/test/java/com/rootly/client/model/UpdateOnCallRoleTest.java @@ -4024,7 +4969,19 @@ src/test/java/com/rootly/client/model/UpdateSeverityTest.java src/test/java/com/rootly/client/model/UpdateSharepointPageTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateShortcutStoryTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateShortcutTaskTaskParamsTest.java +src/test/java/com/rootly/client/model/UpdateSlaDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateSlaDataTest.java +src/test/java/com/rootly/client/model/UpdateSlaTest.java src/test/java/com/rootly/client/model/UpdateSlackChannelTopicTaskParamsTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupTest.java +src/test/java/com/rootly/client/model/UpdateStatusPageComponentTest.java src/test/java/com/rootly/client/model/UpdateStatusPageDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateStatusPageDataTest.java src/test/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributesTest.java @@ -4055,6 +5012,9 @@ src/test/java/com/rootly/client/model/UpdateVictorOpsIncidentTaskParamsTest.java src/test/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateWebhooksEndpointDataTest.java src/test/java/com/rootly/client/model/UpdateWebhooksEndpointTest.java +src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributesTest.java +src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataTest.java +src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionTest.java src/test/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionDataAttributesTest.java src/test/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionDataTest.java src/test/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionTest.java @@ -4072,6 +5032,7 @@ src/test/java/com/rootly/client/model/UpdateWorkflowTaskDataTest.java src/test/java/com/rootly/client/model/UpdateWorkflowTaskTest.java src/test/java/com/rootly/client/model/UpdateWorkflowTest.java src/test/java/com/rootly/client/model/UpdateZendeskTicketTaskParamsTest.java +src/test/java/com/rootly/client/model/UptimeChartResponseTest.java src/test/java/com/rootly/client/model/UserEmailAddressListTest.java src/test/java/com/rootly/client/model/UserEmailAddressResponseDataTest.java src/test/java/com/rootly/client/model/UserEmailAddressResponseTest.java @@ -4090,16 +5051,10 @@ src/test/java/com/rootly/client/model/UserRelationshipsTest.java src/test/java/com/rootly/client/model/UserResponseDataTest.java src/test/java/com/rootly/client/model/UserResponseTest.java src/test/java/com/rootly/client/model/UserTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestActionTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInnerTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestEdgeConnectorTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestEdgeConnectorTest.java -src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestTest.java +src/test/java/com/rootly/client/model/VerifiedDomainListTest.java +src/test/java/com/rootly/client/model/VerifiedDomainResponseDataTest.java +src/test/java/com/rootly/client/model/VerifiedDomainResponseTest.java +src/test/java/com/rootly/client/model/VerifiedDomainTest.java src/test/java/com/rootly/client/model/VerifyPhoneNumberRequestTest.java src/test/java/com/rootly/client/model/WebhooksDeliveryListTest.java src/test/java/com/rootly/client/model/WebhooksDeliveryResponseDataTest.java @@ -4109,6 +5064,10 @@ src/test/java/com/rootly/client/model/WebhooksEndpointListTest.java src/test/java/com/rootly/client/model/WebhooksEndpointResponseDataTest.java src/test/java/com/rootly/client/model/WebhooksEndpointResponseTest.java src/test/java/com/rootly/client/model/WebhooksEndpointTest.java +src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionListTest.java +src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseDataTest.java +src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseTest.java +src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionTest.java src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionListTest.java src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseDataTest.java src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseTest.java diff --git a/Makefile b/Makefile index 852104eb..d71a9482 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ test: build-docker: @echo "Generating client using Docker..." @echo "Cleaning old openapitools package files..." - @rm -rf src/main/java/org/openapitools src/test/java/org/openapitools + @rm -rf src/main/java/org/openapitools src/test/java/org/openapitools src/test/java/com/rootly/client docker run --rm -v "$${PWD}:/local" openapitools/openapi-generator-cli:v7.13.0 generate \ -i https://rootly-heroku.s3.amazonaws.com/swagger/v1/swagger.json \ -g java \ @@ -36,7 +36,7 @@ build-docker: build-local: @echo "Generating client using local openapi-generator..." @echo "Cleaning old openapitools package files..." - @rm -rf src/main/java/org/openapitools src/test/java/org/openapitools + @rm -rf src/main/java/org/openapitools src/test/java/org/openapitools src/test/java/com/rootly/client openapi-generator generate \ -i https://rootly-heroku.s3.amazonaws.com/swagger/v1/swagger.json \ -g java \ diff --git a/api/openapi.yaml b/api/openapi.yaml index e373ba5d..678c12a8 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -43,14 +43,209 @@ info: --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + license: + name: Rootly + url: https://rootly.com title: Rootly API v1 version: v1 x-logo: url: https://rootly-heroku.s3.us-east-1.amazonaws.com/swagger/v1/logo.png - alt: Rootly servers: - url: https://api.rootly.com paths: + /v1/ai/chat: + post: + description: Send a message to the AI assistant and receive a synchronous reply. + Optionally bind the conversation to an incident or alert for context-aware + responses. Requires `ai.chat:write` OAuth scope or an API key. + operationId: createAiChat + parameters: + - description: Message to send to the AI assistant + explode: true + in: query + name: message + required: true + schema: + type: string + style: form + - description: Resume an existing session + explode: true + in: query + name: session_id + required: false + schema: + format: uuid + type: string + style: form + - description: Bind session to an incident for context (mutually exclusive with + alert_id) + explode: true + in: query + name: incident_id + required: false + schema: + format: uuid + type: string + style: form + - description: Bind session to an alert for context (mutually exclusive with + incident_id) + explode: true + in: query + name: alert_id + required: false + schema: + format: uuid + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ai_chat_response' + description: AI chat response + "403": + description: AI chat not enabled or insufficient scope + "422": + description: invalid request + security: + - bearer_auth: [] + summary: Send AI chat message + tags: + - AI Chat + x-accepts: + - application/vnd.api+json + /v1/ai/chat/stream: + post: + description: "Send a message and receive the AI response as a Server-Sent Events\ + \ stream. Optionally bind to an incident or alert for context. Events: `session_id`\ + \ (initial), `text` (content chunks), `task_update` (tool progress), `error`,\ + \ `done` (terminal with status). Requires `ai.chat:write` OAuth scope or an\ + \ API key." + operationId: streamAiChat + parameters: + - description: Message to send + explode: true + in: query + name: message + required: true + schema: + type: string + style: form + - description: Resume an existing session + explode: true + in: query + name: session_id + required: false + schema: + format: uuid + type: string + style: form + - description: Bind session to an incident (mutually exclusive with alert_id) + explode: true + in: query + name: incident_id + required: false + schema: + format: uuid + type: string + style: form + - description: Bind session to an alert (mutually exclusive with incident_id) + explode: true + in: query + name: alert_id + required: false + schema: + format: uuid + type: string + style: form + responses: + "200": + description: SSE event stream + "403": + description: AI chat not enabled + security: + - bearer_auth: [] + summary: Stream AI chat response (SSE) + tags: + - AI Chat + x-accepts: + - application/json + /v1/ai/chat/sessions/{session_id}/messages: + get: + description: "Returns the user and assistant message history for a session,\ + \ paginated and chronologically ordered. Internal tool messages are filtered\ + \ out. Requires `ai.chat:read` OAuth scope or an API key." + operationId: listAiChatSessionMessages + parameters: + - description: Session UUID + explode: false + in: path + name: session_id + required: true + schema: + format: uuid + type: string + style: simple + - description: Page number (default 1) + explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - description: "Messages per page (max 100, default 50)" + explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ai_chat_session_message_list' + description: session messages + "404": + description: session not found + security: + - bearer_auth: [] + summary: List AI chat session messages + tags: + - AI Chat + x-accepts: + - application/vnd.api+json + /v1/ai/chat/sessions/{id}: + delete: + description: Permanently deletes an AI chat session and all its messages. Requires + `ai.chat:write` OAuth scope or an API key. + operationId: deleteAiChatSession + parameters: + - description: Session UUID + explode: false + in: path + name: id + required: true + schema: + format: uuid + type: string + style: simple + responses: + "204": + description: session deleted + "404": + description: session not found + security: + - bearer_auth: [] + summary: Delete AI chat session + tags: + - AI Chat + x-accepts: + - application/json /v1/alerts/{alert_id}/events: get: description: List alert_events @@ -132,80 +327,12 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: 00a0b026-903c-47ad-b1be-85c20aa20079 - type: alert_events - attributes: - kind: note - source: api - action: created - details: This is a test note - user: - id: 6 - ability_cache: null - accept_marketing: true - accept_terms: true - created_at: 2026-01-20T09:40:25.929-08:00 - created_through_sso: false - current_team_id: 2 - deleted_at: null - email: bot@rootly.com - external_id: null - first_name: Rootly - has_impersonate_write_permission: false - how_did_you_hear_about_us: null - incidents_backfilled_count: 0 - incidents_count: 0 - incidents_example_count: 0 - incidents_normal_count: 0 - incidents_scheduled_count: 0 - incidents_test_count: 0 - is_super_admin: false - jti: 6423ee14-2bbf-4678-b8a7-c030d7c457c4 - last_name: null - last_notification_email_sent_at: null - last_seen_at: null - locale: en - onboarding_completed: true - opsgenie_id: null - pagerduty_id: null - profile_photo_id: null - push_notification_new_alert_sound: default - push_notification_new_alert_volume: 1.0 - push_notification_shift_coverage_sound: soft_bloob - push_notification_shift_ends_sound: soft_bloob - push_notification_shift_starts_sound: soft_bloob - scim_uid: null - service_user: true - session_token: null - skip_tutorial: false - teams_count: 1 - theme: light_v2 - time_zone: America/Los_Angeles - updated_at: 2026-01-20T09:40:25.929-08:00 - victor_ops_id: null - view_multiple_schedules: true - user_id: 6 - incident: null - schedule: null - escalation_level: null - escalation_target_type: null - escalation_target: null - slack_channel: null - incident_ids: [] - created_at: 2026-01-20T09:40:26.388-08:00 - updated_at: 2026-01-20T09:40:26.388-08:00 schema: $ref: '#/components/schemas/alert_event_response' description: alert event created with Rootly bot user "422": content: application/vnd.api+json: - example: - errors: - - title: Details can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request @@ -217,6 +344,160 @@ paths: x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json + /v1/alert_events: + get: + description: "Returns a flat list of alert events across all alerts the requester\ + \ can access. Designed for periodic polling: use `page[after]` with the `next_cursor`\ + \ returned in the previous response to stream forward." + operationId: listAlertEventsFeed + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - description: Page size (max 50). + explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - description: Cursor token from the previous response's `meta.next_cursor`. + Pass the same `sort` value used to obtain the cursor. + explode: true + in: query + name: "page[after]" + required: false + schema: + type: string + style: form + - description: Sort by `created_at`. Defaults to `created_at` (oldest-first). + Use `-created_at` for newest-first. + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + type: string + style: form + - explode: true + in: query + name: "filter[kind]" + required: false + schema: + enum: + - informational + - notification + - action + - status_update + - recording + - alert_grouping + - alert_urgency + - alert_routing + - note + - noise + - maintenance + - deferral + type: string + style: form + - explode: true + in: query + name: "filter[action]" + required: false + schema: + enum: + - created + - escalation_policy_paged + - ignored_alert_request + - call_lifecycle + - level_skipped + - emailed + - slacked + - ms_teams_messaged + - google_chat_messaged + - called + - texted + - notified + - skipped + - opened + - retriggered + - ack_timeout_retriggered + - answered + - acknowledged + - escalated + - paged + - resolved + - attached + - snoozed + - retrigger_suppressed + - triggered + - open + - updated + - added + - removed + - marked + - not_marked + - cleared + - muted + - deferred + type: string + style: form + - explode: true + in: query + name: "filter[alert_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_event_feed_list' + description: success + security: + - bearer_auth: [] + summary: List alert events across alerts + tags: + - AlertEvents + x-accepts: + - application/vnd.api+json /v1/alert_events/{id}: delete: description: Deletes a specific alert event. Only alert events with kind 'note' @@ -237,10 +518,6 @@ paths: "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: alert event not found @@ -266,80 +543,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 2237eb18-9670-4cfb-8d50-bce50ed59505 - type: alert_events - attributes: - kind: note - source: api - action: created - details: test note - user: - id: 1 - ability_cache: null - accept_marketing: true - accept_terms: true - created_at: 2026-01-20T09:40:24.155-08:00 - created_through_sso: false - current_team_id: 1 - deleted_at: null - email: will_macejkovic@runte-brakus.example - external_id: null - first_name: Otis - has_impersonate_write_permission: false - how_did_you_hear_about_us: null - incidents_backfilled_count: 0 - incidents_count: 0 - incidents_example_count: 0 - incidents_normal_count: 0 - incidents_scheduled_count: 0 - incidents_test_count: 0 - is_super_admin: false - jti: cfda4e8e-b98d-4cd9-86a4-530a720d5f68 - last_name: Rodriguez - last_notification_email_sent_at: null - last_seen_at: null - locale: en - onboarding_completed: true - opsgenie_id: null - pagerduty_id: null - profile_photo_id: null - push_notification_new_alert_sound: default - push_notification_new_alert_volume: 1.0 - push_notification_shift_coverage_sound: soft_bloob - push_notification_shift_ends_sound: soft_bloob - push_notification_shift_starts_sound: soft_bloob - scim_uid: null - service_user: false - session_token: null - skip_tutorial: false - teams_count: 1 - theme: light_v2 - time_zone: UTC - updated_at: 2026-01-20T09:40:24.792-08:00 - victor_ops_id: null - view_multiple_schedules: true - user_id: 1 - incident: null - schedule: null - escalation_level: null - escalation_target_type: null - escalation_target: null - slack_channel: null - incident_ids: [] - created_at: 2026-01-20T09:40:26.102-08:00 - updated_at: 2026-01-20T09:40:26.102-08:00 schema: $ref: '#/components/schemas/alert_event_response' description: alert_event found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: alert_event not found @@ -372,80 +581,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 2237eb18-9670-4cfb-8d50-bce50ed59505 - type: alert_events - attributes: - kind: note - source: api - action: created - details: Updated details - user: - id: 1 - ability_cache: null - accept_marketing: true - accept_terms: true - created_at: 2026-01-20T09:40:24.155-08:00 - created_through_sso: false - current_team_id: 1 - deleted_at: null - email: will_macejkovic@runte-brakus.example - external_id: null - first_name: Otis - has_impersonate_write_permission: false - how_did_you_hear_about_us: null - incidents_backfilled_count: 0 - incidents_count: 0 - incidents_example_count: 0 - incidents_normal_count: 0 - incidents_scheduled_count: 0 - incidents_test_count: 0 - is_super_admin: false - jti: cfda4e8e-b98d-4cd9-86a4-530a720d5f68 - last_name: Rodriguez - last_notification_email_sent_at: null - last_seen_at: null - locale: en - onboarding_completed: true - opsgenie_id: null - pagerduty_id: null - profile_photo_id: null - push_notification_new_alert_sound: default - push_notification_new_alert_volume: 1.0 - push_notification_shift_coverage_sound: soft_bloob - push_notification_shift_ends_sound: soft_bloob - push_notification_shift_starts_sound: soft_bloob - scim_uid: null - service_user: false - session_token: null - skip_tutorial: false - teams_count: 1 - theme: light_v2 - time_zone: UTC - updated_at: 2026-01-20T09:40:24.792-08:00 - victor_ops_id: null - view_multiple_schedules: true - user_id: 1 - incident: null - schedule: null - escalation_level: null - escalation_target_type: null - escalation_target: null - slack_channel: null - incident_ids: [] - created_at: 2026-01-20T09:40:26.102-08:00 - updated_at: 2026-01-20T09:40:26.703-08:00 schema: $ref: '#/components/schemas/alert_event_response' description: alert event updated "422": content: application/vnd.api+json: - example: - errors: - - title: Details can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request @@ -532,6 +673,62 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][not_in]" + required: false + schema: + type: string + style: form - explode: true in: query name: sort @@ -567,36 +764,18 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: 992bf325-71e5-4a65-8f2d-2d7e932562b6 - type: alert_fields - attributes: - slug: custom-field-test - name: Custom Field Test - kind: custom - created_at: 2026-01-20T09:40:29.165-08:00 - updated_at: 2026-01-20T09:40:29.165-08:00 schema: $ref: '#/components/schemas/alert_field_response' description: alert field created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token @@ -624,37 +803,19 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 330f8998-7ca5-408e-ba15-ef9c6c558048 - type: alert_fields - attributes: - slug: alert-field-12 - name: Alert Field 12 - kind: custom - created_at: 2026-01-20T09:40:29.956-08:00 - updated_at: 2026-01-20T09:40:30.043-08:00 schema: $ref: '#/components/schemas/alert_field_response' description: custom alert field deleted successfully "422": content: application/vnd.api+json: - example: - errors: - - title: Cannot delete record because dependent alert routing rule - conditions exist - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: cannot delete alert field with associated records + description: cannot delete alert field referenced by escalation path field + rules "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -680,26 +841,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: cd426bd7-ec52-4077-9a6c-9848f7b53ef8 - type: alert_fields - attributes: - slug: alert-field-1 - name: Alert Field 1 - kind: custom - created_at: 2026-01-20T09:40:28.117-08:00 - updated_at: 2026-01-20T09:40:28.117-08:00 schema: $ref: '#/components/schemas/alert_field_response' description: alert_field found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -731,26 +878,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: cd426bd7-ec52-4077-9a6c-9848f7b53ef8 - type: alert_fields - attributes: - slug: alert-field-1 - name: Updated Custom Field - kind: custom - created_at: 2026-01-20T09:40:28.117-08:00 - updated_at: 2026-01-20T09:40:29.688-08:00 schema: $ref: '#/components/schemas/alert_field_response' description: alert field updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -774,6 +907,62 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form responses: "200": content: @@ -805,77 +994,18 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: dcf75c3d-2e54-4b30-b283-c97937cdc1eb - type: alert_groups - attributes: - name: Test alert group - slug: test-alert-group - description: null - time_window: 10 - condition_type: any - deleted_at: null - created_at: 2026-01-20T09:40:33.715-08:00 - updated_at: 2026-01-20T09:40:33.715-08:00 - group_by_alert_title: false - group_by_alert_urgency: false - targets: - - id: 5fec9fd9-0c3e-445e-9434-3f5b6f9bf74c - alert_group_id: dcf75c3d-2e54-4b30-b283-c97937cdc1eb - created_at: 2026-01-20T09:40:33.716-08:00 - deleted_at: null - target_id: cd88c963-6fac-4068-8968-6d2be9cffc23 - target_type: Service - updated_at: 2026-01-20T09:40:33.716-08:00 - attributes: [] - conditions: - - id: 498a033b-e15c-4405-94bd-0b7f0e75e98c - property_field_condition_type: is_one_of - property_field_name: description - property_field_type: attribute - property_field_value: null - property_field_values: - - Test description - created_at: 2026-01-20T09:40:33.717-08:00 - updated_at: 2026-01-20T09:40:33.717-08:00 - conditionable_type: null - conditionable_id: null - - id: 22a1bb84-62c3-4447-b0e8-959bc765ab00 - property_field_condition_type: is_one_of - property_field_name: alert_urgency - property_field_type: attribute - property_field_value: null - property_field_values: [] - created_at: 2026-01-20T09:40:33.720-08:00 - updated_at: 2026-01-20T09:40:33.720-08:00 - conditionable_type: null - conditionable_id: null - values: - - record_id: 912a217e-4c5a-40be-a630-2af76994b89d - record_type: AlertUrgency schema: $ref: '#/components/schemas/alert_group_response' description: alert group created with conditions "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: Destinations can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token @@ -903,33 +1033,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4edc88ce-48ba-474f-98c1-9b2204646263 - type: alert_groups - attributes: - name: 123 test group - slug: 123-test-group - description: null - time_window: 10 - condition_type: any - deleted_at: 2026-01-20T09:40:34.681-08:00 - created_at: 2026-01-20T09:40:33.398-08:00 - updated_at: 2026-01-20T09:40:34.681-08:00 - group_by_alert_title: false - group_by_alert_urgency: false - targets: [] - attributes: [] schema: $ref: '#/components/schemas/alert_group_response' description: alert group deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -955,40 +1064,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4edc88ce-48ba-474f-98c1-9b2204646263 - type: alert_groups - attributes: - name: 123 test group - slug: 123-test-group - description: null - time_window: 10 - condition_type: any - deleted_at: null - created_at: 2026-01-20T09:40:33.398-08:00 - updated_at: 2026-01-20T09:40:33.398-08:00 - group_by_alert_title: false - group_by_alert_urgency: false - targets: - - id: b9393aef-f30b-44b1-935a-0672226debe3 - alert_group_id: 4edc88ce-48ba-474f-98c1-9b2204646263 - created_at: 2026-01-20T09:40:33.400-08:00 - deleted_at: null - target_id: cd88c963-6fac-4068-8968-6d2be9cffc23 - target_type: Service - updated_at: 2026-01-20T09:40:33.400-08:00 - attributes: [] schema: $ref: '#/components/schemas/alert_group_response' description: alert_group found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -1023,65 +1104,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4edc88ce-48ba-474f-98c1-9b2204646263 - type: alert_groups - attributes: - name: Group name updated - slug: 123-test-group - description: null - time_window: 10 - condition_type: any - deleted_at: null - created_at: 2026-01-20T09:40:33.398-08:00 - updated_at: 2026-01-20T09:40:34.467-08:00 - group_by_alert_title: false - group_by_alert_urgency: false - targets: - - id: b9393aef-f30b-44b1-935a-0672226debe3 - alert_group_id: 4edc88ce-48ba-474f-98c1-9b2204646263 - created_at: 2026-01-20T09:40:33.400-08:00 - deleted_at: null - target_id: cd88c963-6fac-4068-8968-6d2be9cffc23 - target_type: Service - updated_at: 2026-01-20T09:40:33.400-08:00 - attributes: [] - conditions: - - id: 15cfecb5-9b03-46df-b466-59c047208cf4 - property_field_condition_type: is_one_of - property_field_name: description - property_field_type: attribute - property_field_value: null - property_field_values: - - Test description - created_at: 2026-01-20T09:40:34.468-08:00 - updated_at: 2026-01-20T09:40:34.468-08:00 - conditionable_type: null - conditionable_id: null - - id: 77a651fb-1378-4d92-8984-924e31e89f32 - property_field_condition_type: is_one_of - property_field_name: alert_urgency - property_field_type: attribute - property_field_value: null - property_field_values: [] - created_at: 2026-01-20T09:40:34.470-08:00 - updated_at: 2026-01-20T09:40:34.470-08:00 - conditionable_type: null - conditionable_id: null - values: - - record_id: 912a217e-4c5a-40be-a630-2af76994b89d - record_type: AlertUrgency schema: $ref: '#/components/schemas/alert_group_response' description: alert group updated with conditions "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -1093,6 +1121,129 @@ paths: x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json + /v1/alert_retrigger_rules: + get: + operationId: listAlertRetriggerRules + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_retrigger_rule_list' + description: alert re-trigger rules listed + security: + - bearer_auth: [] + summary: List alert re-trigger rules + tags: + - AlertRetriggerRules + x-accepts: + - application/vnd.api+json + post: + operationId: createAlertRetriggerRule + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_alert_retrigger_rule' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_retrigger_rule_response' + description: alert re-trigger rule created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + security: + - bearer_auth: [] + summary: Creates an alert re-trigger rule + tags: + - AlertRetriggerRules + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/alert_retrigger_rules/{id}: + delete: + operationId: deleteAlertRetriggerRule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + description: alert re-trigger rule deleted + security: + - bearer_auth: [] + summary: Deletes an alert re-trigger rule + tags: + - AlertRetriggerRules + x-accepts: + - application/json + get: + operationId: getAlertRetriggerRule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_retrigger_rule_response' + description: alert re-trigger rule found + security: + - bearer_auth: [] + summary: Retrieves an alert re-trigger rule + tags: + - AlertRetriggerRules + x-accepts: + - application/vnd.api+json + put: + operationId: updateAlertRetriggerRule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_alert_retrigger_rule' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_retrigger_rule_response' + description: alert re-trigger rule updated + security: + - bearer_auth: [] + summary: Updates an alert re-trigger rule + tags: + - AlertRetriggerRules + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json /v1/alert_routes: get: description: "List all alert routes for the current team with filtering and\ @@ -1129,6 +1280,62 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form - explode: true in: query name: sort @@ -1140,180 +1347,6 @@ paths: "200": content: application/vnd.api+json: - example: - data: - - id: 0b7dbfc3-3adf-45b3-9057-5f8c94acca0c - type: alert_routes - attributes: - name: Test Alert Route-4672 - enabled: true - created_at: 2026-01-20T09:40:38.124-08:00 - updated_at: 2026-01-20T09:40:38.124-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: d03596d7-c31a-4ed0-9e81-4eea2efe181f - type: alert_routes - attributes: - name: Test Alert Route-68fb - enabled: true - created_at: 2026-01-20T09:40:38.120-08:00 - updated_at: 2026-01-20T09:40:38.120-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: a62e5227-a4b6-4564-a001-f9ee441d8db7 - type: alert_routes - attributes: - name: Test Alert Route-19f1 - enabled: true - created_at: 2026-01-20T09:40:38.114-08:00 - updated_at: 2026-01-20T09:40:38.114-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: e59f2c6e-4ba2-40eb-ba43-df4100d23ee5 - type: alert_routes - attributes: - name: Test Alert Route-ab22 - enabled: true - created_at: 2026-01-20T09:40:38.106-08:00 - updated_at: 2026-01-20T09:40:38.106-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: a9690b1c-33f0-4658-8c5a-0ff843604763 - type: alert_routes - attributes: - name: Test Alert Route-3e4f - enabled: true - created_at: 2026-01-20T09:40:38.100-08:00 - updated_at: 2026-01-20T09:40:38.100-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: 9f1436cb-5174-4db2-a565-234515cc5535 - type: alert_routes - attributes: - name: Test Alert Route-d193 - enabled: true - created_at: 2026-01-20T09:40:38.094-08:00 - updated_at: 2026-01-20T09:40:38.094-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: 7b87b02a-ff3d-4432-b348-59bcfef60571 - type: alert_routes - attributes: - name: Test Alert Route-e9bc - enabled: true - created_at: 2026-01-20T09:40:38.086-08:00 - updated_at: 2026-01-20T09:40:38.086-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: 5c791765-e184-42fc-91a7-6aa73ef2e6dd - type: alert_routes - attributes: - name: Test Alert Route-f863 - enabled: true - created_at: 2026-01-20T09:40:38.078-08:00 - updated_at: 2026-01-20T09:40:38.078-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: 0c9d8e3e-c27a-4b5a-bf1c-2a5bbe316f23 - type: alert_routes - attributes: - name: Test Alert Route-56c9 - enabled: true - created_at: 2026-01-20T09:40:38.072-08:00 - updated_at: 2026-01-20T09:40:38.072-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: 89897ccd-8afd-4883-acf2-e551294d16a9 - type: alert_routes - attributes: - name: Test Alert Route-885e - enabled: true - created_at: 2026-01-20T09:40:38.060-08:00 - updated_at: 2026-01-20T09:40:38.060-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] - - id: 2f2f878a-3d75-4ae9-b27c-dd44a10e26e0 - type: alert_routes - attributes: - name: Alert Routing Rule 2 - enabled: false - created_at: 2026-01-20T09:40:37.899-08:00 - updated_at: 2026-01-20T09:40:37.899-08:00 - alerts_source_ids: - - f159cd40-ba46-4f1d-a4bf-2a08c0ae1595 - owning_team_ids: - - cb8b4c67-a324-4e1c-854e-c2e1412afb1d - rules: - - id: 3dab21a8-959d-4efd-afcc-52eaed34f706 - name: Alert Routing Rule 2 - alerts_source_id: f159cd40-ba46-4f1d-a4bf-2a08c0ae1595 - condition_type: all - enabled: false - position: 1 - destination: - target_type: EscalationPolicy - target_id: 89d39e1f-9ca8-4e8d-ba70-ab93e6a95e7d - created_at: 2026-01-20T09:40:37.909-08:00 - updated_at: 2026-01-20T09:40:37.909-08:00 - destinations: - - target_type: EscalationPolicy - target_id: 89d39e1f-9ca8-4e8d-ba70-ab93e6a95e7d - condition_groups: [] - owning_teams: - - id: cb8b4c67-a324-4e1c-854e-c2e1412afb1d - slug: nesciunt-et-placeat-ad - name: Nesciunt et placeat ad. - description: null - color: '#E65252' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - pagerduty_id: null - pagerduty_service_id: null - backstage_id: null - external_id: null - opsgenie_id: null - victor_ops_id: null - pagertree_id: null - cortex_id: null - service_now_ci_sys_id: null - user_ids: [] - admin_ids: [] - incidents_count: 0 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: group-a96f3b93d3c9572c7e63162a6b4be98b@email.rootly.com - alert_broadcast_enabled: false - alert_broadcast_channel: {} - incident_broadcast_enabled: false - incident_broadcast_channel: {} - auto_add_members_when_attached: false - created_at: 2026-01-20T09:40:36.126-08:00 - updated_at: 2026-01-20T09:40:36.126-08:00 - fallback_rule: false - links: - self: http://www.example.com/v1/alert_routes?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/alert_routes?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/alert_routes?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 11 - total_pages: 1 schema: $ref: '#/components/schemas/alert_route_list' description: alert routes filtered by search @@ -1353,47 +1386,6 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: 3783c976-fcb7-49d3-8ca3-ca3e3f5de2be - type: alert_routes - attributes: - name: Test Alert Route e12a - enabled: true - created_at: 2026-01-20T09:40:39.481-08:00 - updated_at: 2026-01-20T09:40:39.481-08:00 - alerts_source_ids: - - cd437785-a638-4196-8895-fdb018118099 - owning_team_ids: - - cb8b4c67-a324-4e1c-854e-c2e1412afb1d - rules: - - id: 22c0129c-312f-427d-b823-bc85ee6e6fe4 - name: Test Routing Rule - alerts_source_id: null - condition_type: all - enabled: true - position: 1 - destination: - target_type: Group - target_id: cb8b4c67-a324-4e1c-854e-c2e1412afb1d - created_at: 2026-01-20T09:40:39.485-08:00 - updated_at: 2026-01-20T09:40:39.485-08:00 - destinations: - - target_type: Group - target_id: cb8b4c67-a324-4e1c-854e-c2e1412afb1d - condition_groups: - - position: 1 - conditions: - - property_field_condition_type: is_one_of - property_field_name: summary - property_field_type: attribute - property_field_value: null - property_field_values: - - Error from system - conditionable_id: null - conditionable_type: null - owning_teams: [] - fallback_rule: false schema: $ref: '#/components/schemas/alert_route_response' description: unknown attribute filtered out gracefully @@ -1435,22 +1427,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 89897ccd-8afd-4883-acf2-e551294d16a9 - type: alert_route - attributes: - deleted: true schema: $ref: '#/components/schemas/deleteAlertRoute_200_response' description: alert route deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: cross-team access denied @@ -1474,9 +1456,14 @@ paths: x-accepts: - application/vnd.api+json get: - description: "Get a specific alert route by id. **Note: This endpoint requires\ - \ access to Advanced Alert Routing. If you're unsure whether you have access\ - \ to this feature, please contact Rootly customer support.**" + description: |- + Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + + ## Optional Parameters + + - **show_nested_ids** (query parameter): When set to `true`, the response will include IDs for all nested resources (destinations, condition_groups, conditions). This is useful when you need to reference these nested resources for updates or deletions via PATCH requests. + + Example: `GET /v1/alert_routes/{id}?show_nested_ids=true` operationId: getAlertRoute parameters: - explode: false @@ -1490,18 +1477,6 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 89897ccd-8afd-4883-acf2-e551294d16a9 - type: alert_routes - attributes: - name: Test Alert Route-885e - enabled: true - created_at: 2026-01-20T09:40:38.060-08:00 - updated_at: 2026-01-20T09:40:38.060-08:00 - alerts_source_ids: [] - owning_team_ids: [] - rules: [] schema: $ref: '#/components/schemas/alert_route_response' description: alert route found @@ -1524,11 +1499,63 @@ paths: - AlertRoutes x-accepts: - application/vnd.api+json - put: + patch: + description: "Updates an alert route. **Note: This endpoint requires access\ + \ to Advanced Alert Routing. If you're unsure whether you have access to this\ + \ feature, please contact Rootly customer support.**" + operationId: patchAlertRoute + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/patch_alert_route' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_route_response' + description: delete existing rule by id with _destroy + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: unauthorized + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: cross-team access denied + security: + - bearer_auth: [] + summary: Update an alert route + tags: + - AlertRoutes + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + put: description: |- Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** - ## Asynchronous Rule Creation + ### Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. @@ -1554,19 +1581,6 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 89897ccd-8afd-4883-acf2-e551294d16a9 - type: alert_routes - attributes: - name: Updated Alert Route Name - enabled: false - created_at: 2026-01-20T09:40:38.060-08:00 - updated_at: 2026-01-20T09:40:43.816-08:00 - alerts_source_ids: - - cd437785-a638-4196-8895-fdb018118099 - owning_team_ids: [] - rules: [] schema: $ref: '#/components/schemas/alert_route_response' description: "update: handles mixed position types correctly" @@ -1661,6 +1675,62 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form - explode: true in: query name: sort @@ -1699,60 +1769,18 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: cd3df40d-6d79-4981-b289-73d215ad7c4c - type: alert_routing_rules - attributes: - name: Test Alert Routing Rule 1 - alerts_source_id: e8a15f13-07e3-45f7-b953-29e4de1d5867 - condition_type: all - enabled: false - position: 2 - destination: - target_type: Group - target_id: 97560dac-3393-4936-818d-0b4178ed1e9e - created_at: 2026-01-20T09:41:00.621-08:00 - updated_at: 2026-01-20T09:41:00.621-08:00 - destinations: - - target_type: Group - target_id: 97560dac-3393-4936-818d-0b4178ed1e9e - conditions: - - property_field_condition_type: is_one_of - property_field_name: description - property_field_type: attribute - property_field_value: null - property_field_values: - - Open - conditionable_id: null - conditionable_type: null - relationships: - owning_teams: - data: - - id: 97560dac-3393-4936-818d-0b4178ed1e9e - type: groups schema: $ref: '#/components/schemas/alert_routing_rule_response' description: alert routing rule created "422": content: application/vnd.api+json: - example: - errors: - - title: Alert route name can't be blank - status: "422" - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token @@ -1783,36 +1811,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: f7d1d671-c9b3-4c66-a43e-6378ce0cf3f9 - type: alert_routing_rules - attributes: - name: Alert Routing Rule 4 - alerts_source_id: e8a15f13-07e3-45f7-b953-29e4de1d5867 - condition_type: all - enabled: false - position: 1 - destination: null - created_at: 2026-01-20T09:40:58.692-08:00 - updated_at: 2026-01-20T09:41:03.171-08:00 - destinations: [] - conditions: [] - relationships: - owning_teams: - data: - - id: 97560dac-3393-4936-818d-0b4178ed1e9e - type: groups schema: $ref: '#/components/schemas/alert_routing_rule_response' description: alert routing rule deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -1841,40 +1845,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: f7d1d671-c9b3-4c66-a43e-6378ce0cf3f9 - type: alert_routing_rules - attributes: - name: Alert Routing Rule 4 - alerts_source_id: e8a15f13-07e3-45f7-b953-29e4de1d5867 - condition_type: all - enabled: false - position: 1 - destination: - target_type: EscalationPolicy - target_id: 70269fe2-4383-442a-a988-76b05e08a291 - created_at: 2026-01-20T09:40:58.692-08:00 - updated_at: 2026-01-20T09:40:58.692-08:00 - destinations: - - target_type: EscalationPolicy - target_id: 70269fe2-4383-442a-a988-76b05e08a291 - conditions: [] - relationships: - owning_teams: - data: - - id: 97560dac-3393-4936-818d-0b4178ed1e9e - type: groups schema: $ref: '#/components/schemas/alert_routing_rule_response' description: alert_routing_rule found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -1909,40 +1885,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: f7d1d671-c9b3-4c66-a43e-6378ce0cf3f9 - type: alert_routing_rules - attributes: - name: Test Alert Routing Rule 1 (Updated) - alerts_source_id: e8a15f13-07e3-45f7-b953-29e4de1d5867 - condition_type: all - enabled: false - position: 1 - destination: - target_type: EscalationPolicy - target_id: 70269fe2-4383-442a-a988-76b05e08a291 - created_at: 2026-01-20T09:40:58.692-08:00 - updated_at: 2026-01-20T09:41:02.289-08:00 - destinations: - - target_type: EscalationPolicy - target_id: 70269fe2-4383-442a-a988-76b05e08a291 - conditions: [] - relationships: - owning_teams: - data: - - id: 97560dac-3393-4936-818d-0b4178ed1e9e - type: groups schema: $ref: '#/components/schemas/alert_routing_rule_response' description: alert routing rule updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -2022,6 +1970,34 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form - explode: true in: query name: sort @@ -2057,38 +2033,18 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: df834736-3eba-438d-8ecc-8000cb38a11d - type: alert_urgencies - attributes: - name: High - description: Hight alert urgency - position: 1 - created_at: 2026-01-20T09:41:06.695-08:00 - updated_at: 2026-01-20T09:41:06.695-08:00 schema: $ref: '#/components/schemas/alert_urgency_response' description: alert urgency created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: Description can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token @@ -2116,26 +2072,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4d243c9f-a2a3-4b3f-af6c-7f0df6939d48 - type: alert_urgencies - attributes: - name: sbcu9 - description: Unde quia iste nihil. - position: 1 - created_at: 2026-01-20T09:41:04.442-08:00 - updated_at: 2026-01-20T09:41:07.950-08:00 schema: $ref: '#/components/schemas/alert_urgency_response' description: alert urgency deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -2161,26 +2103,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4d243c9f-a2a3-4b3f-af6c-7f0df6939d48 - type: alert_urgencies - attributes: - name: sbcu9 - description: Unde quia iste nihil. - position: 1 - created_at: 2026-01-20T09:41:04.442-08:00 - updated_at: 2026-01-20T09:41:04.447-08:00 schema: $ref: '#/components/schemas/alert_urgency_response' description: alert urgency found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -2212,26 +2140,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4d243c9f-a2a3-4b3f-af6c-7f0df6939d48 - type: alert_urgencies - attributes: - name: High (Updated) - description: Unde quia iste nihil. - position: 2 - created_at: 2026-01-20T09:41:04.442-08:00 - updated_at: 2026-01-20T09:41:07.514-08:00 schema: $ref: '#/components/schemas/alert_urgency_response' description: alert urgency updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -2290,6 +2204,20 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled]" + required: false + schema: + type: boolean + style: form - explode: true in: query name: sort @@ -2325,112 +2253,18 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: c09a603b-8ed4-4d9c-a703-f19114ef583a - type: alert_sources - attributes: - name: Email Source 1 - source_type: email - status: setup_incomplete - secret: 0ed4cd9664fdebd628e1a75453d8b103f11ebc2af089929cc785ad08ff73e85f - alert_urgency_id: 12426484-61aa-4bf5-b8b5-aeae51a582a7 - created_at: 2026-01-20T09:41:11.885-08:00 - updated_at: 2026-01-20T09:41:11.889-08:00 - webhook_endpoint: http://localhost:3001/webhooks/incoming/generic_webhooks/notify// - owner_group_ids: [] - alert_source_urgency_rules_attributes: [] - alert_source_fields_attributes: - - template_body: null - created_at: 2026-01-20T09:41:11.894-08:00 - updated_at: 2026-01-20T09:41:11.894-08:00 - alert_field_id: f7435402-a3c5-44e0-be4b-b2a06190bc79 - alert_field: - id: f7435402-a3c5-44e0-be4b-b2a06190bc79 - slug: description-field - name: Description Field - kind: description - created_at: 2026-01-20T09:41:10.129-08:00 - updated_at: 2026-01-20T09:41:10.129-08:00 - - template_body: null - created_at: 2026-01-20T09:41:11.897-08:00 - updated_at: 2026-01-20T09:41:11.897-08:00 - alert_field_id: abbf6c60-292e-42c4-8529-995fccffdd75 - alert_field: - id: abbf6c60-292e-42c4-8529-995fccffdd75 - slug: title-field - name: Title Field - kind: title - created_at: 2026-01-20T09:41:10.122-08:00 - updated_at: 2026-01-20T09:41:10.122-08:00 - sourceable_attributes: null - alert_template_attributes: null - resolution_rule_attributes: - id: 0b15e262-dc74-4d6e-97ba-b808a0930541 - enabled: true - condition_type: all - identifier_json_path: $.email.subject - identifier_value_regex: "" - identifier_matchable_type: null - identifier_matchable_id: null - identifier_reference_kind: payload - conditions_attributes: - - id: 1aa05924-fd85-432a-9e3c-dc3886d3880a - field: $.email.subject - operator: is - value: Resolved - conditionable_type: null - conditionable_id: null - kind: payload - email: email-source-8105653f9b7859973fa4f890f4405333@test.email.rootly.com - accept_threaded_emails: false - relationships: - alert_source_urgency_rules: - data: [] - alert_source_fields: - data: - - id: 29299876-a2d4-4086-b049-a7759fd068fd - alert_field_id: f7435402-a3c5-44e0-be4b-b2a06190bc79 - alerts_source_id: c09a603b-8ed4-4d9c-a703-f19114ef583a - created_at: 2026-01-20T09:41:11.894-08:00 - deleted_at: null - position: 1 - template_body: null - updated_at: 2026-01-20T09:41:11.894-08:00 - - id: 48eb4067-8524-4430-8cd5-452cde683be8 - alert_field_id: abbf6c60-292e-42c4-8529-995fccffdd75 - alerts_source_id: c09a603b-8ed4-4d9c-a703-f19114ef583a - created_at: 2026-01-20T09:41:11.897-08:00 - deleted_at: null - position: 2 - template_body: null - updated_at: 2026-01-20T09:41:11.897-08:00 schema: $ref: '#/components/schemas/alerts_source_response' description: alert source created with resolution rule - "400": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: alert template attribute when alert fields are enabled "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token @@ -2458,40 +2292,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4d6f6d8e-03b9-4c44-9ca0-6febacc5de02 - type: alert_sources - attributes: - name: Alert Source 21 - source_type: datadog - status: setup_incomplete - secret: 7156d49f09de38eb089db44f37b9768e4c9dc8de6a3780fc0b449f49f9b3c764 - alert_urgency_id: 12426484-61aa-4bf5-b8b5-aeae51a582a7 - created_at: 2026-01-20T09:41:09.924-08:00 - updated_at: 2026-01-20T09:41:13.217-08:00 - webhook_endpoint: http://localhost:3001/webhooks/incoming/datadog_webhooks/notify// - owner_group_ids: [] - alert_source_urgency_rules_attributes: [] - alert_source_fields_attributes: [] - sourceable_attributes: null - alert_template_attributes: null - resolution_rule_attributes: null - relationships: - alert_source_urgency_rules: - data: [] - alert_source_fields: - data: [] schema: $ref: '#/components/schemas/alerts_source_response' description: alert source deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -2517,40 +2323,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4d6f6d8e-03b9-4c44-9ca0-6febacc5de02 - type: alert_sources - attributes: - name: Alert Source 21 - source_type: datadog - status: setup_incomplete - secret: 7156d49f09de38eb089db44f37b9768e4c9dc8de6a3780fc0b449f49f9b3c764 - alert_urgency_id: 12426484-61aa-4bf5-b8b5-aeae51a582a7 - created_at: 2026-01-20T09:41:09.924-08:00 - updated_at: 2026-01-20T09:41:09.924-08:00 - webhook_endpoint: http://localhost:3001/webhooks/incoming/datadog_webhooks/notify// - owner_group_ids: [] - alert_source_urgency_rules_attributes: [] - alert_source_fields_attributes: [] - sourceable_attributes: null - alert_template_attributes: null - resolution_rule_attributes: null - relationships: - alert_source_urgency_rules: - data: [] - alert_source_fields: - data: [] schema: $ref: '#/components/schemas/alerts_source_response' description: alert source found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -2582,109 +2360,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: c65a5c1a-0239-4481-9206-6c46b8646329 - type: alert_sources - attributes: - name: GW 2 - source_type: generic_webhook - status: setup_incomplete - secret: 179b25abf6c8190deeeb71041ab9334745004de6128b059f928810199b57158d - alert_urgency_id: 12426484-61aa-4bf5-b8b5-aeae51a582a7 - created_at: 2026-01-20T09:41:12.828-08:00 - updated_at: 2026-01-20T09:41:12.902-08:00 - webhook_endpoint: http://localhost:3001/webhooks/incoming/generic_webhooks/notify// - owner_group_ids: [] - alert_source_urgency_rules_attributes: - - id: e254be4e-d072-48be-b200-6a6c7c2a06c6 - json_path: $.alert.status - operator: is - value: Critical - alert_urgency_id: 763b48ec-5cec-4575-9b6f-20edbd4ea12c - alerts_source_id: c65a5c1a-0239-4481-9206-6c46b8646329 - created_at: 2026-01-20T09:41:12.903-08:00 - updated_at: 2026-01-20T09:41:12.903-08:00 - conditionable_type: null - conditionable_id: null - kind: payload - alert_source_fields_attributes: - - template_body: null - created_at: 2026-01-20T09:41:12.833-08:00 - updated_at: 2026-01-20T09:41:12.833-08:00 - alert_field_id: f7435402-a3c5-44e0-be4b-b2a06190bc79 - alert_field: - id: f7435402-a3c5-44e0-be4b-b2a06190bc79 - slug: description-field - name: Description Field - kind: description - created_at: 2026-01-20T09:41:10.129-08:00 - updated_at: 2026-01-20T09:41:10.129-08:00 - - template_body: null - created_at: 2026-01-20T09:41:12.837-08:00 - updated_at: 2026-01-20T09:41:12.837-08:00 - alert_field_id: abbf6c60-292e-42c4-8529-995fccffdd75 - alert_field: - id: abbf6c60-292e-42c4-8529-995fccffdd75 - slug: title-field - name: Title Field - kind: title - created_at: 2026-01-20T09:41:10.122-08:00 - updated_at: 2026-01-20T09:41:10.122-08:00 - sourceable_attributes: - id: 797e6bf2-98c9-4883-a3b6-b425af770670 - auto_resolve: false - resolve_state: null - created_at: 2026-01-20T09:41:12.814-08:00 - updated_at: 2026-01-20T09:41:12.814-08:00 - field_mappings_attributes: [] - field_mappings: [] - alert_template_attributes: null - resolution_rule_attributes: null - relationships: - alert_source_urgency_rules: - data: - - id: e254be4e-d072-48be-b200-6a6c7c2a06c6 - alert_urgency_id: 763b48ec-5cec-4575-9b6f-20edbd4ea12c - alerts_source_id: c65a5c1a-0239-4481-9206-6c46b8646329 - conditionable_id: null - conditionable_type: null - created_at: 2026-01-20T09:41:12.903-08:00 - deleted_at: null - json_path: $.alert.status - kind: payload - operator: is - position: 1 - updated_at: 2026-01-20T09:41:12.903-08:00 - value: Critical - alert_source_fields: - data: - - id: 91a609bc-cb03-485c-b00f-7e72101536cd - alert_field_id: f7435402-a3c5-44e0-be4b-b2a06190bc79 - alerts_source_id: c65a5c1a-0239-4481-9206-6c46b8646329 - created_at: 2026-01-20T09:41:12.833-08:00 - deleted_at: null - position: 1 - template_body: null - updated_at: 2026-01-20T09:41:12.833-08:00 - - id: 3ef7d087-8db0-4fe0-8a41-bc788845f812 - alert_field_id: abbf6c60-292e-42c4-8529-995fccffdd75 - alerts_source_id: c65a5c1a-0239-4481-9206-6c46b8646329 - created_at: 2026-01-20T09:41:12.837-08:00 - deleted_at: null - position: 2 - template_body: null - updated_at: 2026-01-20T09:41:12.837-08:00 schema: $ref: '#/components/schemas/alerts_source_response' - description: alert source updated + description: preserves existing alert source field ids "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -2718,8 +2399,10 @@ paths: - environments - services - groups + - functionalities - responders - incidents + - notified_users - events - alert_urgency - heartbeat @@ -2731,7 +2414,6 @@ paths: - alerting_targets - escalation_policies - alert_call_recording - - alert_urgency type: string style: form responses: @@ -2769,314 +2451,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - - id: 0cbe80cf-8b94-4242-a55e-22674dd47cc7 - type: alerts - attributes: - short_id: ALT100005 - source: pagerduty - status: open - summary: Test alert 5 - description: Test alert description - labels: [] - services: [] - service_ids: [] - groups: [] - group_ids: [] - environments: [] - environment_ids: [] - responders: [] - incidents: - - id: b397ce0f-5f91-4bae-be47-96f9a56ff74f - ability_cache: null - acknowledged_at: null - airtable_base_key: null - airtable_record_id: null - airtable_record_url: null - airtable_table_name: null - asana_task_id: null - asana_task_url: null - cancellation_message: null - cancelled_at: null - cancelled_by_user_id: null - clickup_task_id: null - clickup_task_url: null - closed_at: null - closed_by_user_id: null - coda_doc_id: null - coda_doc_url: null - coda_page_id: null - confluence_page_id: null - confluence_page_url: null - created_at: 2026-01-20T09:41:15.528-08:00 - created_from_slack_identifier: null - current_tutorial_step: not_started - datadog_notebook_id: null - datadog_notebook_url: null - deleted_at: null - detected_at: null - dropbox_paper_id: null - dropbox_paper_url: null - duplicate_incident_id: null - email_message_id: null - embedding: null - external_id: null - freshservice_task_id: null - freshservice_task_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - genius_workflow_runs_count: 0 - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - go_to_meeting_id: null - go_to_meeting_url: null - google_calendar_event_id: null - google_calendar_event_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - google_meeting_bot_id: null - google_meeting_id: null - google_meeting_transcript: {} - google_meeting_transcript_summary: null - google_meeting_url: null - in_triage_at: null - in_triage_by_user_id: null - incidents_action_items_count: 0 - incidents_tasks_count: 0 - jira_epic_id: null - jira_epic_key: null - jira_epic_url: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - kind: normal - labels: {} - left_slack_channel_slack_user_ids: [] - linear_issue_id: null - linear_issue_key: null - linear_issue_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - mattermost_summary_timestamp: null - microsoft_teams_channel_id: null - microsoft_teams_channel_name: null - microsoft_teams_channel_service_url: null - microsoft_teams_channel_short_url: null - microsoft_teams_channel_url: null - microsoft_teams_meeting_bot_id: null - microsoft_teams_meeting_id: null - microsoft_teams_meeting_transcript: {} - microsoft_teams_meeting_transcript_summary: null - microsoft_teams_meeting_url: null - microsoft_teams_summary_message_id: null - microsoft_teams_team_id: null - microsoft_teams_team_internal_id: null - mitigated_at: null - mitigated_by_user_id: null - mitigation_message: null - motion_task_id: null - motion_task_url: null - notify_channels: {} - notify_emails: [] - notion_page_id: null - notion_page_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - opsgenie_incident_id: null - opsgenie_incident_responder_ids: [] - opsgenie_incident_url: null - outlook_event_id: null - outlook_event_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_responder_ids: {} - pagerduty_incident_url: null - pagertree_alert_id: null - pagertree_alert_url: null - parent_incident_id: null - parent_to_sub_incident_sync: false - previous_attributes: - updated_at: 2026-01-20T09:41:18.955-08:00 - incident_events: - - "Alerts has been attached: [Pagerduty] Test alert 5[Pagerduty] Test alert 6[Pagerduty] Test alert 7" - - Started date has been set to January - 20 9:41 AM PST - - Mallory Stokes created this incident - user_avatar_url: | - data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KICAgICAg - PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y - MDAwL3N2ZyIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAg - MCAyMDAgMjAwIj4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWRp - ZW50XzE3Njg5MzA4ODFfNjQzNTI1IiBncmFkaWVudFRyYW5zZm9ybT0icm90 - YXRlKDkwKSI+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFkMGM0 - IiBvZmZzZXQ9IjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0i - I2ZhZDBjNCIgb2Zmc2V0PSIxMDAlIiAvPgogICAgICAgIDwvbGluZWFyR3Jh - ZGllbnQ+CiAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAw - JSIgZmlsbD0idXJsKCNncmFkaWVudF8xNzY4OTMwODgxXzY0MzUyNSkiIC8+ - CiAgICAgICAgPHRleHQgZmlsbD0iI0ZGRiIgZm9udC1mYW1pbHk9Ik9wZW4g - U2FucyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIx - MDEiIGZvbnQtd2VpZ2h0PSI1MDAiIHg9IjUwJSIgeT0iNTUlIiBkb21pbmFu - dC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAg - ICAgICAgIE1TCiAgICAgICAgPC90ZXh0PgogICAgICA8L3N2Zz4KICAgIA== - private: false - public_title: null - quip_page_id: null - quip_page_url: null - resolution_message: null - resolved_at: null - resolved_by_user_id: null - retrospective_auto_skipped: false - retrospective_completed_at: null - retrospective_mandatory: false - retrospective_progress_status: not_started - retrospective_started_at: null - scheduled_auto_completed: true - scheduled_auto_in_progress: true - scheduled_for: null - scheduled_remind_prior: false - scheduled_until: null - sequential_id: 1 - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - severity_id: fe99b1f3-fea3-48e1-a6f1-c53c32b5d9ce - sharepoint_page_id: null - sharepoint_page_url: null - short_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - slack_aliases: [] - slack_channel_archived: false - slack_channel_deep_link: null - slack_channel_id: null - slack_channel_name: null - slack_channel_short_url: null - slack_channel_url: null - slack_channel_workspace_id: null - slack_channels: [] - slack_last_message_ts: null - slack_notify_ready_for_retrospective_timestamp: null - slack_summary_timestamp: null - slug: expedita-enim-eum-et - source: web - started_at: 2026-01-20T09:41:15.528-08:00 - started_by_user_id: 89 - status: started - status_page_io: {} - status_page_io_components: [] - status_pages_count: 0 - sub_incidents_count: 0 - sub_status_id: b33ea17f-b78e-4d02-bd25-355a868703a0 - subscribers_count: 0 - summary: Consectetur et rerum. Dolorum eos maxime. In et autem. - summary_updated_at: null - team_id: 23 - title: Expedita enim eum et. - title_autogenerated: false - trello_card_id: null - trello_card_url: null - triggered_from_microsoft_teams_channel_id: null - triggered_from_slack_channel_id: null - triggered_from_slack_message_ts: null - triggered_from_slack_thread_ts: null - updated_at: 2026-01-20T09:41:21.896-08:00 - user_id: 89 - users_assigned_count: 0 - using_redesigned_slack_announcement: true - using_redesigned_slack_updates: true - victor_ops_incident_id: null - victor_ops_incident_responder_ids: {} - victor_ops_incident_url: null - view_source: null - webex_meeting_bot_id: null - webex_meeting_id: null - webex_meeting_transcript: {} - webex_meeting_transcript_summary: null - webex_meeting_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - zoom_meeting_bot_id: null - zoom_meeting_global_dial_in_numbers: [] - zoom_meeting_h323_password: null - zoom_meeting_id: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_start_url: null - zoom_meeting_transcript: {} - zoom_meeting_transcript_summary: null - raw_labels: null - tutorial_steps: null - data: {} - deduplication_key: null - started_at: 2026-01-20T09:41:18.298-08:00 - ended_at: null - external_id: null - external_url: https://example.com/alert/test - url: https://test.rootly.com/account/alerts/0cbe80cf-8b94-4242-a55e-22674dd47cc7 - noise: not_noise - group_leader_alert_id: null - is_group_leader_alert: false - notification_target_type: null - notification_target_id: null - alert_urgency: - id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - color: '#C73C40' - created_at: 2026-01-20T09:41:18.292-08:00 - deleted_at: null - description: Libero quo eum est. - name: tixsd - position: 1 - team_id: 31 - updated_at: 2026-01-20T09:41:18.297-08:00 - urgency: high - alert_urgency_id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - notified_users: [] - created_at: 2026-01-20T09:41:18.299-08:00 - updated_at: 2026-01-20T09:41:18.299-08:00 - relationships: - events: - data: - - id: 4a227c4c-3981-4437-8790-41788031484c - type: alert_events - links: - self: http://www.example.com/v1/incidents/b397ce0f-5f91-4bae-be47-96f9a56ff74f/alerts?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/incidents/b397ce0f-5f91-4bae-be47-96f9a56ff74f/alerts?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/incidents/b397ce0f-5f91-4bae-be47-96f9a56ff74f/alerts?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 1 - total_pages: 1 schema: $ref: '#/components/schemas/alert_list' description: alert created "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token @@ -3103,8 +2483,10 @@ paths: - environments - services - groups + - functionalities - responders - incidents + - notified_users - events - alert_urgency - heartbeat @@ -3116,7 +2498,6 @@ paths: - alerting_targets - escalation_policies - alert_call_recording - - alert_urgency type: string style: form - explode: true @@ -3245,6 +2626,211 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[updated_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[updated_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[updated_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[updated_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[groups][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[groups][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[groups][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[groups][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][not_in]" + required: false + schema: + type: string + style: form + - description: The cursor to fetch results using cursor pagination. A cursor + is provided in meta.next_cursor in the response. + explode: true + in: query + name: "page[after]" + required: false + schema: + type: string + style: form - explode: true in: query name: "page[number]" @@ -3287,137 +2873,18 @@ paths: "201": content: application/vnd.api+json: - example: - data: - id: 561e905a-39d8-4895-bb2d-1572a7d838e8 - type: alerts - attributes: - short_id: aSXzlp - source: asana - status: open - summary: Asana ticket created - description: null - labels: - - key: status - value: succeeded - services: - - id: 061e3c85-c0bf-47ae-9934-ec7fbdc5a5cb - alert_broadcast_channel: {} - alert_broadcast_enabled: false - alert_urgency_id: null - alerts_email_address: service-8f3bec585b4a0203fd38441d4b5b2e45@email.rootly.com - alerts_email_enabled: false - backstage_id: null - color: '#047BF8' - cortex_id: null - created_at: 2026-01-20T09:41:20.134-08:00 - datadog_id: null - deleted_at: null - description: Ut provident neque laudantium. - external_id: null - github_repository_branch: master - github_repository_name: null - gitlab_repository_branch: master - gitlab_repository_name: null - heroku_app_name: null - incident_broadcast_channel: {} - incident_broadcast_enabled: false - incidents_count: 0 - kubernetes_deployment_name: null - name: Eos tenetur rem mollitia. - notify_emails: [] - opsgenie_id: null - opsgenie_team_id: null - opslevel_id: null - pagerduty_id: null - position: 1 - public_description: null - service_now_ci_sys_id: null - show_uptime: true - show_uptime_last_days: 60 - slack_aliases: [] - slack_channels: [] - slug: eos-tenetur-rem-mollitia - status: operational - team_id: 23 - updated_at: 2026-01-20T09:41:20.134-08:00 - service_ids: - - 061e3c85-c0bf-47ae-9934-ec7fbdc5a5cb - groups: [] - group_ids: [] - environments: - - id: 2e95b3a2-15d8-4b42-806c-0f62bcf04957 - color: '#596e59' - created_at: 2026-01-20T09:41:20.159-08:00 - deleted_at: null - description: Et consequatur dolor officiis. - external_id: null - incidents_count: 0 - name: Quia voluptas vero at. - notify_emails: [] - position: 1 - slack_aliases: [] - slack_channels: [] - slug: quia-voluptas-vero-at - team_id: 23 - updated_at: 2026-01-20T09:41:20.159-08:00 - environment_ids: - - 2e95b3a2-15d8-4b42-806c-0f62bcf04957 - responders: [] - incidents: [] - data: - url: https://asana.com/issues/1 - deduplication_key: null - started_at: 2026-01-20T09:38:20.000-08:00 - ended_at: 2026-01-20T09:40:20.000-08:00 - external_id: null - external_url: null - url: https://test.rootly.com/account/alerts/561e905a-39d8-4895-bb2d-1572a7d838e8 - noise: not_noise - group_leader_alert_id: null - is_group_leader_alert: false - notification_target_type: null - notification_target_id: null - alert_urgency: - id: 3205461f-c5b8-4a4f-81f5-df51093944f5 - color: '#C73C40' - created_at: 2026-01-20T09:41:20.171-08:00 - deleted_at: null - description: Dolore expedita ad quidem. - name: 11nw7 - position: 1 - team_id: 23 - updated_at: 2026-01-20T09:41:20.177-08:00 - urgency: high - alert_urgency_id: 3205461f-c5b8-4a4f-81f5-df51093944f5 - notified_users: [] - created_at: 2026-01-20T09:41:23.520-08:00 - updated_at: 2026-01-20T09:41:23.520-08:00 - relationships: - events: - data: - - id: 86ad0167-b55f-42b5-a1ff-d3b31305b1e2 - type: alert_events schema: $ref: '#/components/schemas/alert_response' description: alert created "422": content: application/vnd.api+json: - example: - errors: - - title: Summary can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -3451,8 +2918,10 @@ paths: - environments - services - groups + - functionalities - responders - incidents + - notified_users - events - alert_urgency - heartbeat @@ -3464,191 +2933,18 @@ paths: - alerting_targets - escalation_policies - alert_call_recording - - alert_urgency type: string style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 68f6612f-49d5-40ec-9a15-20ec01d00b28 - type: alerts - attributes: - short_id: ALT100011 - source: pagerduty - status: open - summary: Test alert 11 - description: Test alert description - labels: [] - services: [] - service_ids: [] - groups: [] - group_ids: [] - environments: [] - environment_ids: [] - responders: [] - incidents: [] - data: {} - deduplication_key: null - started_at: 2026-01-20T09:41:20.748-08:00 - ended_at: null - external_id: null - external_url: https://example.com/alert/test - url: https://test.rootly.com/account/alerts/68f6612f-49d5-40ec-9a15-20ec01d00b28 - noise: not_noise - group_leader_alert_id: null - is_group_leader_alert: true - notification_target_type: null - notification_target_id: null - alert_urgency: - id: 66aae921-f1f3-43d9-a414-ddeee37ba563 - color: '#C73C40' - created_at: 2026-01-20T09:41:20.741-08:00 - deleted_at: null - description: Eveniet numquam non rerum. - name: v4idr - position: 1 - team_id: 38 - updated_at: 2026-01-20T09:41:20.746-08:00 - urgency: high - alert_urgency_id: 66aae921-f1f3-43d9-a414-ddeee37ba563 - notified_users: [] - created_at: 2026-01-20T09:41:20.749-08:00 - updated_at: 2026-01-20T09:41:20.749-08:00 - relationships: - events: - data: - - id: 987ebe66-60ce-40d8-8600-5d96dcdd5828 - type: alert_events - alert_group: - data: - id: 8bb41b14-1498-48ea-b20d-ec1fbe142187 - type: alert_groups - group_leader_alert: - data: - id: 68f6612f-49d5-40ec-9a15-20ec01d00b28 - type: alerts - group_member_alerts: - data: - - id: 4dc95aa6-4a27-45e4-ada4-58390de83ef6 - type: alerts - - id: e5fa2bed-af27-4684-899e-8df99885562e - type: alerts - included: - - id: 4dc95aa6-4a27-45e4-ada4-58390de83ef6 - type: alerts - attributes: - short_id: ALT100013 - source: pagerduty - status: open - summary: Test alert 13 - description: Test alert description - labels: [] - services: [] - service_ids: [] - groups: [] - group_ids: [] - environments: [] - environment_ids: [] - responders: [] - incidents: [] - data: {} - deduplication_key: null - started_at: 2026-01-20T09:41:21.437-08:00 - ended_at: null - external_id: null - external_url: https://example.com/alert/test - url: https://test.rootly.com/account/alerts/4dc95aa6-4a27-45e4-ada4-58390de83ef6 - noise: not_noise - group_leader_alert_id: 68f6612f-49d5-40ec-9a15-20ec01d00b28 - is_group_leader_alert: false - notification_target_type: null - notification_target_id: null - alert_urgency: - id: f76103f6-9a2d-4d72-9321-fa6ad3694211 - color: '#C73C40' - created_at: 2026-01-20T09:41:21.430-08:00 - deleted_at: null - description: Molestiae repudiandae totam qui. - name: 5cg34 - position: 1 - team_id: 40 - updated_at: 2026-01-20T09:41:21.435-08:00 - urgency: high - alert_urgency_id: f76103f6-9a2d-4d72-9321-fa6ad3694211 - notified_users: [] - created_at: 2026-01-20T09:41:21.438-08:00 - updated_at: 2026-01-20T09:41:21.438-08:00 - relationships: - events: - data: - - id: 1711e6c2-de18-4caa-99ac-37ebf61a8d89 - type: alert_events - group_member_alerts: - data: [] - - id: e5fa2bed-af27-4684-899e-8df99885562e - type: alerts - attributes: - short_id: ALT100012 - source: pagerduty - status: open - summary: Test alert 12 - description: Test alert description - labels: [] - services: [] - service_ids: [] - groups: [] - group_ids: [] - environments: [] - environment_ids: [] - responders: [] - incidents: [] - data: {} - deduplication_key: null - started_at: 2026-01-20T09:41:21.040-08:00 - ended_at: null - external_id: null - external_url: https://example.com/alert/test - url: https://test.rootly.com/account/alerts/e5fa2bed-af27-4684-899e-8df99885562e - noise: not_noise - group_leader_alert_id: 68f6612f-49d5-40ec-9a15-20ec01d00b28 - is_group_leader_alert: false - notification_target_type: null - notification_target_id: null - alert_urgency: - id: ecf6da75-a4ca-4953-a690-87a6ab82c4ca - color: '#C73C40' - created_at: 2026-01-20T09:41:21.033-08:00 - deleted_at: null - description: Et blanditiis expedita sed. - name: 5iqbc - position: 1 - team_id: 39 - updated_at: 2026-01-20T09:41:21.038-08:00 - urgency: high - alert_urgency_id: ecf6da75-a4ca-4953-a690-87a6ab82c4ca - notified_users: [] - created_at: 2026-01-20T09:41:21.041-08:00 - updated_at: 2026-01-20T09:41:21.041-08:00 - relationships: - events: - data: - - id: a4248643-74aa-41ef-849e-e05f97003fbc - type: alert_events - group_member_alerts: - data: [] schema: $ref: '#/components/schemas/alert_response' description: alert found with group_member_alerts included "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found @@ -3679,388 +2975,12 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 0cbe80cf-8b94-4242-a55e-22674dd47cc7 - type: alerts - attributes: - short_id: ALT100005 - source: pagerduty - status: open - summary: test update - description: test update - labels: - - key: foo - value: bar - - key: bar - value: baz - services: - - id: 061e3c85-c0bf-47ae-9934-ec7fbdc5a5cb - alert_broadcast_channel: {} - alert_broadcast_enabled: false - alert_urgency_id: null - alerts_email_address: service-8f3bec585b4a0203fd38441d4b5b2e45@email.rootly.com - alerts_email_enabled: false - backstage_id: null - color: '#047BF8' - cortex_id: null - created_at: 2026-01-20T09:41:20.134-08:00 - datadog_id: null - deleted_at: null - description: Ut provident neque laudantium. - external_id: null - github_repository_branch: master - github_repository_name: null - gitlab_repository_branch: master - gitlab_repository_name: null - heroku_app_name: null - incident_broadcast_channel: {} - incident_broadcast_enabled: false - incidents_count: 0 - kubernetes_deployment_name: null - name: Eos tenetur rem mollitia. - notify_emails: [] - opsgenie_id: null - opsgenie_team_id: null - opslevel_id: null - pagerduty_id: null - position: 1 - public_description: null - service_now_ci_sys_id: null - show_uptime: true - show_uptime_last_days: 60 - slack_aliases: [] - slack_channels: [] - slug: eos-tenetur-rem-mollitia - status: operational - team_id: 23 - updated_at: 2026-01-20T09:41:20.134-08:00 - service_ids: - - 061e3c85-c0bf-47ae-9934-ec7fbdc5a5cb - groups: - - id: 86b52f8d-518f-44bb-b410-517fdf1c3d6f - admins_count: 0 - alert_broadcast_channel: {} - alert_broadcast_enabled: false - alert_urgency_id: null - alerts_email_address: group-39e327cc76a74905238fd259423179c0@email.rootly.com - alerts_email_enabled: false - auto_add_members_when_attached: false - backstage_id: null - color: '#E65252' - cortex_id: null - created_at: 2026-01-20T09:41:20.146-08:00 - deleted_at: null - description: null - external_id: null - incident_broadcast_channel: {} - incident_broadcast_enabled: false - incidents_count: 0 - name: Ut dignissimos nesciunt deleniti. - notify_emails: [] - opsgenie_id: null - opslevel_id: null - pagerduty_id: null - pagerduty_service_id: null - pagertree_id: null - position: 1 - service_now_ci_sys_id: null - slack_aliases: [] - slack_channels: [] - slug: ut-dignissimos-nesciunt-deleniti - team_id: 23 - updated_at: 2026-01-20T09:41:20.146-08:00 - users_count: 0 - victor_ops_id: null - group_ids: - - 86b52f8d-518f-44bb-b410-517fdf1c3d6f - environments: - - id: 2e95b3a2-15d8-4b42-806c-0f62bcf04957 - color: '#596e59' - created_at: 2026-01-20T09:41:20.159-08:00 - deleted_at: null - description: Et consequatur dolor officiis. - external_id: null - incidents_count: 0 - name: Quia voluptas vero at. - notify_emails: [] - position: 1 - slack_aliases: [] - slack_channels: [] - slug: quia-voluptas-vero-at - team_id: 23 - updated_at: 2026-01-20T09:41:20.159-08:00 - environment_ids: - - 2e95b3a2-15d8-4b42-806c-0f62bcf04957 - responders: [] - incidents: - - id: b397ce0f-5f91-4bae-be47-96f9a56ff74f - ability_cache: null - acknowledged_at: null - airtable_base_key: null - airtable_record_id: null - airtable_record_url: null - airtable_table_name: null - asana_task_id: null - asana_task_url: null - cancellation_message: null - cancelled_at: null - cancelled_by_user_id: null - clickup_task_id: null - clickup_task_url: null - closed_at: null - closed_by_user_id: null - coda_doc_id: null - coda_doc_url: null - coda_page_id: null - confluence_page_id: null - confluence_page_url: null - created_at: 2026-01-20T09:41:15.528-08:00 - created_from_slack_identifier: null - current_tutorial_step: not_started - datadog_notebook_id: null - datadog_notebook_url: null - deleted_at: null - detected_at: null - dropbox_paper_id: null - dropbox_paper_url: null - duplicate_incident_id: null - email_message_id: null - embedding: null - external_id: null - freshservice_task_id: null - freshservice_task_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - genius_workflow_runs_count: 0 - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - go_to_meeting_id: null - go_to_meeting_url: null - google_calendar_event_id: null - google_calendar_event_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - google_meeting_bot_id: null - google_meeting_id: null - google_meeting_transcript: {} - google_meeting_transcript_summary: null - google_meeting_url: null - in_triage_at: null - in_triage_by_user_id: null - incidents_action_items_count: 0 - incidents_tasks_count: 0 - jira_epic_id: null - jira_epic_key: null - jira_epic_url: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - kind: normal - labels: {} - left_slack_channel_slack_user_ids: [] - linear_issue_id: null - linear_issue_key: null - linear_issue_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - mattermost_summary_timestamp: null - microsoft_teams_channel_id: null - microsoft_teams_channel_name: null - microsoft_teams_channel_service_url: null - microsoft_teams_channel_short_url: null - microsoft_teams_channel_url: null - microsoft_teams_meeting_bot_id: null - microsoft_teams_meeting_id: null - microsoft_teams_meeting_transcript: {} - microsoft_teams_meeting_transcript_summary: null - microsoft_teams_meeting_url: null - microsoft_teams_summary_message_id: null - microsoft_teams_team_id: null - microsoft_teams_team_internal_id: null - mitigated_at: null - mitigated_by_user_id: null - mitigation_message: null - motion_task_id: null - motion_task_url: null - notify_channels: {} - notify_emails: [] - notion_page_id: null - notion_page_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - opsgenie_incident_id: null - opsgenie_incident_responder_ids: [] - opsgenie_incident_url: null - outlook_event_id: null - outlook_event_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_responder_ids: {} - pagerduty_incident_url: null - pagertree_alert_id: null - pagertree_alert_url: null - parent_incident_id: null - parent_to_sub_incident_sync: false - previous_attributes: - updated_at: 2026-01-20T09:41:15.655-08:00 - incident_events: - - Started date has been set to January - 20 9:41 AM PST - - Mallory Stokes created this incident - user_avatar_url: | - data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KICAgICAg - PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y - MDAwL3N2ZyIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAg - MCAyMDAgMjAwIj4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWRp - ZW50XzE3Njg5MzA4NzhfMjI0NzIxIiBncmFkaWVudFRyYW5zZm9ybT0icm90 - YXRlKDkwKSI+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFkMGM0 - IiBvZmZzZXQ9IjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0i - I2ZhZDBjNCIgb2Zmc2V0PSIxMDAlIiAvPgogICAgICAgIDwvbGluZWFyR3Jh - ZGllbnQ+CiAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAw - JSIgZmlsbD0idXJsKCNncmFkaWVudF8xNzY4OTMwODc4XzIyNDcyMSkiIC8+ - CiAgICAgICAgPHRleHQgZmlsbD0iI0ZGRiIgZm9udC1mYW1pbHk9Ik9wZW4g - U2FucyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIx - MDEiIGZvbnQtd2VpZ2h0PSI1MDAiIHg9IjUwJSIgeT0iNTUlIiBkb21pbmFu - dC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAg - ICAgICAgIE1TCiAgICAgICAgPC90ZXh0PgogICAgICA8L3N2Zz4KICAgIA== - private: false - public_title: null - quip_page_id: null - quip_page_url: null - resolution_message: null - resolved_at: null - resolved_by_user_id: null - retrospective_auto_skipped: false - retrospective_completed_at: null - retrospective_mandatory: false - retrospective_progress_status: not_started - retrospective_started_at: null - scheduled_auto_completed: true - scheduled_auto_in_progress: true - scheduled_for: null - scheduled_remind_prior: false - scheduled_until: null - sequential_id: 1 - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - severity_id: fe99b1f3-fea3-48e1-a6f1-c53c32b5d9ce - sharepoint_page_id: null - sharepoint_page_url: null - short_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - slack_aliases: [] - slack_channel_archived: false - slack_channel_deep_link: null - slack_channel_id: null - slack_channel_name: null - slack_channel_short_url: null - slack_channel_url: null - slack_channel_workspace_id: null - slack_channels: [] - slack_last_message_ts: null - slack_notify_ready_for_retrospective_timestamp: null - slack_summary_timestamp: null - slug: expedita-enim-eum-et - source: web - started_at: 2026-01-20T09:41:15.528-08:00 - started_by_user_id: 89 - status: started - status_page_io: {} - status_page_io_components: [] - status_pages_count: 0 - sub_incidents_count: 0 - sub_status_id: b33ea17f-b78e-4d02-bd25-355a868703a0 - subscribers_count: 0 - summary: Consectetur et rerum. Dolorum eos maxime. In et autem. - summary_updated_at: null - team_id: 23 - title: Expedita enim eum et. - title_autogenerated: false - trello_card_id: null - trello_card_url: null - triggered_from_microsoft_teams_channel_id: null - triggered_from_slack_channel_id: null - triggered_from_slack_message_ts: null - triggered_from_slack_thread_ts: null - updated_at: 2026-01-20T09:41:18.955-08:00 - user_id: 89 - users_assigned_count: 0 - using_redesigned_slack_announcement: true - using_redesigned_slack_updates: true - victor_ops_incident_id: null - victor_ops_incident_responder_ids: {} - victor_ops_incident_url: null - view_source: null - webex_meeting_bot_id: null - webex_meeting_id: null - webex_meeting_transcript: {} - webex_meeting_transcript_summary: null - webex_meeting_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - zoom_meeting_bot_id: null - zoom_meeting_global_dial_in_numbers: [] - zoom_meeting_h323_password: null - zoom_meeting_id: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_start_url: null - zoom_meeting_transcript: {} - zoom_meeting_transcript_summary: null - raw_labels: null - tutorial_steps: null - data: {} - deduplication_key: null - started_at: 2026-01-20T09:41:18.298-08:00 - ended_at: null - external_id: null - external_url: https://example.com/alert/test - url: https://test.rootly.com/account/alerts/0cbe80cf-8b94-4242-a55e-22674dd47cc7 - noise: not_noise - group_leader_alert_id: null - is_group_leader_alert: false - notification_target_type: null - notification_target_id: null - alert_urgency: - id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - color: '#C73C40' - created_at: 2026-01-20T09:41:18.292-08:00 - deleted_at: null - description: Libero quo eum est. - name: tixsd - position: 1 - team_id: 31 - updated_at: 2026-01-20T09:41:18.297-08:00 - urgency: high - alert_urgency_id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - notified_users: [] - created_at: 2026-01-20T09:41:18.299-08:00 - updated_at: 2026-01-20T09:42:22.583-08:00 - relationships: - events: - data: - - id: 4a227c4c-3981-4437-8790-41788031484c - type: alert_events schema: $ref: '#/components/schemas/alert_response' - description: removes existing alert field values and adds new ones + description: updates one field value and preserves others "422": content: application/vnd.api+json: - example: - errors: - - title: Summary can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request @@ -4088,350 +3008,18 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 0cbe80cf-8b94-4242-a55e-22674dd47cc7 - type: alerts - attributes: - short_id: ALT100005 - source: pagerduty - status: acknowledged - summary: Test alert 5 - description: Test alert description - labels: [] - services: [] - service_ids: [] - groups: [] - group_ids: [] - environments: [] - environment_ids: [] - responders: - - id: 87 - ability_cache: null - accept_marketing: true - accept_terms: true - created_at: 2026-01-20T09:41:13.623-08:00 - created_through_sso: false - current_team_id: 23 - deleted_at: null - email: mohammed_price@wilderman-goyette.example - external_id: null - first_name: Samuel - has_impersonate_write_permission: false - how_did_you_hear_about_us: null - incidents_backfilled_count: 0 - incidents_count: 0 - incidents_example_count: 0 - incidents_normal_count: 0 - incidents_scheduled_count: 0 - incidents_test_count: 0 - is_super_admin: false - jti: 15df2a28-bbd2-4a41-bdd1-092df2ee9f39 - last_name: Dietrich - last_notification_email_sent_at: null - last_seen_at: null - locale: en - onboarding_completed: true - opsgenie_id: null - pagerduty_id: null - profile_photo_id: null - push_notification_new_alert_sound: default - push_notification_new_alert_volume: 1.0 - push_notification_shift_coverage_sound: soft_bloob - push_notification_shift_ends_sound: soft_bloob - push_notification_shift_starts_sound: soft_bloob - scim_uid: null - service_user: false - session_token: null - skip_tutorial: false - teams_count: 1 - theme: light_v2 - time_zone: UTC - updated_at: 2026-01-20T09:41:13.975-08:00 - victor_ops_id: null - view_multiple_schedules: true - incidents: - - id: b397ce0f-5f91-4bae-be47-96f9a56ff74f - ability_cache: null - acknowledged_at: null - airtable_base_key: null - airtable_record_id: null - airtable_record_url: null - airtable_table_name: null - asana_task_id: null - asana_task_url: null - cancellation_message: null - cancelled_at: null - cancelled_by_user_id: null - clickup_task_id: null - clickup_task_url: null - closed_at: null - closed_by_user_id: null - coda_doc_id: null - coda_doc_url: null - coda_page_id: null - confluence_page_id: null - confluence_page_url: null - created_at: 2026-01-20T09:41:15.528-08:00 - created_from_slack_identifier: null - current_tutorial_step: not_started - datadog_notebook_id: null - datadog_notebook_url: null - deleted_at: null - detected_at: null - dropbox_paper_id: null - dropbox_paper_url: null - duplicate_incident_id: null - email_message_id: null - embedding: null - external_id: null - freshservice_task_id: null - freshservice_task_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - genius_workflow_runs_count: 0 - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - go_to_meeting_id: null - go_to_meeting_url: null - google_calendar_event_id: null - google_calendar_event_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - google_meeting_bot_id: null - google_meeting_id: null - google_meeting_transcript: {} - google_meeting_transcript_summary: null - google_meeting_url: null - in_triage_at: null - in_triage_by_user_id: null - incidents_action_items_count: 0 - incidents_tasks_count: 0 - jira_epic_id: null - jira_epic_key: null - jira_epic_url: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - kind: normal - labels: {} - left_slack_channel_slack_user_ids: [] - linear_issue_id: null - linear_issue_key: null - linear_issue_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - mattermost_summary_timestamp: null - microsoft_teams_channel_id: null - microsoft_teams_channel_name: null - microsoft_teams_channel_service_url: null - microsoft_teams_channel_short_url: null - microsoft_teams_channel_url: null - microsoft_teams_meeting_bot_id: null - microsoft_teams_meeting_id: null - microsoft_teams_meeting_transcript: {} - microsoft_teams_meeting_transcript_summary: null - microsoft_teams_meeting_url: null - microsoft_teams_summary_message_id: null - microsoft_teams_team_id: null - microsoft_teams_team_internal_id: null - mitigated_at: null - mitigated_by_user_id: null - mitigation_message: null - motion_task_id: null - motion_task_url: null - notify_channels: {} - notify_emails: [] - notion_page_id: null - notion_page_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - opsgenie_incident_id: null - opsgenie_incident_responder_ids: [] - opsgenie_incident_url: null - outlook_event_id: null - outlook_event_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_responder_ids: {} - pagerduty_incident_url: null - pagertree_alert_id: null - pagertree_alert_url: null - parent_incident_id: null - parent_to_sub_incident_sync: false - previous_attributes: - updated_at: 2026-01-20T09:41:15.655-08:00 - incident_events: - - Started date has been set to January - 20 9:41 AM PST - - Mallory Stokes created this incident - user_avatar_url: | - data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KICAgICAg - PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y - MDAwL3N2ZyIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAg - MCAyMDAgMjAwIj4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWRp - ZW50XzE3Njg5MzA4NzhfMjI0NzIxIiBncmFkaWVudFRyYW5zZm9ybT0icm90 - YXRlKDkwKSI+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFkMGM0 - IiBvZmZzZXQ9IjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0i - I2ZhZDBjNCIgb2Zmc2V0PSIxMDAlIiAvPgogICAgICAgIDwvbGluZWFyR3Jh - ZGllbnQ+CiAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAw - JSIgZmlsbD0idXJsKCNncmFkaWVudF8xNzY4OTMwODc4XzIyNDcyMSkiIC8+ - CiAgICAgICAgPHRleHQgZmlsbD0iI0ZGRiIgZm9udC1mYW1pbHk9Ik9wZW4g - U2FucyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIx - MDEiIGZvbnQtd2VpZ2h0PSI1MDAiIHg9IjUwJSIgeT0iNTUlIiBkb21pbmFu - dC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAg - ICAgICAgIE1TCiAgICAgICAgPC90ZXh0PgogICAgICA8L3N2Zz4KICAgIA== - private: false - public_title: null - quip_page_id: null - quip_page_url: null - resolution_message: null - resolved_at: null - resolved_by_user_id: null - retrospective_auto_skipped: false - retrospective_completed_at: null - retrospective_mandatory: false - retrospective_progress_status: not_started - retrospective_started_at: null - scheduled_auto_completed: true - scheduled_auto_in_progress: true - scheduled_for: null - scheduled_remind_prior: false - scheduled_until: null - sequential_id: 1 - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - severity_id: fe99b1f3-fea3-48e1-a6f1-c53c32b5d9ce - sharepoint_page_id: null - sharepoint_page_url: null - short_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - slack_aliases: [] - slack_channel_archived: false - slack_channel_deep_link: null - slack_channel_id: null - slack_channel_name: null - slack_channel_short_url: null - slack_channel_url: null - slack_channel_workspace_id: null - slack_channels: [] - slack_last_message_ts: null - slack_notify_ready_for_retrospective_timestamp: null - slack_summary_timestamp: null - slug: expedita-enim-eum-et - source: web - started_at: 2026-01-20T09:41:15.528-08:00 - started_by_user_id: 89 - status: started - status_page_io: {} - status_page_io_components: [] - status_pages_count: 0 - sub_incidents_count: 0 - sub_status_id: b33ea17f-b78e-4d02-bd25-355a868703a0 - subscribers_count: 0 - summary: Consectetur et rerum. Dolorum eos maxime. In et autem. - summary_updated_at: null - team_id: 23 - title: Expedita enim eum et. - title_autogenerated: false - trello_card_id: null - trello_card_url: null - triggered_from_microsoft_teams_channel_id: null - triggered_from_slack_channel_id: null - triggered_from_slack_message_ts: null - triggered_from_slack_thread_ts: null - updated_at: 2026-01-20T09:41:18.955-08:00 - user_id: 89 - users_assigned_count: 0 - using_redesigned_slack_announcement: true - using_redesigned_slack_updates: true - victor_ops_incident_id: null - victor_ops_incident_responder_ids: {} - victor_ops_incident_url: null - view_source: null - webex_meeting_bot_id: null - webex_meeting_id: null - webex_meeting_transcript: {} - webex_meeting_transcript_summary: null - webex_meeting_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - zoom_meeting_bot_id: null - zoom_meeting_global_dial_in_numbers: [] - zoom_meeting_h323_password: null - zoom_meeting_id: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_start_url: null - zoom_meeting_transcript: {} - zoom_meeting_transcript_summary: null - raw_labels: null - tutorial_steps: null - data: {} - deduplication_key: null - started_at: 2026-01-20T09:41:18.298-08:00 - ended_at: null - external_id: null - external_url: https://example.com/alert/test - url: https://test.rootly.com/account/alerts/0cbe80cf-8b94-4242-a55e-22674dd47cc7 - noise: not_noise - group_leader_alert_id: null - is_group_leader_alert: false - notification_target_type: null - notification_target_id: null - alert_urgency: - id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - color: '#C73C40' - created_at: 2026-01-20T09:41:18.292-08:00 - deleted_at: null - description: Libero quo eum est. - name: tixsd - position: 1 - team_id: 31 - updated_at: 2026-01-20T09:41:18.297-08:00 - urgency: high - alert_urgency_id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - notified_users: [] - created_at: 2026-01-20T09:41:18.299-08:00 - updated_at: 2026-01-20T09:42:24.128-08:00 - relationships: - events: - data: - - id: 4a227c4c-3981-4437-8790-41788031484c - type: alert_events - - id: 378a71b6-a486-40e3-aebd-82ff7e804c00 - type: alert_events - - id: 4bebf57d-e504-4e41-b4a2-6177dfa654dc - type: alert_events schema: $ref: '#/components/schemas/alert_response' description: alert acknowledged "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found "400": content: application/vnd.api+json: - example: - errors: - - title: Cannot acknowledge an alert with status open. - status: "400" schema: $ref: '#/components/schemas/errors_list' description: cannot acknowledge open alert @@ -4463,367 +3051,143 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 0cbe80cf-8b94-4242-a55e-22674dd47cc7 - type: alerts - attributes: - short_id: ALT100005 - source: pagerduty - status: resolved - summary: Test alert 5 - description: Test alert description - labels: [] - services: [] - service_ids: [] - groups: [] - group_ids: [] - environments: [] - environment_ids: [] - responders: - - id: 87 - ability_cache: null - accept_marketing: true - accept_terms: true - created_at: 2026-01-20T09:41:13.623-08:00 - created_through_sso: false - current_team_id: 23 - deleted_at: null - email: mohammed_price@wilderman-goyette.example - external_id: null - first_name: Samuel - has_impersonate_write_permission: false - how_did_you_hear_about_us: null - incidents_backfilled_count: 0 - incidents_count: 0 - incidents_example_count: 0 - incidents_normal_count: 0 - incidents_scheduled_count: 0 - incidents_test_count: 0 - is_super_admin: false - jti: 15df2a28-bbd2-4a41-bdd1-092df2ee9f39 - last_name: Dietrich - last_notification_email_sent_at: null - last_seen_at: null - locale: en - onboarding_completed: true - opsgenie_id: null - pagerduty_id: null - profile_photo_id: null - push_notification_new_alert_sound: default - push_notification_new_alert_volume: 1.0 - push_notification_shift_coverage_sound: soft_bloob - push_notification_shift_ends_sound: soft_bloob - push_notification_shift_starts_sound: soft_bloob - scim_uid: null - service_user: false - session_token: null - skip_tutorial: false - teams_count: 1 - theme: light_v2 - time_zone: UTC - updated_at: 2026-01-20T09:41:13.975-08:00 - victor_ops_id: null - view_multiple_schedules: true - incidents: - - id: b397ce0f-5f91-4bae-be47-96f9a56ff74f - ability_cache: null - acknowledged_at: null - airtable_base_key: null - airtable_record_id: null - airtable_record_url: null - airtable_table_name: null - asana_task_id: null - asana_task_url: null - cancellation_message: null - cancelled_at: null - cancelled_by_user_id: null - clickup_task_id: null - clickup_task_url: null - closed_at: null - closed_by_user_id: null - coda_doc_id: null - coda_doc_url: null - coda_page_id: null - confluence_page_id: null - confluence_page_url: null - created_at: 2026-01-20T09:41:15.528-08:00 - created_from_slack_identifier: null - current_tutorial_step: not_started - datadog_notebook_id: null - datadog_notebook_url: null - deleted_at: null - detected_at: null - dropbox_paper_id: null - dropbox_paper_url: null - duplicate_incident_id: null - email_message_id: null - embedding: null - external_id: null - freshservice_task_id: null - freshservice_task_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - genius_workflow_runs_count: 0 - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - go_to_meeting_id: null - go_to_meeting_url: null - google_calendar_event_id: null - google_calendar_event_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - google_meeting_bot_id: null - google_meeting_id: null - google_meeting_transcript: {} - google_meeting_transcript_summary: null - google_meeting_url: null - in_triage_at: null - in_triage_by_user_id: null - incidents_action_items_count: 0 - incidents_tasks_count: 0 - jira_epic_id: null - jira_epic_key: null - jira_epic_url: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - kind: normal - labels: {} - left_slack_channel_slack_user_ids: [] - linear_issue_id: null - linear_issue_key: null - linear_issue_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - mattermost_summary_timestamp: null - microsoft_teams_channel_id: null - microsoft_teams_channel_name: null - microsoft_teams_channel_service_url: null - microsoft_teams_channel_short_url: null - microsoft_teams_channel_url: null - microsoft_teams_meeting_bot_id: null - microsoft_teams_meeting_id: null - microsoft_teams_meeting_transcript: {} - microsoft_teams_meeting_transcript_summary: null - microsoft_teams_meeting_url: null - microsoft_teams_summary_message_id: null - microsoft_teams_team_id: null - microsoft_teams_team_internal_id: null - mitigated_at: null - mitigated_by_user_id: null - mitigation_message: null - motion_task_id: null - motion_task_url: null - notify_channels: {} - notify_emails: [] - notion_page_id: null - notion_page_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - opsgenie_incident_id: null - opsgenie_incident_responder_ids: [] - opsgenie_incident_url: null - outlook_event_id: null - outlook_event_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_responder_ids: {} - pagerduty_incident_url: null - pagertree_alert_id: null - pagertree_alert_url: null - parent_incident_id: null - parent_to_sub_incident_sync: false - previous_attributes: - updated_at: 2026-01-20T09:41:15.655-08:00 - incident_events: - - Started date has been set to January - 20 9:41 AM PST - - Mallory Stokes created this incident - user_avatar_url: | - data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KICAgICAg - PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y - MDAwL3N2ZyIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAg - MCAyMDAgMjAwIj4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWRp - ZW50XzE3Njg5MzA4NzhfMjI0NzIxIiBncmFkaWVudFRyYW5zZm9ybT0icm90 - YXRlKDkwKSI+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjZmFkMGM0 - IiBvZmZzZXQ9IjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0i - I2ZhZDBjNCIgb2Zmc2V0PSIxMDAlIiAvPgogICAgICAgIDwvbGluZWFyR3Jh - ZGllbnQ+CiAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAw - JSIgZmlsbD0idXJsKCNncmFkaWVudF8xNzY4OTMwODc4XzIyNDcyMSkiIC8+ - CiAgICAgICAgPHRleHQgZmlsbD0iI0ZGRiIgZm9udC1mYW1pbHk9Ik9wZW4g - U2FucyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZiIgZm9udC1zaXplPSIx - MDEiIGZvbnQtd2VpZ2h0PSI1MDAiIHg9IjUwJSIgeT0iNTUlIiBkb21pbmFu - dC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj4KICAg - ICAgICAgIE1TCiAgICAgICAgPC90ZXh0PgogICAgICA8L3N2Zz4KICAgIA== - private: false - public_title: null - quip_page_id: null - quip_page_url: null - resolution_message: null - resolved_at: null - resolved_by_user_id: null - retrospective_auto_skipped: false - retrospective_completed_at: null - retrospective_mandatory: false - retrospective_progress_status: not_started - retrospective_started_at: null - scheduled_auto_completed: true - scheduled_auto_in_progress: true - scheduled_for: null - scheduled_remind_prior: false - scheduled_until: null - sequential_id: 1 - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - severity_id: fe99b1f3-fea3-48e1-a6f1-c53c32b5d9ce - sharepoint_page_id: null - sharepoint_page_url: null - short_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - slack_aliases: [] - slack_channel_archived: false - slack_channel_deep_link: null - slack_channel_id: null - slack_channel_name: null - slack_channel_short_url: null - slack_channel_url: null - slack_channel_workspace_id: null - slack_channels: [] - slack_last_message_ts: null - slack_notify_ready_for_retrospective_timestamp: null - slack_summary_timestamp: null - slug: expedita-enim-eum-et - source: web - started_at: 2026-01-20T09:41:15.528-08:00 - started_by_user_id: 89 - status: started - status_page_io: {} - status_page_io_components: [] - status_pages_count: 0 - sub_incidents_count: 0 - sub_status_id: b33ea17f-b78e-4d02-bd25-355a868703a0 - subscribers_count: 0 - summary: Consectetur et rerum. Dolorum eos maxime. In et autem. - summary_updated_at: null - team_id: 23 - title: Expedita enim eum et. - title_autogenerated: false - trello_card_id: null - trello_card_url: null - triggered_from_microsoft_teams_channel_id: null - triggered_from_slack_channel_id: null - triggered_from_slack_message_ts: null - triggered_from_slack_thread_ts: null - updated_at: 2026-01-20T09:41:18.955-08:00 - user_id: 89 - users_assigned_count: 0 - using_redesigned_slack_announcement: true - using_redesigned_slack_updates: true - victor_ops_incident_id: null - victor_ops_incident_responder_ids: {} - victor_ops_incident_url: null - view_source: null - webex_meeting_bot_id: null - webex_meeting_id: null - webex_meeting_transcript: {} - webex_meeting_transcript_summary: null - webex_meeting_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - zoom_meeting_bot_id: null - zoom_meeting_global_dial_in_numbers: [] - zoom_meeting_h323_password: null - zoom_meeting_id: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_start_url: null - zoom_meeting_transcript: {} - zoom_meeting_transcript_summary: null - raw_labels: null - tutorial_steps: null - data: {} - deduplication_key: null - started_at: 2026-01-20T09:41:18.298-08:00 - ended_at: 2026-01-20T09:42:24.558-08:00 - external_id: null - external_url: https://example.com/alert/test - url: https://test.rootly.com/account/alerts/0cbe80cf-8b94-4242-a55e-22674dd47cc7 - noise: not_noise - group_leader_alert_id: null - is_group_leader_alert: false - notification_target_type: null - notification_target_id: null - alert_urgency: - id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - color: '#C73C40' - created_at: 2026-01-20T09:41:18.292-08:00 - deleted_at: null - description: Libero quo eum est. - name: tixsd - position: 1 - team_id: 31 - updated_at: 2026-01-20T09:41:18.297-08:00 - urgency: high - alert_urgency_id: 7d7e3b93-56ec-46d2-a5f5-80df7c3b3a83 - notified_users: [] - created_at: 2026-01-20T09:41:18.299-08:00 - updated_at: 2026-01-20T09:42:24.559-08:00 - relationships: - events: - data: - - id: 4a227c4c-3981-4437-8790-41788031484c - type: alert_events - - id: af6afd75-6f01-4ce5-9dda-181ae387a7db - type: alert_events - - id: 510b342e-3de2-414e-9fe6-82e53e3aab08 - type: alert_events schema: $ref: '#/components/schemas/alert_response' - description: resolve acknowledged + description: resolves open alert + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Resolves an alert + tags: + - Alerts + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/alerts/{id}/snooze: + post: + description: "Snoozes a specific alert by id, extending the acknowledgment timeout" + operationId: snoozeAlert + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/snooze_alert' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_response' + description: alert snoozed "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found "400": content: application/vnd.api+json: - example: - errors: - - title: Cannot resolve an alert with status open. - status: "400" schema: $ref: '#/components/schemas/errors_list' - description: cannot resolve open alert + description: invalid delay_minutes + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: snooze service failure security: - bearer_auth: [] - summary: Resolves an alert + summary: Snoozes an alert tags: - Alerts x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/audits: + /v1/alerts/{id}/escalate: + post: + description: Escalates a specific alert to the next or specified level in its + escalation policy + operationId: escalateAlert + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/escalate_alert' + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/alert_response' + description: escalates to different EP defaults to level 1 + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: escalation_policy_level exceeds max + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: cannot escalate grouped member alert + "400": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: malformed escalation_policy_id + security: + - bearer_auth: [] + summary: Escalates an alert + tags: + - Alerts + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/api_keys: get: - description: List audits - operationId: listAudits + description: | + List API keys for the current organization. Returns key metadata including name, kind, expiration, and last usage — the secret token value is never included in the response. + + **API key kinds:** + - `personal` — tied to a specific user, inherits that user's permissions. + - `team` — scoped to one or more teams (groups), creates a service account with permissions derived from group membership. + - `organization` — organization-wide, creates a service account with a configurable role and on-call role. + + **Automated rotation workflow:** Use `filter[expires_at][lt]` to find keys approaching expiration, then call the rotate endpoint to issue a new token before the old one expires. Combine with `filter[active]=true` to exclude already-expired keys. + + **Sorting:** Use the `sort` parameter with a field name (e.g., `sort=expires_at`). Prefix with `-` for descending order (e.g., `sort=-created_at`). Allowed fields: `name`, `kind`, `created_at`, `updated_at`, `expires_at`, `last_used_at`. + operationId: listApiKeys parameters: - - explode: true + - description: "Comma-separated list of relationships to include (role, on_call_role,\ + \ created_by, groups)" + explode: true in: query name: include required: false @@ -4844,166 +3208,170 @@ paths: schema: type: integer style: form - - explode: true + - description: "Filter by API key kind: personal, team, organization" + explode: true in: query - name: "filter[created_at][gt]" + name: "filter[kind]" required: false schema: type: string style: form - - explode: true + - description: Search by name (case-insensitive partial match) + explode: true in: query - name: "filter[created_at][gte]" + name: "filter[search]" required: false schema: type: string style: form - - explode: true + - description: Filter by exact name + explode: true in: query - name: "filter[created_at][lt]" + name: "filter[name]" required: false schema: type: string style: form - - explode: true + - description: Filter by the user ID that owns the key + explode: true in: query - name: "filter[created_at][lte]" + name: "filter[user_id]" required: false schema: type: string style: form - - explode: true + - description: Filter team keys by group IDs (comma-separated) + explode: true in: query - name: "filter[user_id]" + name: "filter[group_ids]" required: false schema: type: string style: form - - explode: true + - description: Filter by role ID + explode: true in: query - name: "filter[api_key_id]" + name: "filter[role_id]" required: false schema: type: string style: form - - explode: true + - description: "When true, return only non-expired keys" + explode: true in: query - name: "filter[source]" + name: "filter[active]" required: false schema: - type: string + type: boolean style: form - - explode: true + - description: "When true, return only expired keys" + explode: true in: query - name: "filter[item_type]" + name: "filter[expired]" required: false schema: - type: string + type: boolean style: form - - explode: true + - description: Created after (ISO 8601) + explode: true in: query - name: sort + name: "filter[created_at][gt]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/audits_list' - description: success - security: - - bearer_auth: [] - summary: List audits - tags: - - Audits - x-accepts: - - application/vnd.api+json - /v1/authorizations: - get: - description: List authorizations - operationId: listAuthorizations - parameters: - - explode: true + - description: Created at or after (ISO 8601) + explode: true in: query - name: include + name: "filter[created_at][gte]" required: false schema: type: string style: form - - explode: true + - description: Created before (ISO 8601) + explode: true in: query - name: "page[number]" + name: "filter[created_at][lt]" required: false schema: - type: integer + type: string style: form - - explode: true + - description: Created at or before (ISO 8601) + explode: true in: query - name: "page[size]" + name: "filter[created_at][lte]" required: false schema: - type: integer + type: string style: form - - explode: true + - description: Expires after (ISO 8601) + explode: true in: query - name: "filter[authorizable_id]" + name: "filter[expires_at][gt]" required: false schema: type: string style: form - - explode: true + - description: Expires at or after (ISO 8601) + explode: true in: query - name: "filter[authorizable_type]" + name: "filter[expires_at][gte]" required: false schema: type: string style: form - - explode: true + - description: Expires before (ISO 8601). Useful for finding keys approaching + expiration. + explode: true in: query - name: "filter[grantee_id]" + name: "filter[expires_at][lt]" required: false schema: type: string style: form - - explode: true + - description: Expires at or before (ISO 8601) + explode: true in: query - name: "filter[grantee_type]" + name: "filter[expires_at][lte]" required: false schema: type: string style: form - - explode: true + - description: Last used after (ISO 8601) + explode: true in: query - name: "filter[created_at][gt]" + name: "filter[last_used_at][gt]" required: false schema: type: string style: form - - explode: true + - description: Last used at or after (ISO 8601) + explode: true in: query - name: "filter[created_at][gte]" + name: "filter[last_used_at][gte]" required: false schema: type: string style: form - - explode: true + - description: Last used before (ISO 8601) + explode: true in: query - name: "filter[created_at][lt]" + name: "filter[last_used_at][lt]" required: false schema: type: string style: form - - explode: true + - description: Last used at or before (ISO 8601) + explode: true in: query - name: "filter[created_at][lte]" + name: "filter[last_used_at][lte]" required: false schema: type: string style: form - - explode: true + - description: "Sort by field. Prefix with - for descending (e.g., -created_at,\ + \ expires_at)" + explode: true in: query name: sort required: false @@ -5015,258 +3383,253 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/authorization_list' + $ref: '#/components/schemas/api_key_list' description: success + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: List authorizations + summary: List API keys tags: - - Authorizations + - API Keys x-accepts: - application/vnd.api+json post: - description: Creates a new authorization from provided data - operationId: createAuthorization + description: | + Creates a new API key and returns it with the plaintext token. **The token is only returned once** — store it securely, as it cannot be retrieved again. + + **Kinds and required fields:** + - `personal` — created for the authenticated user. No additional fields required. + - `team` — scoped to a team (group). Requires `group_id`. A service account is automatically created with permissions derived from group membership. + - `organization` — organization-wide access. Requires owner or admin role. Optionally set `role_id` and `on_call_role_id` to control the service account's permissions. + + **Expiration:** All keys require an `expires_at` date set in the future (maximum 5 years). Names must be unique within their kind and scope. + operationId: createApiKey parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_authorization' + $ref: '#/components/schemas/new_api_key' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: fd1ac674-4a7d-4091-9e6a-77b8bdbc718d - type: authorizations - attributes: - authorizable_id: e01eeac1-6e0c-4bff-82e8-b046da0655ed - authorizable_type: Dashboard - grantee_id: "104" - grantee_type: User - permissions: - - read - updated_at: 2026-01-20T09:42:28.628-08:00 - created_at: 2026-01-20T09:42:28.628-08:00 schema: - $ref: '#/components/schemas/authorization_response' - description: authorization created + $ref: '#/components/schemas/api_key_with_token_response' + description: API key created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an authorization + summary: Creates an API key tags: - - Authorizations + - API Keys x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/authorizations/{id}: + /v1/api_keys/{id}: delete: - description: Delete a specific authorization by id - operationId: deleteAuthorization + description: | + Revoke an API key. The key is immediately invalidated and can no longer be used for authentication. This action cannot be undone. + + For `team` and `organization` keys, the associated service account is also deleted. Any active sessions using this key will fail on the next request. + operationId: deleteApiKey parameters: - explode: false in: path name: id required: true schema: + description: Resource UUID + format: uuid type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 5fd7b0d2-240d-4edd-9a5e-83d20af654f7 - type: authorizations - attributes: - authorizable_id: e25991fd-39fe-452b-9f18-4dcd9958bedd - authorizable_type: Dashboard - grantee_id: "116" - grantee_type: User - permissions: - - read - - update - - authorize - - destroy - updated_at: 2026-01-20T09:42:34.299-08:00 - created_at: 2026-01-20T09:42:34.299-08:00 schema: - $ref: '#/components/schemas/authorization_response' - description: authorization deleted + $ref: '#/components/schemas/api_key_response' + description: API key revoked "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: API key not found security: - bearer_auth: [] - summary: Delete an authorization + summary: Revoke an API key tags: - - Authorizations + - API Keys x-accepts: - application/vnd.api+json get: - description: Retrieves a specific authorization by id - operationId: getAuthorization + description: "Retrieves a specific API key by its UUID. Returns key metadata\ + \ including name, kind, expiration, last usage timestamp, and the grace period\ + \ status — the secret token is never included." + operationId: getApiKey parameters: - explode: false in: path name: id required: true schema: + description: Resource UUID + format: uuid type: string style: simple + - description: "Comma-separated list of relationships to include (role, on_call_role,\ + \ created_by, groups)" + explode: true + in: query + name: include + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 64550a10-b6a9-44ab-ac42-b5d4efc8dfdb - type: authorizations - attributes: - authorizable_id: 5bd89372-344b-4fd5-8106-4947c5a1bfd4 - authorizable_type: Dashboard - grantee_id: "113" - grantee_type: Team - permissions: - - read - - update - - authorize - - destroy - updated_at: 2026-01-20T09:42:30.503-08:00 - created_at: 2026-01-20T09:42:30.503-08:00 schema: - $ref: '#/components/schemas/authorization_response' - description: authorization found + $ref: '#/components/schemas/api_key_response' + description: API key found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: API key not found security: - bearer_auth: [] - summary: Retrieves an authorization + summary: Retrieves an API key tags: - - Authorizations + - API Keys x-accepts: - application/vnd.api+json put: - description: Update a specific authorization by id - operationId: updateAuthorization + description: | + Update an API key's mutable attributes: `name`, `description`, and `expires_at`. + + The key's `kind`, `role_id`, `on_call_role_id`, and token cannot be changed after creation. To issue a new token, use the rotate endpoint. To change the role or kind, revoke the key and create a new one. + + The new `expires_at` must be in the future and within 5 years. + operationId: updateApiKey parameters: - explode: false in: path name: id required: true schema: + description: Resource UUID + format: uuid type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_authorization' + $ref: '#/components/schemas/update_api_key' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 92bfd0da-1ab5-44d2-919c-f3b0f64766ec - type: authorizations - attributes: - authorizable_id: 7c52a8dc-fbef-43e5-9802-87b25efdafc6 - authorizable_type: Dashboard - grantee_id: "112" - grantee_type: User - permissions: - - read - - update - updated_at: 2026-01-20T09:42:32.504-08:00 - created_at: 2026-01-20T09:42:32.438-08:00 schema: - $ref: '#/components/schemas/authorization_response' - description: authorization updated + $ref: '#/components/schemas/api_key_response' + description: API key updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: API key not found security: - bearer_auth: [] - summary: Update an authorization + summary: Update an API key tags: - - Authorizations + - API Keys x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/catalogs/{catalog_id}/entities: - get: - description: List Catalog Entities - operationId: listCatalogEntities + /v1/api_keys/{id}/rotate: + post: + description: | + Rotate an API key's token. Issues a new secret token and returns it — **the new token is only shown once**, so store it securely. + + **Self-only:** You can only rotate the API key that was used to authenticate this request. Attempting to rotate a different key returns `403 Forbidden`. + + **Grace period:** When enabled for your organization, the previous token remains valid after rotation, giving you time to deploy the new token without downtime. Pass `grace_period_minutes` (integer, 0–1440, default 30) to control how long the old token stays valid. Set to 0 to immediately invalidate the old token. The `grace_period_ends_at` field in the response confirms the exact time the old token will stop working. + + **Expiration:** Optionally provide a new `expires_at` date (ISO 8601, up to 5 years). Defaults to 90 days from now if omitted. Dates in the past are rejected. + + **Typical rotation workflow:** + 1. Call this endpoint to get a new token (optionally with a custom `grace_period_minutes`). + 2. Deploy the new token to your systems. + 3. The old token continues working for `grace_period_minutes` (if grace period is enabled). + 4. After the grace period, the old token is automatically invalidated. + operationId: rotateApiKey parameters: - explode: false in: path - name: catalog_id + name: id required: true schema: type: string style: simple - - description: "comma separated if needed. eg: catalog,properties" - explode: true + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/rotate_api_key' + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/api_key_with_token_response' + description: API key rotated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: API key not found + security: + - bearer_auth: [] + summary: Rotate an API key + tags: + - API Keys + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/audits: + get: + description: List audits + operationId: listAudits + parameters: + - explode: true in: query name: include required: false schema: - enum: - - catalog - - properties - type: string - style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true - in: query - name: sort - required: false - schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at - - position - - -position type: string style: form - explode: true @@ -5285,356 +3648,211 @@ paths: style: form - explode: true in: query - name: "filter[slug]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[created_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[user_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[api_key_id]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/catalog_entity_list' - description: success - security: - - bearer_auth: [] - summary: List Catalog Entities - tags: - - CatalogEntities - x-accepts: - - application/vnd.api+json - post: - description: Creates a new Catalog Entity from provided data - operationId: createCatalogEntity - parameters: - - explode: false - in: path - name: catalog_id - required: true - schema: - type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_catalog_entity' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 3e6131e9-350c-4a16-8b24-734da7a33aa3 - type: catalog_entities - attributes: - catalog_id: a49c5ce9-df5c-4297-8072-791548e5c533 - name: Test Item - slug: test-item - position: 2 - deleted_at: null - updated_at: 2026-01-20T09:42:37.234-08:00 - created_at: 2026-01-20T09:42:37.234-08:00 - relationships: - catalog: - data: - id: a49c5ce9-df5c-4297-8072-791548e5c533 - type: catalogs - properties: - data: [] - schema: - $ref: '#/components/schemas/catalog_entity_response' - description: catalog_entity created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: Name is too short (minimum is 1 character) - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a Catalog Entity - tags: - - CatalogEntities - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/catalog_entities/{id}: - delete: - description: Delete a specific Catalog Entity by id - operationId: deleteCatalogEntity - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: f9c61365-b6b4-4623-80c6-c41c6bfe9fbc - type: catalog_entities - attributes: - catalog_id: a49c5ce9-df5c-4297-8072-791548e5c533 - name: Test - slug: test - position: 1 - deleted_at: 2026-01-20T09:42:38.179-08:00 - updated_at: 2026-01-20T09:42:38.179-08:00 - created_at: 2026-01-20T09:42:37.170-08:00 - relationships: - catalog: - data: - id: a49c5ce9-df5c-4297-8072-791548e5c533 - type: catalogs - properties: - data: [] - schema: - $ref: '#/components/schemas/catalog_entity_response' - description: catalog_entity deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a Catalog Entity - tags: - - CatalogEntities - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific Catalog Entity by id - operationId: getCatalogEntity - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - - description: "comma separated if needed. eg: catalog,properties" - explode: true + - explode: true in: query - name: include + name: "filter[source]" required: false schema: - enum: - - catalog - - properties type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: f9c61365-b6b4-4623-80c6-c41c6bfe9fbc - type: catalog_entities - attributes: - catalog_id: a49c5ce9-df5c-4297-8072-791548e5c533 - name: Test - slug: test - position: 1 - deleted_at: null - updated_at: 2026-01-20T09:42:37.170-08:00 - created_at: 2026-01-20T09:42:37.170-08:00 - relationships: - catalog: - data: - id: a49c5ce9-df5c-4297-8072-791548e5c533 - type: catalogs - properties: - data: [] - schema: - $ref: '#/components/schemas/catalog_entity_response' - description: catalog_entity found by slug - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a Catalog Entity - tags: - - CatalogEntities - x-accepts: - - application/vnd.api+json - put: - description: Update a specific Catalog Entity by id - operationId: updateCatalogEntity - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_catalog_entity' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: f9c61365-b6b4-4623-80c6-c41c6bfe9fbc - type: catalog_entities - attributes: - catalog_id: a49c5ce9-df5c-4297-8072-791548e5c533 - name: Updated name - slug: test - position: 1 - deleted_at: null - updated_at: 2026-01-20T09:42:37.859-08:00 - created_at: 2026-01-20T09:42:37.170-08:00 - relationships: - catalog: - data: - id: a49c5ce9-df5c-4297-8072-791548e5c533 - type: catalogs - properties: - data: [] - schema: - $ref: '#/components/schemas/catalog_entity_response' - description: catalog_entity updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a Catalog Entity - tags: - - CatalogEntities - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/catalog_entities/{catalog_entity_id}/properties: - get: - description: List Catalog Entity Properties - operationId: listCatalogEntityProperties - parameters: - - explode: false - in: path - name: catalog_entity_id - required: true - schema: - type: string - style: simple - - description: "comma separated if needed. eg: catalog_entity,catalog_field" - explode: true + - explode: true in: query - name: include + name: "filter[item_type]" required: false schema: - enum: - - catalog_entity - - catalog_field type: string style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true + - explode: true in: query - name: sort + name: "filter[user_id][eq]" required: false schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[user_id][not_eq]" required: false schema: - type: integer + type: string + style: form + - explode: true + in: query + name: "filter[user_id][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[user_id][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[api_key_id][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[api_key_id][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[api_key_id][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[api_key_id][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[item_type][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[item_type][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[item_type][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[item_type][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/audits_list' + description: success + security: + - bearer_auth: [] + summary: List audits + tags: + - Audits + x-accepts: + - application/vnd.api+json + /v1/authorizations: + get: + description: List authorizations + operationId: listAuthorizations + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer style: form - explode: true in: query @@ -5645,14 +3863,28 @@ paths: style: form - explode: true in: query - name: "filter[catalog_field_id]" + name: "filter[authorizable_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[key]" + name: "filter[authorizable_type]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[grantee_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[grantee_type]" required: false schema: type: string @@ -5685,90 +3917,62 @@ paths: schema: type: string style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/catalog_entity_property_list' + $ref: '#/components/schemas/authorization_list' description: success security: - bearer_auth: [] - summary: List catalog properties + summary: List authorizations tags: - - CatalogEntityProperties + - Authorizations x-accepts: - application/vnd.api+json post: - description: Creates a new Catalog Entity Property from provided data - operationId: createCatalogEntityProperty - parameters: - - explode: false - in: path - name: catalog_entity_id - required: true - schema: - type: string - style: simple + description: Creates a new authorization from provided data + operationId: createAuthorization + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_catalog_entity_property' + $ref: '#/components/schemas/new_authorization' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 741d0b67-30d6-444c-b1cd-32ac32b24130 - type: catalog_entity_properties - attributes: - catalog_entity_id: c1c0a9ec-2321-417f-94c0-15ab7ada5721 - catalog_field_id: 3f5bc67c-0ffb-4cdf-8347-6b7be18a81f6 - key: text - value: Test EntityProperty - deleted_at: null - updated_at: 2026-01-20T09:42:39.857-08:00 - created_at: 2026-01-20T09:42:39.857-08:00 - schema: - $ref: '#/components/schemas/catalog_entity_property_response' - description: catalog_entity_property created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Value can't be blank - status: "422" - - title: Value is too short (minimum is 1 character) - status: "422" schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + $ref: '#/components/schemas/authorization_response' + description: authorization created "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a Catalog Entity Property + summary: Creates an authorization tags: - - CatalogEntityProperties + - Authorizations x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/catalog_entity_properties/{id}: + /v1/authorizations/{id}: delete: - description: Delete a specific Catalog Entity Property by id - operationId: deleteCatalogEntityProperty + description: Delete a specific authorization by id + operationId: deleteAuthorization parameters: - explode: false in: path @@ -5781,41 +3985,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 68cf46f5-4725-4206-b334-2b376f6310bc - type: catalog_entity_properties - attributes: - catalog_entity_id: c1c0a9ec-2321-417f-94c0-15ab7ada5721 - catalog_field_id: 3f5bc67c-0ffb-4cdf-8347-6b7be18a81f6 - key: text - value: Test - deleted_at: 2026-01-20T09:42:40.463-08:00 - updated_at: 2026-01-20T09:42:40.463-08:00 - created_at: 2026-01-20T09:42:39.808-08:00 schema: - $ref: '#/components/schemas/catalog_entity_property_response' - description: catalog_entity_property deleted + $ref: '#/components/schemas/authorization_response' + description: authorization deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a Catalog Entity Property + summary: Delete an authorization tags: - - CatalogEntityProperties + - Authorizations x-accepts: - application/vnd.api+json get: - description: Retrieves a specific Catalog Entity Property by id - operationId: getCatalogEntityProperty + description: Retrieves a specific authorization by id + operationId: getAuthorization parameters: - explode: false in: path @@ -5824,56 +4012,29 @@ paths: schema: type: string style: simple - - description: "comma separated if needed. eg: catalog_entity,catalog_field" - explode: true - in: query - name: include - required: false - schema: - enum: - - catalog_entity - - catalog_field - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 68cf46f5-4725-4206-b334-2b376f6310bc - type: catalog_entity_properties - attributes: - catalog_entity_id: c1c0a9ec-2321-417f-94c0-15ab7ada5721 - catalog_field_id: 3f5bc67c-0ffb-4cdf-8347-6b7be18a81f6 - key: text - value: Test - deleted_at: null - updated_at: 2026-01-20T09:42:39.808-08:00 - created_at: 2026-01-20T09:42:39.808-08:00 schema: - $ref: '#/components/schemas/catalog_entity_property_response' - description: catalog_entity_property found + $ref: '#/components/schemas/authorization_response' + description: authorization found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a Catalog Entity Property + summary: Retrieves an authorization tags: - - CatalogEntityProperties + - Authorizations x-accepts: - application/vnd.api+json put: - description: Update a specific Catalog Entity Property by id - operationId: updateCatalogEntityProperty + description: Update a specific authorization by id + operationId: updateAuthorization parameters: - explode: false in: path @@ -5886,65 +4047,43 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_catalog_entity_property' + $ref: '#/components/schemas/update_authorization' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 68cf46f5-4725-4206-b334-2b376f6310bc - type: catalog_entity_properties - attributes: - catalog_entity_id: c1c0a9ec-2321-417f-94c0-15ab7ada5721 - catalog_field_id: 3f5bc67c-0ffb-4cdf-8347-6b7be18a81f6 - key: text - value: Updated value - deleted_at: null - updated_at: 2026-01-20T09:42:40.283-08:00 - created_at: 2026-01-20T09:42:39.808-08:00 schema: - $ref: '#/components/schemas/catalog_entity_property_response' - description: catalog_entity_property updated + $ref: '#/components/schemas/authorization_response' + description: authorization updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a Catalog Entity Property + summary: Update an authorization tags: - - CatalogEntityProperties + - Authorizations x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/catalogs/{catalog_id}/fields: + /v1/catalog_checklist_templates: get: - description: List Catalog Fields - operationId: listCatalogFields + description: List catalog checklist templates + operationId: listCatalogChecklistTemplates parameters: - - explode: false - in: path - name: catalog_id - required: true - schema: - type: string - style: simple - - description: "comma separated if needed. eg: catalog" + - description: "comma separated if needed. eg: template_fields,template_owners" explode: true in: query name: include required: false schema: enum: - - catalog + - template_fields + - template_owners type: string style: form - description: "comma separated if needed. eg: created_at,updated_at" @@ -5958,8 +4097,8 @@ paths: - -created_at - updated_at - -updated_at - - position - - -position + - name + - -name type: string style: form - explode: true @@ -5976,6 +4115,13 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form - explode: true in: query name: "filter[slug]" @@ -5985,14 +4131,14 @@ paths: style: form - explode: true in: query - name: "filter[name]" + name: "filter[catalog_type]" required: false schema: type: string style: form - explode: true in: query - name: "filter[kind]" + name: "filter[scope_type]" required: false schema: type: string @@ -6030,94 +4176,85 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/catalog_field_list' - description: success + $ref: '#/components/schemas/catalog_checklist_template_list' + description: returns empty list for another team security: - bearer_auth: [] - summary: List Catalog Fields + summary: List catalog checklist templates tags: - - CatalogFields + - Catalog Checklist Templates x-accepts: - application/vnd.api+json post: - description: Creates a new Catalog Field from provided data - operationId: createCatalogField - parameters: - - explode: false - in: path - name: catalog_id - required: true - schema: - type: string - style: simple + description: Creates a new catalog checklist template + operationId: createCatalogChecklistTemplate + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_catalog_field' + $ref: '#/components/schemas/new_catalog_checklist_template' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: eecab249-aa6d-4662-92d0-880db22b9271 - type: catalog_fields - attributes: - catalog_id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - name: Test Attribute - slug: test-attribute - kind: reference - kind_catalog_id: null - multiple: false - position: 2 - deleted_at: null - updated_at: 2026-01-20T09:42:41.798-08:00 - created_at: 2026-01-20T09:42:41.798-08:00 - required: true - relationships: - catalog: - data: - id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - type: catalogs - schema: - $ref: '#/components/schemas/catalog_field_response' - description: catalog_field created with required attribute + schema: + $ref: '#/components/schemas/catalog_checklist_template_response' + description: ignores user-provided field_key for custom fields "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: Name is too short (minimum is 1 character) - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: exceeds max fields per catalog + description: returns 422 when scope_type is missing for Catalog scope_id "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a Catalog Field + summary: Creates a catalog checklist template tags: - - CatalogFields + - Catalog Checklist Templates x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/catalog_fields/{id}: + /v1/catalog_checklist_templates/{id}/trigger: + post: + description: Triggers an audit for all applicable entities of the checklist + template + operationId: triggerCatalogChecklistTemplate + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "202": + description: audit triggered + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found for another team + security: + - bearer_auth: [] + summary: Trigger an audit for a catalog checklist template + tags: + - Catalog Checklist Templates + x-accepts: + - application/vnd.api+json + /v1/catalog_checklist_templates/{id}: delete: - description: Delete a specific catalog_field by id - operationId: deleteCatalogField + description: Delete a specific catalog checklist template by id + operationId: deleteCatalogChecklistTemplate parameters: - explode: false in: path @@ -6130,49 +4267,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4a91ead1-c991-47d2-83ac-ac1fa9d1ec47 - type: catalog_fields - attributes: - catalog_id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - name: Test - slug: test - kind: reference - kind_catalog_id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - multiple: false - position: 1 - deleted_at: 2026-01-20T09:42:42.726-08:00 - updated_at: 2026-01-20T09:42:42.726-08:00 - created_at: 2026-01-20T09:42:41.529-08:00 - relationships: - catalog: - data: - id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - type: catalogs - schema: - $ref: '#/components/schemas/catalog_field_response' - description: catalog_field deleted + schema: + $ref: '#/components/schemas/catalog_checklist_template_response' + description: catalog checklist template deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: catalog checklist template not found security: - bearer_auth: [] - summary: Delete a catalog_field + summary: Delete a catalog checklist template tags: - - CatalogFields + - Catalog Checklist Templates x-accepts: - application/vnd.api+json get: - description: Retrieves a specific Catalog Field by id - operationId: getCatalogField + description: Retrieves a specific catalog checklist template by id + operationId: getCatalogChecklistTemplate parameters: - explode: false in: path @@ -6181,63 +4294,29 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - - description: "comma separated if needed. eg: catalog" - explode: true - in: query - name: include - required: false - schema: - enum: - - catalog - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 4a91ead1-c991-47d2-83ac-ac1fa9d1ec47 - type: catalog_fields - attributes: - catalog_id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - name: Test - slug: test - kind: reference - kind_catalog_id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - multiple: false - position: 1 - deleted_at: null - updated_at: 2026-01-20T09:42:41.529-08:00 - created_at: 2026-01-20T09:42:41.529-08:00 - relationships: - catalog: - data: - id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - type: catalogs - schema: - $ref: '#/components/schemas/catalog_field_response' - description: catalog_field found + schema: + $ref: '#/components/schemas/catalog_checklist_template_response' + description: catalog checklist template found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: resource not found for another team security: - bearer_auth: [] - summary: Retrieves a Catalog Field + summary: Retrieves a catalog checklist template tags: - - CatalogFields + - Catalog Checklist Templates x-accepts: - application/vnd.api+json put: - description: Update a specific catalog_field by id - operationId: updateCatalogField + description: Update a specific catalog checklist template by id + operationId: updateCatalogChecklistTemplate parameters: - explode: false in: path @@ -6250,67 +4329,50 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_catalog_field' + $ref: '#/components/schemas/update_catalog_checklist_template' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 4a91ead1-c991-47d2-83ac-ac1fa9d1ec47 - type: catalog_fields - attributes: - catalog_id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - name: Updated name - slug: test - kind: reference - kind_catalog_id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - multiple: false - position: 1 - deleted_at: null - updated_at: 2026-01-20T09:42:42.476-08:00 - created_at: 2026-01-20T09:42:41.529-08:00 - relationships: - catalog: - data: - id: ecb08b0f-7c24-437d-b68f-b00724f67e5c - type: catalogs - schema: - $ref: '#/components/schemas/catalog_field_response' - description: catalog_field updated - "404": + schema: + $ref: '#/components/schemas/catalog_checklist_template_response' + description: ignores user-provided field_key for custom fields on update + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: rejects duplicate custom fields on update security: - bearer_auth: [] - summary: Update a catalog_field + summary: Update a catalog checklist template tags: - - CatalogFields + - Catalog Checklist Templates x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/catalogs: + /v1/catalogs/{catalog_id}/entities: get: - description: List catalogs - operationId: listCatalogs + description: List Catalog Entities + operationId: listCatalogEntities parameters: - - description: "comma separated if needed. eg: fields,entities" + - explode: false + in: path + name: catalog_id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: catalog,properties" explode: true in: query name: include required: false schema: enum: - - fields - - entities + - catalog + - properties type: string style: form - description: "comma separated if needed. eg: created_at,updated_at" @@ -6342,6 +4404,13 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form - explode: true in: query name: "filter[slug]" @@ -6356,6 +4425,27 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[backstage_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[external_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by]" + required: false + schema: + type: string + style: form - explode: true in: query name: "filter[created_at][gt]" @@ -6384,89 +4474,152 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by][not_in]" + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/catalog_list' + $ref: '#/components/schemas/catalog_entity_list' description: success security: - bearer_auth: [] - summary: List catalogs + summary: List Catalog Entities tags: - - Catalogs + - CatalogEntities x-accepts: - application/vnd.api+json post: - description: Creates a new catalog from provided data - operationId: createCatalog - parameters: [] + description: Creates a new Catalog Entity from provided data + operationId: createCatalogEntity + parameters: + - explode: false + in: path + name: catalog_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_catalog' + $ref: '#/components/schemas/new_catalog_entity' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 5c8d55f6-3a70-4501-87e7-f79773f400b6 - type: catalogs - attributes: - name: Test - slug: test - icon: shapes - description: null - position: 2 - deleted_at: null - updated_at: 2026-01-20T09:42:44.159-08:00 - created_at: 2026-01-20T09:42:44.159-08:00 - relationships: - fields: - data: [] - entities: - data: [] schema: - $ref: '#/components/schemas/catalog_response' - description: catalog created + $ref: '#/components/schemas/catalog_entity_response' + description: catalog_entity created with fields attribute "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: Name is too short (minimum is 1 character) - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request + description: rejects entity with invalid catalog_field_id "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a catalog + summary: Creates a Catalog Entity tags: - - Catalogs + - CatalogEntities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/catalogs/{id}: + /v1/catalog_entities/{id}: delete: - description: Delete a specific catalog by id - operationId: deleteCatalog + description: Delete a specific Catalog Entity by id + operationId: deleteCatalogEntity parameters: - explode: false in: path @@ -6479,47 +4632,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 44b5cefa-86a2-43c4-bae8-ae395fb51e67 - type: catalogs - attributes: - name: Services - slug: services - icon: globe-alt - description: null - position: 1 - deleted_at: 2026-01-20T09:42:45.126-08:00 - updated_at: 2026-01-20T09:42:45.126-08:00 - created_at: 2026-01-20T09:42:44.089-08:00 - relationships: - fields: - data: [] - entities: - data: [] schema: - $ref: '#/components/schemas/catalog_response' - description: catalog deleted + $ref: '#/components/schemas/catalog_entity_response' + description: catalog_entity deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a catalog + summary: Delete a Catalog Entity tags: - - Catalogs + - CatalogEntities x-accepts: - application/vnd.api+json get: - description: Retrieves a specific catalog by id - operationId: getCatalog + description: Retrieves a specific Catalog Entity by id + operationId: getCatalogEntity parameters: - explode: false in: path @@ -6528,51 +4659,40 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple + - description: "comma separated if needed. eg: catalog,properties" + explode: true + in: query + name: include + required: false + schema: + enum: + - catalog + - properties + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 44b5cefa-86a2-43c4-bae8-ae395fb51e67 - type: catalogs - attributes: - name: Services - slug: services - icon: globe-alt - description: null - position: 1 - deleted_at: null - updated_at: 2026-01-20T09:42:44.089-08:00 - created_at: 2026-01-20T09:42:44.089-08:00 - relationships: - fields: - data: [] - entities: - data: [] schema: - $ref: '#/components/schemas/catalog_response' - description: catalog found by slug + $ref: '#/components/schemas/catalog_entity_response' + description: catalog_entity found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a catalog + summary: Retrieves a Catalog Entity tags: - - Catalogs + - CatalogEntities x-accepts: - application/vnd.api+json put: - description: Update a specific catalog by id - operationId: updateCatalog + description: Update a specific Catalog Entity by id + operationId: updateCatalogEntity parameters: - explode: false in: path @@ -6585,346 +4705,126 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_catalog' + $ref: '#/components/schemas/update_catalog_entity' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 44b5cefa-86a2-43c4-bae8-ae395fb51e67 - type: catalogs - attributes: - name: Services - slug: services - icon: globe-alt - description: Updated description - position: 1 - deleted_at: null - updated_at: 2026-01-20T09:42:44.852-08:00 - created_at: 2026-01-20T09:42:44.089-08:00 - relationships: - fields: - data: [] - entities: - data: [] schema: - $ref: '#/components/schemas/catalog_response' - description: catalog updated + $ref: '#/components/schemas/catalog_entity_response' + description: catalog_entity update replaces existing properties "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a catalog + summary: Update a Catalog Entity tags: - - Catalogs + - CatalogEntities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/causes: - get: - description: List causes - operationId: listCauses + /v1/catalogs/{catalog_id}/entities/bulk_upsert: + post: + description: "Create or update multiple catalog entities by external_id. Only\ + \ attributes present in the payload are written (managed-fields semantics).\ + \ Transactional: all succeed or all fail." + operationId: bulkUpsertCatalogEntities parameters: - - explode: true - in: query - name: include - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "page[number]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "filter[search]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false + - explode: false + in: path + name: catalog_id + required: true schema: type: string - style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/cause_list' - description: success - security: - - bearer_auth: [] - summary: List causes - tags: - - Causes - x-accepts: - - application/vnd.api+json - post: - description: Creates a new cause from provided data - operationId: createCause - parameters: [] + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_cause' + $ref: '#/components/schemas/bulk_upsert_catalog_entities' required: true responses: - "201": + "200": content: application/vnd.api+json: - example: - data: - id: 22b7826c-dfc2-4d7b-a7dc-0654b07b080e - type: causes - attributes: - slug: how-to-handle-customer-facing-incident - name: How to handle customer-facing incident? - description: This is a description - position: 1 - created_at: 2026-01-20T09:42:47.654-08:00 - updated_at: 2026-01-20T09:42:47.654-08:00 schema: - $ref: '#/components/schemas/cause_response' - description: cause created + $ref: '#/components/schemas/bulk_upsert_catalog_entities_response' + description: entities upserted successfully "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + $ref: '#/components/schemas/bulkUpsertCatalogEntities_422_response' + description: validation or entity-level error "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: unauthorized security: - bearer_auth: [] - summary: Creates a cause + summary: Bulk upsert Catalog Entities tags: - - Causes + - CatalogEntities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/causes/{id}: - delete: - description: Delete a specific cause by id - operationId: deleteCause - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 16995e55-0765-42f9-82cb-07b6ede1a3f1 - type: causes - attributes: - slug: ut-quia-minus-iusto - name: Ut quia minus iusto. - description: Suscipit quo ut aut. - position: 1 - created_at: 2026-01-20T09:42:46.495-08:00 - updated_at: 2026-01-20T09:42:48.817-08:00 - schema: - $ref: '#/components/schemas/cause_response' - description: cause deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a cause - tags: - - Causes - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific cause by id - operationId: getCause - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 16995e55-0765-42f9-82cb-07b6ede1a3f1 - type: causes - attributes: - slug: ut-quia-minus-iusto - name: Ut quia minus iusto. - description: Suscipit quo ut aut. - position: 1 - created_at: 2026-01-20T09:42:46.495-08:00 - updated_at: 2026-01-20T09:42:46.496-08:00 - schema: - $ref: '#/components/schemas/cause_response' - description: cause found by slug - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a cause - tags: - - Causes - x-accepts: - - application/vnd.api+json - put: - description: Update a specific cause by id - operationId: updateCause + /v1/catalogs/{catalog_id}/entities/bulk_delete: + post: + description: "Delete catalog entities by external_id list, or prune by managed_by\ + \ source. Two mutually exclusive modes." + operationId: bulkDeleteCatalogEntities parameters: - explode: false in: path - name: id + name: catalog_id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_cause' + $ref: '#/components/schemas/bulk_destroy_catalog_entities' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 16995e55-0765-42f9-82cb-07b6ede1a3f1 - type: causes - attributes: - slug: how-to-handle-security-incident - name: How to handle security incident? - description: This is a description - position: 2 - created_at: 2026-01-20T09:42:46.495-08:00 - updated_at: 2026-01-20T09:42:48.382-08:00 schema: - $ref: '#/components/schemas/cause_response' - description: cause updated - "404": + $ref: '#/components/schemas/bulk_destroy_catalog_entities_response' + description: entities deleted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkDeleteCatalogEntities_422_response' + description: validation or partial-failure error + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: unauthorized security: - bearer_auth: [] - summary: Update a cause + summary: Bulk delete Catalog Entities tags: - - Causes + - CatalogEntities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/communications/groups: + /v1/catalog_entity_checklists: get: - description: Lists communications groups - operationId: listCommunicationsGroups + description: List catalog entity checklists + operationId: listCatalogEntityChecklists parameters: - explode: true in: query @@ -6942,42 +4842,28 @@ paths: style: form - explode: true in: query - name: "filter[search]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[slug]" + name: "filter[status]" required: false schema: type: string style: form - explode: true in: query - name: "filter[is_private]" + name: "filter[catalog_checklist_template_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[communication_type_id]" + name: "filter[auditable_type]" required: false schema: type: string style: form - explode: true in: query - name: "filter[condition_type]" + name: "filter[auditable_id]" required: false schema: type: string @@ -7010,542 +4896,118 @@ paths: schema: type: string style: form - - explode: true - in: query - name: sort - required: false - schema: - type: string - style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - - id: 99cadc8a-dd4c-4376-9b79-dce1aa60882d - type: communications_groups - attributes: - name: Communication Group 10 - slug: communication-group-10 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:59.857-08:00 - updated_at: 2026-01-20T09:42:59.857-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: 31859105-6b38-436d-865a-5a88a7c7593e - type: communications_groups - attributes: - name: Communication Group 9 - slug: communication-group-9 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:58.125-08:00 - updated_at: 2026-01-20T09:42:58.125-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: 0ee50240-597f-426e-87af-d9305d4d067c - type: communications_groups - attributes: - name: Communication Group 8 - slug: communication-group-8 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:57.298-08:00 - updated_at: 2026-01-20T09:42:57.298-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: 2b6f2eb5-a3d6-4449-8d28-e846939d2016 - type: communications_groups - attributes: - name: Communication Group 7 - slug: communication-group-7 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:56.536-08:00 - updated_at: 2026-01-20T09:42:56.536-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: 1a323fd6-62fb-4f88-b9db-417dfc2419e9 - type: communications_groups - attributes: - name: Communication Group 6 - slug: communication-group-6 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:55.674-08:00 - updated_at: 2026-01-20T09:42:55.674-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: f6be05a9-00e7-41e1-907d-1ad374ec8db6 - type: communications_groups - attributes: - name: Communication Group 5 - slug: communication-group-5 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:54.922-08:00 - updated_at: 2026-01-20T09:42:54.922-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: 099338bb-281e-4027-b6b3-47f90a4dd631 - type: communications_groups - attributes: - name: Communication Group 4 - slug: communication-group-4 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:54.168-08:00 - updated_at: 2026-01-20T09:42:54.168-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: adbe3b67-c681-4fa5-a40f-47181c7843c7 - type: communications_groups - attributes: - name: Communication Group 3 - slug: communication-group-3 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:53.300-08:00 - updated_at: 2026-01-20T09:42:53.300-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: 024c1659-0124-4395-8211-ac7ae8774736 - type: communications_groups - attributes: - name: Communication Group 2 - slug: communication-group-2 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: [] - created_at: 2026-01-20T09:42:52.530-08:00 - updated_at: 2026-01-20T09:42:52.530-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: [] - communication_group_conditions: [] - - id: 708ced34-3d90-4bf5-8669-f1f531845343 - type: communications_groups - attributes: - name: Communication Group 1 - slug: communication-group-1 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: - - 8bb71884-6cee-50ff-96ef-f34309689c75 - created_at: 2026-01-20T09:42:51.729-08:00 - updated_at: 2026-01-20T09:42:51.729-08:00 - team_id: 135 - member_ids: - - 132 - communication_group_members: - - id: cfc8c244-a88f-4e59-8790-7fed15db8d81 - user_id: 132 - name: Hiroko Ryan - email: edwardo.larson@oconner.example - communication_external_group_members: - - id: 8681746d-eb24-4d69-9d1e-7b8cc4d79cab - name: External member - email: external@example.com - phone_number: "+911234567890" - communication_group_conditions: - - id: 9856950c-8b67-4cf5-92b5-d1c15e81dd06 - condition: is - property_type: service - service_ids: - - a36e4210-ed8d-4990-a867-c91aaa9e9fcb - severity_ids: [] - functionality_ids: [] - group_ids: [] - incident_type_ids: [] - properties: - - id: a36e4210-ed8d-4990-a867-c91aaa9e9fcb - name: Autem magni qui in. - links: - self: http://www.example.com/v1/communications/groups?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/communications/groups?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/communications/groups?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 10 - total_pages: 1 - schema: - $ref: '#/components/schemas/communications_groups_response' - description: communications groups found - security: - - bearer_auth: [] - summary: Lists communications groups - tags: - - Communications Groups - x-accepts: - - application/vnd.api+json - post: - description: Creates a new communications group from provided data - operationId: createCommunicationsGroup - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_communications_group' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 7f8a2fe8-cbbd-4a3e-857a-e76878a5a76a - type: communications_groups - attributes: - name: Engineering Team - slug: engineering-team - description: Engineering team communications group - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: - - 8bb71884-6cee-50ff-96ef-f34309689c75 - created_at: 2026-01-20T09:43:03.637-08:00 - updated_at: 2026-01-20T09:43:03.637-08:00 - team_id: 135 - member_ids: - - 132 - communication_group_members: - - id: 81dd938f-03b7-4179-a65c-77fbcb471167 - user_id: 132 - name: Hiroko Ryan - email: edwardo.larson@oconner.example - communication_external_group_members: - - id: 81bcfafc-810a-40e4-8918-a31b1965efd9 - name: External member - email: external@example.com - phone_number: "+911234567890" - communication_group_conditions: - - id: 2375694c-3c18-45db-a275-1167c7f09599 - condition: is - property_type: service - service_ids: - - a36e4210-ed8d-4990-a867-c91aaa9e9fcb - severity_ids: [] - functionality_ids: [] - group_ids: [] - incident_type_ids: [] - properties: - - id: a36e4210-ed8d-4990-a867-c91aaa9e9fcb - name: Autem magni qui in. - schema: - $ref: '#/components/schemas/communications_group_response' - description: communications group created - "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - security: - - bearer_auth: [] - summary: Creates a communications group - tags: - - Communications Groups - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/communications/groups/{id}: - delete: - description: Deletes a communications group - operationId: deleteCommunicationsGroup - parameters: - - description: Communications Group ID - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple responses: "200": - description: communications group deleted - "404": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/errors_list' - description: communications group not found + $ref: '#/components/schemas/catalog_entity_checklist_list' + description: returns empty list for another team security: - bearer_auth: [] - summary: Deletes a communications group + summary: List catalog entity checklists tags: - - Communications Groups + - Catalog Entity Checklists x-accepts: - application/vnd.api+json + /v1/catalog_entity_checklists/{id}: get: - description: Shows details of a communications group - operationId: getCommunicationsGroup + description: Retrieves a specific catalog entity checklist by id + operationId: getCatalogEntityChecklist parameters: - - description: Communications Group ID - explode: false + - explode: false in: path name: id required: true schema: + description: Resource UUID + format: uuid type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 708ced34-3d90-4bf5-8669-f1f531845343 - type: communications_groups - attributes: - name: Communication Group 1 - slug: communication-group-1 - description: null - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: - - 8bb71884-6cee-50ff-96ef-f34309689c75 - created_at: 2026-01-20T09:42:51.729-08:00 - updated_at: 2026-01-20T09:42:51.729-08:00 - team_id: 135 - member_ids: - - 132 - communication_group_members: - - id: cfc8c244-a88f-4e59-8790-7fed15db8d81 - user_id: 132 - name: Hiroko Ryan - email: edwardo.larson@oconner.example - communication_external_group_members: - - id: 8681746d-eb24-4d69-9d1e-7b8cc4d79cab - name: External member - email: external@example.com - phone_number: "+911234567890" - communication_group_conditions: - - id: 9856950c-8b67-4cf5-92b5-d1c15e81dd06 - condition: is - property_type: service - service_ids: - - a36e4210-ed8d-4990-a867-c91aaa9e9fcb - severity_ids: [] - functionality_ids: [] - group_ids: [] - incident_type_ids: [] - properties: - - id: a36e4210-ed8d-4990-a867-c91aaa9e9fcb - name: Autem magni qui in. schema: - $ref: '#/components/schemas/communications_group_response' - description: communications group found + $ref: '#/components/schemas/catalog_entity_checklist_response' + description: catalog entity checklist found "404": content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_list' - description: communications group not found + description: resource not found for another team security: - bearer_auth: [] - summary: Shows a communications group + summary: Retrieves a catalog entity checklist tags: - - Communications Groups + - Catalog Entity Checklists x-accepts: - application/vnd.api+json - patch: - description: Updates a communications group - operationId: updateCommunicationsGroup + /v1/catalog_entities/{catalog_entity_id}/properties: + get: + deprecated: true + description: |- + **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. + + List Catalog Entity Properties. + operationId: listCatalogEntityProperties parameters: - - description: Communications Group ID - explode: false + - explode: false in: path - name: id + name: catalog_entity_id required: true schema: type: string style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_communications_group' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 708ced34-3d90-4bf5-8669-f1f531845343 - type: communications_groups - attributes: - name: Updated Group Name - slug: communication-group-1 - description: Updated description - is_private: false - condition_type: any - email_channel: true - sms_channel: false - communication_type_id: d892b53c-83ca-43a5-a6f6-1bc48f7584e0 - slack_channel_ids: - - 8bb71884-6cee-50ff-96ef-f34309689c75 - - 87ce5b98-3578-5e63-bee2-62552f172eae - created_at: 2026-01-20T09:42:51.729-08:00 - updated_at: 2026-01-20T09:43:04.202-08:00 - team_id: 135 - member_ids: [] - communication_group_members: [] - communication_external_group_members: - - id: 8681746d-eb24-4d69-9d1e-7b8cc4d79cab - name: Updated External Member - email: external@example.com - phone_number: "+911234567890" - communication_group_conditions: - - id: 9856950c-8b67-4cf5-92b5-d1c15e81dd06 - condition: is - property_type: service - service_ids: [] - severity_ids: [] - functionality_ids: [] - group_ids: [] - incident_type_ids: [] - properties: [] - schema: - $ref: '#/components/schemas/communications_group_response' - description: communications group updated - "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - security: - - bearer_auth: [] - summary: Updates a communications group - tags: - - Communications Groups - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/communications/stages: - get: - description: Lists communications stages - operationId: listCommunicationsStages - parameters: - - explode: true + - description: "comma separated if needed. eg: catalog_entity,catalog_field" + explode: true in: query - name: "page[number]" + name: include required: false schema: - type: integer + enum: + - catalog_entity + - catalog_field + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + type: string style: form - explode: true in: query - name: "page[size]" + name: "page[number]" required: false schema: type: integer style: form - explode: true in: query - name: "filter[search]" + name: "page[size]" required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "filter[name]" + name: "filter[catalog_field_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[key]" required: false schema: type: string @@ -7578,159 +5040,48 @@ paths: schema: type: string style: form - - explode: true - in: query - name: sort - required: false - schema: - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - - id: f5630c47-38df-4c1c-9b22-7f4659e11cf5 - type: communications_stages - attributes: - name: sxtp7 - slug: sxtp7 - description: Facilis sint ad vel. - position: 1 - created_at: 2026-01-20T09:43:06.148-08:00 - updated_at: 2026-01-20T09:43:06.148-08:00 - - id: e684def1-b074-4d47-8dd0-28b5ac577970 - type: communications_stages - attributes: - name: plyc3 - slug: plyc3 - description: Quia id aut eos. - position: 2 - created_at: 2026-01-20T09:43:06.152-08:00 - updated_at: 2026-01-20T09:43:06.152-08:00 - - id: ecaa8ebf-1087-4dbf-93d2-f129b2448cb7 - type: communications_stages - attributes: - name: 2ej36 - slug: 2ej36 - description: Et ipsam voluptatem repellendus. - position: 3 - created_at: 2026-01-20T09:43:06.157-08:00 - updated_at: 2026-01-20T09:43:06.157-08:00 - - id: 65bcdf6a-b270-45cc-908a-55695977d122 - type: communications_stages - attributes: - name: gfbb2 - slug: gfbb2 - description: Laborum natus iusto ipsa. - position: 4 - created_at: 2026-01-20T09:43:06.162-08:00 - updated_at: 2026-01-20T09:43:06.162-08:00 - - id: ed14470c-e373-4aed-a493-3a265c407b9d - type: communications_stages - attributes: - name: snjnf - slug: snjnf - description: Blanditiis rerum sequi magni. - position: 5 - created_at: 2026-01-20T09:43:06.167-08:00 - updated_at: 2026-01-20T09:43:06.167-08:00 - - id: 76de24de-c17c-41c5-b2f1-15305a87a31d - type: communications_stages - attributes: - name: tae9r - slug: tae9r - description: Adipisci harum ab sapiente. - position: 6 - created_at: 2026-01-20T09:43:06.171-08:00 - updated_at: 2026-01-20T09:43:06.171-08:00 - - id: 859191cc-399c-463b-a8b3-54689a8a1298 - type: communications_stages - attributes: - name: y002c - slug: y002c - description: Qui sit omnis sint. - position: 7 - created_at: 2026-01-20T09:43:06.176-08:00 - updated_at: 2026-01-20T09:43:06.176-08:00 - - id: f99470f7-90d2-4db9-a92d-5215ade4c657 - type: communications_stages - attributes: - name: kxsos - slug: kxsos - description: Est eum non recusandae. - position: 8 - created_at: 2026-01-20T09:43:06.180-08:00 - updated_at: 2026-01-20T09:43:06.180-08:00 - - id: b74ac502-6960-43bf-92db-1082e2d56867 - type: communications_stages - attributes: - name: 1bgqr - slug: 1bgqr - description: Enim ullam est adipisci. - position: 9 - created_at: 2026-01-20T09:43:06.185-08:00 - updated_at: 2026-01-20T09:43:06.185-08:00 - - id: e1bccc70-db17-4e16-86e2-adf49d13e4c4 - type: communications_stages - attributes: - name: n3lp8 - slug: n3lp8 - description: Omnis aut quasi eligendi. - position: 10 - created_at: 2026-01-20T09:43:06.189-08:00 - updated_at: 2026-01-20T09:43:06.189-08:00 - links: - self: http://www.example.com/v1/communications/stages?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/communications/stages?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/communications/stages?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 10 - total_pages: 1 schema: - $ref: '#/components/schemas/communications_stages_response' - description: communications stages found + $ref: '#/components/schemas/catalog_entity_property_list' + description: success security: - bearer_auth: [] - summary: Lists communications stages + summary: List catalog properties tags: - - Communications Stages + - CatalogEntityProperties x-accepts: - application/vnd.api+json post: - description: Creates a new communications stage from provided data - operationId: createCommunicationsStage - parameters: [] + deprecated: true + description: |- + **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. + + Creates a new Catalog Entity Property from provided data. + operationId: createCatalogEntityProperty + parameters: + - explode: false + in: path + name: catalog_entity_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_communications_stage' + $ref: '#/components/schemas/new_catalog_entity_property' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: a34b4276-9e32-4dd3-a9c6-9fc79eaf1b76 - type: communications_stages - attributes: - name: Investigation Started - slug: investigation-started - description: Stage when investigation begins - position: 11 - created_at: 2026-01-20T09:43:06.945-08:00 - updated_at: 2026-01-20T09:43:06.945-08:00 schema: - $ref: '#/components/schemas/communications_stage_response' - description: communications stage created + $ref: '#/components/schemas/catalog_entity_property_response' + description: catalog_entity_property created "422": content: application/vnd.api+json: @@ -7740,28 +5091,27 @@ paths: "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: unauthorized + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a communications stage + summary: Creates a Catalog Entity Property tags: - - Communications Stages + - CatalogEntityProperties x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/communications/stages/{id}: + /v1/catalog_entity_properties/{id}: delete: - description: Deletes a communications stage - operationId: deleteCommunicationsStage + deprecated: true + description: |- + **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. + + Delete a specific Catalog Entity Property by id. + operationId: deleteCatalogEntityProperty parameters: - - description: Communications Stage ID - explode: false + - explode: false in: path name: id required: true @@ -7772,88 +5122,77 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: f5630c47-38df-4c1c-9b22-7f4659e11cf5 - type: communications_stages - attributes: - name: sxtp7 - slug: sxtp7 - description: Facilis sint ad vel. - position: 1 - created_at: 2026-01-20T09:43:06.148-08:00 - updated_at: 2026-01-20T09:43:07.540-08:00 - description: communications stage deleted + schema: + $ref: '#/components/schemas/catalog_entity_property_response' + description: catalog_entity_property deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: communications stage not found + description: resource not found security: - bearer_auth: [] - summary: Deletes a communications stage + summary: Delete a Catalog Entity Property tags: - - Communications Stages + - CatalogEntityProperties x-accepts: - application/vnd.api+json get: - description: Shows details of a communications stage - operationId: getCommunicationsStage + deprecated: true + description: |- + **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. + + Retrieves a specific Catalog Entity Property by id. + operationId: getCatalogEntityProperty parameters: - - description: Communications Stage ID - explode: false + - explode: false in: path name: id required: true schema: type: string style: simple + - description: "comma separated if needed. eg: catalog_entity,catalog_field" + explode: true + in: query + name: include + required: false + schema: + enum: + - catalog_entity + - catalog_field + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: f5630c47-38df-4c1c-9b22-7f4659e11cf5 - type: communications_stages - attributes: - name: sxtp7 - slug: sxtp7 - description: Facilis sint ad vel. - position: 1 - created_at: 2026-01-20T09:43:06.148-08:00 - updated_at: 2026-01-20T09:43:06.148-08:00 schema: - $ref: '#/components/schemas/communications_stage_response' - description: communications stage found + $ref: '#/components/schemas/catalog_entity_property_response' + description: catalog_entity_property found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Shows a communications stage + summary: Retrieves a Catalog Entity Property tags: - - Communications Stages + - CatalogEntityProperties x-accepts: - application/vnd.api+json - patch: - description: Updates a communications stage - operationId: updateCommunicationsStage + put: + deprecated: true + description: |- + **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. + + Update a specific Catalog Entity Property by id. + operationId: updateCatalogEntityProperty parameters: - - description: Communications Stage ID - explode: false + - explode: false in: path name: id required: true @@ -7864,847 +5203,86 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_communications_stage' + $ref: '#/components/schemas/update_catalog_entity_property' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: f5630c47-38df-4c1c-9b22-7f4659e11cf5 - type: communications_stages - attributes: - name: Updated Stage Name - slug: sxtp7 - description: Updated description - position: 1 - created_at: 2026-01-20T09:43:06.148-08:00 - updated_at: 2026-01-20T09:43:07.395-08:00 schema: - $ref: '#/components/schemas/communications_stage_response' - description: communications stage updated - "422": + $ref: '#/components/schemas/catalog_entity_property_response' + description: catalog_entity_property updated + "404": content: application/vnd.api+json: schema: $ref: '#/components/schemas/errors_list' - description: invalid request + description: resource not found security: - bearer_auth: [] - summary: Updates a communications stage + summary: Update a Catalog Entity Property tags: - - Communications Stages + - CatalogEntityProperties x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/communications/templates: + /v1/catalogs/{catalog_id}/properties: get: - description: Lists communications templates - operationId: listCommunicationsTemplates + description: List Catalog Properties - returns catalog_properties type + operationId: listCatalogProperties parameters: - - explode: true - in: query - name: "page[number]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "filter[search]" - required: false + - explode: false + in: path + name: catalog_id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[communication_type_id]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: sort - required: false - schema: - type: string - style: form + style: simple responses: "200": - content: - application/vnd.api+json: - example: - data: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - type: communications_templates - attributes: - name: gczcq - slug: gczcq - description: Sit nisi minus excepturi. - position: 1 - created_at: 2026-01-20T09:43:08.581-08:00 - updated_at: 2026-01-20T09:43:08.581-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 58e4ab54-05eb-4a42-915b-a5e0987b40a2 - type: communications-template_stages - attributes: - email_body: Iste cumque qui ut. - email_subject: wguyugir39 - slack_content: Odio est quidem repellat. - sms_content: Delectus culpa excepturi reprehenderit. - created_at: 2026-01-20T09:43:08.591-08:00 - updated_at: 2026-01-20T09:43:08.591-08:00 - communication_stage: - id: 89efd5fa-4b2b-4b8c-b8ec-27d8fe3a682c - name: 35cy2 - communication_template: - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - type: communications_templates - attributes: - name: nkhlw - slug: nkhlw - description: Quibusdam voluptatum magni voluptas. - position: 2 - created_at: 2026-01-20T09:43:08.594-08:00 - updated_at: 2026-01-20T09:43:08.594-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 72a0129c-479d-4d86-8225-a0b802e6843c - type: communications-template_stages - attributes: - email_body: In omnis et et. - email_subject: nmim06jrt0 - slack_content: Illum sunt fugit quis. - sms_content: Quia quae totam natus. - created_at: 2026-01-20T09:43:08.603-08:00 - updated_at: 2026-01-20T09:43:08.603-08:00 - communication_stage: - id: 13c6999e-5770-4186-a2d1-1f7a6ebc9e2d - name: xcy22 - communication_template: - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - type: communications_templates - attributes: - name: 2yp0f - slug: 2yp0f - description: Nihil eaque cum magnam. - position: 3 - created_at: 2026-01-20T09:43:08.606-08:00 - updated_at: 2026-01-20T09:43:08.606-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: cb6509ab-69b8-4e27-97a5-7c48e57ba5b4 - type: communications-template_stages - attributes: - email_body: Blanditiis repudiandae dolore doloribus. - email_subject: 2b8lclglz6 - slack_content: Error non reprehenderit dignissimos. - sms_content: Voluptatibus veritatis libero et. - created_at: 2026-01-20T09:43:08.614-08:00 - updated_at: 2026-01-20T09:43:08.614-08:00 - communication_stage: - id: e8063fd8-f143-4807-8bef-d49cf3f3d85c - name: kyjl2 - communication_template: - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - type: communications_templates - attributes: - name: 91ua8 - slug: 91ua8 - description: Ut dolores eum voluptate. - position: 4 - created_at: 2026-01-20T09:43:08.617-08:00 - updated_at: 2026-01-20T09:43:08.617-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 7bb479c3-7d6d-4032-89cc-f13373aa9f37 - type: communications-template_stages - attributes: - email_body: Molestiae unde molestias mollitia. - email_subject: 83gxvi6era - slack_content: Sed fuga reiciendis sit. - sms_content: Dolores laudantium ipsa vel. - created_at: 2026-01-20T09:43:08.625-08:00 - updated_at: 2026-01-20T09:43:08.625-08:00 - communication_stage: - id: 4d4fc575-4f8b-41b6-8546-a9410f3bdfb8 - name: 9atjp - communication_template: - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - type: communications_templates - attributes: - name: c34sk - slug: c34sk - description: Quaerat ut nesciunt pariatur. - position: 5 - created_at: 2026-01-20T09:43:08.628-08:00 - updated_at: 2026-01-20T09:43:08.628-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 015df2ce-bdcb-4923-b688-3594dec3f316 - type: communications-template_stages - attributes: - email_body: Non et reprehenderit fugit. - email_subject: wq2ly9flec - slack_content: Ut non aut voluptatibus. - sms_content: Voluptatem voluptatibus blanditiis quod. - created_at: 2026-01-20T09:43:08.635-08:00 - updated_at: 2026-01-20T09:43:08.635-08:00 - communication_stage: - id: 1c1179ac-e529-44c5-9add-e158aa8c6cb2 - name: r0qqt - communication_template: - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - type: communications_templates - attributes: - name: 566ve - slug: 566ve - description: Debitis et quis quaerat. - position: 6 - created_at: 2026-01-20T09:43:08.638-08:00 - updated_at: 2026-01-20T09:43:08.638-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 201514fd-624f-4112-8b2e-69a67d4f387c - type: communications-template_stages - attributes: - email_body: Non error a cumque. - email_subject: mbv5r27mgy - slack_content: Sed dolorum aperiam nisi. - sms_content: Corrupti quaerat sit eius. - created_at: 2026-01-20T09:43:08.646-08:00 - updated_at: 2026-01-20T09:43:08.646-08:00 - communication_stage: - id: 11621948-f71b-4363-9e50-d0ad39f52df9 - name: wo30o - communication_template: - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - type: communications_templates - attributes: - name: 77a9f - slug: 77a9f - description: Fuga ut enim exercitationem. - position: 7 - created_at: 2026-01-20T09:43:08.649-08:00 - updated_at: 2026-01-20T09:43:08.649-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: c25e235e-f299-476f-959c-ed2da5267c63 - type: communications-template_stages - attributes: - email_body: Et enim suscipit quis. - email_subject: iy4s9gei09 - slack_content: Consequatur corrupti fuga eos. - sms_content: Expedita voluptatem ipsum et. - created_at: 2026-01-20T09:43:08.657-08:00 - updated_at: 2026-01-20T09:43:08.657-08:00 - communication_stage: - id: 7998aee9-981d-40a2-a439-1c85bebc6b92 - name: klgop - communication_template: - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - type: communications_templates - attributes: - name: 2pq2t - slug: 2pq2t - description: Dolorem qui labore vel. - position: 8 - created_at: 2026-01-20T09:43:08.659-08:00 - updated_at: 2026-01-20T09:43:08.659-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 66cab9ed-ca33-4e47-b0fb-0b9e87e470ba - type: communications-template_stages - attributes: - email_body: Similique non vel autem. - email_subject: xzaqi0qudz - slack_content: Aut repellat et cupiditate. - sms_content: Ut tempore voluptatem ut. - created_at: 2026-01-20T09:43:08.667-08:00 - updated_at: 2026-01-20T09:43:08.667-08:00 - communication_stage: - id: 88e4ce18-03bd-4d2f-a9da-bd452e134ad1 - name: p3g5h - communication_template: - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - type: communications_templates - attributes: - name: 49sbm - slug: 49sbm - description: Repellat adipisci culpa nobis. - position: 9 - created_at: 2026-01-20T09:43:08.670-08:00 - updated_at: 2026-01-20T09:43:08.670-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 0a76adbb-f9a5-43f3-b6a0-0bfdd74852bc - type: communications-template_stages - attributes: - email_body: Vel quod sit totam. - email_subject: a6a5cn36p9 - slack_content: Est doloremque nesciunt earum. - sms_content: Vitae dolores aperiam beatae. - created_at: 2026-01-20T09:43:08.679-08:00 - updated_at: 2026-01-20T09:43:08.679-08:00 - communication_stage: - id: ceb672ab-2e1e-40bc-a281-1cca1e4ddd3d - name: cvi4i - communication_template: - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - type: communications_templates - attributes: - name: s2j5r - slug: s2j5r - description: Nesciunt nihil nam quia. - position: 10 - created_at: 2026-01-20T09:43:08.682-08:00 - updated_at: 2026-01-20T09:43:08.682-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: cf2d75e8-3b38-4abc-90f1-9d28b2721dd4 - type: communications-template_stages - attributes: - email_body: Nobis consequatur occaecati corrupti. - email_subject: w5n2r0yy1i - slack_content: Beatae a ut et. - sms_content: Atque ad et sapiente. - created_at: 2026-01-20T09:43:08.690-08:00 - updated_at: 2026-01-20T09:43:08.690-08:00 - communication_stage: - id: f2aff05e-26bd-4389-b6bc-5721aae5f6b1 - name: no80n - communication_template: - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - links: - self: http://www.example.com/v1/communications/templates?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/communications/templates?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/communications/templates?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 10 - total_pages: 1 - schema: - $ref: '#/components/schemas/communications_templates_response' - description: communications templates found + description: success with catalog_properties type security: - bearer_auth: [] - summary: Lists communications templates + summary: List Catalog Properties (alias for fields) tags: - - Communications Templates + - CatalogProperties x-accepts: - - application/vnd.api+json + - application/json post: - description: Creates a new communications template from provided data - operationId: createCommunicationsTemplate - parameters: [] + description: Creates a new Catalog Property - returns catalog_properties type + operationId: createCatalogProperty + parameters: + - explode: false + in: path + name: catalog_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_communications_template' + $ref: '#/components/schemas/new_catalog_field' required: true responses: "201": - content: - application/vnd.api+json: - example: - data: - id: e92494bb-7384-47ae-830b-aed45cdcbae5 - type: communications_templates - attributes: - name: Incident Created Template - slug: incident-created-template - description: Template for incident creation notifications - position: 11 - created_at: 2026-01-20T09:43:10.658-08:00 - updated_at: 2026-01-20T09:43:10.658-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - - id: e92494bb-7384-47ae-830b-aed45cdcbae5 - name: Incident Created Template - communication_template_stages: [] - schema: - $ref: '#/components/schemas/communications_template_response' - description: communications template created - "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + description: catalog_property created security: - bearer_auth: [] - summary: Creates a communications template + summary: Creates a Catalog Property (alias for field) tags: - - Communications Templates + - CatalogProperties x-content-type: application/vnd.api+json x-accepts: - - application/vnd.api+json - /v1/communications/templates/{id}: + - application/json + /v1/catalog_properties/{id}: delete: - description: Deletes a communications template - operationId: deleteCommunicationsTemplate + description: Delete a specific catalog_property by id - returns catalog_properties + type + operationId: deleteCatalogProperty parameters: - - description: Communications Template ID - explode: false + - explode: false in: path name: id required: true @@ -8713,26 +5291,20 @@ paths: style: simple responses: "200": - description: communications template deleted - "404": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: communications template not found + description: catalog_property deleted security: - bearer_auth: [] - summary: Deletes a communications template + summary: Delete a catalog_property tags: - - Communications Templates + - CatalogProperties x-accepts: - - application/vnd.api+json + - application/json get: - description: Shows details of a communications template - operationId: getCommunicationsTemplate + description: Retrieves a specific Catalog Property by id - returns catalog_properties + type + operationId: getCatalogProperty parameters: - - description: Communications Template ID - explode: false + - explode: false in: path name: id required: true @@ -8741,93 +5313,20 @@ paths: style: simple responses: "200": - content: - application/vnd.api+json: - example: - data: - id: e152bfa3-af90-4544-8fcc-735ddb9feada - type: communications_templates - attributes: - name: gczcq - slug: gczcq - description: Sit nisi minus excepturi. - position: 1 - created_at: 2026-01-20T09:43:08.581-08:00 - updated_at: 2026-01-20T09:43:08.581-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 58e4ab54-05eb-4a42-915b-a5e0987b40a2 - type: communications-template_stages - attributes: - email_body: Iste cumque qui ut. - email_subject: wguyugir39 - slack_content: Odio est quidem repellat. - sms_content: Delectus culpa excepturi reprehenderit. - created_at: 2026-01-20T09:43:08.591-08:00 - updated_at: 2026-01-20T09:43:08.591-08:00 - communication_stage: - id: 89efd5fa-4b2b-4b8c-b8ec-27d8fe3a682c - name: 35cy2 - communication_template: - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: gczcq - schema: - $ref: '#/components/schemas/communications_template_response' - description: communications template found - "404": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: communications template not found + description: catalog_property found security: - bearer_auth: [] - summary: Shows a communications template + summary: Retrieves a Catalog Property (alias for field) tags: - - Communications Templates + - CatalogProperties x-accepts: - - application/vnd.api+json - patch: - description: Updates a communications template - operationId: updateCommunicationsTemplate + - application/json + put: + description: Update a specific catalog_property by id - returns catalog_properties + type + operationId: updateCatalogProperty parameters: - - description: Communications Template ID - explode: false + - explode: false in: path name: id required: true @@ -8838,97 +5337,50 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_communications_template' + $ref: '#/components/schemas/update_catalog_field' required: true responses: "200": - content: - application/vnd.api+json: - example: - data: - id: e152bfa3-af90-4544-8fcc-735ddb9feada - type: communications_templates - attributes: - name: Updated Template Name - slug: gczcq - description: Updated description - position: 1 - created_at: 2026-01-20T09:43:08.581-08:00 - updated_at: 2026-01-20T09:43:11.142-08:00 - communication_type_id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - communication_type: - data: - id: 61a1e8f2-f546-47c3-ba54-38add83702e4 - type: communications_types - attributes: - name: 8bi9n - slug: 8bi9n - description: Sint sunt qui odit. - color: '#F5D9C4' - position: 1 - created_at: 2026-01-20T09:43:08.574-08:00 - updated_at: 2026-01-20T09:43:08.574-08:00 - communication_groups: [] - communication_templates: - - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: Updated Template Name - - id: 005041c3-d4ed-4299-a15a-10d0c04f3798 - name: nkhlw - - id: 364b9dac-66df-4be6-865f-4a87047841ab - name: 2yp0f - - id: 939d734e-80ea-44f2-a26d-5c15c2647a53 - name: 91ua8 - - id: beb694d3-361a-4033-b426-c14e12bb4f2e - name: c34sk - - id: 26bb98ca-b62d-4c21-a689-ef09db2fbff6 - name: 566ve - - id: c8d3761e-d77f-463f-b160-a02bd634c118 - name: 77a9f - - id: 1046b260-34d9-4968-8247-18de0e0b360e - name: 2pq2t - - id: 837d5276-a8da-4806-8a15-0a7c9f2aac3d - name: 49sbm - - id: 5f6c6c98-c8c7-44b1-b380-1e8d64db6aae - name: s2j5r - communication_template_stages: - - data: - id: 58e4ab54-05eb-4a42-915b-a5e0987b40a2 - type: communications-template_stages - attributes: - email_body: Iste cumque qui ut. - email_subject: wguyugir39 - slack_content: Odio est quidem repellat. - sms_content: Delectus culpa excepturi reprehenderit. - created_at: 2026-01-20T09:43:08.591-08:00 - updated_at: 2026-01-20T09:43:08.591-08:00 - communication_stage: - id: 89efd5fa-4b2b-4b8c-b8ec-27d8fe3a682c - name: 35cy2 - communication_template: - id: e152bfa3-af90-4544-8fcc-735ddb9feada - name: Updated Template Name - schema: - $ref: '#/components/schemas/communications_template_response' - description: communications template updated - "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + description: catalog_property updated security: - bearer_auth: [] - summary: Updates a communications template + summary: Update a catalog_property (alias for field) tags: - - Communications Templates + - CatalogProperties x-content-type: application/vnd.api+json x-accepts: - - application/vnd.api+json - /v1/communications/types: + - application/json + /v1/catalogs: get: - description: Lists communications types - operationId: listCommunicationsTypes + description: List catalogs + operationId: listCatalogs parameters: + - description: "comma separated if needed. eg: fields,entities" + explode: true + in: query + name: include + required: false + schema: + enum: + - fields + - entities + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position + type: string + style: form - explode: true in: query name: "page[number]" @@ -8950,6 +5402,13 @@ paths: schema: type: string style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form - explode: true in: query name: "filter[name]" @@ -8959,7 +5418,14 @@ paths: style: form - explode: true in: query - name: "filter[slug]" + name: "filter[external_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by]" required: false schema: type: string @@ -8994,397 +5460,84 @@ paths: style: form - explode: true in: query - name: sort + name: "filter[slug][eq]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - - id: 5c268f8b-b30c-4b8d-83ad-f20d7404768b - type: communications_types - attributes: - name: pcv5a - slug: pcv5a - description: Sapiente porro animi facere. - color: '#D7E7F5' - position: 1 - created_at: 2026-01-20T09:43:12.410-08:00 - updated_at: 2026-01-20T09:43:12.410-08:00 - communication_groups: [] - communication_templates: [] - - id: a965b538-abac-4877-8ba4-18c86d54a787 - type: communications_types - attributes: - name: ji7p7 - slug: ji7p7 - description: Odit amet aperiam sint. - color: '#FAEBB7' - position: 2 - created_at: 2026-01-20T09:43:12.415-08:00 - updated_at: 2026-01-20T09:43:12.415-08:00 - communication_groups: [] - communication_templates: [] - - id: af9eb5c7-cf32-4ba7-aba4-58d70a70636d - type: communications_types - attributes: - name: ymkn8 - slug: ymkn8 - description: Aut ex harum deleniti. - color: '#FAEBB7' - position: 3 - created_at: 2026-01-20T09:43:12.421-08:00 - updated_at: 2026-01-20T09:43:12.421-08:00 - communication_groups: [] - communication_templates: [] - - id: 605c74da-acff-4254-8131-443ac449b406 - type: communications_types - attributes: - name: 0f58w - slug: 0f58w - description: Esse aspernatur et corrupti. - color: '#FAEBB7' - position: 4 - created_at: 2026-01-20T09:43:12.426-08:00 - updated_at: 2026-01-20T09:43:12.426-08:00 - communication_groups: [] - communication_templates: [] - - id: 128d137e-5ad7-40c9-a916-6ee9ad59f606 - type: communications_types - attributes: - name: 4n9ao - slug: 4n9ao - description: Distinctio nesciunt deserunt et. - color: '#F5D9C4' - position: 5 - created_at: 2026-01-20T09:43:12.431-08:00 - updated_at: 2026-01-20T09:43:12.431-08:00 - communication_groups: [] - communication_templates: [] - - id: cdf1e2c4-2f84-4e67-bcf7-65b5ce90b611 - type: communications_types - attributes: - name: kei4p - slug: kei4p - description: Enim nulla esse dolore. - color: '#F4CFD1' - position: 6 - created_at: 2026-01-20T09:43:12.436-08:00 - updated_at: 2026-01-20T09:43:12.436-08:00 - communication_groups: [] - communication_templates: [] - - id: f788a1f1-efaf-4d62-a3fd-8ab37b62652c - type: communications_types - attributes: - name: urfgx - slug: urfgx - description: Voluptas recusandae eos placeat. - color: '#F4CFD1' - position: 7 - created_at: 2026-01-20T09:43:12.440-08:00 - updated_at: 2026-01-20T09:43:12.440-08:00 - communication_groups: [] - communication_templates: [] - - id: 12583ce6-5bcd-4949-b7cf-0d6b7fe7ef80 - type: communications_types - attributes: - name: bk9pt - slug: bk9pt - description: Velit consequatur repudiandae qui. - color: '#D7F5E1' - position: 8 - created_at: 2026-01-20T09:43:12.445-08:00 - updated_at: 2026-01-20T09:43:12.445-08:00 - communication_groups: [] - communication_templates: [] - - id: 4ecbb768-17c6-46f3-b39c-ca55feae68dc - type: communications_types - attributes: - name: h01aq - slug: h01aq - description: Officiis molestias dolor omnis. - color: '#D7E7F5' - position: 9 - created_at: 2026-01-20T09:43:12.450-08:00 - updated_at: 2026-01-20T09:43:12.450-08:00 - communication_groups: [] - communication_templates: [] - - id: a5ad3040-f011-4e96-a817-928d1fb7a986 - type: communications_types - attributes: - name: 0fjn3 - slug: 0fjn3 - description: Ea accusantium rerum voluptatem. - color: '#F4CFD1' - position: 10 - created_at: 2026-01-20T09:43:12.454-08:00 - updated_at: 2026-01-20T09:43:12.454-08:00 - communication_groups: [] - communication_templates: [] - links: - self: http://www.example.com/v1/communications/types?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/communications/types?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/communications/types?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 10 - total_pages: 1 - schema: - $ref: '#/components/schemas/communications_types_response' - description: communications types found - security: - - bearer_auth: [] - summary: Lists communications types - tags: - - Communications Types - x-accepts: - - application/vnd.api+json - post: - description: Creates a new communications type from provided data - operationId: createCommunicationsType - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_communications_type' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: d1d81837-b0dd-4a60-afe9-504466b278e2 - type: communications_types - attributes: - name: Incident Notifications - slug: incident-notifications - description: Type for incident-related communications - color: '#FF5733' - position: 11 - created_at: 2026-01-20T09:43:13.429-08:00 - updated_at: 2026-01-20T09:43:13.429-08:00 - communication_groups: [] - communication_templates: [] - schema: - $ref: '#/components/schemas/communications_type_response' - description: communications type created - "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - security: - - bearer_auth: [] - summary: Creates a communications type - tags: - - Communications Types - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/communications/types/{id}: - delete: - description: Deletes a communications type - operationId: deleteCommunicationsType - parameters: - - description: Communications Type ID - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 5c268f8b-b30c-4b8d-83ad-f20d7404768b - type: communications_types - attributes: - name: pcv5a - slug: pcv5a - description: Sapiente porro animi facere. - color: '#D7E7F5' - position: 1 - created_at: 2026-01-20T09:43:12.410-08:00 - updated_at: 2026-01-20T09:43:13.990-08:00 - communication_groups: [] - communication_templates: [] - description: communications type deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: communications type not found - security: - - bearer_auth: [] - summary: Deletes a communications type - tags: - - Communications Types - x-accepts: - - application/vnd.api+json - get: - description: Shows details of a communications type - operationId: getCommunicationsType - parameters: - - description: Communications Type ID - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 5c268f8b-b30c-4b8d-83ad-f20d7404768b - type: communications_types - attributes: - name: pcv5a - slug: pcv5a - description: Sapiente porro animi facere. - color: '#D7E7F5' - position: 1 - created_at: 2026-01-20T09:43:12.410-08:00 - updated_at: 2026-01-20T09:43:12.410-08:00 - communication_groups: [] - communication_templates: [] - schema: - $ref: '#/components/schemas/communications_type_response' - description: communications type found - "404": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: communications type not found - security: - - bearer_auth: [] - summary: Shows a communications type - tags: - - Communications Types - x-accepts: - - application/vnd.api+json - patch: - description: Updates a communications type - operationId: updateCommunicationsType - parameters: - - description: Communications Type ID - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_communications_type' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 5c268f8b-b30c-4b8d-83ad-f20d7404768b - type: communications_types - attributes: - name: Updated Type Name - slug: pcv5a - description: Updated description - color: '#00FF00' - position: 1 - created_at: 2026-01-20T09:43:12.410-08:00 - updated_at: 2026-01-20T09:43:13.838-08:00 - communication_groups: [] - communication_templates: [] - schema: - $ref: '#/components/schemas/communications_type_response' - description: communications type updated - "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - security: - - bearer_auth: [] - summary: Updates a communications type - tags: - - Communications Types - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/custom_fields/{custom_field_id}/options: - get: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. List custom field\ - \ options" - operationId: listCustomFieldOptions - parameters: - - explode: false - in: path - name: custom_field_id - required: true + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[name][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[name][in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[name][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[value]" + name: "filter[managed_by][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[color]" + name: "filter[managed_by][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[managed_by][not_in]" required: false schema: type: string @@ -9394,265 +5547,163 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/custom_field_option_list' + $ref: '#/components/schemas/catalog_list' description: success security: - bearer_auth: [] - summary: "[DEPRECATED] List custom field options" + summary: List catalogs tags: - - "[DEPRECATED] CustomFieldOptions" + - Catalogs x-accepts: - application/vnd.api+json post: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Creates a new custom\ - \ field option from provided data" - operationId: createCustomFieldOption - parameters: - - explode: false - in: path - name: custom_field_id - required: true - schema: - type: string - style: simple + description: Creates a new catalog from provided data + operationId: createCatalog + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_custom_field_option' + $ref: '#/components/schemas/new_catalog' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: "3" - type: custom_field_options - attributes: - custom_field_id: 127 - value: Test option value - color: '#FBE4A0' - default: false - position: 3 - updated_at: 2026-01-20T09:43:14.982-08:00 - created_at: 2026-01-20T09:43:14.982-08:00 schema: - $ref: '#/components/schemas/custom_field_option_response' - description: custom_field_option created + $ref: '#/components/schemas/catalog_response' + description: catalog created "422": content: application/vnd.api+json: - example: - errors: - - title: Value can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: "[DEPRECATED] Creates a custom field option" + summary: Creates a catalog tags: - - "[DEPRECATED] CustomFieldOptions" + - Catalogs x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/custom_field_options/{id}: + /v1/catalogs/{id}: delete: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ - \ Custom Field Option by id" - operationId: deleteCustomFieldOption + description: Delete a specific catalog by id + operationId: deleteCatalog parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: custom_field_options - attributes: - custom_field_id: 127 - value: Qui quidem quaerat harum. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:43:15.519-08:00 - created_at: 2026-01-20T09:43:14.932-08:00 schema: - $ref: '#/components/schemas/custom_field_option_response' - description: custom_field_option deleted + $ref: '#/components/schemas/catalog_response' + description: catalog deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Delete a custom field option" + summary: Delete a catalog tags: - - "[DEPRECATED] CustomFieldOptions" + - Catalogs x-accepts: - application/vnd.api+json get: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Retrieves a specific\ - \ custom field option by id" - operationId: getCustomFieldOption + description: Retrieves a specific catalog by id + operationId: getCatalog parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: custom_field_options - attributes: - custom_field_id: 127 - value: Qui quidem quaerat harum. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:43:14.932-08:00 - created_at: 2026-01-20T09:43:14.932-08:00 schema: - $ref: '#/components/schemas/custom_field_option_response' - description: custom_field_option found + $ref: '#/components/schemas/catalog_response' + description: catalog found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Retrieves a custom field option" + summary: Retrieves a catalog tags: - - "[DEPRECATED] CustomFieldOptions" + - Catalogs x-accepts: - application/vnd.api+json put: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ - \ custom field option by id" - operationId: updateCustomFieldOption + description: Update a specific catalog by id + operationId: updateCatalog parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_custom_field_option' + $ref: '#/components/schemas/update_catalog' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: custom_field_options - attributes: - custom_field_id: 127 - value: Test update option value - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:43:15.343-08:00 - created_at: 2026-01-20T09:43:14.932-08:00 schema: - $ref: '#/components/schemas/custom_field_option_response' - description: custom_field_option updated + $ref: '#/components/schemas/catalog_response' + description: catalog updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Update a custom field option" + summary: Update a catalog tags: - - "[DEPRECATED] CustomFieldOptions" + - Catalogs x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/custom_fields: + /v1/causes: get: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. List Custom fields" - operationId: listCustomFields + description: List causes + operationId: listCauses parameters: - - description: "comma separated if needed. eg: options" - explode: true + - explode: true in: query name: include required: false schema: - enum: - - options - type: string - style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true - in: query - name: sort - required: false - schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at - - position - - -position type: string style: form - explode: true @@ -9671,32 +5722,25 @@ paths: style: form - explode: true in: query - name: "filter[slug]" + name: "filter[search]" required: false schema: type: string style: form - explode: true in: query - name: "filter[label]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[kind]" + name: "filter[name]" required: false schema: type: string style: form - - explode: true - in: query - name: "filter[enabled]" - required: false - schema: - type: boolean - style: form - explode: true in: query name: "filter[created_at][gt]" @@ -9725,282 +5769,362 @@ paths: schema: type: string style: form - responses: + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/custom_field_list' + $ref: '#/components/schemas/cause_list' description: success security: - bearer_auth: [] - summary: "[DEPRECATED] List Custom Fields" + summary: List causes tags: - - "[DEPRECATED] CustomFields" + - Causes x-accepts: - application/vnd.api+json post: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Creates a new custom\ - \ field from provided data" - operationId: createCustomField + description: Creates a new cause from provided data + operationId: createCause parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_custom_field' + $ref: '#/components/schemas/new_cause' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: "138" - type: custom_fields - attributes: - slug: test-custom-field - description: null - enabled: true - position: 11 - updated_at: 2026-01-20T09:43:17.656-08:00 - created_at: 2026-01-20T09:43:17.656-08:00 - kind: text - label: Test custom field - shown: - - incident_form - required: [] - relationships: - options: - data: [] schema: - $ref: '#/components/schemas/custom_field_response' - description: custom_field created + $ref: '#/components/schemas/cause_response' + description: cause created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: "[DEPRECATED] Creates a Custom Field" + summary: Creates a cause tags: - - "[DEPRECATED] CustomFields" + - Causes x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/custom_fields/{id}: + /v1/causes/{id}: delete: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ - \ custom field by id" - operationId: deleteCustomField + description: Delete a specific cause by id + operationId: deleteCause parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: "128" - type: custom_fields - attributes: - slug: totam-culpa-quisquam-et - description: Eum repudiandae omnis labore. - enabled: true - position: 1 - updated_at: 2026-01-20T09:43:18.473-08:00 - created_at: 2026-01-20T09:43:16.566-08:00 - kind: text - label: Totam culpa quisquam et. - shown: [] - required: [] - relationships: - options: - data: [] schema: - $ref: '#/components/schemas/custom_field_response' - description: custom_field deleted + $ref: '#/components/schemas/cause_response' + description: cause deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Delete a Custom Field" + summary: Delete a cause tags: - - "[DEPRECATED] CustomFields" + - Causes x-accepts: - application/vnd.api+json get: - deprecated: true - description: Retrieves a specific custom_field by id - operationId: getCustomField + description: Retrieves a specific cause by id + operationId: getCause parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - - description: "comma separated if needed. eg: options" - explode: true - in: query - name: include - required: false - schema: - enum: - - options - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: "128" - type: custom_fields - attributes: - slug: totam-culpa-quisquam-et - description: Eum repudiandae omnis labore. - enabled: true - position: 1 - updated_at: 2026-01-20T09:43:16.566-08:00 - created_at: 2026-01-20T09:43:16.566-08:00 - kind: text - label: Totam culpa quisquam et. - shown: - - incident_form - required: [] - relationships: - options: - data: - - id: "4" - type: custom_field_options - - id: "5" - type: custom_field_options schema: - $ref: '#/components/schemas/custom_field_response' - description: custom_field found + $ref: '#/components/schemas/cause_response' + description: cause found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Retrieves a Custom Field" + summary: Retrieves a cause tags: - - "[DEPRECATED] CustomFields" + - Causes x-accepts: - application/vnd.api+json put: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ - \ custom field by id" - operationId: updateCustomField + description: Update a specific cause by id + operationId: updateCause parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_custom_field' + $ref: '#/components/schemas/update_cause' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: "128" - type: custom_fields - attributes: - slug: test-update-custom-field - description: Eum repudiandae omnis labore. - enabled: true - position: 1 - updated_at: 2026-01-20T09:43:18.232-08:00 - created_at: 2026-01-20T09:43:16.566-08:00 - kind: text - label: Test update custom field - shown: - - incident_form - required: [] - relationships: - options: - data: - - id: "4" - type: custom_field_options - - id: "5" - type: custom_field_options schema: - $ref: '#/components/schemas/custom_field_response' - description: custom_field updated + $ref: '#/components/schemas/cause_response' + description: cause updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Update a Custom Field" + summary: Update a cause tags: - - "[DEPRECATED] CustomFields" + - Causes x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/custom_forms: + /v1/causes/properties: get: - description: List custom forms - operationId: listCustomForms + description: List Cause Catalog Properties + operationId: listCauseCatalogProperties + parameters: + - description: "comma separated if needed. eg: catalog" + explode: true + in: query + name: include + required: false + schema: + enum: + - catalog + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/catalog_property_list' + description: success + security: + - bearer_auth: [] + summary: List Catalog Properties + tags: + - Causes + x-accepts: + - application/vnd.api+json + post: + description: Creates a new Catalog Property from provided data + operationId: createCauseCatalogProperty + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_catalog_property' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/catalog_property_response' + description: catalog_property created ignores wrong catalog_type attribute + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: exceeds max fields per catalog + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a Catalog Property + tags: + - Causes + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/communications/groups: + get: + description: Lists communications groups + operationId: listCommunicationsGroups parameters: - explode: true in: query @@ -10039,7 +6163,21 @@ paths: style: form - explode: true in: query - name: "filter[command]" + name: "filter[is_private]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[communication_type_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[condition_type]" required: false schema: type: string @@ -10083,474 +6221,280 @@ paths: "200": content: application/vnd.api+json: - example: - data: - - id: 72ed3699-f2de-4f96-801d-7243e94677dd - type: custom_forms - attributes: - slug: autem-odio-nemo-ea - name: Autem odio nemo ea. - description: Nihil voluptatem assumenda fugiat. - enabled: true - command: autem-odio-nemo-ea - created_at: 2026-01-20T09:43:19.485-08:00 - updated_at: 2026-01-20T09:43:19.485-08:00 - - id: 675141ef-57bb-4581-954c-e20b1abfe724 - type: custom_forms - attributes: - slug: nam-tempore-deleniti-aut - name: Nam tempore deleniti aut. - description: Omnis suscipit quo saepe. - enabled: true - command: nam-tempore-deleniti-aut - created_at: 2026-01-20T09:43:19.481-08:00 - updated_at: 2026-01-20T09:43:19.481-08:00 - - id: fedb1a71-a2d3-4cfd-9de4-1484868a7099 - type: custom_forms - attributes: - slug: earum-voluptatibus-molestiae-qui - name: Earum voluptatibus molestiae qui. - description: Consectetur quibusdam et velit. - enabled: true - command: earum-voluptatibus-molestiae-qui - created_at: 2026-01-20T09:43:19.477-08:00 - updated_at: 2026-01-20T09:43:19.477-08:00 - - id: 9051e24f-f53b-4745-86c8-6355e2c61a62 - type: custom_forms - attributes: - slug: vel-laborum-porro-atque - name: Vel laborum porro atque. - description: Officia dolores molestiae fugiat. - enabled: true - command: vel-laborum-porro-atque - created_at: 2026-01-20T09:43:19.472-08:00 - updated_at: 2026-01-20T09:43:19.472-08:00 - - id: 9369e0b7-8e7b-4be3-a305-74efdd13d77d - type: custom_forms - attributes: - slug: et-sunt-necessitatibus-autem - name: Et sunt necessitatibus autem. - description: Est illo fuga culpa. - enabled: true - command: et-sunt-necessitatibus-autem - created_at: 2026-01-20T09:43:19.466-08:00 - updated_at: 2026-01-20T09:43:19.466-08:00 - - id: 0c83204f-31b9-4570-8524-a0ba33203408 - type: custom_forms - attributes: - slug: enim-ex-quis-omnis - name: Enim ex quis omnis. - description: Voluptatibus occaecati rerum corporis. - enabled: true - command: enim-ex-quis-omnis - created_at: 2026-01-20T09:43:19.459-08:00 - updated_at: 2026-01-20T09:43:19.459-08:00 - - id: 0849a467-7730-4ba0-85ee-beaa027a50e9 - type: custom_forms - attributes: - slug: ea-aliquam-cupiditate-explicabo - name: Ea aliquam cupiditate explicabo. - description: Maxime et quia aliquid. - enabled: true - command: ea-aliquam-cupiditate-explicabo - created_at: 2026-01-20T09:43:19.454-08:00 - updated_at: 2026-01-20T09:43:19.454-08:00 - - id: 24461b23-30ad-4aec-a95c-e3717d3aef0c - type: custom_forms - attributes: - slug: quod-sequi-alias-occaecati - name: Quod sequi alias occaecati. - description: Ullam sed culpa mollitia. - enabled: true - command: quod-sequi-alias-occaecati - created_at: 2026-01-20T09:43:19.448-08:00 - updated_at: 2026-01-20T09:43:19.448-08:00 - - id: 91aba624-4a68-475f-808f-70b67e52d17a - type: custom_forms - attributes: - slug: ut-aut-est-ex - name: Ut aut est ex. - description: Iure labore omnis veritatis. - enabled: true - command: ut-aut-est-ex - created_at: 2026-01-20T09:43:19.442-08:00 - updated_at: 2026-01-20T09:43:19.442-08:00 - - id: 9a0c604a-f9f8-4ed6-b72a-3245982f63db - type: custom_forms - attributes: - slug: at-culpa-quisquam-mollitia - name: At culpa quisquam mollitia. - description: Eius eum tempore voluptatem. - enabled: true - command: at-culpa-quisquam-mollitia - created_at: 2026-01-20T09:43:19.436-08:00 - updated_at: 2026-01-20T09:43:19.436-08:00 - links: - self: http://www.example.com/v1/custom_forms?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/custom_forms?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/custom_forms?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 10 - total_pages: 1 - schema: - $ref: '#/components/schemas/custom_form_list' - description: custom_form found - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + $ref: '#/components/schemas/communications_groups_response' + description: communications groups found security: - bearer_auth: [] - summary: List custom forms + summary: Lists communications groups tags: - - CustomForms + - Communications Groups x-accepts: - application/vnd.api+json post: - description: Creates a new custom form from provided data - operationId: createCustomForm + description: Creates a new communications group from provided data + operationId: createCommunicationsGroup parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_custom_form' + $ref: '#/components/schemas/new_communications_group' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 454ac964-cb09-4d05-9893-c40db0751d7c - type: custom_forms - attributes: - slug: test - name: Test - description: null - enabled: true - command: test - created_at: 2026-01-20T09:43:21.028-08:00 - updated_at: 2026-01-20T09:43:21.028-08:00 schema: - $ref: '#/components/schemas/custom_form_response' - description: custom_form created + $ref: '#/components/schemas/communications_group_response' + description: communications group created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: Command can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a custom form + summary: Creates a communications group tags: - - CustomForms + - Communications Groups x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/custom_forms/{id}: + /v1/communications/groups/{id}: delete: - description: Delete a specific custom form by id - operationId: deleteCustomForm + description: Deletes a communications group + operationId: deleteCommunicationsGroup parameters: - - explode: false + - description: Communications Group ID + explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 9a0c604a-f9f8-4ed6-b72a-3245982f63db - type: custom_forms - attributes: - slug: at-culpa-quisquam-mollitia - name: At culpa quisquam mollitia. - description: Eius eum tempore voluptatem. - enabled: true - command: at-culpa-quisquam-mollitia - created_at: 2026-01-20T09:43:19.436-08:00 - updated_at: 2026-01-20T09:43:22.621-08:00 - schema: - $ref: '#/components/schemas/custom_form_response' - description: custom_form found by slug + description: communications group deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: communications group not found security: - bearer_auth: [] - summary: Delete a custom form + summary: Deletes a communications group tags: - - CustomForms + - Communications Groups x-accepts: - application/vnd.api+json get: - description: Retrieves a specific custom form by id - operationId: getCustomForm + description: Shows details of a communications group + operationId: getCommunicationsGroup parameters: - - explode: false + - description: Communications Group ID + explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 9a0c604a-f9f8-4ed6-b72a-3245982f63db - type: custom_forms - attributes: - slug: at-culpa-quisquam-mollitia - name: At culpa quisquam mollitia. - description: Eius eum tempore voluptatem. - enabled: true - command: at-culpa-quisquam-mollitia - created_at: 2026-01-20T09:43:19.436-08:00 - updated_at: 2026-01-20T09:43:19.436-08:00 schema: - $ref: '#/components/schemas/custom_form_response' - description: custom_form found + $ref: '#/components/schemas/communications_group_response' + description: communications group found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: communications group not found security: - bearer_auth: [] - summary: Retrieves a custom form + summary: Shows a communications group tags: - - CustomForms + - Communications Groups x-accepts: - application/vnd.api+json - put: - description: Update a specific custom form by id - operationId: updateCustomForm + patch: + description: Updates a communications group + operationId: updateCommunicationsGroup parameters: - - explode: false + - description: Communications Group ID + explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_custom_form' + $ref: '#/components/schemas/update_communications_group' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 9a0c604a-f9f8-4ed6-b72a-3245982f63db - type: custom_forms - attributes: - slug: at-culpa-quisquam-mollitia - name: Test Update - description: Eius eum tempore voluptatem. - enabled: true - command: at-culpa-quisquam-mollitia - created_at: 2026-01-20T09:43:19.436-08:00 - updated_at: 2026-01-20T09:43:22.040-08:00 schema: - $ref: '#/components/schemas/custom_form_response' - description: custom_form updated - "404": + $ref: '#/components/schemas/communications_group_response' + description: communications group updated + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: invalid request security: - bearer_auth: [] - summary: Update a custom form + summary: Updates a communications group tags: - - CustomForms + - Communications Groups x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/dashboards/{dashboard_id}/panels: + /v1/communications/stages: get: - description: List dashboard panels - operationId: listDashboardPanels + description: Lists communications stages + operationId: listCommunicationsStages parameters: - - explode: false - in: path - name: dashboard_id - required: true + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[name]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[slug]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[created_at][gt]" required: false schema: - type: integer + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/dashboard_panel_list' - description: success + $ref: '#/components/schemas/communications_stages_response' + description: communications stages found security: - bearer_auth: [] - summary: List dashboard panels + summary: Lists communications stages tags: - - DashboardPanels + - Communications Stages x-accepts: - application/vnd.api+json post: - description: Creates a new dashboard panel from provided data - operationId: createDashboardPanel - parameters: - - explode: false - in: path - name: dashboard_id - required: true - schema: - type: string - style: simple + description: Creates a new communications stage from provided data + operationId: createCommunicationsStage + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_dashboard_panel' + $ref: '#/components/schemas/new_communications_stage' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 65b57f55-c8e4-4c3f-b9fb-978c4d29dbc2 - type: dashboard_panels - attributes: - dashboard_id: 543ee727-d1e7-4151-8841-b899061e8181 - name: test - params: - display: line_chart - datasets: - - collection: incidents - filter: [] - aggregate: - operation: count - key: results - cumulative: false - position: null - created_at: 2026-01-20T09:43:24.123-08:00 - updated_at: 2026-01-20T09:43:24.123-08:00 - data: - - name: Incidents - color: null - data: - "2026-01-13": 0 - "2026-01-14": 0 - "2026-01-15": 0 - "2026-01-16": 0 - "2026-01-17": 0 - "2026-01-18": 0 - "2026-01-19": 0 - "2026-01-20": 0 schema: - $ref: '#/components/schemas/dashboard_panel_response' - description: dashboard panel created + $ref: '#/components/schemas/communications_stage_response' + description: communications stage created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: unauthorized security: - bearer_auth: [] - summary: Creates a dashboard panel + summary: Creates a communications stage tags: - - DashboardPanels + - Communications Stages x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/dashboard_panels/{id}/duplicate: - post: - description: Duplicates a dashboard panel - operationId: duplicateDashboardPanel + /v1/communications/stages/{id}: + delete: + description: Deletes a communications stage + operationId: deleteCommunicationsStage parameters: - - explode: false + - description: Communications Stage ID + explode: false in: path name: id required: true @@ -10558,66 +6502,27 @@ paths: type: string style: simple responses: - "201": + "200": + description: communications stage deleted + "404": content: application/vnd.api+json: - example: - data: - id: 8a8c1c08-2225-4c78-abc3-537be3236dc3 - type: dashboard_panels - attributes: - dashboard_id: 543ee727-d1e7-4151-8841-b899061e8181 - name: Copy of Test panel - params: - display: line_chart - datasets: - - collection: incidents - filter: [] - aggregate: - operation: count - key: results - cumulative: false - position: null - created_at: 2026-01-20T09:43:24.352-08:00 - updated_at: 2026-01-20T09:43:24.352-08:00 - data: - - name: Incidents - color: null - data: - "2026-01-13": 0 - "2026-01-14": 0 - "2026-01-15": 0 - "2026-01-16": 0 - "2026-01-17": 0 - "2026-01-18": 0 - "2026-01-19": 0 - "2026-01-20": 0 - schema: - $ref: '#/components/schemas/dashboard_panel_response' - description: dashboard panel created - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: communications stage not found security: - bearer_auth: [] - summary: Duplicates a dashboard panel + summary: Deletes a communications stage tags: - - DashboardPanels + - Communications Stages x-accepts: - application/vnd.api+json - /v1/dashboard_panels/{id}: - delete: - description: Delete a specific dashboard panel by id - operationId: deleteDashboardPanel + get: + description: Shows details of a communications stage + operationId: getCommunicationsStage parameters: - - explode: false + - description: Communications Stage ID + explode: false in: path name: id required: true @@ -10628,158 +6533,28 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: ea92e0a1-2075-427d-a6e3-2ac6d5239599 - type: dashboard_panels - attributes: - dashboard_id: 543ee727-d1e7-4151-8841-b899061e8181 - name: Test panel - params: - display: line_chart - datasets: - - collection: incidents - filter: [] - aggregate: - operation: count - key: results - cumulative: false - position: null - created_at: 2026-01-20T09:43:24.009-08:00 - updated_at: 2026-01-20T09:43:24.676-08:00 - data: - - name: Incidents - color: null - data: - "2026-01-13": 0 - "2026-01-14": 0 - "2026-01-15": 0 - "2026-01-16": 0 - "2026-01-17": 0 - "2026-01-18": 0 - "2026-01-19": 0 - "2026-01-20": 0 schema: - $ref: '#/components/schemas/dashboard_panel_response' - description: dashboard panel deleted - security: - - bearer_auth: [] - summary: Delete a dashboard panel - tags: - - DashboardPanels - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific dashboard panel by id - operationId: getDashboardPanel - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - - description: "Date range for panel data, ISO8601 timestamps separated by the\ - \ word 'to'. Ex: '2022-06-19T11:28:46.029Z to 2022-07-18T21:58:46.029Z'." - explode: true - in: query - name: range - required: false - schema: - type: string - style: form - - description: "The time period to group data by. Accepts 'day', 'week', and\ - \ 'month'" - explode: true - in: query - name: period - required: false - schema: - type: string - style: form - - description: The time zone to use for period - explode: true - in: query - name: time_zone - required: false - schema: - type: string - style: form - responses: - "200": + $ref: '#/components/schemas/communications_stage_response' + description: communications stage found + "404": content: application/vnd.api+json: - example: - data: - id: ea92e0a1-2075-427d-a6e3-2ac6d5239599 - type: dashboard_panels - attributes: - dashboard_id: 543ee727-d1e7-4151-8841-b899061e8181 - name: Test panel - params: - display: line_chart - datasets: - - collection: incidents - filter: [] - aggregate: - operation: count - key: results - cumulative: false - position: null - created_at: 2026-01-20T09:43:24.009-08:00 - updated_at: 2026-01-20T09:43:24.009-08:00 - data: - - name: Incidents - color: null - data: - "2025-12-20": 0 - "2025-12-21": 0 - "2025-12-22": 0 - "2025-12-23": 0 - "2025-12-24": 0 - "2025-12-25": 0 - "2025-12-26": 0 - "2025-12-27": 0 - "2025-12-28": 0 - "2025-12-29": 0 - "2025-12-30": 0 - "2025-12-31": 0 - "2026-01-01": 0 - "2026-01-02": 0 - "2026-01-03": 0 - "2026-01-04": 0 - "2026-01-05": 0 - "2026-01-06": 0 - "2026-01-07": 0 - "2026-01-08": 0 - "2026-01-09": 0 - "2026-01-10": 0 - "2026-01-11": 0 - "2026-01-12": 0 - "2026-01-13": 0 - "2026-01-14": 0 - "2026-01-15": 0 - "2026-01-16": 0 - "2026-01-17": 0 - "2026-01-18": 0 - "2026-01-19": 0 - "2026-01-20": 0 schema: - $ref: '#/components/schemas/dashboard_panel_response' - description: dashboard panel found + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: Retrieves a dashboard panel + summary: Shows a communications stage tags: - - DashboardPanels + - Communications Stages x-accepts: - application/vnd.api+json - put: - description: Update a specific dashboard panel by id - operationId: updateDashboardPanel + patch: + description: Updates a communications stage + operationId: updateCommunicationsStage parameters: - - explode: false + - description: Communications Stage ID + explode: false in: path name: id required: true @@ -10790,498 +6565,445 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_dashboard_panel' + $ref: '#/components/schemas/update_communications_stage' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: ea92e0a1-2075-427d-a6e3-2ac6d5239599 - type: dashboard_panels - attributes: - dashboard_id: 543ee727-d1e7-4151-8841-b899061e8181 - name: test update - params: - display: line_chart - datasets: - - collection: incidents - filter: [] - aggregate: - operation: count - key: results - cumulative: false - position: null - created_at: 2026-01-20T09:43:24.009-08:00 - updated_at: 2026-01-20T09:43:24.578-08:00 - data: - - name: Incidents - color: null - data: - "2026-01-13": 0 - "2026-01-14": 0 - "2026-01-15": 0 - "2026-01-16": 0 - "2026-01-17": 0 - "2026-01-18": 0 - "2026-01-19": 0 - "2026-01-20": 0 schema: - $ref: '#/components/schemas/dashboard_panel_response' - description: dashboard panel updated + $ref: '#/components/schemas/communications_stage_response' + description: communications stage updated + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request security: - bearer_auth: [] - summary: Update a dashboard panel + summary: Updates a communications stage tags: - - DashboardPanels + - Communications Stages x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/dashboards: + /v1/communications/templates: get: - description: List dashboards - operationId: listDashboards + description: Lists communications templates + operationId: listCommunicationsTemplates parameters: - - description: "comma separated if needed. eg: panels" - explode: true + - explode: true in: query - name: include + name: "page[number]" required: false schema: - enum: - - panels - type: string + type: integer style: form - explode: true in: query - name: "page[number]" + name: "page[size]" required: false schema: type: integer style: form - explode: true in: query - name: "page[size]" + name: "filter[search]" required: false schema: - type: integer + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[communication_type_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/dashboard_list' - description: success + $ref: '#/components/schemas/communications_templates_response' + description: communications templates found security: - bearer_auth: [] - summary: List dashboards + summary: Lists communications templates tags: - - Dashboards + - Communications Templates x-accepts: - application/vnd.api+json post: - description: Creates a new dashboard from provided data - operationId: createDashboard + description: Creates a new communications template from provided data + operationId: createCommunicationsTemplate parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_dashboard' + $ref: '#/components/schemas/new_communications_template' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 05e5dfba-27a8-4796-b28f-a793844acada - type: dashboards - attributes: - team_id: 181 - user_id: 160 - name: Test dashboard - description: null - slug: test-dashboard - public: false - owner: user - range: Last 30 Days - period: day - color: '#E9E2FF' - icon: 📊 - auto_refresh: false - updated_at: 2026-01-20T09:43:26.642-08:00 - created_at: 2026-01-20T09:43:26.642-08:00 - relationships: - panels: - data: [] schema: - $ref: '#/components/schemas/dashboard_response' - description: dashboard created + $ref: '#/components/schemas/communications_template_response' + description: communications template created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a dashboard + summary: Creates a communications template tags: - - Dashboards + - Communications Templates x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/dashboards/{id}/duplicate: - post: - description: Duplicates a dashboard - operationId: duplicateDashboard + /v1/communications/templates/{id}: + delete: + description: Deletes a communications template + operationId: deleteCommunicationsTemplate parameters: - - explode: false + - description: Communications Template ID + explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: fecf7c39-86c9-4b4e-b63c-e8f2781770fa - type: dashboards - attributes: - team_id: 181 - user_id: 160 - name: Copy of Dashboard 10 - 2026-01-20 - description: null - slug: copy-of-dashboard-10-2026-01-20 - public: false - owner: user - range: Last 30 Days - period: day - color: '#E9E2FF' - icon: 📊 - auto_refresh: false - updated_at: 2026-01-20T09:43:26.955-08:00 - created_at: 2026-01-20T09:43:26.955-08:00 - relationships: - panels: - data: [] - schema: - $ref: '#/components/schemas/dashboard_response' - description: dashboard created - "401": + "200": + description: communications template deleted + "404": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: communications template not found security: - bearer_auth: [] - summary: Duplicates a dashboard + summary: Deletes a communications template tags: - - Dashboards + - Communications Templates x-accepts: - application/vnd.api+json - /v1/dashboards/{id}/set_default: - post: - description: Sets dashboard to user default - operationId: setDefaultDashboard + get: + description: Shows details of a communications template + operationId: getCommunicationsTemplate parameters: - - explode: false + - description: Communications Template ID + explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 99c82b52-e290-4828-9691-b7684472cb37 - type: dashboards - attributes: - team_id: 181 - user_id: 160 - name: Dashboard 10 - description: null - slug: dashboard-10 - public: false - owner: team - range: Last 30 Days - period: day - color: '#E9E2FF' - icon: 📊 - auto_refresh: false - updated_at: 2026-01-20T09:43:25.734-08:00 - created_at: 2026-01-20T09:43:25.734-08:00 - relationships: - panels: - data: [] schema: - $ref: '#/components/schemas/dashboard_response' - description: dashboard found by slug - "401": + $ref: '#/components/schemas/communications_template_response' + description: communications template found + "404": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: communications template not found security: - bearer_auth: [] - summary: Sets dashboard to user default + summary: Shows a communications template tags: - - Dashboards + - Communications Templates x-accepts: - application/vnd.api+json - /v1/dashboards/{id}: - delete: - description: Delete a specific dashboard by id - operationId: deleteDashboard + patch: + description: Updates a communications template + operationId: updateCommunicationsTemplate parameters: - - explode: false + - description: Communications Template ID + explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_communications_template' + required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 99c82b52-e290-4828-9691-b7684472cb37 - type: dashboards - attributes: - team_id: 181 - user_id: 160 - name: Dashboard 10 - description: null - slug: dashboard-10 - public: false - owner: user - range: Last 30 Days - period: day - color: '#E9E2FF' - icon: 📊 - auto_refresh: false - updated_at: 2026-01-20T09:43:28.151-08:00 - created_at: 2026-01-20T09:43:25.734-08:00 - relationships: - panels: - data: [] schema: - $ref: '#/components/schemas/dashboard_response' - description: dashboard deleted - "404": + $ref: '#/components/schemas/communications_template_response' + description: communications template updated + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: invalid request security: - bearer_auth: [] - summary: Delete a dashboard + summary: Updates a communications template tags: - - Dashboards + - Communications Templates + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json + /v1/communications/types: get: - description: Retrieves a specific dashboard by id - operationId: getDashboard + description: Lists communications types + operationId: listCommunicationsTypes parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "page[number]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - - description: "comma separated if needed. eg: panels" - explode: true + type: integer + style: form + - explode: true in: query - name: include + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort required: false schema: - enum: - - panels type: string style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 99c82b52-e290-4828-9691-b7684472cb37 - type: dashboards - attributes: - team_id: 181 - user_id: 160 - name: Dashboard 10 - description: null - slug: dashboard-10 - public: false - owner: team - range: Last 30 Days - period: day - color: '#E9E2FF' - icon: 📊 - auto_refresh: false - updated_at: 2026-01-20T09:43:25.734-08:00 - created_at: 2026-01-20T09:43:25.734-08:00 - relationships: - panels: - data: [] schema: - $ref: '#/components/schemas/dashboard_response' - description: dashboard found by slug - "404": + $ref: '#/components/schemas/communications_types_response' + description: communications types found + security: + - bearer_auth: [] + summary: Lists communications types + tags: + - Communications Types + x-accepts: + - application/vnd.api+json + post: + description: Creates a new communications type from provided data + operationId: createCommunicationsType + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_communications_type' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/communications_type_response' + description: communications type created + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: invalid request security: - bearer_auth: [] - summary: Retrieves a dashboard + summary: Creates a communications type tags: - - Dashboards + - Communications Types + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - put: - description: Update a specific dashboard by id - operationId: updateDashboard + /v1/communications/types/{id}: + delete: + description: Deletes a communications type + operationId: deleteCommunicationsType parameters: - - explode: false + - description: Communications Type ID + explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_dashboard' - required: true responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 99c82b52-e290-4828-9691-b7684472cb37 - type: dashboards - attributes: - team_id: 181 - user_id: 160 - name: Test update dashboard - description: null - slug: test-update-dashboard - public: false - owner: team - range: Last 30 Days - period: day - color: '#E9E2FF' - icon: 📊 - auto_refresh: false - updated_at: 2026-01-20T09:43:27.736-08:00 - created_at: 2026-01-20T09:43:25.734-08:00 - relationships: - panels: - data: [] - schema: - $ref: '#/components/schemas/dashboard_response' - description: dashboard updated + description: communications type deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: communications type not found security: - bearer_auth: [] - summary: Update a dashboard + summary: Deletes a communications type tags: - - Dashboards - x-content-type: application/vnd.api+json + - Communications Types x-accepts: - application/vnd.api+json - /v1/edge_connectors/{edge_connector_id}/actions: get: + description: Shows details of a communications type + operationId: getCommunicationsType parameters: - - description: Edge connector ID + - description: Communications Type ID explode: false in: path - name: edge_connector_id + name: id required: true schema: type: string style: simple responses: "200": - description: Returns list of actions + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/communications_type_response' + description: communications type found "404": - description: Edge connector not found + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: communications type not found security: - bearer_auth: [] - summary: List edge connector actions + summary: Shows a communications type tags: - - Edge Connector Actions + - Communications Types x-accepts: - - application/json - post: + - application/vnd.api+json + patch: + description: Updates a communications type + operationId: updateCommunicationsType parameters: - - description: Edge connector ID + - description: Communications Type ID explode: false in: path - name: edge_connector_id + name: id required: true schema: type: string @@ -11290,178 +7012,146 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/_v1_edge_connectors__edge_connector_id__actions_post_request' + $ref: '#/components/schemas/update_communications_type' + required: true responses: - "201": - description: Action created + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/communications_type_response' + description: communications type updated "422": - description: Invalid parameters + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request security: - bearer_auth: [] - summary: Create edge connector action + summary: Updates a communications type tags: - - Edge Connector Actions + - Communications Types x-content-type: application/vnd.api+json x-accepts: - - application/json - /v1/edge_connectors/{edge_connector_id}/actions/{id}: - delete: + - application/vnd.api+json + /v1/custom_fields/{custom_field_id}/options: + get: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. List custom field\ + \ options" + operationId: listCustomFieldOptions parameters: - - description: Edge connector ID - explode: false + - explode: false in: path - name: edge_connector_id + name: custom_field_id required: true schema: type: string style: simple - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - description: Action deleted - security: - - bearer_auth: [] - summary: Delete edge connector action - tags: - - Edge Connector Actions - x-accepts: - - application/json - get: - parameters: - - description: Edge connector ID - explode: false - in: path - name: edge_connector_id - required: true - schema: - type: string - style: simple - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - description: Returns action details - "404": - description: Action not found - security: - - bearer_auth: [] - summary: Show edge connector action - tags: - - Edge Connector Actions - x-accepts: - - application/json - patch: - parameters: - - description: Edge connector ID - explode: false - in: path - name: edge_connector_id - required: true + - explode: true + in: query + name: include + required: false schema: type: string - style: simple - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/_v1_edge_connectors__edge_connector_id__actions__id__patch_request' - responses: - "200": - description: Action updated - security: - - bearer_auth: [] - summary: Update edge connector action - tags: - - Edge Connector Actions - x-content-type: application/vnd.api+json - x-accepts: - - application/json - /v1/edge_connectors: - get: - parameters: + style: form - explode: true in: query - name: page + name: "page[number]" required: false schema: type: integer style: form - explode: true in: query - name: per_page + name: "page[size]" required: false schema: type: integer style: form - - description: Filter by status (active/paused) - explode: true + - explode: true in: query - name: status + name: "filter[value]" required: false schema: type: string style: form - - description: Filter by name (partial match) - explode: true + - explode: true in: query - name: name + name: "filter[color]" required: false schema: type: string style: form responses: "200": - description: Filters by status + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/custom_field_option_list' + description: success security: - bearer_auth: [] - summary: List edge connectors + summary: "[DEPRECATED] List custom field options" tags: - - Edge Connectors + - "[DEPRECATED] CustomFieldOptions" x-accepts: - - application/json + - application/vnd.api+json post: - parameters: [] + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Creates a new custom\ + \ field option from provided data" + operationId: createCustomFieldOption + parameters: + - explode: false + in: path + name: custom_field_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/_v1_edge_connectors_post_request' + $ref: '#/components/schemas/new_custom_field_option' + required: true responses: "201": - description: Edge connector created + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/custom_field_option_response' + description: custom_field_option created "422": - description: Invalid parameters + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Create edge connector + summary: "[DEPRECATED] Creates a custom field option" tags: - - Edge Connectors + - "[DEPRECATED] CustomFieldOptions" x-content-type: application/vnd.api+json x-accepts: - - application/json - /v1/edge_connectors/{id}: + - application/vnd.api+json + /v1/custom_field_options/{id}: delete: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ + \ Custom Field Option by id" + operationId: deleteCustomFieldOption parameters: - - description: Edge connector ID - explode: false + - explode: false in: path name: id required: true @@ -11470,18 +7160,31 @@ paths: style: simple responses: "200": - description: Edge connector deleted + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/custom_field_option_response' + description: custom_field_option deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: Delete edge connector + summary: "[DEPRECATED] Delete a custom field option" tags: - - Edge Connectors + - "[DEPRECATED] CustomFieldOptions" x-accepts: - - application/json + - application/vnd.api+json get: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Retrieves a specific\ + \ custom field option by id" + operationId: getCustomFieldOption parameters: - - description: Edge connector ID - explode: false + - explode: false in: path name: id required: true @@ -11490,20 +7193,31 @@ paths: style: simple responses: "200": - description: Returns edge connector details + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/custom_field_option_response' + description: custom_field_option found "404": - description: Edge connector not found + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: Show edge connector + summary: "[DEPRECATED] Retrieves a custom field option" tags: - - Edge Connectors + - "[DEPRECATED] CustomFieldOptions" x-accepts: - - application/json - patch: + - application/vnd.api+json + put: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ + \ custom field option by id" + operationId: updateCustomFieldOption parameters: - - description: Edge connector ID - explode: false + - explode: false in: path name: id required: true @@ -11514,30 +7228,58 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/_v1_edge_connectors__id__patch_request' + $ref: '#/components/schemas/update_custom_field_option' + required: true responses: "200": - description: Edge connector updated - "422": - description: Invalid parameters + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/custom_field_option_response' + description: custom_field_option updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: Update edge connector + summary: "[DEPRECATED] Update a custom field option" tags: - - Edge Connectors + - "[DEPRECATED] CustomFieldOptions" x-content-type: application/vnd.api+json x-accepts: - - application/json - /v1/environments: + - application/vnd.api+json + /v1/custom_fields: get: - description: List environments - operationId: listEnvironments + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. List Custom fields" + operationId: listCustomFields parameters: - - explode: true + - description: "comma separated if needed. eg: options" + explode: true in: query name: include required: false schema: + enum: + - options + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position type: string style: form - explode: true @@ -11556,31 +7298,31 @@ paths: style: form - explode: true in: query - name: "filter[search]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[label]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[kind]" required: false schema: type: string style: form - explode: true in: query - name: "filter[color]" + name: "filter[enabled]" required: false schema: - type: string + type: boolean style: form - explode: true in: query @@ -11612,7 +7354,112 @@ paths: style: form - explode: true in: query - name: sort + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[label][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[label][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[label][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[label][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][not_in]" required: false schema: type: string @@ -11622,256 +7469,188 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/environment_list' + $ref: '#/components/schemas/custom_field_list' description: success security: - bearer_auth: [] - summary: List environments + summary: "[DEPRECATED] List Custom Fields" tags: - - Environments + - "[DEPRECATED] CustomFields" x-accepts: - application/vnd.api+json post: - description: Creates a new environment from provided data - operationId: createEnvironment + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Creates a new custom\ + \ field from provided data" + operationId: createCustomField parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_environment' + $ref: '#/components/schemas/new_custom_field' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: eaf66c54-de31-43ce-858b-8902a2bb3188 - type: environments - attributes: - slug: us-east-1 - name: us-east-1 - description: East Coast Datacenter - color: '#FFF' - position: 1 - notify_emails: - - hello@rootly.com - - world@rootly.com - slack_channels: - - id: C03MKDSEJE8 - name: elastisearch - slack_aliases: - - id: S03F7QUV7F1 - name: leadership - created_at: 2026-01-20T09:43:43.444-08:00 - updated_at: 2026-01-20T09:43:43.444-08:00 schema: - $ref: '#/components/schemas/environment_response' - description: environment created + $ref: '#/components/schemas/custom_field_response' + description: custom_field created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an environment + summary: "[DEPRECATED] Creates a Custom Field" tags: - - Environments + - "[DEPRECATED] CustomFields" x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/environments/{id}: + /v1/custom_fields/{id}: delete: - description: Delete a specific environment by id - operationId: deleteEnvironment + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ + \ custom field by id" + operationId: deleteCustomField parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: f971e6ca-560e-4636-aea9-f03aedd7e09a - type: environments - attributes: - slug: iusto-nobis-harum-quas - name: Iusto nobis harum quas. - description: Reiciendis ut vitae itaque. - color: '#2f8e2f' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:43:42.440-08:00 - updated_at: 2026-01-20T09:43:44.394-08:00 schema: - $ref: '#/components/schemas/environment_response' - description: environment deleted + $ref: '#/components/schemas/custom_field_response' + description: custom_field deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an environment + summary: "[DEPRECATED] Delete a Custom Field" tags: - - Environments + - "[DEPRECATED] CustomFields" x-accepts: - application/vnd.api+json get: - description: Retrieves a specific environment by id - operationId: getEnvironment + deprecated: true + description: Retrieves a specific custom_field by id + operationId: getCustomField parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple + - description: "comma separated if needed. eg: options" + explode: true + in: query + name: include + required: false + schema: + enum: + - options + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: f971e6ca-560e-4636-aea9-f03aedd7e09a - type: environments - attributes: - slug: iusto-nobis-harum-quas - name: Iusto nobis harum quas. - description: Reiciendis ut vitae itaque. - color: '#2f8e2f' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:43:42.440-08:00 - updated_at: 2026-01-20T09:43:42.440-08:00 schema: - $ref: '#/components/schemas/environment_response' - description: environment found by slug + $ref: '#/components/schemas/custom_field_response' + description: custom_field found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an environment + summary: "[DEPRECATED] Retrieves a Custom Field" tags: - - Environments + - "[DEPRECATED] CustomFields" x-accepts: - application/vnd.api+json put: - description: Update a specific environment by id - operationId: updateEnvironment + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ + \ custom field by id" + operationId: updateCustomField parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_environment' + $ref: '#/components/schemas/update_custom_field' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: f971e6ca-560e-4636-aea9-f03aedd7e09a - type: environments - attributes: - slug: us-east-1 - name: us-east-1 - description: East Coast Datacenter Region 1 - color: '#000' - position: 2 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:43:42.440-08:00 - updated_at: 2026-01-20T09:43:44.070-08:00 schema: - $ref: '#/components/schemas/environment_response' - description: environment updated + $ref: '#/components/schemas/custom_field_response' + description: custom_field updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an environment + summary: "[DEPRECATED] Update a Custom Field" tags: - - Environments + - "[DEPRECATED] CustomFields" x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/escalation_policies: + /v1/custom_forms: get: - description: List escalation policies - operationId: listEscalationPolicies + description: List custom forms + operationId: listCustomForms parameters: - - description: "comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths" - explode: true + - explode: true in: query - name: include + name: "page[number]" required: false schema: - enum: - - escalation_policy_levels - - escalation_policy_paths - - groups - - services - type: string + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer style: form - explode: true in: query @@ -11889,385 +7668,219 @@ paths: style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[command]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[created_at][lt]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[created_at][lte]" required: false schema: - type: integer + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/escalation_policy_list' - description: success + $ref: '#/components/schemas/custom_form_list' + description: custom_form found + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: List escalation policies + summary: List custom forms tags: - - EscalationPolicies + - CustomForms x-accepts: - application/vnd.api+json post: - description: Creates a new escalation policy from provided data - operationId: createEscalationPolicy + description: Creates a new custom form from provided data + operationId: createCustomForm parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_escalation_policy' + $ref: '#/components/schemas/new_custom_form' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: bf71cf07-225e-49fe-9e9c-392d03fd5482 - type: escalation_policies - attributes: - name: Platform EP - description: test - repeat_count: 5 - created_by_user_id: 271 - last_updated_by_user_id: 271 - group_ids: - - 73901296-f327-4727-965e-a37a5a6a3f5a - service_ids: [] - business_hours: - time_zone: America/New_York - days: - - M - - T - - W - - R - - F - start_time: 09:00 - end_time: 17:00 - created_at: 2026-01-20T09:43:48.848-08:00 - updated_at: 2026-01-20T09:43:48.848-08:00 - relationships: - escalation_levels: - data: [] - escalation_paths: - data: [] - groups: - data: - - id: 73901296-f327-4727-965e-a37a5a6a3f5a - type: groups - services: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_response' - description: escalation policy created + $ref: '#/components/schemas/custom_form_response' + description: custom_form created "422": content: application/vnd.api+json: - example: - name: - - can't be blank schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an escalation policy + summary: Creates a custom form tags: - - EscalationPolicies + - CustomForms x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/escalation_policies/{id}: + /v1/custom_forms/{id}: delete: - description: Delete a specific escalation policy by id - operationId: deleteEscalationPolicy + description: Delete a specific custom form by id + operationId: deleteCustomForm parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 994d031f-c814-44e4-bd3b-630f9beda6da - type: escalation_policies - attributes: - name: Distinctio minima dolorem cupiditate. - description: null - repeat_count: 1 - created_by_user_id: 272 - last_updated_by_user_id: 273 - group_ids: [] - service_ids: [] - business_hours: - time_zone: null - days: - - F - - M - - T - - R - - W - start_time: 09:00 - end_time: 17:00 - created_at: 2026-01-20T09:43:45.696-08:00 - updated_at: 2026-01-20T09:43:49.849-08:00 - relationships: - escalation_levels: - data: - - id: c9ce577f-d430-40ff-bd95-ea6117a87bed - type: escalation_levels - escalation_paths: - data: [] - groups: - data: [] - services: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_response' - description: escalation policy deleted + $ref: '#/components/schemas/custom_form_response' + description: custom_form found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an escalation policy + summary: Delete a custom form tags: - - EscalationPolicies + - CustomForms x-accepts: - application/vnd.api+json get: - description: Retrieves a specific escalation policy by id - operationId: getEscalationPolicy + description: Retrieves a specific custom form by id + operationId: getCustomForm parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - - description: "comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths" - explode: true - in: query - name: include - required: false - schema: - enum: - - escalation_policy_levels - - escalation_policy_paths - - groups - - services - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 994d031f-c814-44e4-bd3b-630f9beda6da - type: escalation_policies - attributes: - name: Distinctio minima dolorem cupiditate. - description: null - repeat_count: 1 - created_by_user_id: 272 - last_updated_by_user_id: 273 - group_ids: - - 73901296-f327-4727-965e-a37a5a6a3f5a - service_ids: [] - business_hours: - time_zone: null - days: - - F - - M - - T - - R - - W - start_time: 09:00 - end_time: 17:00 - created_at: 2026-01-20T09:43:45.696-08:00 - updated_at: 2026-01-20T09:43:45.696-08:00 - relationships: - escalation_levels: - data: - - id: c9ce577f-d430-40ff-bd95-ea6117a87bed - type: escalation_levels - escalation_paths: - data: [] - groups: - data: - - id: 73901296-f327-4727-965e-a37a5a6a3f5a - type: groups - services: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_response' - description: escalation policy found + $ref: '#/components/schemas/custom_form_response' + description: custom_form found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an escalation policy + summary: Retrieves a custom form tags: - - EscalationPolicies + - CustomForms x-accepts: - application/vnd.api+json put: - description: Update a specific escalation policy by id - operationId: updateEscalationPolicy + description: Update a specific custom form by id + operationId: updateCustomForm parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_escalation_policy' + $ref: '#/components/schemas/update_custom_form' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 994d031f-c814-44e4-bd3b-630f9beda6da - type: escalation_policies - attributes: - name: Platform EP - description: test - repeat_count: 2 - created_by_user_id: 272 - last_updated_by_user_id: 273 - group_ids: - - 73901296-f327-4727-965e-a37a5a6a3f5a - service_ids: [] - business_hours: - time_zone: null - days: - - F - - M - - T - - R - - W - start_time: 09:00 - end_time: 17:00 - created_at: 2026-01-20T09:43:45.696-08:00 - updated_at: 2026-01-20T09:43:49.640-08:00 - relationships: - escalation_levels: - data: - - id: c9ce577f-d430-40ff-bd95-ea6117a87bed - type: escalation_levels - escalation_paths: - data: [] - groups: - data: - - id: 73901296-f327-4727-965e-a37a5a6a3f5a - type: groups - services: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_response' - description: escalation policy updated + $ref: '#/components/schemas/custom_form_response' + description: custom_form updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an escalation policy + summary: Update a custom form tags: - - EscalationPolicies + - CustomForms x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/escalation_policies/{escalation_policy_id}/escalation_levels: + /v1/dashboards/{dashboard_id}/panels: get: - description: List escalation levels - operationId: listEscalationLevels + description: List dashboard panels + operationId: listDashboardPanels parameters: - explode: false in: path - name: escalation_policy_id + name: dashboard_id required: true schema: type: string @@ -12298,22 +7911,22 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/escalation_policy_level_list' + $ref: '#/components/schemas/dashboard_panel_list' description: success security: - bearer_auth: [] - summary: List escalation levels for an Escalation Policy + summary: List dashboard panels tags: - - EscalationLevelsPolicies + - DashboardPanels x-accepts: - application/vnd.api+json post: - description: Creates a new escalation level from provided data - operationId: createEscalationLevel + description: Creates a new dashboard panel from provided data + operationId: createDashboardPanel parameters: - explode: false in: path - name: escalation_policy_id + name: dashboard_id required: true schema: type: string @@ -12322,190 +7935,65 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_escalation_policy_level' + $ref: '#/components/schemas/new_dashboard_panel' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 4bdf97f9-96fc-42f0-950f-a6e9b7f06217 - type: escalation_levels - attributes: - escalation_policy_path_id: af7e0277-4ff4-4512-9096-25a5eb88ce47 - position: 1 - delay: 2 - escalation_policy_id: d704c43c-4553-4751-83ea-6082c1b86850 - paging_strategy_configuration_strategy: null - paging_strategy_configuration_schedule_strategy: null - created_at: 2026-01-20T09:43:52.810-08:00 - updated_at: 2026-01-20T09:43:52.810-08:00 - notification_target_params: - - id: "298" - type: user - team_members: all - - id: 3793a9b2-06e1-4ec4-af00-92b3b9b931c9 - type: schedule - team_members: all - - id: CX21345 - type: slack_channel - team_members: all - schema: - $ref: '#/components/schemas/escalation_policy_level_response' - description: escalation level created - "422": - content: - application/vnd.api+json: - example: - notification_target: - - You need at least 1 notification target schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + $ref: '#/components/schemas/dashboard_panel_response' + description: dashboard panel created "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an escalation level for an Escalation Policy + summary: Creates a dashboard panel tags: - - EscalationLevelsPolicies + - DashboardPanels x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/escalation_paths/{escalation_policy_path_id}/escalation_levels: - get: - description: List escalation levels - operationId: listEscalationLevelsPaths - parameters: - - explode: false - in: path - name: escalation_policy_path_id - required: true - schema: - type: string - style: simple - - explode: true - in: query - name: include - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "page[number]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/escalation_policy_level_list' - description: success - security: - - bearer_auth: [] - summary: List escalation levels for an Escalation Path - tags: - - EscalationLevelsPath - x-accepts: - - application/vnd.api+json + /v1/dashboard_panels/{id}/duplicate: post: - description: Creates a new escalation level from provided data - operationId: createEscalationLevelPaths + description: Duplicates a dashboard panel + operationId: duplicateDashboardPanel parameters: - explode: false in: path - name: escalation_policy_path_id + name: id required: true schema: type: string style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_escalation_policy_level' - required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 221e32fc-16a3-4321-9da2-3b9593912af2 - type: escalation_levels - attributes: - escalation_policy_path_id: dbbce2be-dcc4-415c-b2a8-49f9c4e63c06 - position: 2 - delay: 2 - escalation_policy_id: d704c43c-4553-4751-83ea-6082c1b86850 - paging_strategy_configuration_strategy: null - paging_strategy_configuration_schedule_strategy: null - created_at: 2026-01-20T09:43:52.954-08:00 - updated_at: 2026-01-20T09:43:52.954-08:00 - notification_target_params: - - id: "298" - type: user - team_members: all - - id: 3793a9b2-06e1-4ec4-af00-92b3b9b931c9 - type: schedule - team_members: all - - id: CX21345 - type: slack_channel - team_members: all - schema: - $ref: '#/components/schemas/escalation_policy_level_response' - description: escalation level created - "422": - content: - application/vnd.api+json: - example: - notification_target: - - You need at least 1 notification target schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + $ref: '#/components/schemas/dashboard_panel_response' + description: dashboard panel created "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an escalation level for an Escalation Path + summary: Duplicates a dashboard panel tags: - - EscalationLevelsPath - x-content-type: application/vnd.api+json + - DashboardPanels x-accepts: - application/vnd.api+json - /v1/escalation_levels/{id}: + /v1/dashboard_panels/{id}: delete: - description: Delete a specific escalation level by id - operationId: deleteEscalationLevel + description: Delete a specific dashboard panel by id + operationId: deleteDashboardPanel parameters: - explode: false in: path @@ -12518,46 +8006,19 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 9be45d2d-394b-404f-bd7d-d4e8b4c8f3a1 - type: escalation_levels - attributes: - escalation_policy_path_id: null - position: 1 - delay: 5 - escalation_policy_id: d704c43c-4553-4751-83ea-6082c1b86850 - paging_strategy_configuration_strategy: null - paging_strategy_configuration_schedule_strategy: null - created_at: 2026-01-20T09:43:51.023-08:00 - updated_at: 2026-01-20T09:43:54.144-08:00 - notification_target_params: - - id: "302" - type: user - team_members: all schema: - $ref: '#/components/schemas/escalation_policy_level_response' - description: escalation level deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/dashboard_panel_response' + description: dashboard panel deleted security: - bearer_auth: [] - summary: Delete an escalation level + summary: Delete a dashboard panel tags: - - EscalationLevels + - DashboardPanels x-accepts: - application/vnd.api+json get: - description: Retrieves a specific escalation level by id - operationId: getEscalationLevel + description: Retrieves a specific dashboard panel by id + operationId: getDashboardPanel parameters: - explode: false in: path @@ -12566,50 +8027,49 @@ paths: schema: type: string style: simple + - description: "Date range for panel data, ISO8601 timestamps separated by the\ + \ word 'to'. Ex: '2022-06-19T11:28:46.029Z to 2022-07-18T21:58:46.029Z'." + explode: true + in: query + name: range + required: false + schema: + type: string + style: form + - description: "The time period to group data by. Accepts 'day', 'week', and\ + \ 'month'" + explode: true + in: query + name: period + required: false + schema: + type: string + style: form + - description: The time zone to use for period + explode: true + in: query + name: time_zone + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 9be45d2d-394b-404f-bd7d-d4e8b4c8f3a1 - type: escalation_levels - attributes: - escalation_policy_path_id: null - position: 1 - delay: 5 - escalation_policy_id: d704c43c-4553-4751-83ea-6082c1b86850 - paging_strategy_configuration_strategy: null - paging_strategy_configuration_schedule_strategy: null - created_at: 2026-01-20T09:43:51.023-08:00 - updated_at: 2026-01-20T09:43:51.023-08:00 - notification_target_params: - - id: "302" - type: user - team_members: all - schema: - $ref: '#/components/schemas/escalation_policy_level_response' - description: escalation level found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/dashboard_panel_response' + description: dashboard panel found security: - bearer_auth: [] - summary: Retrieves an escalation level + summary: Retrieves a dashboard panel tags: - - EscalationLevels + - DashboardPanels x-accepts: - application/vnd.api+json put: - description: Update a specific escalation level by id - operationId: updateEscalationLevel + description: Update a specific dashboard panel by id + operationId: updateDashboardPanel parameters: - explode: false in: path @@ -12622,71 +8082,36 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_escalation_policy_level' + $ref: '#/components/schemas/update_dashboard_panel' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 9be45d2d-394b-404f-bd7d-d4e8b4c8f3a1 - type: escalation_levels - attributes: - escalation_policy_path_id: null - position: 1 - delay: 5 - escalation_policy_id: d704c43c-4553-4751-83ea-6082c1b86850 - paging_strategy_configuration_strategy: null - paging_strategy_configuration_schedule_strategy: null - created_at: 2026-01-20T09:43:51.023-08:00 - updated_at: 2026-01-20T09:43:51.023-08:00 - notification_target_params: - - id: CX21345 - type: slack_channel - team_members: all schema: - $ref: '#/components/schemas/escalation_policy_level_response' - description: escalation policy updated with notification_target set with - slack_channel_id instead of slack_channel uuid - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/dashboard_panel_response' + description: dashboard panel updated security: - bearer_auth: [] - summary: Update an escalation level + summary: Update a dashboard panel tags: - - EscalationLevels + - DashboardPanels x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/escalation_policies/{escalation_policy_id}/escalation_paths: + /v1/dashboards: get: - description: List escalation paths - operationId: listEscalationPaths + description: List dashboards + operationId: listDashboards parameters: - - explode: false - in: path - name: escalation_policy_id - required: true - schema: - type: string - style: simple - - description: "comma separated if needed. eg: escalation_policy_levels" + - description: "comma separated if needed. eg: panels" explode: true in: query name: include required: false schema: enum: - - escalation_policy_levels + - panels type: string style: form - explode: true @@ -12708,356 +8133,167 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/escalation_policy_path_list' + $ref: '#/components/schemas/dashboard_list' description: success security: - bearer_auth: [] - summary: List escalation paths + summary: List dashboards tags: - - EscalationPaths + - Dashboards x-accepts: - application/vnd.api+json post: - description: Creates a new escalation path from provided data - operationId: createEscalationPath - parameters: - - explode: false - in: path - name: escalation_policy_id - required: true - schema: - type: string - style: simple + description: Creates a new dashboard from provided data + operationId: createDashboard + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_escalation_policy_path' + $ref: '#/components/schemas/new_dashboard' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: b98ecbd7-9d67-48c7-bac3-dfce8c4c9738 - type: escalation_paths - attributes: - name: Test EP Path - default: false - notification_type: quiet - escalation_policy_id: 36d96fcc-96f3-4114-a519-25c2e6e06951 - match_mode: match-all-rules - position: 1 - repeat: true - repeat_count: 3 - initial_delay: 0 - time_restriction_time_zone: America/Los_Angeles - time_restrictions: - - start_day: monday - start_time: 17:00 - end_day: tuesday - end_time: 07:00 - - start_day: wednesday - start_time: 07:00 - end_day: wednesday - end_time: 17:00 - created_at: 2026-01-20T09:43:56.107-08:00 - updated_at: 2026-01-20T09:43:56.130-08:00 - rules: - - rule_type: alert_urgency - urgency_ids: - - 2ea6c77d-7160-4db8-94fb-ee0fd6252968 - - rule_type: working_hour - within_working_hour: true - - rule_type: json_path - json_path: $.title - operator: is - value: Test - relationships: - escalation_levels: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_path_response' - description: escalation path created + $ref: '#/components/schemas/dashboard_response' + description: dashboard created "422": content: application/vnd.api+json: - example: - base: - - You need at least 1 escalation path condition. schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an escalation path + summary: Creates a dashboard tags: - - EscalationPaths + - Dashboards x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/escalation_paths/{id}: - delete: - description: Delete a specific escalation path by id - operationId: deleteEscalationPath + /v1/dashboards/{id}/duplicate: + post: + description: Duplicates a dashboard + operationId: duplicateDashboard parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: - "200": + "201": content: application/vnd.api+json: - example: - data: - id: 187b5f02-72be-486b-829a-9db72e1fc307 - type: escalation_paths - attributes: - name: Qui rerum commodi doloribus. - default: false - notification_type: audible - escalation_policy_id: 36d96fcc-96f3-4114-a519-25c2e6e06951 - match_mode: match-all-rules - position: 1 - repeat: false - repeat_count: 1 - initial_delay: 0 - time_restriction_time_zone: null - time_restrictions: [] - created_at: 2026-01-20T09:43:55.933-08:00 - updated_at: 2026-01-20T09:43:56.827-08:00 - rules: - - rule_type: alert_urgency - urgency_ids: - - a66f8449-1156-4388-b17c-6ba08630d4ee - relationships: - escalation_levels: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_path_response' - description: escalation path deleted - "404": + $ref: '#/components/schemas/dashboard_response' + description: dashboard created + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Delete an escalation path + summary: Duplicates a dashboard tags: - - EscalationPaths + - Dashboards x-accepts: - application/vnd.api+json - get: - description: Retrieves a specific escalation path by id - operationId: getEscalationPath + /v1/dashboards/{id}/set_default: + post: + description: Sets dashboard to user default + operationId: setDefaultDashboard parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - - description: "comma separated if needed. eg: escalation_policy_levels" - explode: true - in: query - name: include - required: false - schema: - enum: - - escalation_policy_levels - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 187b5f02-72be-486b-829a-9db72e1fc307 - type: escalation_paths - attributes: - name: Qui rerum commodi doloribus. - default: false - notification_type: audible - escalation_policy_id: 36d96fcc-96f3-4114-a519-25c2e6e06951 - match_mode: match-all-rules - position: 1 - repeat: false - repeat_count: 1 - initial_delay: 0 - time_restriction_time_zone: null - time_restrictions: [] - created_at: 2026-01-20T09:43:55.933-08:00 - updated_at: 2026-01-20T09:43:55.933-08:00 - rules: - - rule_type: alert_urgency - urgency_ids: - - a66f8449-1156-4388-b17c-6ba08630d4ee - relationships: - escalation_levels: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_path_response' - description: escalation path found - "404": + $ref: '#/components/schemas/dashboard_response' + description: dashboard found by slug + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Retrieves an escalation path + summary: Sets dashboard to user default tags: - - EscalationPaths + - Dashboards x-accepts: - application/vnd.api+json - put: - description: Update a specific escalation path by id - operationId: updateEscalationPath + /v1/dashboards/{id}: + delete: + description: Delete a specific dashboard by id + operationId: deleteDashboard parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_escalation_policy_path' - required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 187b5f02-72be-486b-829a-9db72e1fc307 - type: escalation_paths - attributes: - name: Qui rerum commodi doloribus. - default: false - notification_type: quiet - escalation_policy_id: 36d96fcc-96f3-4114-a519-25c2e6e06951 - match_mode: match-all-rules - position: 1 - repeat: false - repeat_count: 1 - initial_delay: 0 - time_restriction_time_zone: America/New_York - time_restrictions: - - start_day: monday - start_time: 17:00 - end_day: tuesday - end_time: 07:00 - - start_day: wednesday - start_time: 09:00 - end_day: wednesday - end_time: 20:00 - created_at: 2026-01-20T09:43:55.933-08:00 - updated_at: 2026-01-20T09:43:56.621-08:00 - rules: - - rule_type: alert_urgency - urgency_ids: - - 2ea6c77d-7160-4db8-94fb-ee0fd6252968 - relationships: - escalation_levels: - data: [] schema: - $ref: '#/components/schemas/escalation_policy_path_response' - description: escalation policy updated + $ref: '#/components/schemas/dashboard_response' + description: dashboard deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an escalation path + summary: Delete a dashboard tags: - - EscalationPaths - x-content-type: application/vnd.api+json + - Dashboards x-accepts: - application/vnd.api+json - /v1/form_fields/{form_field_id}/options: get: - description: List form_field_options - operationId: listFormFieldOptions + description: Retrieves a specific dashboard by id + operationId: getDashboard parameters: - explode: false in: path - name: form_field_id + name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - - explode: true + - description: "comma separated if needed. eg: panels" + explode: true in: query name: include required: false schema: - type: string - style: form - - explode: true - in: query - name: "page[number]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "filter[value]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[color]" - required: false - schema: + enum: + - panels type: string style: form responses: @@ -13065,372 +8301,276 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/form_field_option_list' - description: success + $ref: '#/components/schemas/dashboard_response' + description: dashboard found by slug + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: List FormField Options + summary: Retrieves a dashboard tags: - - FormFieldOptions + - Dashboards x-accepts: - application/vnd.api+json - post: - description: Creates a new form_field_option from provided data - operationId: createFormFieldOption + put: + description: Update a specific dashboard by id + operationId: updateDashboard parameters: - explode: false in: path - name: form_field_id + name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_form_field_option' + $ref: '#/components/schemas/update_dashboard' required: true responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 58a6e0c9-0aaa-42a3-9079-e56bc74e8f1d - type: form_field_options - attributes: - form_field_id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - value: Test option value - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:43:58.175-08:00 - created_at: 2026-01-20T09:43:58.175-08:00 - relationships: - form_field: - data: - id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - type: form_fields - schema: - $ref: '#/components/schemas/form_field_option_response' - description: form_field_option created - "422": + "200": content: application/vnd.api+json: - example: - errors: - - title: Value can't be blank - status: "422" schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": + $ref: '#/components/schemas/dashboard_response' + description: dashboard updated + "404": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates FormField Options + summary: Update a dashboard tags: - - FormFieldOptions + - Dashboards x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_field_options/{id}: - delete: - description: Delete a specific form_field_option by id - operationId: deleteFormFieldOption + /v1/edge_connectors/{edge_connector_id}/actions: + get: + operationId: listEdgeConnectorActions parameters: - - explode: false + - description: Edge connector ID + explode: false in: path - name: id + name: edge_connector_id required: true schema: type: string style: simple responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 5defd420-4102-4df6-a217-5d1b93476bf3 - type: form_field_options - attributes: - form_field_id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - value: Nesciunt commodi provident fugit. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:43:59.044-08:00 - created_at: 2026-01-20T09:43:58.052-08:00 - relationships: - form_field: - data: - id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - type: form_fields - schema: - $ref: '#/components/schemas/form_field_option_response' - description: form_field_option deleted + description: Returns list of actions "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + description: Edge connector not found security: - bearer_auth: [] - summary: Delete FormField Options + summary: List edge connector actions tags: - - FormFieldOptions + - Edge Connector Actions x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific form_field_option by id - operationId: getFormFieldOption + - application/json + post: + operationId: createEdgeConnectorAction parameters: - - explode: false + - description: Edge connector ID + explode: false + in: path + name: edge_connector_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/createEdgeConnectorAction_request' + responses: + "201": + description: Action created + "422": + description: Invalid parameters + security: + - bearer_auth: [] + summary: Create edge connector action + tags: + - Edge Connector Actions + x-content-type: application/vnd.api+json + x-accepts: + - application/json + /v1/edge_connectors/{edge_connector_id}/actions/{id}: + delete: + operationId: deleteEdgeConnectorAction + parameters: + - description: Edge connector ID + explode: false + in: path + name: edge_connector_id + required: true + schema: + type: string + style: simple + - explode: false in: path name: id required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + description: Action deleted + security: + - bearer_auth: [] + summary: Delete edge connector action + tags: + - Edge Connector Actions + x-accepts: + - application/json + get: + operationId: getEdgeConnectorAction + parameters: + - description: Edge connector ID + explode: false + in: path + name: edge_connector_id + required: true schema: type: string style: simple + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 5defd420-4102-4df6-a217-5d1b93476bf3 - type: form_field_options - attributes: - form_field_id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - value: Nesciunt commodi provident fugit. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:43:58.052-08:00 - created_at: 2026-01-20T09:43:58.052-08:00 - relationships: - form_field: - data: - id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - type: form_fields - schema: - $ref: '#/components/schemas/form_field_option_response' - description: form_field_option found + description: Returns action details "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + description: Action not found security: - bearer_auth: [] - summary: Retrieves FormField Options + summary: Show edge connector action tags: - - FormFieldOptions + - Edge Connector Actions x-accepts: - - application/vnd.api+json - put: - description: Update a specific form_field_option by id - operationId: updateFormFieldOption + - application/json + patch: + operationId: updateEdgeConnectorAction parameters: + - description: Edge connector ID + explode: false + in: path + name: edge_connector_id + required: true + schema: + type: string + style: simple - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_form_field_option' - required: true + $ref: '#/components/schemas/updateEdgeConnectorAction_request' responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 5defd420-4102-4df6-a217-5d1b93476bf3 - type: form_field_options - attributes: - form_field_id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - value: Test update option value - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:43:58.815-08:00 - created_at: 2026-01-20T09:43:58.052-08:00 - relationships: - form_field: - data: - id: cf5240c7-4bb5-414d-b0fb-24960b27a9d8 - type: form_fields - schema: - $ref: '#/components/schemas/form_field_option_response' - description: form_field_option updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + description: Action updated security: - bearer_auth: [] - summary: Update FormField Options + summary: Update edge connector action tags: - - FormFieldOptions + - Edge Connector Actions x-content-type: application/vnd.api+json x-accepts: - - application/vnd.api+json - /v1/form_field_placements/{form_field_placement_id}/conditions: + - application/json + /v1/edge_connectors: get: - description: List form_field_placement_conditions - operationId: listFormFieldPlacementConditions + operationId: listEdgeConnectors parameters: - - explode: false - in: path - name: form_field_placement_id - required: true - schema: - type: string - style: simple - explode: true in: query - name: include + name: page required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "page[number]" + name: per_page required: false schema: type: integer style: form - - explode: true + - description: Filter by status (active/paused) + explode: true in: query - name: "page[size]" + name: status required: false schema: - type: integer + type: string style: form - - explode: true + - description: Filter by name (partial match) + explode: true in: query - name: "filter[form_field_id]" + name: name required: false schema: type: string style: form responses: "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/form_field_placement_condition_list' - description: success + description: Filters by status security: - bearer_auth: [] - summary: List Form Set Conditions + summary: List edge connectors tags: - - FormFieldPlacementConditions + - Edge Connectors x-accepts: - - application/vnd.api+json + - application/json post: - description: Creates a new form_field_placement_condition from provided data - operationId: createFormFieldPlacementCondition - parameters: - - explode: false - in: path - name: form_field_placement_id - required: true - schema: - type: string - style: simple + operationId: createEdgeConnector + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_form_field_placement_condition' - required: true + $ref: '#/components/schemas/createEdgeConnector_request' responses: "201": - content: - application/vnd.api+json: - example: - data: - id: 5869d56a-7b43-49e2-a778-c5ead68eecbc - type: form_field_placement_conditions - attributes: - form_field_placement_id: 7cdfc39d-6a63-482b-844a-85351d8028e9 - conditioned: placement - position: 2 - form_field_id: 354bffed-0bd0-413d-9cf3-67614ba72e4e - comparison: equal - values: - - test - schema: - $ref: '#/components/schemas/form_field_placement_condition_response' - description: form_field_placement_condition created + description: Edge connector created "422": - content: - application/vnd.api+json: - example: - errors: - - title: can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: Invalid parameters security: - bearer_auth: [] - summary: Creates a Form Set Condition + summary: Create edge connector tags: - - FormFieldPlacementConditions + - Edge Connectors x-content-type: application/vnd.api+json x-accepts: - - application/vnd.api+json - /v1/form_field_placement_conditions/{id}: + - application/json + /v1/edge_connectors/{id}: delete: - description: Delete a specific form_field_placement_condition by id - operationId: deleteFormFieldPlacementCondition + operationId: deleteEdgeConnector parameters: - - explode: false + - description: Edge connector ID + explode: false in: path name: id required: true @@ -13439,45 +8579,19 @@ paths: style: simple responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 29badd78-3af3-4415-be47-2b06b3f77cb1 - type: form_field_placement_conditions - attributes: - form_field_placement_id: 7cdfc39d-6a63-482b-844a-85351d8028e9 - conditioned: placement - position: 1 - form_field_id: 63bb08d9-11c1-4b43-a780-a29ebc475a77 - comparison: equal - values: - - test - schema: - $ref: '#/components/schemas/form_field_placement_condition_response' - description: form_field_placement_condition deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + description: Edge connector deleted security: - bearer_auth: [] - summary: Delete a Form Set Condition + summary: Delete edge connector tags: - - FormFieldPlacementConditions + - Edge Connectors x-accepts: - - application/vnd.api+json + - application/json get: - description: Retrieves a specific form_field_placement_condition by id - operationId: getFormFieldPlacementCondition + operationId: getEdgeConnector parameters: - - explode: false + - description: Edge connector ID + explode: false in: path name: id required: true @@ -13486,45 +8600,21 @@ paths: style: simple responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 29badd78-3af3-4415-be47-2b06b3f77cb1 - type: form_field_placement_conditions - attributes: - form_field_placement_id: 7cdfc39d-6a63-482b-844a-85351d8028e9 - conditioned: placement - position: 1 - form_field_id: 63bb08d9-11c1-4b43-a780-a29ebc475a77 - comparison: equal - values: - - test - schema: - $ref: '#/components/schemas/form_field_placement_condition_response' - description: form_field_placement_condition found + description: Returns edge connector details "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + description: Edge connector not found security: - bearer_auth: [] - summary: Retrieves a Form Set Condition + summary: Show edge connector tags: - - FormFieldPlacementConditions + - Edge Connectors x-accepts: - - application/vnd.api+json - put: - description: Update a specific form_field_placement_condition by id - operationId: updateFormFieldPlacementCondition + - application/json + patch: + operationId: updateEdgeConnector parameters: - - explode: false + - description: Edge connector ID + explode: false in: path name: id required: true @@ -13535,57 +8625,25 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_form_field_placement_condition' - required: true + $ref: '#/components/schemas/updateEdgeConnector_request' responses: "200": - content: - application/vnd.api+json: - example: - data: - id: 29badd78-3af3-4415-be47-2b06b3f77cb1 - type: form_field_placement_conditions - attributes: - form_field_placement_id: 7cdfc39d-6a63-482b-844a-85351d8028e9 - conditioned: placement - position: 1 - form_field_id: 63bb08d9-11c1-4b43-a780-a29ebc475a77 - comparison: equal - values: - - bar - schema: - $ref: '#/components/schemas/form_field_placement_condition_response' - description: form_field_placement_condition updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + description: Edge connector updated + "422": + description: Invalid parameters security: - bearer_auth: [] - summary: Update a Form Set Condition + summary: Update edge connector tags: - - FormFieldPlacementConditions + - Edge Connectors x-content-type: application/vnd.api+json x-accepts: - - application/vnd.api+json - /v1/form_fields/{form_field_id}/placements: + - application/json + /v1/environments: get: - description: List form_field_placements - operationId: listFormFieldPlacements + description: List environments + operationId: listEnvironments parameters: - - explode: false - in: path - name: form_field_id - required: true - schema: - type: string - style: simple - explode: true in: query name: include @@ -13609,7 +8667,147 @@ paths: style: form - explode: true in: query - name: "filter[form_field_id]" + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort required: false schema: type: string @@ -13619,260 +8817,192 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/form_field_placement_list' + $ref: '#/components/schemas/environment_list' description: success security: - bearer_auth: [] - summary: List Form Field Placements + summary: List environments tags: - - FormFieldPlacements + - Environments x-accepts: - application/vnd.api+json post: - description: Creates a new form_field_placement from provided data - operationId: createFormFieldPlacement - parameters: - - explode: false - in: path - name: form_field_id - required: true - schema: - type: string - style: simple + description: Creates a new environment from provided data + operationId: createEnvironment + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_form_field_placement' + $ref: '#/components/schemas/new_environment' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 031b7ec7-bcd3-40f9-a915-60485d0dd383 - type: form_field_placements - attributes: - form_field_id: 9ba0eee3-d641-4a1c-a275-13006dc5c55a - form_set_id: 98badaea-ef85-45ba-b4e1-be05b26f78f7 - form: slack_new_incident_form - position: 1 - required: false - placement_operator: and - required_operator: and - non_editable: true schema: - $ref: '#/components/schemas/form_field_placement_response' - description: form_field_placement created with non_editable true + $ref: '#/components/schemas/environment_response' + description: environment created "422": content: application/vnd.api+json: - example: - errors: - - title: Form "blah"is not a valid form - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a Form Field Placement + summary: Creates an environment tags: - - FormFieldPlacements + - Environments x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_field_placements/{id}: + /v1/environments/{id}: delete: - description: Delete a specific form_field_placement by id - operationId: deleteFormFieldPlacement + description: Delete a specific environment by id + operationId: deleteEnvironment parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 2049b13f-b69b-4462-abc3-f42c14872b92 - type: form_field_placements - attributes: - form_field_id: 9ba0eee3-d641-4a1c-a275-13006dc5c55a - form_set_id: 98badaea-ef85-45ba-b4e1-be05b26f78f7 - form: web_new_incident_form - position: 1 - required: false - placement_operator: and - required_operator: and - non_editable: false schema: - $ref: '#/components/schemas/form_field_placement_response' - description: form_field_placement deleted + $ref: '#/components/schemas/environment_response' + description: environment deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a Form Field Placement + summary: Delete an environment tags: - - FormFieldPlacements + - Environments x-accepts: - application/vnd.api+json get: - description: Retrieves a specific form_field_placement by id - operationId: getFormFieldPlacement + description: Retrieves a specific environment by id + operationId: getEnvironment parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 2049b13f-b69b-4462-abc3-f42c14872b92 - type: form_field_placements - attributes: - form_field_id: 9ba0eee3-d641-4a1c-a275-13006dc5c55a - form_set_id: 98badaea-ef85-45ba-b4e1-be05b26f78f7 - form: web_new_incident_form - position: 1 - required: false - placement_operator: and - required_operator: and - non_editable: false schema: - $ref: '#/components/schemas/form_field_placement_response' - description: form_field_placement found + $ref: '#/components/schemas/environment_response' + description: environment found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a Form Field Placement + summary: Retrieves an environment tags: - - FormFieldPlacements + - Environments x-accepts: - application/vnd.api+json put: - description: Update a specific form_field_placement by id - operationId: updateFormFieldPlacement + description: Update a specific environment by id + operationId: updateEnvironment parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_form_field_placement' + $ref: '#/components/schemas/update_environment' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 2049b13f-b69b-4462-abc3-f42c14872b92 - type: form_field_placements - attributes: - form_field_id: 9ba0eee3-d641-4a1c-a275-13006dc5c55a - form_set_id: 98badaea-ef85-45ba-b4e1-be05b26f78f7 - form: web_new_incident_form - position: 1 - required: false - placement_operator: and - required_operator: and - non_editable: true schema: - $ref: '#/components/schemas/form_field_placement_response' - description: form_field_placement updated with non_editable + $ref: '#/components/schemas/environment_response' + description: environment updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a Form Field Placement + summary: Update an environment tags: - - FormFieldPlacements + - Environments x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_fields/{form_field_id}/positions: + /v1/environments/properties: get: - description: List form field positions - operationId: listFormFieldPositions + description: List Environment Catalog Properties + operationId: listEnvironmentCatalogProperties parameters: - - explode: false - in: path - name: form_field_id - required: true - schema: - type: string - style: simple - - explode: true + - description: "comma separated if needed. eg: catalog" + explode: true in: query name: include required: false schema: + enum: + - catalog type: string style: form - - explode: true + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true in: query - name: "page[number]" + name: sort required: false schema: - type: integer - style: form - - explode: true - in: query + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query name: "page[size]" required: false schema: @@ -13880,7 +9010,49 @@ paths: style: form - explode: true in: query - name: "filter[form]" + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" required: false schema: type: string @@ -13890,609 +9062,446 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/form_field_position_list' + $ref: '#/components/schemas/catalog_property_list' description: success security: - bearer_auth: [] - summary: List FormField Position + summary: List Catalog Properties tags: - - FormFieldPositions + - Environments x-accepts: - application/vnd.api+json post: - description: Creates a new form field_position from provided data - operationId: createFormFieldPosition - parameters: - - explode: false - in: path - name: form_field_id - required: true - schema: - type: string - style: simple + description: Creates a new Catalog Property from provided data + operationId: createEnvironmentCatalogProperty + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_form_field_position' + $ref: '#/components/schemas/new_catalog_property' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: ef33b8fc-e193-48e9-9bc7-64610fd8fe90 - type: form_field_positions - attributes: - form_field_id: f515cb93-8e0a-4283-b819-1ee03c3e77d7 - form: web_new_incident_form - position: 2 schema: - $ref: '#/components/schemas/form_field_position_response' - description: form_field_position created + $ref: '#/components/schemas/catalog_property_response' + description: catalog_property created ignores wrong catalog_type attribute + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: exceeds max fields per catalog "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates FormField Positions + summary: Creates a Catalog Property tags: - - FormFieldPositions + - Environments x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_field_positions/{id}: - delete: - description: Delete a specific form_field position by id - operationId: deleteFormFieldPosition - parameters: - - explode: false - in: path - name: id + /v1/environments/bulk_upsert: + post: + description: "Create or update multiple environments by external_id. Only attributes\ + \ present in the payload are written (managed-fields semantics). Transactional:\ + \ all succeed or all fail. Requires an API key with both create and update\ + \ capability across the resource scope (team/org-scoped); record-scoped principals\ + \ cannot use this endpoint (they receive 404), which also prevents the create-vs-update\ + \ branch from leaking whether an external_id exists." + operationId: bulkUpsertEnvironments + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_upsert_environments' required: true - schema: - type: string - style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 6580c4b5-aa37-4bc7-856d-e5fc8caded41 - type: form_field_positions - attributes: - form_field_id: f515cb93-8e0a-4283-b819-1ee03c3e77d7 - form: web_update_incident_form - position: 1 - schema: - $ref: '#/components/schemas/form_field_position_response' - description: form_field_position deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a FormFieldPosition - tags: - - FormFieldPositions - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific form field_position by id - operationId: getFormFieldPosition - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": + $ref: '#/components/schemas/bulk_upsert_environments_response' + description: records upserted successfully + "422": content: application/vnd.api+json: - example: - data: - id: 6580c4b5-aa37-4bc7-856d-e5fc8caded41 - type: form_field_positions - attributes: - form_field_id: f515cb93-8e0a-4283-b819-1ee03c3e77d7 - form: web_update_incident_form - position: 1 schema: - $ref: '#/components/schemas/form_field_position_response' - description: form_field_position found - "404": + $ref: '#/components/schemas/bulkUpsertEnvironments_422_response' + description: validation or record-level error + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: unauthorized security: - bearer_auth: [] - summary: Retrieves a FormFieldPosition + summary: Bulk upsert Environments tags: - - FormFieldPositions + - Environments + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - put: - description: Update a specific form_field position by id - operationId: updateFormFieldPosition - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple + /v1/environments/bulk_delete: + post: + description: "Delete environments by external_id list, or prune by managed_by\ + \ source. Two mutually exclusive modes." + operationId: bulkDeleteEnvironments + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_form_field_position' + $ref: '#/components/schemas/bulk_destroy_environments' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 6580c4b5-aa37-4bc7-856d-e5fc8caded41 - type: form_field_positions - attributes: - form_field_id: f515cb93-8e0a-4283-b819-1ee03c3e77d7 - form: web_update_incident_form - position: 2 schema: - $ref: '#/components/schemas/form_field_position_response' - description: form_field_position updated - "404": + $ref: '#/components/schemas/bulk_destroy_environments_response' + description: records deleted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkDeleteEnvironments_422_response' + description: validation or partial-failure error + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: unauthorized security: - bearer_auth: [] - summary: Update a FormFieldPosition + summary: Bulk delete Environments tags: - - FormFieldPositions + - Environments x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_fields: + /v1/escalation_policies: get: - description: List form_fields - operationId: listFormFields + description: List escalation policies + operationId: listEscalationPolicies parameters: - - description: "comma separated if needed. eg: options,positions" + - description: "comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths" explode: true in: query name: include required: false schema: enum: - - options - - positions + - escalation_policy_levels + - escalation_policy_paths + - groups + - services type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[search]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[name]" required: false schema: - type: integer + type: string + style: form + - description: Filter escalation policies by associated team IDs. Comma-separate + multiple values. + explode: true + in: query + name: "filter[team_ids]" + required: false + schema: + type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[created_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[kind]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[enabled]" + name: "filter[name][eq]" required: false schema: - type: boolean + type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[name][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[name][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[name][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[team_ids][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[team_ids][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[team_ids][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[team_ids][not_in]" required: false schema: type: string style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/form_field_list' + $ref: '#/components/schemas/escalation_policy_list' description: success security: - bearer_auth: [] - summary: List Form Fields + summary: List escalation policies tags: - - FormFields + - EscalationPolicies x-accepts: - application/vnd.api+json post: - description: Creates a new form_field from provided data - operationId: createFormField + description: Creates a new escalation policy from provided data + operationId: createEscalationPolicy parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_form_field' + $ref: '#/components/schemas/new_escalation_policy' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 5b528d58-ca9d-4b21-a29a-2715936b6fba - type: form_fields - attributes: - team_id: 218 - slug: test-custom-field - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Test custom field - description: null - shown: - - web_new_incident_form - required: [] - default_values: [] - show_on_incident_details: true - enabled: true - updated_at: 2026-01-20T09:44:09.014-08:00 - created_at: 2026-01-20T09:44:09.014-08:00 - relationships: - options: - data: [] - positions: - data: - - id: ea0edac6-25fc-4610-b334-33fbd6070445 - type: form_field_positions schema: - $ref: '#/components/schemas/form_field_response' - description: form_field created + $ref: '#/components/schemas/escalation_policy_response' + description: escalation policy created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a Form Field + summary: Creates an escalation policy tags: - - FormFields + - EscalationPolicies x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_fields/{id}: + /v1/escalation_policies/{id}: delete: - description: Delete a specific form_field by id - operationId: deleteFormField + description: Delete a specific escalation policy by id + operationId: deleteEscalationPolicy parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 23eb7c92-6a52-484f-8971-36f00eee4560 - type: form_fields - attributes: - team_id: 218 - slug: necessitatibus-recusandae-consequatur-itaque - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Necessitatibus recusandae consequatur itaque. - description: Velit inventore animi doloremque. - shown: [] - required: [] - default_values: [] - show_on_incident_details: true - enabled: true - updated_at: 2026-01-20T09:44:09.976-08:00 - created_at: 2026-01-20T09:44:07.200-08:00 - relationships: - options: - data: [] - positions: - data: [] schema: - $ref: '#/components/schemas/form_field_response' - description: form_field deleted + $ref: '#/components/schemas/escalation_policy_response' + description: escalation policy deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a Form Field + summary: Delete an escalation policy tags: - - FormFields + - EscalationPolicies x-accepts: - application/vnd.api+json get: - description: Retrieves a specific form_field by id - operationId: getFormField + description: Retrieves a specific escalation policy by id + operationId: getEscalationPolicy parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple - - description: "comma separated if needed. eg: options,positions" + - description: "comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths" explode: true in: query name: include required: false schema: enum: - - options - - positions + - escalation_policy_levels + - escalation_policy_paths + - groups + - services type: string style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 23eb7c92-6a52-484f-8971-36f00eee4560 - type: form_fields - attributes: - team_id: 218 - slug: necessitatibus-recusandae-consequatur-itaque - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Necessitatibus recusandae consequatur itaque. - description: Velit inventore animi doloremque. - shown: - - web_new_incident_form - - web_update_incident_form - required: [] - default_values: [] - show_on_incident_details: true - enabled: true - updated_at: 2026-01-20T09:44:07.200-08:00 - created_at: 2026-01-20T09:44:07.200-08:00 - relationships: - options: - data: - - id: 209f37cd-1a61-44f4-a92b-8b384406fe55 - type: form_field_options - - id: db938dfa-a43f-4148-a0fe-145b930726cd - type: form_field_options - positions: - data: - - id: 2713fd27-32ce-4bb9-8135-d6af64e4bad3 - type: form_field_positions - - id: 5d282bfc-dc68-477d-81d7-c0aa74d0c3ed - type: form_field_positions schema: - $ref: '#/components/schemas/form_field_response' - description: form_field found by slug + $ref: '#/components/schemas/escalation_policy_response' + description: escalation policy found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a Form Field + summary: Retrieves an escalation policy tags: - - FormFields + - EscalationPolicies x-accepts: - application/vnd.api+json put: - description: Update a specific form_field by id - operationId: updateFormField + description: Update a specific escalation policy by id + operationId: updateEscalationPolicy parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_form_field' + $ref: '#/components/schemas/update_escalation_policy' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 23eb7c92-6a52-484f-8971-36f00eee4560 - type: form_fields - attributes: - team_id: 218 - slug: test-update-custom-field - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Test update custom field - description: Velit inventore animi doloremque. - shown: - - web_new_incident_form - - web_update_incident_form - required: [] - default_values: [] - show_on_incident_details: false - enabled: true - updated_at: 2026-01-20T09:44:09.727-08:00 - created_at: 2026-01-20T09:44:07.200-08:00 - relationships: - options: - data: - - id: 209f37cd-1a61-44f4-a92b-8b384406fe55 - type: form_field_options - - id: db938dfa-a43f-4148-a0fe-145b930726cd - type: form_field_options - positions: - data: - - id: 2713fd27-32ce-4bb9-8135-d6af64e4bad3 - type: form_field_positions - - id: 5d282bfc-dc68-477d-81d7-c0aa74d0c3ed - type: form_field_positions schema: - $ref: '#/components/schemas/form_field_response' - description: form_field updated + $ref: '#/components/schemas/escalation_policy_response' + description: escalation policy updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a Form Field + summary: Update an escalation policy tags: - - FormFields + - EscalationPolicies x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_sets/{form_set_id}/conditions: + /v1/escalation_policies/{escalation_policy_id}/escalation_levels: get: - description: List form_set_conditions - operationId: listFormSetConditions + description: List escalation levels + operationId: listEscalationLevels parameters: - explode: false in: path - name: form_set_id + name: escalation_policy_id required: true schema: type: string @@ -14518,34 +9527,118 @@ paths: schema: type: integer style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/escalation_policy_level_list' + description: success + security: + - bearer_auth: [] + summary: List escalation levels for an Escalation Policy + tags: + - EscalationLevelsPolicies + x-accepts: + - application/vnd.api+json + post: + description: Creates a new escalation level from provided data + operationId: createEscalationLevel + parameters: + - explode: false + in: path + name: escalation_policy_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_escalation_policy_level' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/escalation_policy_level_response' + description: escalation level created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Creates an escalation level for an Escalation Policy + tags: + - EscalationLevelsPolicies + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/escalation_paths/{escalation_policy_path_id}/escalation_levels: + get: + description: List escalation levels + operationId: listEscalationLevelsPaths + parameters: + - explode: false + in: path + name: escalation_policy_path_id + required: true + schema: + type: string + style: simple - explode: true in: query - name: "filter[form_field_id]" + name: include required: false schema: type: string style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/form_set_condition_list' + $ref: '#/components/schemas/escalation_policy_level_list' description: success security: - bearer_auth: [] - summary: List Form Set Conditions + summary: List escalation levels for an Escalation Path tags: - - FormSetConditions + - EscalationLevelsPath x-accepts: - application/vnd.api+json post: - description: Creates a new form_set_condition from provided data - operationId: createFormSetCondition + description: Creates a new escalation level from provided data + operationId: createEscalationLevelPaths parameters: - explode: false in: path - name: form_set_id + name: escalation_policy_path_id required: true schema: type: string @@ -14554,57 +9647,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_form_set_condition' + $ref: '#/components/schemas/new_escalation_policy_level' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: f164f39d-fe31-4ea4-b1d2-d76dd7014e9e - type: form_set_conditions - attributes: - form_set_id: a79ca943-7778-4d1a-8fb0-fb4c60aecd9e - form_field_id: 1cbea9cd-60e8-48ce-b323-c622b6eb7726 - comparison: equal - values: - - test schema: - $ref: '#/components/schemas/form_set_condition_response' - description: form_set_condition created + $ref: '#/components/schemas/escalation_policy_level_response' + description: escalation level created "422": content: application/vnd.api+json: - example: - errors: - - title: Values can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates a Form Set Condition + summary: Creates an escalation level for an Escalation Path tags: - - FormSetConditions + - EscalationLevelsPath x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_set_conditions/{id}: + /v1/escalation_levels/{id}: delete: - description: Delete a specific form_set_condition by id - operationId: deleteFormSetCondition + description: Delete a specific escalation level by id + operationId: deleteEscalationLevel parameters: - explode: false in: path @@ -14617,39 +9692,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 102924f5-2c96-4f66-a8e9-3528b61ad7e3 - type: form_set_conditions - attributes: - form_set_id: 99dd38ae-40a1-4f2a-a40b-8f390df269a9 - form_field_id: 7ef6a3f3-fad2-4ccc-92d3-250eb7d9a259 - comparison: equal - values: - - test schema: - $ref: '#/components/schemas/form_set_condition_response' - description: form_set_condition deleted + $ref: '#/components/schemas/escalation_policy_level_response' + description: escalation level deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a Form Set Condition + summary: Delete an escalation level tags: - - FormSetConditions + - EscalationLevels x-accepts: - application/vnd.api+json get: - description: Retrieves a specific form_set_condition by id - operationId: getFormSetCondition + description: Retrieves a specific escalation level by id + operationId: getEscalationLevel parameters: - explode: false in: path @@ -14662,39 +9723,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 102924f5-2c96-4f66-a8e9-3528b61ad7e3 - type: form_set_conditions - attributes: - form_set_id: 99dd38ae-40a1-4f2a-a40b-8f390df269a9 - form_field_id: 7ef6a3f3-fad2-4ccc-92d3-250eb7d9a259 - comparison: equal - values: - - test schema: - $ref: '#/components/schemas/form_set_condition_response' - description: form_set_condition found + $ref: '#/components/schemas/escalation_policy_level_response' + description: escalation level found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a Form Set Condition + summary: Retrieves an escalation level tags: - - FormSetConditions + - EscalationLevels x-accepts: - application/vnd.api+json put: - description: Update a specific form_set_condition by id - operationId: updateFormSetCondition + description: Update a specific escalation level by id + operationId: updateEscalationLevel parameters: - explode: false in: path @@ -14707,336 +9754,258 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_form_set_condition' + $ref: '#/components/schemas/update_escalation_policy_level' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 102924f5-2c96-4f66-a8e9-3528b61ad7e3 - type: form_set_conditions - attributes: - form_set_id: 99dd38ae-40a1-4f2a-a40b-8f390df269a9 - form_field_id: 7ef6a3f3-fad2-4ccc-92d3-250eb7d9a259 - comparison: equal - values: - - test update schema: - $ref: '#/components/schemas/form_set_condition_response' - description: form_set_condition updated + $ref: '#/components/schemas/escalation_policy_level_response' + description: escalation policy updated with notification_target set with + slack_channel_id instead of slack_channel uuid "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a Form Set Condition + summary: Update an escalation level tags: - - FormSetConditions + - EscalationLevels x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_sets: + /v1/escalation_policies/{escalation_policy_id}/escalation_paths: get: - description: List form_sets - operationId: listFormSets + description: List escalation paths + operationId: listEscalationPaths parameters: - - explode: true + - explode: false + in: path + name: escalation_policy_id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: escalation_policy_levels" + explode: true in: query name: include required: false schema: + enum: + - escalation_policy_levels type: string style: form - - explode: true + - description: Filter by path_type. Returns all path types when omitted. + explode: true in: query - name: "page[number]" + name: "filter[path_type]" required: false schema: - type: integer + enum: + - escalation + - deferral + type: string style: form - explode: true in: query - name: "page[size]" + name: "page[number]" required: false schema: type: integer style: form - explode: true in: query - name: "filter[slug]" + name: "page[size]" required: false schema: - type: string - style: form - - explode: true - in: query - name: "filter[is_default]" - required: false - schema: - type: boolean - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false - schema: - type: string + type: integer style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/form_set_list' + $ref: '#/components/schemas/escalation_policy_path_list' description: success security: - bearer_auth: [] - summary: List Form Sets + summary: List escalation paths tags: - - FormSets + - EscalationPaths x-accepts: - application/vnd.api+json post: - description: Creates a new form_set from provided data - operationId: createFormSet - parameters: [] + description: Creates a new escalation path from provided data + operationId: createEscalationPath + parameters: + - explode: false + in: path + name: escalation_policy_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_form_set' + $ref: '#/components/schemas/new_escalation_policy_path' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 4cfd7bc7-41f0-4875-b4dd-2aaee0f347c3 - type: form_sets - attributes: - name: Test custom form set - slug: test-custom-form-set - is_default: false - forms: - - web_new_incident_form - updated_at: 2026-01-20T09:44:14.392-08:00 - created_at: 2026-01-20T09:44:14.392-08:00 schema: - $ref: '#/components/schemas/form_set_response' - description: form_set created + $ref: '#/components/schemas/escalation_policy_path_response' + description: escalation path created "422": content: application/vnd.api+json: - example: - errors: - - title: Forms are required (at least one) - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates a Form Set + summary: Creates an escalation path tags: - - FormSets + - EscalationPaths x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/form_sets/{id}: + /v1/escalation_paths/{id}: delete: - description: Delete a specific form_set by id - operationId: deleteFormSet + description: Delete a specific escalation path by id + operationId: deleteEscalationPath parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 8e24488c-8f84-4044-a972-80a36f3f0001 - type: form_sets - attributes: - name: Test - slug: test - is_default: false - forms: - - web_new_incident_form - updated_at: 2026-01-20T09:44:15.756-08:00 - created_at: 2026-01-20T09:44:13.023-08:00 schema: - $ref: '#/components/schemas/form_set_response' - description: form_set deleted + $ref: '#/components/schemas/escalation_policy_path_response' + description: escalation path deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a Form Set + summary: Delete an escalation path tags: - - FormSets + - EscalationPaths x-accepts: - application/vnd.api+json get: - description: Retrieves a specific form_set by id - operationId: getFormSet + description: Retrieves a specific escalation path by id + operationId: getEscalationPath parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple + - description: "comma separated if needed. eg: escalation_policy_levels" + explode: true + in: query + name: include + required: false + schema: + enum: + - escalation_policy_levels + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 8e24488c-8f84-4044-a972-80a36f3f0001 - type: form_sets - attributes: - name: Test - slug: test - is_default: false - forms: - - web_new_incident_form - updated_at: 2026-01-20T09:44:13.023-08:00 - created_at: 2026-01-20T09:44:13.023-08:00 schema: - $ref: '#/components/schemas/form_set_response' - description: form_set found by slug + $ref: '#/components/schemas/escalation_policy_path_response' + description: escalation path found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a Form Set + summary: Retrieves an escalation path tags: - - FormSets + - EscalationPaths x-accepts: - application/vnd.api+json put: - description: Update a specific form_set by id - operationId: updateFormSet + description: Update a specific escalation path by id + operationId: updateEscalationPath parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_form_set' + $ref: '#/components/schemas/update_escalation_policy_path' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 8e24488c-8f84-4044-a972-80a36f3f0001 - type: form_sets - attributes: - name: Test update custom form set - slug: test - is_default: false - forms: - - web_new_incident_form - updated_at: 2026-01-20T09:44:15.323-08:00 - created_at: 2026-01-20T09:44:13.023-08:00 schema: - $ref: '#/components/schemas/form_set_response' - description: form_set updated + $ref: '#/components/schemas/escalation_policy_path_response' + description: escalation policy updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a Form Set + summary: Update an escalation path tags: - - FormSets + - EscalationPaths x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/functionalities: + /v1/form_fields/{form_field_id}/options: get: - description: List functionalities - operationId: listFunctionalities + description: List form_field_options + operationId: listFormFieldOptions parameters: + - explode: false + in: path + name: form_field_id + required: true + schema: + type: string + style: simple - explode: true in: query name: include @@ -15060,84 +10029,14 @@ paths: style: form - explode: true in: query - name: "filter[search]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[backstage_id]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[cortex_id]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[opslevel_id]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[external_id]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" + name: "filter[value]" required: false schema: type: string style: form - explode: true in: query - name: sort + name: "filter[color]" required: false schema: type: string @@ -15147,447 +10046,168 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/functionality_list' + $ref: '#/components/schemas/form_field_option_list' description: success security: - bearer_auth: [] - summary: List functionalities + summary: List FormField Options tags: - - Functionalities + - FormFieldOptions x-accepts: - application/vnd.api+json post: - description: Creates a new functionality from provided data - operationId: createFunctionality - parameters: [] + description: Creates a new form_field_option from provided data + operationId: createFormFieldOption + parameters: + - explode: false + in: path + name: form_field_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_functionality' + $ref: '#/components/schemas/new_form_field_option' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 90a2f23d-a9ba-42f0-b4a6-8b5474d12fa1 - type: functionalities - attributes: - name: Add items to cart - slug: add-items-to-cart - description: Users should be able to add items to cart - public_description: Public description - notify_emails: - - john@rootly.com - - doe@rootly.com - color: '#FFF' - status: operational - position: 1 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: - - id: C03MKDSEJE8 - name: elastisearch - slack_aliases: - - id: S03F7QUV7F1 - name: engineering - backstage_id: null - external_id: d795fe69-acc2-4b30-92c9-3c25cbb92056 - opsgenie_id: 8743a1b2-11da-480e-8493-744660987bef - pagerduty_id: PQ9K7I8 - cortex_id: null - opslevel_id: null - service_now_ci_sys_id: null - environment_ids: - - 2df72dd8-41ce-4b6a-a748-8e61f67451ff - service_ids: - - 7d60549c-214b-4eb5-ba96-bb48bf3b74e0 - owner_group_ids: - - a8550c01-093c-44b8-97b3-f515dc5d3191 - owners_group_ids: - - a8550c01-093c-44b8-97b3-f515dc5d3191 - owner_user_ids: - - 334 - owners_user_ids: - - 334 - incidents_count: 0 - created_at: 2026-01-20T09:44:19.228-08:00 - updated_at: 2026-01-20T09:44:19.228-08:00 schema: - $ref: '#/components/schemas/functionality_response' - description: functionality created + $ref: '#/components/schemas/form_field_option_response' + description: form_field_option created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a functionality + summary: Creates FormField Options tags: - - Functionalities + - FormFieldOptions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/functionalities/{id}: + /v1/form_field_options/{id}: delete: - description: Delete a specific functionality by id - operationId: deleteFunctionality + description: Delete a specific form_field_option by id + operationId: deleteFormFieldOption parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: ab09296e-c68f-476b-b776-45c673abc9ae - type: functionalities - attributes: - name: Provident vel enim ut. - slug: provident-vel-enim-ut - description: Facilis iure ducimus repudiandae. - public_description: null - notify_emails: [] - color: '#C5F0C0' - status: partial_outage - position: 1 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: [] - slack_aliases: [] - backstage_id: null - external_id: null - opsgenie_id: null - pagerduty_id: null - cortex_id: null - opslevel_id: null - service_now_ci_sys_id: null - environment_ids: [] - service_ids: [] - owner_group_ids: [] - owners_group_ids: [] - owner_user_ids: [] - owners_user_ids: [] - incidents_count: 1 - created_at: 2026-01-20T09:44:16.926-08:00 - updated_at: 2026-01-20T09:44:20.707-08:00 schema: - $ref: '#/components/schemas/functionality_response' - description: functionality deleted + $ref: '#/components/schemas/form_field_option_response' + description: form_field_option deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a functionality + summary: Delete FormField Options tags: - - Functionalities + - FormFieldOptions x-accepts: - application/vnd.api+json get: - description: Retrieves a specific functionality by id - operationId: getFunctionality + description: Retrieves a specific form_field_option by id + operationId: getFormFieldOption parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: ab09296e-c68f-476b-b776-45c673abc9ae - type: functionalities - attributes: - name: Provident vel enim ut. - slug: provident-vel-enim-ut - description: Facilis iure ducimus repudiandae. - public_description: null - notify_emails: [] - color: '#C5F0C0' - status: partial_outage - position: 1 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: [] - slack_aliases: [] - backstage_id: null - external_id: null - opsgenie_id: null - pagerduty_id: null - cortex_id: null - opslevel_id: null - service_now_ci_sys_id: null - environment_ids: [] - service_ids: [] - owner_group_ids: [] - owners_group_ids: [] - owner_user_ids: [] - owners_user_ids: [] - incidents_count: 1 - created_at: 2026-01-20T09:44:16.926-08:00 - updated_at: 2026-01-20T09:44:17.079-08:00 schema: - $ref: '#/components/schemas/functionality_response' - description: functionality found + $ref: '#/components/schemas/form_field_option_response' + description: form_field_option found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a functionality + summary: Retrieves FormField Options tags: - - Functionalities + - FormFieldOptions x-accepts: - application/vnd.api+json put: - description: Update a specific functionality by id - operationId: updateFunctionality + description: Update a specific form_field_option by id + operationId: updateFormFieldOption parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_functionality' + $ref: '#/components/schemas/update_form_field_option' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: ab09296e-c68f-476b-b776-45c673abc9ae - type: functionalities - attributes: - name: Checkout - slug: provident-vel-enim-ut - description: Users should be able to checkout - public_description: Public description updated - notify_emails: - - hello@rootly.com - - world@rootly.com - color: '#000' - status: partial_outage - position: 2 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: - - id: C03MKDSEJE8 - name: elastisearch - slack_aliases: - - id: S03F7QUV7F1 - name: leadership - backstage_id: null - external_id: 33bfcc62-cc35-46e6-a270-8c52a56fb358 - opsgenie_id: 8743a1b2-11da-480e-8493-744660987bec - pagerduty_id: PQ9K7I9 - cortex_id: null - opslevel_id: null - service_now_ci_sys_id: null - environment_ids: - - 2df72dd8-41ce-4b6a-a748-8e61f67451ff - service_ids: [] - owner_group_ids: [] - owners_group_ids: [] - owner_user_ids: [] - owners_user_ids: [] - incidents_count: 1 - created_at: 2026-01-20T09:44:16.926-08:00 - updated_at: 2026-01-20T09:44:20.300-08:00 schema: - $ref: '#/components/schemas/functionality_response' - description: functionality updated + $ref: '#/components/schemas/form_field_option_response' + description: form_field_option updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a functionality + summary: Update FormField Options tags: - - Functionalities + - FormFieldOptions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/functionalities/{id}/incidents_chart: - get: - description: Get functionality incidents chart - operationId: getFunctionalityIncidentsChart - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - - explode: true - in: query - name: period - required: true - schema: - type: string - style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - "2025-11-21 00:00:00 UTC": 0 - "2025-11-28 00:00:00 UTC": 0 - "2025-12-05 00:00:00 UTC": 0 - "2025-12-12 00:00:00 UTC": 0 - "2025-12-19 00:00:00 UTC": 0 - "2025-12-26 00:00:00 UTC": 0 - "2026-01-02 00:00:00 UTC": 0 - "2026-01-09 00:00:00 UTC": 0 - "2026-01-16 00:00:00 UTC": 1 - schema: - $ref: '#/components/schemas/incidents_chart_response' - description: success - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Get functionality incidents chart - tags: - - Functionalities - x-accepts: - - application/vnd.api+json - /v1/functionalities/{id}/uptime_chart: - get: - description: Get functionality uptime chart - operationId: getFunctionalityUptimeChart - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - - explode: true - in: query - name: period - required: false - schema: - type: string - style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - "2026-01-05": 100.0 - "2026-01-06": 100.0 - "2026-01-07": 100.0 - "2026-01-08": 100.0 - "2026-01-09": 100.0 - "2026-01-10": 100.0 - "2026-01-11": 100.0 - "2026-01-12": 100.0 - "2026-01-13": 100.0 - "2026-01-14": 100.0 - "2026-01-15": 100.0 - "2026-01-16": 100.0 - "2026-01-17": 50.0 - "2026-01-18": 0.0 - "2026-01-19": 100.0 - "2026-01-20": 100.0 - schema: - $ref: '#/components/schemas/uptime_chart_response' - description: success - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Get functionality uptime chart - tags: - - Functionalities - x-accepts: - - application/vnd.api+json - /v1/workflows/{workflow_id}/workflow_tasks: + /v1/form_field_placements/{form_field_placement_id}/conditions: get: - description: List workflow tasks - operationId: listWorkflowTasks + description: List form_field_placement_conditions + operationId: listFormFieldPlacementConditions parameters: - explode: false in: path - name: workflow_id + name: form_field_placement_id required: true schema: type: string @@ -15615,21 +10235,7 @@ paths: style: form - explode: true in: query - name: "filter[search]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[slug]" + name: "filter[form_field_id]" required: false schema: type: string @@ -15639,22 +10245,22 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/workflow_task_list' + $ref: '#/components/schemas/form_field_placement_condition_list' description: success security: - bearer_auth: [] - summary: List workflow tasks + summary: List Form Set Conditions tags: - - WorkflowTasks + - FormFieldPlacementConditions x-accepts: - application/vnd.api+json post: - description: Creates a new workflow task from provided data - operationId: createWorkflowTask + description: Creates a new form_field_placement_condition from provided data + operationId: createFormFieldPlacementCondition parameters: - explode: false in: path - name: workflow_id + name: form_field_placement_id required: true schema: type: string @@ -15663,62 +10269,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_workflow_task' + $ref: '#/components/schemas/new_form_field_placement_condition' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 1d99b852-1020-47f8-a30e-e3357e4aee93 - type: workflow_tasks - attributes: - workflow_id: dadf5aec-1a76-4f30-8f14-a7dea5099976 - task_params: - task_type: send_email - from: Rootly - to: - - test@example.com - cc: [] - bcc: [] - subject: Hello from Rootly - preheader: null - body: Hello from Rootly - include_header: true - include_footer: true - custom_logo_url: null - name: My Custom Name - position: 2 - skip_on_failure: false - enabled: true - created_at: 2026-01-20T09:44:23.356-08:00 - updated_at: 2026-01-20T09:44:23.356-08:00 schema: - $ref: '#/components/schemas/workflow_task_response' - description: workflow task created + $ref: '#/components/schemas/form_field_placement_condition_response' + description: form_field_placement_condition created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a workflow task + summary: Creates a Form Set Condition tags: - - WorkflowTasks + - FormFieldPlacementConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/workflow_tasks/{id}: + /v1/form_field_placement_conditions/{id}: delete: - description: Delete a specific workflow task by id - operationId: deleteWorkflowTask + description: Delete a specific form_field_placement_condition by id + operationId: deleteFormFieldPlacementCondition parameters: - explode: false in: path @@ -15731,54 +10314,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 17ad8ed6-f89b-408c-ab9e-a282ff4e443f - type: workflow_tasks - attributes: - workflow_id: dadf5aec-1a76-4f30-8f14-a7dea5099976 - task_params: - task_type: send_email - from: Rootly - to: - - vel - cc: [] - bcc: [] - subject: Voluptas libero officia delectus. - preheader: null - body: Laudantium dolorem veritatis nam. - include_header: true - include_footer: true - custom_logo_url: null - name: Send an email - position: 1 - skip_on_failure: false - enabled: true - created_at: 2026-01-20T09:44:23.168-08:00 - updated_at: 2026-01-20T09:44:24.391-08:00 schema: - $ref: '#/components/schemas/workflow_task_response' - description: workflow_task deleted + $ref: '#/components/schemas/form_field_placement_condition_response' + description: form_field_placement_condition deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a workflow task + summary: Delete a Form Set Condition tags: - - WorkflowTasks + - FormFieldPlacementConditions x-accepts: - application/vnd.api+json get: - description: Retrieves a specific workflow_task by id - operationId: getWorkflowTask + description: Retrieves a specific form_field_placement_condition by id + operationId: getFormFieldPlacementCondition parameters: - explode: false in: path @@ -15791,54 +10345,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 17ad8ed6-f89b-408c-ab9e-a282ff4e443f - type: workflow_tasks - attributes: - workflow_id: dadf5aec-1a76-4f30-8f14-a7dea5099976 - task_params: - task_type: send_email - from: Rootly - to: - - vel - cc: [] - bcc: [] - subject: Voluptas libero officia delectus. - preheader: null - body: Laudantium dolorem veritatis nam. - include_header: true - include_footer: true - custom_logo_url: null - name: Send an email - position: 1 - skip_on_failure: false - enabled: true - created_at: 2026-01-20T09:44:23.168-08:00 - updated_at: 2026-01-20T09:44:23.168-08:00 schema: - $ref: '#/components/schemas/workflow_task_response' - description: workflow_task found + $ref: '#/components/schemas/form_field_placement_condition_response' + description: form_field_placement_condition found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a workflow task + summary: Retrieves a Form Set Condition tags: - - WorkflowTasks + - FormFieldPlacementConditions x-accepts: - application/vnd.api+json put: - description: Update a specific workflow task by id - operationId: updateWorkflowTask + description: Update a specific form_field_placement_condition by id + operationId: updateFormFieldPlacementCondition parameters: - explode: false in: path @@ -15851,68 +10376,37 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_workflow_task' + $ref: '#/components/schemas/update_form_field_placement_condition' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 17ad8ed6-f89b-408c-ab9e-a282ff4e443f - type: workflow_tasks - attributes: - workflow_id: dadf5aec-1a76-4f30-8f14-a7dea5099976 - task_params: - task_type: send_email - from: Rootly - to: - - vel - cc: [] - bcc: [] - subject: Voluptas libero officia delectus. - preheader: null - body: updated - include_header: true - include_footer: true - custom_logo_url: null - name: Another name - position: 2 - skip_on_failure: true - enabled: false - created_at: 2026-01-20T09:44:23.168-08:00 - updated_at: 2026-01-20T09:44:23.954-08:00 schema: - $ref: '#/components/schemas/workflow_task_response' - description: workflow_task updated + $ref: '#/components/schemas/form_field_placement_condition_response' + description: form_field_placement_condition updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a workflow task + summary: Update a Form Set Condition tags: - - WorkflowTasks + - FormFieldPlacementConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/workflows/{workflow_id}/custom_field_selections: + /v1/form_fields/{form_field_id}/placements: get: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. List workflow custom\ - \ field selections" - operationId: listWorkflowCustomFieldSelections + description: List form_field_placements + operationId: listFormFieldPlacements parameters: - explode: false in: path - name: workflow_id + name: form_field_id required: true schema: type: string @@ -15938,29 +10432,34 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[form_field_id]" + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/workflow_custom_field_selection_list' + $ref: '#/components/schemas/form_field_placement_list' description: success security: - bearer_auth: [] - summary: "[DEPRECATED] List workflow custom field selections" + summary: List Form Field Placements tags: - - "[DEPRECATED] WorkflowCustomFieldSelections" + - FormFieldPlacements x-accepts: - application/vnd.api+json post: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Creates a new workflow\ - \ custom field selection from provided data" - operationId: createWorkflowCustomFieldSelection + description: Creates a new form_field_placement from provided data + operationId: createFormFieldPlacement parameters: - explode: false in: path - name: workflow_id + name: form_field_id required: true schema: type: string @@ -15969,49 +10468,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_workflow_custom_field_selection' + $ref: '#/components/schemas/new_form_field_placement' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: "2" - type: workflow_custom_field_selections - attributes: - custom_field_id: 168 - workflow_id: 1e8a14a6-58f1-4b59-8ecc-3b804ac6eb68 - incident_condition: ANY - values: [] - selected_option_ids: [] schema: - $ref: '#/components/schemas/workflow_custom_field_selection_response' - description: workflow_custom_field_selection created + $ref: '#/components/schemas/form_field_placement_response' + description: form_field_placement created with non_editable true + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: cross-resource placement rejected "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: "[DEPRECATED] Creates a workflow custom field selection" + summary: Creates a Form Field Placement tags: - - "[DEPRECATED] WorkflowCustomFieldSelections" + - FormFieldPlacements x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/workflow_custom_field_selections/{id}: + /v1/form_field_placements/{id}: delete: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ - \ workflow custom field selection by id" - operationId: deleteWorkflowCustomFieldSelection + description: Delete a specific form_field_placement by id + operationId: deleteFormFieldPlacement parameters: - explode: false in: path @@ -16024,41 +10513,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: workflow_custom_field_selections - attributes: - custom_field_id: 167 - workflow_id: 1e8a14a6-58f1-4b59-8ecc-3b804ac6eb68 - incident_condition: ANY - values: [] - selected_option_ids: [] schema: - $ref: '#/components/schemas/workflow_custom_field_selection_response' - description: workflow_custom_field_selection deleted + $ref: '#/components/schemas/form_field_placement_response' + description: form_field_placement deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Delete a workflow custom field selection" + summary: Delete a Form Field Placement tags: - - "[DEPRECATED] WorkflowCustomFieldSelections" + - FormFieldPlacements x-accepts: - application/vnd.api+json get: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Retrieves a specific\ - \ workflow custom field selection by id" - operationId: getWorkflowCustomFieldSelection + description: Retrieves a specific form_field_placement by id + operationId: getFormFieldPlacement parameters: - explode: false in: path @@ -16071,41 +10544,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: workflow_custom_field_selections - attributes: - custom_field_id: 167 - workflow_id: 1e8a14a6-58f1-4b59-8ecc-3b804ac6eb68 - incident_condition: ANY - values: [] - selected_option_ids: [] schema: - $ref: '#/components/schemas/workflow_custom_field_selection_response' - description: workflow_custom_field_selection found + $ref: '#/components/schemas/form_field_placement_response' + description: form_field_placement found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Retrieves a workflow custom field selection" + summary: Retrieves a Form Field Placement tags: - - "[DEPRECATED] WorkflowCustomFieldSelections" + - FormFieldPlacements x-accepts: - application/vnd.api+json put: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ - \ workflow custom field selection by id" - operationId: updateWorkflowCustomFieldSelection + description: Update a specific form_field_placement by id + operationId: updateFormFieldPlacement parameters: - explode: false in: path @@ -16118,51 +10575,43 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_workflow_custom_field_selection' + $ref: '#/components/schemas/update_form_field_placement' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: workflow_custom_field_selections - attributes: - custom_field_id: 167 - workflow_id: 1e8a14a6-58f1-4b59-8ecc-3b804ac6eb68 - incident_condition: IS - values: [] - selected_option_ids: [] schema: - $ref: '#/components/schemas/workflow_custom_field_selection_response' - description: workflow_custom_field_selection updated + $ref: '#/components/schemas/form_field_placement_response' + description: moves a custom field's placement onto an action item form + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: rejects re-pointing a placement at another team's form set "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Update a workflow custom field selection" + summary: Update a Form Field Placement tags: - - "[DEPRECATED] WorkflowCustomFieldSelections" + - FormFieldPlacements x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/workflows/{workflow_id}/form_field_conditions: + /v1/form_fields/{form_field_id}/positions: get: - description: List workflow form field conditions - operationId: listWorkflowFormFieldConditions + description: List form field positions + operationId: listFormFieldPositions parameters: - explode: false in: path - name: workflow_id + name: form_field_id required: true schema: type: string @@ -16188,27 +10637,34 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[form]" + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/workflow_form_field_condition_list' + $ref: '#/components/schemas/form_field_position_list' description: success security: - bearer_auth: [] - summary: List workflow form field conditions + summary: List FormField Position tags: - - WorkflowFormFieldConditions + - FormFieldPositions x-accepts: - application/vnd.api+json post: - description: Creates a new workflow form field condition from provided data - operationId: createWorkflowFormFieldCondition + description: Creates a new form field_position from provided data + operationId: createFormFieldPosition parameters: - explode: false in: path - name: workflow_id + name: form_field_id required: true schema: type: string @@ -16217,52 +10673,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_workflow_form_field_condition' + $ref: '#/components/schemas/new_form_field_position' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: d80c5cc0-fec6-40e6-96cb-c00043007d1d - type: workflow_form_field_conditions - attributes: - workflow_id: 40651ca4-1ae7-4179-9b2c-21754ca0f8d4 - form_field_id: df58988a-cdf7-4caf-9dcb-4f84a97c2fab - incident_condition: ANY - values: [] - selected_group_ids: [] - selected_option_ids: [] - selected_service_ids: [] - selected_functionality_ids: [] - selected_user_ids: [] - selected_catalog_entity_ids: [] schema: - $ref: '#/components/schemas/workflow_form_field_condition_response' - description: workflow_form_field_condition created + $ref: '#/components/schemas/form_field_position_response' + description: form_field_position created on an action item form + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: rejects an action item form when the feature is disabled "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a workflow form field condition + summary: Creates FormField Positions tags: - - WorkflowFormFieldConditions + - FormFieldPositions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/workflow_form_field_conditions/{id}: + /v1/form_field_positions/{id}: delete: - description: Delete a specific workflow form field condition by id - operationId: deleteWorkflowFormFieldCondition + description: Delete a specific form_field position by id + operationId: deleteFormFieldPosition parameters: - explode: false in: path @@ -16275,44 +10718,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 0fa17cf4-2c4f-4539-a53a-fc3145ee9361 - type: workflow_form_field_conditions - attributes: - workflow_id: 40651ca4-1ae7-4179-9b2c-21754ca0f8d4 - form_field_id: 5d4c1b84-4abf-4d92-8aeb-3f2f2248b7a8 - incident_condition: ANY - values: [] - selected_group_ids: [] - selected_option_ids: [] - selected_service_ids: [] - selected_functionality_ids: [] - selected_user_ids: [] - selected_catalog_entity_ids: [] schema: - $ref: '#/components/schemas/workflow_form_field_condition_response' - description: workflow_form_field_condition deleted + $ref: '#/components/schemas/form_field_position_response' + description: form_field_position deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a workflow_form field condition + summary: Delete a FormFieldPosition tags: - - WorkflowFormFieldConditions + - FormFieldPositions x-accepts: - application/vnd.api+json get: - description: Retrieves a specific workflow form field condition by id - operationId: getWorkflowFormFieldCondition + description: Retrieves a specific form field_position by id + operationId: getFormFieldPosition parameters: - explode: false in: path @@ -16325,44 +10749,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 0fa17cf4-2c4f-4539-a53a-fc3145ee9361 - type: workflow_form_field_conditions - attributes: - workflow_id: 40651ca4-1ae7-4179-9b2c-21754ca0f8d4 - form_field_id: 5d4c1b84-4abf-4d92-8aeb-3f2f2248b7a8 - incident_condition: ANY - values: [] - selected_group_ids: [] - selected_option_ids: [] - selected_service_ids: [] - selected_functionality_ids: [] - selected_user_ids: [] - selected_catalog_entity_ids: [] schema: - $ref: '#/components/schemas/workflow_form_field_condition_response' - description: workflow_form_field_condition found + $ref: '#/components/schemas/form_field_position_response' + description: form_field_position found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a workflow form field condition + summary: Retrieves a FormFieldPosition tags: - - WorkflowFormFieldConditions + - FormFieldPositions x-accepts: - application/vnd.api+json put: - description: Update a specific workflow form field condition by id - operationId: updateWorkflowFormFieldCondition + description: Update a specific form_field position by id + operationId: updateFormFieldPosition parameters: - explode: false in: path @@ -16375,58 +10780,49 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_workflow_form_field_condition' + $ref: '#/components/schemas/update_form_field_position' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 0fa17cf4-2c4f-4539-a53a-fc3145ee9361 - type: workflow_form_field_conditions - attributes: - workflow_id: 40651ca4-1ae7-4179-9b2c-21754ca0f8d4 - form_field_id: 5d4c1b84-4abf-4d92-8aeb-3f2f2248b7a8 - incident_condition: IS - values: [] - selected_group_ids: [] - selected_option_ids: [] - selected_service_ids: [] - selected_functionality_ids: [] - selected_user_ids: [] - selected_catalog_entity_ids: [] schema: - $ref: '#/components/schemas/workflow_form_field_condition_response' - description: workflow_form_field_condition updated + $ref: '#/components/schemas/form_field_position_response' + description: form_field_position updated + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: does not error when updating with a nonexistent form_field_id "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a workflow form field condition + summary: Update a FormFieldPosition tags: - - WorkflowFormFieldConditions + - FormFieldPositions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/workflow_groups: + /v1/form_fields: get: - description: List workflow groups - operationId: listWorkflowGroups + description: List form_fields + operationId: listFormFields parameters: - - explode: true + - description: "comma separated if needed. eg: options,positions" + explode: true in: query name: include required: false schema: + enum: + - options + - positions type: string style: form - explode: true @@ -16452,14 +10848,14 @@ paths: style: form - explode: true in: query - name: "filter[name]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[name]" required: false schema: type: string @@ -16473,487 +10869,147 @@ paths: style: form - explode: true in: query - name: "filter[expanded]" + name: "filter[enabled]" required: false schema: type: boolean style: form - explode: true in: query - name: "filter[position]" + name: "filter[created_at][gt]" required: false - schema: - type: integer - style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/workflow_group_list' - description: success - security: - - bearer_auth: [] - summary: List workflow groups - tags: - - WorkflowGroups - x-accepts: - - application/vnd.api+json - post: - description: Creates a new workflow group from provided data - operationId: createWorkflowGroup - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_workflow_group' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: cc0a64a9-71c0-4ae7-9b59-6604c627348a - type: workflow_groups - attributes: - kind: incident - name: Test - description: null - icon: 📁 - slug: test-incident - expanded: true - position: 1 - schema: - $ref: '#/components/schemas/workflow_group_response' - description: workflow group created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Creates a workflow group - tags: - - WorkflowGroups - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/workflow_groups/{id}: - delete: - description: Delete a specific workflow group by id - operationId: deleteWorkflowGroup - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: cf43697d-885f-48df-8a2d-af180be5338c - type: workflow_groups - attributes: - kind: incident - name: Default Workflow Group - description: null - icon: 📁 - slug: default-workflow-group-incident - expanded: true - position: 10 - schema: - $ref: '#/components/schemas/workflow_group_response' - description: workflow group deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a workflow_group - tags: - - WorkflowGroups - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific workflow group by id - operationId: getWorkflowGroup - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: cf43697d-885f-48df-8a2d-af180be5338c - type: workflow_groups - attributes: - kind: incident - name: Default Workflow Group - description: null - icon: 📁 - slug: default-workflow-group-incident - expanded: true - position: 10 - schema: - $ref: '#/components/schemas/workflow_group_response' - description: workflow group found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a workflow group - tags: - - WorkflowGroups - x-accepts: - - application/vnd.api+json - put: - description: Update a specific workflow group by id - operationId: updateWorkflowGroup - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_workflow_group' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: cf43697d-885f-48df-8a2d-af180be5338c - type: workflow_groups - attributes: - kind: incident - name: Test update - description: null - icon: 📁 - slug: default-workflow-group-incident - expanded: true - position: 10 - schema: - $ref: '#/components/schemas/workflow_group_response' - description: workflow group updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a workflow group - tags: - - WorkflowGroups - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/workflows/{workflow_id}/workflow_runs: - get: - description: List workflow runs - operationId: ListWorkflowRuns - parameters: - - explode: false - in: path - name: workflow_id - required: true schema: type: string - style: simple - - description: "comma separated if needed. eg: genius_task_runs" - explode: true + style: form + - explode: true in: query - name: include + name: "filter[created_at][gte]" required: false schema: - enum: - - genius_task_runs type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[created_at][lt]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[created_at][lte]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[slug][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[slug][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[slug][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[slug][not_in]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/workflow_runs_list' - description: success with date filters using gte with timezone - security: - - bearer_auth: [] - summary: List workflow runs - tags: - - WorkflowRuns - x-accepts: - - application/vnd.api+json - post: - description: Creates a new workflow run from provided data - operationId: createWorkflowRun - parameters: - - explode: false - in: path - name: workflow_id - required: true + - explode: true + in: query + name: "filter[name][eq]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_workflow_run' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: e3c9ceb9-bed9-425c-9d89-6363f49624ac - type: workflow_runs - attributes: - kind: incident - status: queued - status_message: null - triggered_by: user - user_id: 344 - queued_at: 2026-01-20T09:44:39.190-08:00 - started_at: null - completed_at: null - failed_at: null - canceled_at: null - updated_at: 2026-01-20T09:44:39.190-08:00 - created_at: 2026-01-20T09:44:39.190-08:00 - incident_id: 1e18d7c1-0ffc-4069-8df0-d8fe19f778b1 - post_mortem_id: null - action_item_id: null - alert_id: null - pulse_id: null - workflow_id: 46a73bd2-22aa-4777-a871-0f853fce9257 - workflow_name: Into the Wild - relationships: - task_runs: - data: [] - schema: - $ref: '#/components/schemas/workflow_run_response' - description: workflow run created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Incident conditions are not satisfied - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: workflow run not created - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a workflow run - tags: - - WorkflowRuns - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/workflows: - get: - description: List workflows - operationId: listWorkflows - parameters: - - description: "comma separated if needed. eg: form_field_conditions,alert_field_conditions" - explode: true + style: form + - explode: true in: query - name: include + name: "filter[name][not_eq]" required: false schema: - enum: - - form_field_conditions - - alert_field_conditions - - genius_tasks - - genius_workflow_runs type: string style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true + - explode: true in: query - name: sort + name: "filter[name][in]" required: false schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at - - position - - -position type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[name][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[kind][eq]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[kind][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[kind][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[kind][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[enabled][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[enabled][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[enabled][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[enabled][not_in]" required: false schema: type: string @@ -16963,150 +11019,57 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/workflow_list' + $ref: '#/components/schemas/form_field_list' description: success security: - bearer_auth: [] - summary: List workflows + summary: List Form Fields tags: - - Workflows + - FormFields x-accepts: - application/vnd.api+json post: - description: Creates a new workflow from provided data - operationId: createWorkflow + description: Creates a new form_field from provided data + operationId: createFormField parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_workflow' + $ref: '#/components/schemas/new_form_field' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 2d55efa8-3023-4241-95da-9bbe7fd768e5 - type: workflows - attributes: - name: Alert Workflow - slug: alert-workflow - description: null - command: alert-alert-workflow - command_feedback_enabled: true - repeat_every_duration: null - repeat_condition_duration_since_first_run: null - repeat_condition_number_of_repeats: 0 - continuously_repeat: false - repeat_on: [] - wait: null - enabled: true - locked: false - position: 1 - workflow_group_id: 0cf4f4f7-5137-4965-a7c4-76319ec3f0d5 - trigger_params: - trigger_type: alert - triggers: - - alert_created - incident_visibilities: [] - incident_kinds: - - normal - incident_statuses: [] - incident_inactivity_duration: null - incident_condition: ALL - incident_condition_visibility: ANY - incident_condition_kind: IS - incident_condition_status: ANY - incident_condition_sub_status: ANY - incident_condition_environment: ANY - incident_condition_severity: ANY - incident_condition_incident_type: ANY - incident_condition_incident_roles: ANY - incident_condition_service: ANY - incident_condition_functionality: ANY - incident_condition_group: ANY - incident_condition_cause: ANY - incident_condition_summary: null - incident_condition_started_at: null - incident_condition_detected_at: null - incident_condition_acknowledged_at: null - incident_condition_mitigated_at: null - incident_condition_resolved_at: null - incident_conditional_inactivity: null - incident_post_mortem_condition_cause: ANY - alert_condition: ALL - alert_condition_source: ANY - alert_condition_source_use_regexp: false - alert_sources: [] - alert_condition_label: ANY - alert_condition_label_use_regexp: false - alert_condition_status: ANY - alert_condition_status_use_regexp: false - alert_statuses: [] - alert_labels: [] - alert_condition_payload: ANY - alert_condition_payload_use_regexp: false - alert_payload: [] - alert_query_payload: null - severity_ids: [] - environment_ids: [] - incident_type_ids: [] - incident_role_ids: [] - service_ids: [] - functionality_ids: [] - group_ids: [] - updated_at: 2026-01-20T09:44:47.663-08:00 - created_at: 2026-01-20T09:44:47.663-08:00 - relationships: - custom_field_selections: - data: [] - workflow_tasks: - data: [] - workflow_runs: - data: [] - alert_field_conditions: - data: - - id: fcaadd5b-2e60-4853-ba82-dc1a07732dd7 - type: workflow_alert_field_conditions - - id: c897b046-3da2-4fb7-a6fd-0aaf42f7b80a - type: workflow_alert_field_conditions schema: - $ref: '#/components/schemas/workflow_response' - description: ignores alert field conditions in create request - "401": + $ref: '#/components/schemas/form_field_response' + description: form_field created with auto_set_by_catalog_property_id + "422": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - "403": + description: form_field creation fails with auto_set_by_catalog_property_id + for catalog fields of different type + "401": content: application/vnd.api+json: - example: - errors: - - title: Unauthorized Action. Only admins can set locked - status: "403" schema: $ref: '#/components/schemas/errors_list' - description: non-admins can't set 'locked' while creating a workflow + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a workflow + summary: Creates a Form Field tags: - - Workflows + - FormFields x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/workflows/{id}: + /v1/form_fields/{id}: delete: - description: Delete a specific workflow by id - operationId: deleteWorkflow + description: Delete a specific form_field by id + operationId: deleteFormField parameters: - explode: false in: path @@ -17119,94 +11082,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: ad4e759a-d959-4df3-b1a5-cebd1ebb66dd - type: workflows - attributes: - name: The Kid - slug: the-kid - description: null - command: null - command_feedback_enabled: true - repeat_every_duration: null - repeat_condition_duration_since_first_run: "" - repeat_condition_number_of_repeats: 0 - continuously_repeat: false - repeat_on: [] - wait: null - enabled: true - locked: true - position: 1 - workflow_group_id: null - trigger_params: - trigger_type: incident - triggers: [] - incident_visibilities: [] - incident_kinds: - - normal - incident_statuses: [] - incident_inactivity_duration: null - incident_condition: ALL - incident_condition_visibility: ANY - incident_condition_kind: IS - incident_condition_status: ANY - incident_condition_sub_status: ANY - incident_condition_environment: ANY - incident_condition_severity: ANY - incident_condition_incident_type: ANY - incident_condition_incident_roles: ANY - incident_condition_service: ANY - incident_condition_functionality: ANY - incident_condition_group: ANY - incident_condition_cause: ANY - incident_condition_summary: null - incident_condition_started_at: null - incident_condition_detected_at: null - incident_condition_acknowledged_at: null - incident_condition_mitigated_at: null - incident_condition_resolved_at: null - incident_conditional_inactivity: null - incident_post_mortem_condition_cause: ANY - severity_ids: [] - environment_ids: [] - incident_type_ids: [] - incident_role_ids: [] - service_ids: [] - functionality_ids: [] - group_ids: [] - updated_at: 2026-01-20T09:44:55.111-08:00 - created_at: 2026-01-20T09:44:54.767-08:00 - relationships: - custom_field_selections: - data: [] - workflow_tasks: - data: [] - workflow_runs: - data: [] schema: - $ref: '#/components/schemas/workflow_response' - description: admin can destroy locked workflow + $ref: '#/components/schemas/form_field_response' + description: form_field deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: non-admin can't destroy locked workflow + description: resource not found security: - bearer_auth: [] - summary: Delete a workflow + summary: Delete a Form Field tags: - - Workflows + - FormFields x-accepts: - application/vnd.api+json get: - description: Retrieves a specific workflow by id - operationId: getWorkflow + description: Retrieves a specific form_field by id + operationId: getFormField parameters: - explode: false in: path @@ -17215,147 +11109,40 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - - description: "comma separated if needed. eg: form_field_conditions,alert_field_conditions" + - description: "comma separated if needed. eg: options,positions" explode: true in: query name: include required: false schema: enum: - - form_field_conditions - - alert_field_conditions - - genius_tasks - - genius_workflow_runs + - options + - positions type: string style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: d1f9a1c9-ec79-4ef6-b744-af411f6edc7e - type: workflows - attributes: - name: To Kill a Mockingbird - slug: to-kill-a-mockingbird - description: null - command: incident-to-kill-a-mockingbird - command_feedback_enabled: true - repeat_every_duration: null - repeat_condition_duration_since_first_run: "" - repeat_condition_number_of_repeats: 0 - continuously_repeat: false - repeat_on: [] - wait: null - enabled: true - locked: false - position: 1 - workflow_group_id: null - trigger_params: - trigger_type: alert - triggers: [] - incident_visibilities: [] - incident_kinds: - - normal - incident_statuses: [] - incident_inactivity_duration: null - incident_condition: ALL - incident_condition_visibility: ANY - incident_condition_kind: IS - incident_condition_status: ANY - incident_condition_sub_status: ANY - incident_condition_environment: ANY - incident_condition_severity: ANY - incident_condition_incident_type: ANY - incident_condition_incident_roles: ANY - incident_condition_service: ANY - incident_condition_functionality: ANY - incident_condition_group: ANY - incident_condition_cause: ANY - incident_condition_summary: null - incident_condition_started_at: null - incident_condition_detected_at: null - incident_condition_acknowledged_at: null - incident_condition_mitigated_at: null - incident_condition_resolved_at: null - incident_conditional_inactivity: null - incident_post_mortem_condition_cause: ANY - alert_condition: ALL - alert_condition_source: ANY - alert_condition_source_use_regexp: false - alert_sources: [] - alert_condition_label: ANY - alert_condition_label_use_regexp: false - alert_condition_status: ANY - alert_condition_status_use_regexp: false - alert_statuses: [] - alert_labels: [] - alert_condition_payload: ANY - alert_condition_payload_use_regexp: false - alert_payload: [] - alert_query_payload: null - severity_ids: [] - environment_ids: [] - incident_type_ids: [] - incident_role_ids: [] - service_ids: [] - functionality_ids: [] - group_ids: [] - updated_at: 2026-01-20T09:44:49.759-08:00 - created_at: 2026-01-20T09:44:49.530-08:00 - relationships: - custom_field_selections: - data: [] - workflow_tasks: - data: [] - workflow_runs: - data: [] - alert_field_conditions: - data: - - id: 67845c73-5016-4f90-b82b-438f099bd8bd - type: workflow_alert_field_conditions - - id: da23ffdd-0a58-4790-a25d-a6d1e0e092e3 - type: workflow_alert_field_conditions - included: - - id: 67845c73-5016-4f90-b82b-438f099bd8bd - type: workflow_alert_field_conditions - attributes: - alert_field_id: 059ecbe9-af33-4827-8bdc-a922bd55a23d - condition_type: IS - values: - - staging - - id: da23ffdd-0a58-4790-a25d-a6d1e0e092e3 - type: workflow_alert_field_conditions - attributes: - alert_field_id: 059ecbe9-af33-4827-8bdc-a922bd55a23d - condition_type: ANY - values: - - test - - dev schema: - $ref: '#/components/schemas/workflow_response' - description: does not serialize alert field conditions + $ref: '#/components/schemas/form_field_response' + description: form_field found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a workflow + summary: Retrieves a Form Field tags: - - Workflows + - FormFields x-accepts: - application/vnd.api+json put: - description: Update a specific workflow by id - operationId: updateWorkflow + description: Update a specific form_field by id + operationId: updateFormField parameters: - explode: false in: path @@ -17368,165 +11155,41 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_workflow' + $ref: '#/components/schemas/update_form_field' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: c8b721ac-03c4-4bb6-8848-0f985616ba61 - type: workflows - attributes: - name: Alert Workflow with Status - slug: alert-workflow-with-status - description: null - command: alert-million-dollar-baby - command_feedback_enabled: true - repeat_every_duration: null - repeat_condition_duration_since_first_run: null - repeat_condition_number_of_repeats: 0 - continuously_repeat: false - repeat_on: [] - wait: null - enabled: true - locked: false - position: 11 - workflow_group_id: null - trigger_params: - trigger_type: alert - triggers: [] - incident_visibilities: [] - incident_kinds: - - normal - incident_statuses: [] - incident_inactivity_duration: null - incident_condition: ALL - incident_condition_visibility: ANY - incident_condition_kind: IS - incident_condition_status: ANY - incident_condition_sub_status: ANY - incident_condition_environment: ANY - incident_condition_severity: ANY - incident_condition_incident_type: ANY - incident_condition_incident_roles: ANY - incident_condition_service: ANY - incident_condition_functionality: ANY - incident_condition_group: ANY - incident_condition_cause: ANY - incident_condition_summary: null - incident_condition_started_at: null - incident_condition_detected_at: null - incident_condition_acknowledged_at: null - incident_condition_mitigated_at: null - incident_condition_resolved_at: null - incident_conditional_inactivity: null - incident_post_mortem_condition_cause: ANY - alert_condition: ALL - alert_condition_source: ANY - alert_condition_source_use_regexp: false - alert_sources: [] - alert_condition_label: ANY - alert_condition_label_use_regexp: false - alert_condition_status: null - alert_condition_status_use_regexp: false - alert_statuses: [] - alert_labels: [] - alert_condition_payload: ANY - alert_condition_payload_use_regexp: false - alert_payload: [] - alert_query_payload: null - severity_ids: [] - environment_ids: [] - incident_type_ids: [] - incident_role_ids: [] - service_ids: [] - functionality_ids: [] - group_ids: [] - updated_at: 2026-01-20T09:44:52.504-08:00 - created_at: 2026-01-20T09:44:52.367-08:00 - relationships: - custom_field_selections: - data: [] - workflow_tasks: - data: [] - workflow_runs: - data: [] - alert_field_conditions: - data: - - id: b0c449c5-93a8-4fa6-a4c4-fde837e5ce73 - type: workflow_alert_field_conditions - - id: 4c370b0d-3618-4a2c-8689-5b6fdd060cb7 - type: workflow_alert_field_conditions schema: - $ref: '#/components/schemas/workflow_response' - description: can set and clear alert workflow status conditions + $ref: '#/components/schemas/form_field_response' + description: form_field updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: non-admin can't update locked workflow - "403": - content: - application/vnd.api+json: - example: - errors: - - title: Unauthorized Action. Only admins can set locked - status: "403" schema: $ref: '#/components/schemas/errors_list' - description: non-admin can't update 'locked' attribute + description: resource not found security: - bearer_auth: [] - summary: Update a workflow + summary: Update a Form Field tags: - - Workflows + - FormFields x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/heartbeats/{heartbeat_id}/ping: - post: - description: Ping a specific heartbeat by id - operationId: pingHeartbeat + /v1/form_sets/{form_set_id}/conditions: + get: + description: List form_set_conditions + operationId: listFormSetConditions parameters: - explode: false in: path - name: heartbeat_id + name: form_set_id required: true schema: type: string style: simple - responses: - "204": - description: create ping - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Ping a heartbeat - tags: - - Heartbeats - x-accepts: - - application/vnd.api+json - /v1/heartbeats: - get: - description: List heartbeats - operationId: listHeartbeats - parameters: - explode: true in: query name: include @@ -17550,49 +11213,7 @@ paths: style: form - explode: true in: query - name: "filter[search]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" + name: "filter[form_field_id]" required: false schema: type: string @@ -17602,291 +11223,165 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/heartbeat_list' - description: filter by name + $ref: '#/components/schemas/form_set_condition_list' + description: success security: - bearer_auth: [] - summary: List heartbeats + summary: List Form Set Conditions tags: - - Heartbeats + - FormSetConditions x-accepts: - application/vnd.api+json post: - description: Creates a new heartbeat from provided data - operationId: createHeartbeat - parameters: [] + description: Creates a new form_set_condition from provided data + operationId: createFormSetCondition + parameters: + - explode: false + in: path + name: form_set_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_heartbeat' + $ref: '#/components/schemas/new_form_set_condition' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: c80a5fa7-7c66-429b-9099-909e585fc9ea - type: heartbeats - attributes: - slug: api - name: API - description: This is a description - alert_summary: API is down - alert_description: Check the API logs and runbook at /docs/api-troubleshooting - alert_urgency_id: 9909a4b0-7e68-456c-bb56-3c4db6418131 - interval: 1 - interval_unit: minutes - notification_target_id: "416" - notification_target_type: User - ping_url: http://localhost:3001/v1/heartbeats/c80a5fa7-7c66-429b-9099-909e585fc9ea/ping - secret: heartbeat_131baecf31eeed8638fd5232ab5809dfc71d8037fae72e4f5ba164ea64229587 - email_address: heartbeat-60faa462c290a08115e2bd2ef542c03c@test.email.rootly.com - last_pinged_at: null - expires_at: null - enabled: false - status: waiting - updated_at: 2026-01-20T09:45:09.447-08:00 - created_at: 2026-01-20T09:45:09.447-08:00 schema: - $ref: '#/components/schemas/heartbeat_response' - description: heartbeat created + $ref: '#/components/schemas/form_set_condition_response' + description: form_set_condition created "422": content: application/vnd.api+json: - example: - errors: - - title: Interval must be greater than or equal to 60 - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: interval less than 60 seconds + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a heartbeat + summary: Creates a Form Set Condition tags: - - Heartbeats + - FormSetConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/heartbeats/{id}: + /v1/form_set_conditions/{id}: delete: - description: Delete a specific heartbeat by id - operationId: deleteHeartbeat + description: Delete a specific form_set_condition by id + operationId: deleteFormSetCondition parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 0edc9876-1241-4fa4-89be-807ed03c1b17 - type: heartbeats - attributes: - slug: dolore-sed-cupiditate-molestiae - name: Dolore sed cupiditate molestiae. - description: At laboriosam voluptatibus incidunt. - alert_summary: API is down - alert_description: null - alert_urgency_id: 046a3d7b-c92b-4916-a70e-cbd40ce168b5 - interval: 1 - interval_unit: minutes - notification_target_id: "418" - notification_target_type: User - ping_url: http://localhost:3001/v1/heartbeats/0edc9876-1241-4fa4-89be-807ed03c1b17/ping - secret: heartbeat_77a54159097758a8cc99a3131690275b6be7a3fdc0cac14c79e839b3f7cac385 - email_address: heartbeat-c2a8696d0a4b58ca181b90e8837f68cc@test.email.rootly.com - last_pinged_at: null - expires_at: null - enabled: false - status: waiting - updated_at: 2026-01-20T09:45:10.818-08:00 - created_at: 2026-01-20T09:45:05.136-08:00 schema: - $ref: '#/components/schemas/heartbeat_response' - description: heartbeat deleted + $ref: '#/components/schemas/form_set_condition_response' + description: form_set_condition deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a heartbeat + summary: Delete a Form Set Condition tags: - - Heartbeats + - FormSetConditions x-accepts: - application/vnd.api+json get: - description: Retrieves a specific heartbeat by id - operationId: getHeartbeat + description: Retrieves a specific form_set_condition by id + operationId: getFormSetCondition parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 0edc9876-1241-4fa4-89be-807ed03c1b17 - type: heartbeats - attributes: - slug: dolore-sed-cupiditate-molestiae - name: Dolore sed cupiditate molestiae. - description: At laboriosam voluptatibus incidunt. - alert_summary: API is down - alert_description: null - alert_urgency_id: 046a3d7b-c92b-4916-a70e-cbd40ce168b5 - interval: 1 - interval_unit: minutes - notification_target_id: "418" - notification_target_type: User - ping_url: http://localhost:3001/v1/heartbeats/0edc9876-1241-4fa4-89be-807ed03c1b17/ping - secret: heartbeat_77a54159097758a8cc99a3131690275b6be7a3fdc0cac14c79e839b3f7cac385 - email_address: heartbeat-c2a8696d0a4b58ca181b90e8837f68cc@test.email.rootly.com - last_pinged_at: null - expires_at: null - enabled: false - status: waiting - updated_at: 2026-01-20T09:45:05.136-08:00 - created_at: 2026-01-20T09:45:05.136-08:00 schema: - $ref: '#/components/schemas/heartbeat_response' - description: heartbeat found by slug + $ref: '#/components/schemas/form_set_condition_response' + description: form_set_condition found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a heartbeat + summary: Retrieves a Form Set Condition tags: - - Heartbeats + - FormSetConditions x-accepts: - application/vnd.api+json put: - description: Update a specific heartbeat by id - operationId: updateHeartbeat + description: Update a specific form_set_condition by id + operationId: updateFormSetCondition parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_heartbeat' + $ref: '#/components/schemas/update_form_set_condition' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 0edc9876-1241-4fa4-89be-807ed03c1b17 - type: heartbeats - attributes: - slug: dolore-sed-cupiditate-molestiae - name: api.rootly.com - description: This is a description - alert_summary: API is down - alert_description: "Updated runbook: Check /docs/updated-troubleshooting" - alert_urgency_id: 9909a4b0-7e68-456c-bb56-3c4db6418131 - interval: 10 - interval_unit: minutes - notification_target_id: "418" - notification_target_type: User - ping_url: http://localhost:3001/v1/heartbeats/0edc9876-1241-4fa4-89be-807ed03c1b17/ping - secret: heartbeat_77a54159097758a8cc99a3131690275b6be7a3fdc0cac14c79e839b3f7cac385 - email_address: heartbeat-c2a8696d0a4b58ca181b90e8837f68cc@test.email.rootly.com - last_pinged_at: null - expires_at: null - enabled: false - status: waiting - updated_at: 2026-01-20T09:45:10.488-08:00 - created_at: 2026-01-20T09:45:05.136-08:00 schema: - $ref: '#/components/schemas/heartbeat_response' - description: heartbeat updated + $ref: '#/components/schemas/form_set_condition_response' + description: form_set_condition updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Interval unit is not included in the list - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid enum value security: - bearer_auth: [] - summary: Update a heartbeat + summary: Update a Form Set Condition tags: - - Heartbeats + - FormSetConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{incident_id}/action_items: + /v1/form_sets: get: - description: List incident action items - operationId: listIncidentActionItems + description: List form_sets + operationId: listFormSets parameters: - - explode: false - in: path - name: incident_id - required: true - schema: - type: string - style: simple - explode: true in: query name: include @@ -17908,766 +11403,204 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[is_default]" + required: false + schema: + type: boolean + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_action_item_list' + $ref: '#/components/schemas/form_set_list' description: success security: - bearer_auth: [] - summary: List incident action items + summary: List Form Sets tags: - - IncidentActionItems + - FormSets x-accepts: - application/vnd.api+json post: - description: Creates a new action item from provided data - operationId: createIncidentActionItem - parameters: - - explode: false - in: path - name: incident_id - required: true - schema: - type: string - style: simple + description: Creates a new form_set from provided data + operationId: createFormSet + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_action_item' + $ref: '#/components/schemas/new_form_set' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: cf1d6beb-93f7-4d43-a9ca-b2f73e4e57d5 - type: incident_action_items - attributes: - incident_id: 51220f8d-ac8b-4d60-82e4-33a08498ae2a - incident_title: Unde aut velit sint. - description: New action item description - assigned_to: - id: 434 - ability_cache: - team_ids: - - 275 - administrating_team_ids: [] - accept_marketing: true - accept_terms: true - created_at: 2026-01-20T09:45:11.233-08:00 - created_through_sso: false - current_team_id: 275 - deleted_at: null - email: arlette_huels@medhurst.test - external_id: null - first_name: Chieko - has_impersonate_write_permission: false - how_did_you_hear_about_us: null - incidents_backfilled_count: 0 - incidents_count: 0 - incidents_example_count: 0 - incidents_normal_count: 0 - incidents_scheduled_count: 0 - incidents_test_count: 0 - is_super_admin: false - jti: dbae8d72-de6d-4461-b825-49b0cce7e4cb - last_name: Wisozk - last_notification_email_sent_at: null - last_seen_at: null - locale: en - onboarding_completed: true - opsgenie_id: null - pagerduty_id: null - profile_photo_id: null - push_notification_new_alert_sound: default - push_notification_new_alert_volume: 1.0 - push_notification_shift_coverage_sound: soft_bloob - push_notification_shift_ends_sound: soft_bloob - push_notification_shift_starts_sound: soft_bloob - scim_uid: null - service_user: false - session_token: null - skip_tutorial: false - teams_count: 1 - theme: light_v2 - time_zone: UTC - updated_at: 2026-01-20T09:45:14.428-08:00 - victor_ops_id: null - view_multiple_schedules: true - assigned_to_group_ids: - - 703226ae-7328-416a-954e-18f711fcd37a - - 46ab84c3-0469-4c3d-b75a-199bf28f924d - kind: task - priority: medium - status: open - due_date: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - url: https://test.rootly.com/account/incidents/unde-aut-velit-sint#nav-action-items - short_url: null - created_by: - data: - id: "434" - type: users - attributes: - name: Chieko Wisozk - email: arlette_huels@medhurst.test - phone: null - phone_2: null - first_name: Chieko - last_name: Wisozk - full_name: Chieko Wisozk - full_name_with_team: "[Huels, Leuschke and Powlowski] Chieko\ - \ Wisozk" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:45:14.428-08:00 - created_at: 2026-01-20T09:45:11.233-08:00 - relationships: - email_addresses: - data: - - id: 5eb7de0f-db63-408e-b437-a05701d9262c - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 39e9a90a-68c1-491b-9ecf-f91120d21ebc - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:45:11.410-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: e11ba4c3-ff10-4dd5-8274-2a1b42bbae00 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 275 - updated_at: 2026-01-20T09:45:11.410-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bba05e1d-0f72-40e3-ba40-0eae4c849e96 - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:45:11.428-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 275 - updated_at: 2026-01-20T09:45:11.428-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 8f1fb959-c472-466b-ab9e-221d7a7204b3 - type: user_notification_rules - - id: f0a8d7ec-5750-4fb1-918f-fe1c43145bb5 - type: user_notification_rules - created_at: 2026-01-20T09:45:14.522-08:00 - updated_at: 2026-01-20T09:45:14.522-08:00 - summary: New action item summary schema: - $ref: '#/components/schemas/incident_action_item_response' - description: incident_action_item created + $ref: '#/components/schemas/form_set_response' + description: form_set created "422": content: application/vnd.api+json: - example: - errors: - - title: Summary can't be blank - status: "422" - - title: Summary raw can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident action item + summary: Creates a Form Set tags: - - IncidentActionItems + - FormSets x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/action_items/{id}: + /v1/form_sets/{id}: delete: - description: Delete a specific incident action item by id - operationId: deleteIncidentActionItem + description: Delete a specific form_set by id + operationId: deleteFormSet parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 12800d54-dbc1-48dc-801d-7753953cadc4 - type: incident_action_items - attributes: - incident_id: 51220f8d-ac8b-4d60-82e4-33a08498ae2a - incident_title: Unde aut velit sint. - description: shabby chic wolf locavore pickled twee poke. YOLO - godard health goth pork belly cold-pressed swag - assigned_to: null - assigned_to_group_ids: [] - kind: follow_up - priority: medium - status: open - due_date: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - url: https://test.rootly.com/account/incidents/unde-aut-velit-sint#nav-action-items - short_url: null - created_by: - data: - id: "447" - type: users - attributes: - name: Alec Smitham - email: wan@stiedemann-crona.test - phone: null - phone_2: null - first_name: Alec - last_name: Smitham - full_name: Alec Smitham - full_name_with_team: Alec Smitham - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:45:13.893-08:00 - created_at: 2026-01-20T09:45:13.893-08:00 - relationships: - email_addresses: - data: - - id: 5fb34630-b379-4c26-b7aa-9a41f513574e - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: null - on_call_role: - data: null - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: e07ca4bb-83b9-4b0b-910a-93c9b74611da - type: user_notification_rules - - id: 233a93e7-d688-4882-9a49-170a8a137301 - type: user_notification_rules - created_at: 2026-01-20T09:45:13.958-08:00 - updated_at: 2026-01-20T09:45:16.176-08:00 - summary: shabby chic wolf locavore pickled twee poke. YOLO godard - health goth pork belly cold-pressed swag schema: - $ref: '#/components/schemas/incident_action_item_response' - description: incident_action_item deleted + $ref: '#/components/schemas/form_set_response' + description: form_set deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident action item + summary: Delete a Form Set tags: - - IncidentActionItems + - FormSets x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_action_item by id - operationId: getIncidentActionItems + description: Retrieves a specific form_set by id + operationId: getFormSet parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 12800d54-dbc1-48dc-801d-7753953cadc4 - type: incident_action_items - attributes: - incident_id: 51220f8d-ac8b-4d60-82e4-33a08498ae2a - incident_title: Unde aut velit sint. - description: shabby chic wolf locavore pickled twee poke. YOLO - godard health goth pork belly cold-pressed swag - assigned_to: null - assigned_to_group_ids: [] - kind: follow_up - priority: medium - status: open - due_date: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - url: https://test.rootly.com/account/incidents/unde-aut-velit-sint#nav-action-items - short_url: null - created_by: - data: - id: "447" - type: users - attributes: - name: Alec Smitham - email: wan@stiedemann-crona.test - phone: null - phone_2: null - first_name: Alec - last_name: Smitham - full_name: Alec Smitham - full_name_with_team: Alec Smitham - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:45:13.893-08:00 - created_at: 2026-01-20T09:45:13.893-08:00 - relationships: - email_addresses: - data: - - id: 5fb34630-b379-4c26-b7aa-9a41f513574e - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: null - on_call_role: - data: null - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: e07ca4bb-83b9-4b0b-910a-93c9b74611da - type: user_notification_rules - - id: 233a93e7-d688-4882-9a49-170a8a137301 - type: user_notification_rules - created_at: 2026-01-20T09:45:13.958-08:00 - updated_at: 2026-01-20T09:45:13.958-08:00 - summary: shabby chic wolf locavore pickled twee poke. YOLO godard - health goth pork belly cold-pressed swag schema: - $ref: '#/components/schemas/incident_action_item_response' - description: incident_action_item found + $ref: '#/components/schemas/form_set_response' + description: form_set found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident action item + summary: Retrieves a Form Set tags: - - IncidentActionItems + - FormSets x-accepts: - application/vnd.api+json put: - description: Update a specific incident action item by id - operationId: updateIncidentActionItem + description: Update a specific form_set by id + operationId: updateFormSet parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_action_item' + $ref: '#/components/schemas/update_form_set' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 12800d54-dbc1-48dc-801d-7753953cadc4 - type: incident_action_items - attributes: - incident_id: 51220f8d-ac8b-4d60-82e4-33a08498ae2a - incident_title: Unde aut velit sint. - description: Action item description updated - assigned_to: null - assigned_to_group_ids: [] - kind: follow_up - priority: medium - status: open - due_date: null - jira_issue_id: null - jira_issue_key: null - jira_issue_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - url: https://test.rootly.com/account/incidents/unde-aut-velit-sint#nav-action-items - short_url: null - created_by: - data: - id: "447" - type: users - attributes: - name: Alec Smitham - email: wan@stiedemann-crona.test - phone: null - phone_2: null - first_name: Alec - last_name: Smitham - full_name: Alec Smitham - full_name_with_team: Alec Smitham - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:45:13.893-08:00 - created_at: 2026-01-20T09:45:13.893-08:00 - relationships: - email_addresses: - data: - - id: 5fb34630-b379-4c26-b7aa-9a41f513574e - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: null - on_call_role: - data: null - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: e07ca4bb-83b9-4b0b-910a-93c9b74611da - type: user_notification_rules - - id: 233a93e7-d688-4882-9a49-170a8a137301 - type: user_notification_rules - created_at: 2026-01-20T09:45:13.958-08:00 - updated_at: 2026-01-20T09:45:15.543-08:00 - summary: Action item summary updated schema: - $ref: '#/components/schemas/incident_action_item_response' - description: incident_action_item updated + $ref: '#/components/schemas/form_set_response' + description: form_set updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident action item + summary: Update a Form Set tags: - - IncidentActionItems + - FormSets x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/action_items: + /v1/functionalities: get: - description: List all action items for an organization - operationId: listAllIncidentActionItems + description: List functionalities + operationId: listFunctionalities parameters: - explode: true in: query @@ -18692,650 +11625,608 @@ paths: style: form - explode: true in: query - name: "filter[kind]" + name: "filter[search]" required: false schema: type: string style: form - explode: true in: query - name: "filter[priority]" + name: "filter[name]" required: false schema: type: string style: form - explode: true in: query - name: "filter[status]" + name: "filter[backstage_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[incident_status]" + name: "filter[cortex_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[incident_created_at][gt]" + name: "filter[opslevel_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[incident_created_at][gte]" + name: "filter[external_id]" required: false schema: type: string style: form - explode: true in: query - name: "filter[incident_created_at][lt]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[incident_created_at][lte]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[due_date][gt]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[due_date][gte]" + name: "filter[created_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[due_date][lt]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[due_date][lte]" + name: "filter[name][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[name][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[name][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[name][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[slug][eq]" required: false schema: type: string style: form - explode: true in: query - name: sort + name: "filter[slug][not_eq]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/incident_action_item_list' - description: success - security: - - bearer_auth: [] - summary: List all action items for an organization - tags: - - IncidentActionItems - x-accepts: - - application/vnd.api+json - /v1/incidents/{incident_id}/custom_field_selections: - get: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. List incident custom\ - \ field selections" - operationId: listIncidentCustomFieldSelections - parameters: - - explode: false - in: path - name: incident_id - required: true - schema: - type: string - style: simple - explode: true in: query - name: include + name: "filter[slug][in]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[slug][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: sort required: false schema: - type: integer + type: string style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_custom_field_selection_list' + $ref: '#/components/schemas/functionality_list' description: success security: - bearer_auth: [] - summary: "[DEPRECATED] List incident custom field selections" + summary: List functionalities tags: - - "[DEPRECATED] IncidentCustomFieldSelections" + - Functionalities x-accepts: - application/vnd.api+json post: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Creates a new incident\ - \ custom field selection from provided data" - operationId: createIncidentCustomFieldSelection - parameters: - - explode: false - in: path - name: incident_id - required: true - schema: - type: string - style: simple + description: Creates a new functionality from provided data + operationId: createFunctionality + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_custom_field_selection' + $ref: '#/components/schemas/new_functionality' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: "2" - type: incident_custom_field_selections - attributes: - custom_field_id: 174 - incident_id: 463b7ffa-2b6a-4446-a94c-109c7c7369d6 - value: Test custom field - selected_option_ids: [] schema: - $ref: '#/components/schemas/incident_custom_field_selection_response' - description: incident_custom_field_selection created + $ref: '#/components/schemas/functionality_response' + description: functionality created "422": content: application/vnd.api+json: - example: - errors: - - title: "requires either value or at least one selected option, group,\ - \ service, or user" - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: "[DEPRECATED] Creates an incident custom field selection" + summary: Creates a functionality tags: - - "[DEPRECATED] IncidentCustomFieldSelections" + - Functionalities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_custom_field_selections/{id}: + /v1/functionalities/{id}: delete: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ - \ incident custom field selection by id" - operationId: deleteIncidentCustomFieldSelection + description: Delete a specific functionality by id + operationId: deleteFunctionality parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: incident_custom_field_selections - attributes: - custom_field_id: 173 - incident_id: 463b7ffa-2b6a-4446-a94c-109c7c7369d6 - value: Nesciunt impedit laborum sit. - selected_option_ids: [] schema: - $ref: '#/components/schemas/incident_custom_field_selection_response' - description: incident_custom_field_selection deleted + $ref: '#/components/schemas/functionality_response' + description: functionality deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Delete an incident custom field selection" + summary: Delete a functionality tags: - - "[DEPRECATED] IncidentCustomFieldSelections" + - Functionalities x-accepts: - application/vnd.api+json get: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Retrieves a specific\ - \ incident custom field selection by id" - operationId: getIncidentCustomFieldSelection + description: Retrieves a specific functionality by id + operationId: getFunctionality parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: incident_custom_field_selections - attributes: - custom_field_id: 173 - incident_id: 463b7ffa-2b6a-4446-a94c-109c7c7369d6 - value: Nesciunt impedit laborum sit. - selected_option_ids: [] schema: - $ref: '#/components/schemas/incident_custom_field_selection_response' - description: incident_custom_field_selection found + $ref: '#/components/schemas/functionality_response' + description: functionality found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Retrieves an incident custom field selection" + summary: Retrieves a functionality tags: - - "[DEPRECATED] IncidentCustomFieldSelections" + - Functionalities x-accepts: - application/vnd.api+json put: - deprecated: true - description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ - \ incident custom field selection by id" - operationId: updateIncidentCustomFieldSelection + description: Update a specific functionality by id + operationId: updateFunctionality parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_custom_field_selection' + $ref: '#/components/schemas/update_functionality' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: "1" - type: incident_custom_field_selections - attributes: - custom_field_id: 173 - incident_id: 463b7ffa-2b6a-4446-a94c-109c7c7369d6 - value: Test update custom field - selected_option_ids: [] schema: - $ref: '#/components/schemas/incident_custom_field_selection_response' - description: incident_custom_field_selection updated + $ref: '#/components/schemas/functionality_response' + description: functionality updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: "[DEPRECATED] Update an incident custom field selection" + summary: Update a functionality tags: - - "[DEPRECATED] IncidentCustomFieldSelections" + - Functionalities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/events/{incident_event_id}/functionalities: + /v1/functionalities/{id}/incidents_chart: get: - description: List incident event functionalities - operationId: listIncidentEventFunctionalities + description: Get functionality incidents chart + operationId: getFunctionalityIncidentsChart parameters: - explode: false in: path - name: incident_event_id + name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - explode: true in: query - name: include - required: false + name: period + required: true schema: type: string style: form - - explode: true - in: query - name: "page[number]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_event_functionality_list' + $ref: '#/components/schemas/incidents_chart_response' description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: List incident event functionalities + summary: Get functionality incidents chart tags: - - IncidentEventFunctionalities + - Functionalities x-accepts: - application/vnd.api+json - post: - description: Creates a new event functionality from provided data - operationId: createIncidentEventFunctionality + /v1/functionalities/{id}/uptime_chart: + get: + description: Get functionality uptime chart + operationId: getFunctionalityUptimeChart parameters: - explode: false in: path - name: incident_event_id + name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_incident_event_functionality' - required: true + - explode: true + in: query + name: period + required: false + schema: + type: string + style: form responses: - "201": + "200": content: application/vnd.api+json: - example: - data: - id: 8323c1b0-c861-4b68-bdc6-8b37cb5bfbbb - type: incident_event_functionalities - attributes: - incident_event_id: bca6fd90-cb5c-48cb-b625-64522275218d - functionality_id: 2bb35eb2-f8fb-4ee2-a4c4-094ec0ab20d1 - status: partial_outage schema: - $ref: '#/components/schemas/incident_event_functionality_response' - description: incident_event_functionality created - "422": + $ref: '#/components/schemas/uptime_chart_response' + description: success + "404": content: application/vnd.api+json: - example: - errors: - - title: Functionality must exist - status: "422" - - title: Functionality can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates an incident event functionality + summary: Get functionality uptime chart tags: - - IncidentEventFunctionalities - x-content-type: application/vnd.api+json + - Functionalities x-accepts: - application/vnd.api+json - /v1/incident_event_functionalities/{id}: - delete: - description: Delete a specific incident event functionality by id - operationId: deleteIncidentEventFunctionality + /v1/functionalities/properties: + get: + description: List Functionality Catalog Properties + operationId: listFunctionalityCatalogProperties parameters: - - explode: false - in: path - name: id - required: true + - description: "comma separated if needed. eg: catalog" + explode: true + in: query + name: include + required: false schema: + enum: + - catalog type: string - style: simple + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 73f29715-e032-4e07-90d6-2d637affe1c5 - type: incident_event_functionalities - attributes: - incident_event_id: bca6fd90-cb5c-48cb-b625-64522275218d - functionality_id: 46c5ea98-5d72-496b-b65e-83c7a58fceb0 - status: partial_outage schema: - $ref: '#/components/schemas/incident_event_functionality_response' - description: incident_event deleted - "404": + $ref: '#/components/schemas/catalog_property_list' + description: success + security: + - bearer_auth: [] + summary: List Catalog Properties + tags: + - Functionalities + x-accepts: + - application/vnd.api+json + post: + description: Creates a new Catalog Property from provided data + operationId: createFunctionalityCatalogProperty + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_catalog_property' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/catalog_property_response' + description: catalog_property created ignores wrong catalog_type attribute + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: exceeds max fields per catalog + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Delete an incident event functionality + summary: Creates a Catalog Property tags: - - IncidentEventFunctionalities + - Functionalities + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - get: - description: Retrieves a specific incident_event_functionality by id - operationId: getIncidentEventFunctionalities - parameters: - - explode: false - in: path - name: id + /v1/functionalities/bulk_upsert: + post: + description: "Create or update multiple functionalities by external_id. Only\ + \ attributes present in the payload are written (managed-fields semantics).\ + \ Transactional: all succeed or all fail. Requires an API key with both create\ + \ and update capability across the resource scope (team/org-scoped); record-scoped\ + \ principals cannot use this endpoint (they receive 404), which also prevents\ + \ the create-vs-update branch from leaking whether an external_id exists." + operationId: bulkUpsertFunctionalities + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_upsert_functionalities' required: true - schema: - type: string - style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 73f29715-e032-4e07-90d6-2d637affe1c5 - type: incident_event_functionalities - attributes: - incident_event_id: bca6fd90-cb5c-48cb-b625-64522275218d - functionality_id: 46c5ea98-5d72-496b-b65e-83c7a58fceb0 - status: partial_outage schema: - $ref: '#/components/schemas/incident_event_functionality_response' - description: incident_event_functionality found - "404": + $ref: '#/components/schemas/bulk_upsert_functionalities_response' + description: records upserted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkUpsertFunctionalities_422_response' + description: validation or record-level error + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: unauthorized security: - bearer_auth: [] - summary: Retrieves an incident event functionality + summary: Bulk upsert Functionalities tags: - - IncidentEventFunctionalities + - Functionalities + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - put: - description: Update a specific incident event functionality by id - operationId: updateIncidentEventFunctionality - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple + /v1/functionalities/bulk_delete: + post: + description: "Delete functionalities by external_id list, or prune by managed_by\ + \ source. Two mutually exclusive modes." + operationId: bulkDeleteFunctionalities + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_event_functionality' + $ref: '#/components/schemas/bulk_destroy_functionalities' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 73f29715-e032-4e07-90d6-2d637affe1c5 - type: incident_event_functionalities - attributes: - incident_event_id: bca6fd90-cb5c-48cb-b625-64522275218d - functionality_id: 46c5ea98-5d72-496b-b65e-83c7a58fceb0 - status: major_outage schema: - $ref: '#/components/schemas/incident_event_functionality_response' - description: incident_event_functionality updated - "404": + $ref: '#/components/schemas/bulk_destroy_functionalities_response' + description: records deleted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkDeleteFunctionalities_422_response' + description: validation or partial-failure error + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: unauthorized security: - bearer_auth: [] - summary: Update an incident event + summary: Bulk delete Functionalities tags: - - IncidentEventFunctionalities + - Functionalities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/events/{incident_event_id}/services: + /v1/workflows/{workflow_id}/workflow_tasks: get: - description: List incident event services - operationId: listIncidentEventServices + description: List workflow tasks + operationId: listWorkflowTasks parameters: - explode: false in: path - name: incident_event_id + name: workflow_id required: true schema: type: string @@ -19361,27 +12252,104 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_event_service_list' + $ref: '#/components/schemas/workflow_task_list' description: success security: - bearer_auth: [] - summary: List incident event services + summary: List workflow tasks tags: - - IncidentEventServices + - WorkflowTasks x-accepts: - application/vnd.api+json post: - description: Creates a new event service from provided data - operationId: createIncidentEventService + description: Creates a new workflow task from provided data + operationId: createWorkflowTask parameters: - explode: false in: path - name: incident_event_id + name: workflow_id required: true schema: type: string @@ -19390,57 +12358,33 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_event_service' + $ref: '#/components/schemas/new_workflow_task' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: b6539178-382f-4f71-b6d1-6e2764e9ffd5 - type: incident_event_services - attributes: - incident_event_id: d438704a-2124-4b0c-8cb0-40959cf34b16 - service_id: 7d5a70a8-2b11-4215-a279-94b9be8130be - status: partial_outage - schema: - $ref: '#/components/schemas/incident_event_service_response' - description: incident_event_service created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Service must exist - status: "422" - - title: Service can't be blank - status: "422" schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + $ref: '#/components/schemas/workflow_task_response' + description: workflow task created "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident event service + summary: Creates a workflow task tags: - - IncidentEventServices + - WorkflowTasks x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_event_services/{id}: + /v1/workflow_tasks/{id}: delete: - description: Delete a specific incident event service by id - operationId: deleteIncidentEventService + description: Delete a specific workflow task by id + operationId: deleteWorkflowTask parameters: - explode: false in: path @@ -19453,37 +12397,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: d1d70e98-ea21-4541-a023-9d7b2673f945 - type: incident_event_services - attributes: - incident_event_id: d438704a-2124-4b0c-8cb0-40959cf34b16 - service_id: 8fe86dd8-b969-43dc-a3d6-609fa23db16a - status: partial_outage schema: - $ref: '#/components/schemas/incident_event_service_response' - description: incident_event deleted + $ref: '#/components/schemas/workflow_task_response' + description: workflow_task deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident event functionalitu + summary: Delete a workflow task tags: - - IncidentEventServices + - WorkflowTasks x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_event_service by id - operationId: getIncidentEventServices + description: Retrieves a specific workflow_task by id + operationId: getWorkflowTask parameters: - explode: false in: path @@ -19496,37 +12428,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: d1d70e98-ea21-4541-a023-9d7b2673f945 - type: incident_event_services - attributes: - incident_event_id: d438704a-2124-4b0c-8cb0-40959cf34b16 - service_id: 8fe86dd8-b969-43dc-a3d6-609fa23db16a - status: partial_outage schema: - $ref: '#/components/schemas/incident_event_service_response' - description: incident_event_service found + $ref: '#/components/schemas/workflow_task_response' + description: workflow_task found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident event service + summary: Retrieves a workflow task tags: - - IncidentEventServices + - WorkflowTasks x-accepts: - application/vnd.api+json put: - description: Update a specific incident event service by id - operationId: updateIncidentEventService + description: Update a specific workflow task by id + operationId: updateWorkflowTask parameters: - explode: false in: path @@ -19539,49 +12459,37 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_event_service' + $ref: '#/components/schemas/update_workflow_task' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: d1d70e98-ea21-4541-a023-9d7b2673f945 - type: incident_event_services - attributes: - incident_event_id: d438704a-2124-4b0c-8cb0-40959cf34b16 - service_id: 8fe86dd8-b969-43dc-a3d6-609fa23db16a - status: major_outage schema: - $ref: '#/components/schemas/incident_event_service_response' - description: incident_event_service updated + $ref: '#/components/schemas/workflow_task_response' + description: workflow_task updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident event + summary: Update a workflow task tags: - - IncidentEventServices + - WorkflowTasks x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{incident_id}/events: + /v1/workflows/{workflow_id}/action_item_form_field_conditions: get: - description: List incident events - operationId: listIncidentEvents + description: List workflow action item form field conditions + operationId: listWorkflowActionItemFormFieldConditions parameters: - explode: false in: path - name: incident_id + name: workflow_id required: true schema: type: string @@ -19612,22 +12520,23 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_event_list' + $ref: '#/components/schemas/workflow_action_item_form_field_condition_list' description: success security: - bearer_auth: [] - summary: List incident events + summary: List workflow action item form field conditions tags: - - IncidentEvents + - WorkflowActionItemFormFieldConditions x-accepts: - application/vnd.api+json post: - description: Creates a new event from provided data - operationId: createIncidentEvent + description: Creates a new workflow action item form field condition from provided + data + operationId: createWorkflowActionItemFormFieldCondition parameters: - explode: false in: path - name: incident_id + name: workflow_id required: true schema: type: string @@ -19636,64 +12545,42 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_event' + $ref: '#/components/schemas/new_workflow_action_item_form_field_condition' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 08f04a36-4196-4329-a1d1-23cf3f43fed0 - type: incident_events - attributes: - event: New Event - event_raw: New Event - kind: event - source: web - visibility: external - user_display_name: Rootly - occurred_at: 2026-01-20T09:45:28.817-08:00 - starred_at: null - created_at: 2026-01-20T09:45:28.817-08:00 - updated_at: 2026-01-20T09:45:28.817-08:00 schema: - $ref: '#/components/schemas/incident_event_response' - description: incident_event created - "422": + $ref: '#/components/schemas/workflow_action_item_form_field_condition_response' + description: workflow_action_item_form_field_condition created + "401": content: application/vnd.api+json: - example: - errors: - - title: Event can't be blank - status: "422" - - title: Event raw can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request - "401": + description: responds with unauthorized for invalid token + "403": + description: responds with forbidden when the feature flag is disabled + "422": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: rejects conditions on a non-action-item workflow security: - bearer_auth: [] - summary: Creates an incident event + summary: Creates a workflow action item form field condition tags: - - IncidentEvents + - WorkflowActionItemFormFieldConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/events/{id}: + /v1/workflow_action_item_form_field_conditions/{id}: delete: - description: Delete a specific incident event by id - operationId: deleteIncidentEvent + description: Delete a specific workflow action item form field condition by + id + operationId: deleteWorkflowActionItemFormFieldCondition parameters: - explode: false in: path @@ -19706,44 +12593,27 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 6be478ed-2ffa-4cc7-b3cd-56c53be209e6 - type: incident_events - attributes: - event: Mollitia quia doloremque non. - event_raw: Mollitia quia doloremque non. - kind: event - source: web - visibility: internal - user_display_name: Robby Cummings - occurred_at: 2026-01-20T09:45:28.376-08:00 - starred_at: null - created_at: 2026-01-20T09:45:28.376-08:00 - updated_at: 2026-01-20T09:45:29.851-08:00 schema: - $ref: '#/components/schemas/incident_event_response' - description: incident_event deleted + $ref: '#/components/schemas/workflow_action_item_form_field_condition_response' + description: allows deleting an existing condition when the feature flag + is disabled "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident event + summary: Delete a workflow action item form field condition tags: - - IncidentEvents + - WorkflowActionItemFormFieldConditions x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_event by id - operationId: getIncidentEvents + description: Retrieves a specific workflow action item form field condition + by id + operationId: getWorkflowActionItemFormFieldCondition parameters: - explode: false in: path @@ -19756,44 +12626,26 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 6be478ed-2ffa-4cc7-b3cd-56c53be209e6 - type: incident_events - attributes: - event: Mollitia quia doloremque non. - event_raw: Mollitia quia doloremque non. - kind: event - source: web - visibility: internal - user_display_name: Robby Cummings - occurred_at: 2026-01-20T09:45:28.376-08:00 - starred_at: null - created_at: 2026-01-20T09:45:28.376-08:00 - updated_at: 2026-01-20T09:45:28.376-08:00 schema: - $ref: '#/components/schemas/incident_event_response' - description: incident_event found + $ref: '#/components/schemas/workflow_action_item_form_field_condition_response' + description: includes native field ids "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident event + summary: Retrieves a workflow action item form field condition tags: - - IncidentEvents + - WorkflowActionItemFormFieldConditions x-accepts: - application/vnd.api+json put: - description: Update a specific incident event by id - operationId: updateIncidentEvent + description: Update a specific workflow action item form field condition by + id + operationId: updateWorkflowActionItemFormFieldCondition parameters: - explode: false in: path @@ -19806,56 +12658,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_event' + $ref: '#/components/schemas/update_workflow_action_item_form_field_condition' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 6be478ed-2ffa-4cc7-b3cd-56c53be209e6 - type: incident_events - attributes: - event: Event updated - event_raw: Event updated - kind: event - source: web - visibility: internal - user_display_name: Robby Cummings - occurred_at: 2026-01-20T09:45:28.376-08:00 - starred_at: null - created_at: 2026-01-20T09:45:28.376-08:00 - updated_at: 2026-01-20T09:45:29.506-08:00 schema: - $ref: '#/components/schemas/incident_event_response' - description: incident_event updated + $ref: '#/components/schemas/workflow_action_item_form_field_condition_response' + description: ignores non-allowlisted attributes such as workflow_id "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident event + summary: Update a workflow action item form field condition tags: - - IncidentEvents + - WorkflowActionItemFormFieldConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{incident_id}/feedbacks: + /v1/workflows/{workflow_id}/custom_field_selections: get: - description: List incident feedbacks - operationId: listIncidentFeedbacks + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. List workflow custom\ + \ field selections" + operationId: listWorkflowCustomFieldSelections parameters: - explode: false in: path - name: incident_id + name: workflow_id required: true schema: type: string @@ -19886,22 +12721,24 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_feedback_list' + $ref: '#/components/schemas/workflow_custom_field_selection_list' description: success security: - bearer_auth: [] - summary: List incident feedbacks + summary: "[DEPRECATED] List workflow custom field selections" tags: - - IncidentFeedbacks + - "[DEPRECATED] WorkflowCustomFieldSelections" x-accepts: - application/vnd.api+json post: - description: Creates a new feedback from provided data - operationId: createIncidentFeedback + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Creates a new workflow\ + \ custom field selection from provided data" + operationId: createWorkflowCustomFieldSelection parameters: - explode: false in: path - name: incident_id + name: workflow_id required: true schema: type: string @@ -19910,58 +12747,68 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_feedback' + $ref: '#/components/schemas/new_workflow_custom_field_selection' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: a924daf1-b0f0-4bfd-a9bb-7e9416162084 - type: incident_feedbacks - attributes: - rating: 4 - rating_humanized: Very satisfied - feedback: New Feedback - anonymous: true - updated_at: 2026-01-20T09:45:32.957-08:00 - created_at: 2026-01-20T09:45:32.957-08:00 schema: - $ref: '#/components/schemas/incident_feedback_response' - description: incident_feedback created - "422": + $ref: '#/components/schemas/workflow_custom_field_selection_response' + description: workflow_custom_field_selection created + "401": content: application/vnd.api+json: - example: - errors: - - title: Feedback can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request - "401": + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: "[DEPRECATED] Creates a workflow custom field selection" + tags: + - "[DEPRECATED] WorkflowCustomFieldSelections" + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/workflow_custom_field_selections/{id}: + delete: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ + \ workflow custom field selection by id" + operationId: deleteWorkflowCustomFieldSelection + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/workflow_custom_field_selection_response' + description: workflow_custom_field_selection deleted + "404": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates an incident feedback + summary: "[DEPRECATED] Delete a workflow custom field selection" tags: - - IncidentFeedbacks - x-content-type: application/vnd.api+json + - "[DEPRECATED] WorkflowCustomFieldSelections" x-accepts: - application/vnd.api+json - /v1/feedbacks/{id}: get: - description: Retrieves a specific incident_feedback by id - operationId: getIncidentFeedbacks + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Retrieves a specific\ + \ workflow custom field selection by id" + operationId: getWorkflowCustomFieldSelection parameters: - explode: false in: path @@ -19974,40 +12821,27 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: c8535ca0-33b0-42bb-985a-fdc46328bd8c - type: incident_feedbacks - attributes: - rating: 0 - rating_humanized: Very dissatisfied - feedback: Nemo aut praesentium sint. - anonymous: false - updated_at: 2026-01-20T09:45:32.557-08:00 - created_at: 2026-01-20T09:45:32.557-08:00 schema: - $ref: '#/components/schemas/incident_feedback_response' - description: incident_feedback found + $ref: '#/components/schemas/workflow_custom_field_selection_response' + description: workflow_custom_field_selection found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident feedback + summary: "[DEPRECATED] Retrieves a workflow custom field selection" tags: - - IncidentFeedbacks + - "[DEPRECATED] WorkflowCustomFieldSelections" x-accepts: - application/vnd.api+json put: - description: Update a specific incident feedback by id - operationId: updateIncidentFeedback + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ + \ workflow custom field selection by id" + operationId: updateWorkflowCustomFieldSelection parameters: - explode: false in: path @@ -20020,52 +12854,37 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_feedback' + $ref: '#/components/schemas/update_workflow_custom_field_selection' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: c8535ca0-33b0-42bb-985a-fdc46328bd8c - type: incident_feedbacks - attributes: - rating: 3 - rating_humanized: Somewhat satisfied - feedback: Feedback updated - anonymous: false - updated_at: 2026-01-20T09:45:33.598-08:00 - created_at: 2026-01-20T09:45:32.557-08:00 schema: - $ref: '#/components/schemas/incident_feedback_response' - description: incident_feedback updated + $ref: '#/components/schemas/workflow_custom_field_selection_response' + description: workflow_custom_field_selection updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident feedback + summary: "[DEPRECATED] Update a workflow custom field selection" tags: - - IncidentFeedbacks + - "[DEPRECATED] WorkflowCustomFieldSelections" x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{incident_id}/form_field_selections: + /v1/workflows/{workflow_id}/form_field_conditions: get: - description: List incident form field selections - operationId: listIncidentFormFieldSelections + description: List workflow form field conditions + operationId: listWorkflowFormFieldConditions parameters: - explode: false in: path - name: incident_id + name: workflow_id required: true schema: type: string @@ -20096,22 +12915,22 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_form_field_selection_list' + $ref: '#/components/schemas/workflow_form_field_condition_list' description: success security: - bearer_auth: [] - summary: List incident form field selections + summary: List workflow form field conditions tags: - - IncidentFormFieldSelections + - WorkflowFormFieldConditions x-accepts: - application/vnd.api+json post: - description: Creates a new incident form field selection from provided data - operationId: createIncidentFormFieldSelection + description: Creates a new workflow form field condition from provided data + operationId: createWorkflowFormFieldCondition parameters: - explode: false in: path - name: incident_id + name: workflow_id required: true schema: type: string @@ -20120,128 +12939,41 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_form_field_selection' + $ref: '#/components/schemas/new_workflow_form_field_condition' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: f92a2f5d-408c-4973-954f-76ec5d6bc52b - type: incident_form_field_selections - attributes: - incident_id: 0506b589-c6b2-47ad-9dd3-d2c669cd6674 - custom_field_id: 177 - form_field_id: a2affe8a-78d6-4871-b41d-b09d19394ffe - form_field: - id: a2affe8a-78d6-4871-b41d-b09d19394ffe - team_id: 299 - slug: ex-voluptatem-quasi-eos - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Ex voluptatem quasi eos. - description: Perspiciatis qui quia officiis. - shown: - - web_new_incident_form - - web_update_incident_form - required: [] - default_values: [] - show_on_incident_details: true - enabled: true - updated_at: 2026-01-20T09:45:35.442-08:00 - created_at: 2026-01-20T09:45:35.442-08:00 - options: - - id: eb71c761-0bd7-4077-b9ba-503eb8a36b6b - form_field_id: a2affe8a-78d6-4871-b41d-b09d19394ffe - value: Eius doloremque sed quo. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:45:35.464-08:00 - created_at: 2026-01-20T09:45:35.464-08:00 - - id: 9e407c7f-db35-4874-abaf-a42d949c370b - form_field_id: a2affe8a-78d6-4871-b41d-b09d19394ffe - value: Sunt quae a cum. - color: '#FBE4A0' - default: false - position: 2 - updated_at: 2026-01-20T09:45:35.467-08:00 - created_at: 2026-01-20T09:45:35.467-08:00 - positions: - - id: a234d584-14db-4e85-96d6-4bbad156db36 - form_field_id: a2affe8a-78d6-4871-b41d-b09d19394ffe - form: web_update_incident_form - position: 2 - - id: 5c529b37-bb15-4d35-a6f1-2980f8a0cbfb - form_field_id: a2affe8a-78d6-4871-b41d-b09d19394ffe - form: web_new_incident_form - position: 2 - value: Test custom field - selected_group_ids: [] - selected_groups: - id: null - value: Test custom field - selected_option_ids: [] - selected_options: - id: null - value: Test custom field - selected_service_ids: [] - selected_services: - id: null - value: Test custom field - selected_functionality_ids: [] - selected_functionalities: - id: null - value: Test custom field - selected_catalog_entity_ids: [] - selected_catalog_entities: - id: null - value: Test custom field - selected_user_ids: [] - selected_users: - id: null - value: Test custom field schema: - $ref: '#/components/schemas/incident_form_field_selection_response' - description: incident_form_field_selection created + $ref: '#/components/schemas/workflow_form_field_condition_response' + description: accepts out-of-scope selected ids when scope validation is + disabled "422": content: application/vnd.api+json: - example: - errors: - - title: Form field must exist - status: "422" - - title: "requires either value or at least one selected option, group,\ - \ service, or user" - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request + description: rejects out-of-scope selected ids when scope validation is + enabled "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident form field selection + summary: Creates a workflow form field condition tags: - - IncidentFormFieldSelections + - WorkflowFormFieldConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_form_field_selections/{id}: + /v1/workflow_form_field_conditions/{id}: delete: - description: Delete a specific incident form field selection by id - operationId: deleteIncidentFormFieldSelection + description: Delete a specific workflow form field condition by id + operationId: deleteWorkflowFormFieldCondition parameters: - explode: false in: path @@ -20254,107 +12986,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 3ab9fdf2-e77e-4dbc-ac52-6e551c9e1c71 - type: incident_form_field_selections - attributes: - incident_id: 0506b589-c6b2-47ad-9dd3-d2c669cd6674 - custom_field_id: 176 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form_field: - id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - team_id: 299 - slug: numquam-nulla-cupiditate-iure - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Numquam nulla cupiditate iure. - description: Consequatur exercitationem et dicta. - shown: - - web_new_incident_form - - web_update_incident_form - required: [] - default_values: [] - show_on_incident_details: true - enabled: true - updated_at: 2026-01-20T09:45:35.414-08:00 - created_at: 2026-01-20T09:45:35.414-08:00 - options: - - id: 3e051196-e5d1-48b0-abab-cf9dbe405aed - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - value: Magni occaecati quas excepturi. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:45:35.435-08:00 - created_at: 2026-01-20T09:45:35.435-08:00 - - id: a87b99bb-5965-44c4-8db9-6006a6424b24 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - value: Distinctio voluptas sunt voluptate. - color: '#FBE4A0' - default: false - position: 2 - updated_at: 2026-01-20T09:45:35.438-08:00 - created_at: 2026-01-20T09:45:35.438-08:00 - positions: - - id: 9ac29091-1f5e-4dbe-8bce-c1cb48ee0959 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form: web_update_incident_form - position: 1 - - id: b2b9de73-1bf0-483d-b738-b5c0c7846705 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form: web_new_incident_form - position: 1 - value: Vero quia delectus dignissimos. - selected_group_ids: [] - selected_groups: - id: null - value: Vero quia delectus dignissimos. - selected_option_ids: [] - selected_options: - id: null - value: Vero quia delectus dignissimos. - selected_service_ids: [] - selected_services: - id: null - value: Vero quia delectus dignissimos. - selected_functionality_ids: [] - selected_functionalities: - id: null - value: Vero quia delectus dignissimos. - selected_catalog_entity_ids: [] - selected_catalog_entities: - id: null - value: Vero quia delectus dignissimos. - selected_user_ids: [] - selected_users: - id: null - value: Vero quia delectus dignissimos. schema: - $ref: '#/components/schemas/incident_form_field_selection_response' - description: incident_form_field_selection deleted + $ref: '#/components/schemas/workflow_form_field_condition_response' + description: workflow_form_field_condition deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident form field selection + summary: Delete a workflow_form field condition tags: - - IncidentFormFieldSelections + - WorkflowFormFieldConditions x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident form field selection by id - operationId: getIncidentFormFieldSelection + description: Retrieves a specific workflow form field condition by id + operationId: getWorkflowFormFieldCondition parameters: - explode: false in: path @@ -20367,107 +13017,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 3ab9fdf2-e77e-4dbc-ac52-6e551c9e1c71 - type: incident_form_field_selections - attributes: - incident_id: 0506b589-c6b2-47ad-9dd3-d2c669cd6674 - custom_field_id: 176 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form_field: - id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - team_id: 299 - slug: numquam-nulla-cupiditate-iure - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Numquam nulla cupiditate iure. - description: Consequatur exercitationem et dicta. - shown: - - web_new_incident_form - - web_update_incident_form - required: [] - default_values: [] - show_on_incident_details: true - enabled: true - updated_at: 2026-01-20T09:45:35.414-08:00 - created_at: 2026-01-20T09:45:35.414-08:00 - options: - - id: 3e051196-e5d1-48b0-abab-cf9dbe405aed - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - value: Magni occaecati quas excepturi. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:45:35.435-08:00 - created_at: 2026-01-20T09:45:35.435-08:00 - - id: a87b99bb-5965-44c4-8db9-6006a6424b24 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - value: Distinctio voluptas sunt voluptate. - color: '#FBE4A0' - default: false - position: 2 - updated_at: 2026-01-20T09:45:35.438-08:00 - created_at: 2026-01-20T09:45:35.438-08:00 - positions: - - id: 9ac29091-1f5e-4dbe-8bce-c1cb48ee0959 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form: web_update_incident_form - position: 1 - - id: b2b9de73-1bf0-483d-b738-b5c0c7846705 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form: web_new_incident_form - position: 1 - value: Vero quia delectus dignissimos. - selected_group_ids: [] - selected_groups: - id: null - value: Vero quia delectus dignissimos. - selected_option_ids: [] - selected_options: - id: null - value: Vero quia delectus dignissimos. - selected_service_ids: [] - selected_services: - id: null - value: Vero quia delectus dignissimos. - selected_functionality_ids: [] - selected_functionalities: - id: null - value: Vero quia delectus dignissimos. - selected_catalog_entity_ids: [] - selected_catalog_entities: - id: null - value: Vero quia delectus dignissimos. - selected_user_ids: [] - selected_users: - id: null - value: Vero quia delectus dignissimos. schema: - $ref: '#/components/schemas/incident_form_field_selection_response' - description: incident_form_field_selection found + $ref: '#/components/schemas/workflow_form_field_condition_response' + description: includes native field ids "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident form field selection + summary: Retrieves a workflow form field condition tags: - - IncidentFormFieldSelections + - WorkflowFormFieldConditions x-accepts: - application/vnd.api+json put: - description: Update a specific incident form field selection by id - operationId: updateIncidentFormFieldSelection + description: Update a specific workflow form field condition by id + operationId: updateWorkflowFormFieldCondition parameters: - explode: false in: path @@ -20480,123 +13048,42 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_form_field_selection' + $ref: '#/components/schemas/update_workflow_form_field_condition' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 3ab9fdf2-e77e-4dbc-ac52-6e551c9e1c71 - type: incident_form_field_selections - attributes: - incident_id: 0506b589-c6b2-47ad-9dd3-d2c669cd6674 - custom_field_id: 176 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form_field: - id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - team_id: 299 - slug: numquam-nulla-cupiditate-iure - kind: custom - input_kind: text - value_kind: inherit - value_kind_catalog_id: null - name: Numquam nulla cupiditate iure. - description: Consequatur exercitationem et dicta. - shown: - - web_new_incident_form - - web_update_incident_form - required: [] - default_values: [] - show_on_incident_details: true - enabled: true - updated_at: 2026-01-20T09:45:35.414-08:00 - created_at: 2026-01-20T09:45:35.414-08:00 - options: - - id: 3e051196-e5d1-48b0-abab-cf9dbe405aed - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - value: Magni occaecati quas excepturi. - color: '#FBE4A0' - default: false - position: 1 - updated_at: 2026-01-20T09:45:35.435-08:00 - created_at: 2026-01-20T09:45:35.435-08:00 - - id: a87b99bb-5965-44c4-8db9-6006a6424b24 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - value: Distinctio voluptas sunt voluptate. - color: '#FBE4A0' - default: false - position: 2 - updated_at: 2026-01-20T09:45:35.438-08:00 - created_at: 2026-01-20T09:45:35.438-08:00 - positions: - - id: 9ac29091-1f5e-4dbe-8bce-c1cb48ee0959 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form: web_update_incident_form - position: 1 - - id: b2b9de73-1bf0-483d-b738-b5c0c7846705 - form_field_id: cc33c606-08b4-49ff-8bdf-ec0d714f9304 - form: web_new_incident_form - position: 1 - value: Test update custom field - selected_group_ids: [] - selected_groups: - id: null - value: Test update custom field - selected_option_ids: [] - selected_options: - id: null - value: Test update custom field - selected_service_ids: [] - selected_services: - id: null - value: Test update custom field - selected_functionality_ids: [] - selected_functionalities: - id: null - value: Test update custom field - selected_catalog_entity_ids: [] - selected_catalog_entities: - id: null - value: Test update custom field - selected_user_ids: [] - selected_users: - id: null - value: Test update custom field schema: - $ref: '#/components/schemas/incident_form_field_selection_response' - description: incident_form_field_selection updated + $ref: '#/components/schemas/workflow_form_field_condition_response' + description: accepts out-of-scope selected ids on update when scope validation + is disabled + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: rejects out-of-scope selected ids on update when scope validation + is enabled "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident form field selection + summary: Update a workflow form field condition tags: - - IncidentFormFieldSelections + - WorkflowFormFieldConditions x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_permission_sets/{incident_permission_set_id}/booleans: + /v1/workflow_groups: get: - description: List incident_permission_set_booleans - operationId: listIncidentPermissionSetBooleans + description: List workflow groups + operationId: listWorkflowGroups parameters: - - explode: false - in: path - name: incident_permission_set_id - required: true - schema: - type: string - style: simple - explode: true in: query name: include @@ -20620,127 +13107,101 @@ paths: style: form - explode: true in: query - name: "filter[kind]" + name: "filter[search]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[name]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[kind]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[expanded]" required: false schema: - type: string + type: boolean style: form - explode: true in: query - name: sort + name: "filter[position]" required: false schema: - type: string + type: integer style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_permission_set_boolean_list' + $ref: '#/components/schemas/workflow_group_list' description: success security: - bearer_auth: [] - summary: List incident_permission_set_booleans + summary: List workflow groups tags: - - IncidentPermissionSetBooleans + - WorkflowGroups x-accepts: - application/vnd.api+json post: - description: Creates a new incident_permission_set_boolean from provided data - operationId: createIncidentPermissionSetBoolean - parameters: - - explode: false - in: path - name: incident_permission_set_id - required: true - schema: - type: string - style: simple + description: Creates a new workflow group from provided data + operationId: createWorkflowGroup + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_permission_set_boolean' + $ref: '#/components/schemas/new_workflow_group' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 3b520f94-c1dc-477a-b29c-6fc1298784b8 - type: incident_permission_set_booleans - attributes: - incident_permission_set_id: 5203d774-47e1-4522-a082-f8e20018b61f - kind: update_summary - private: false - enabled: false - updated_at: 2026-01-20T09:45:37.924-08:00 - created_at: 2026-01-20T09:45:37.924-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_boolean_response' - description: incident_permission_set_boolean created + $ref: '#/components/schemas/workflow_group_response' + description: workflow group created "422": content: application/vnd.api+json: - example: - errors: - - title: Kind can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates an incident_permission_set_boolean + summary: Creates a workflow group tags: - - IncidentPermissionSetBooleans + - WorkflowGroups x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_permission_set_booleans/{id}: + /v1/workflow_groups/{id}: delete: - description: Delete a specific incident_permission_set_boolean by id - operationId: deleteIncidentPermissionSetBoolean + description: Delete a specific workflow group by id + operationId: deleteWorkflowGroup parameters: - explode: false in: path @@ -20753,40 +13214,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 90f6e3cc-6311-40a2-a738-9913cd0d8442 - type: incident_permission_set_booleans - attributes: - incident_permission_set_id: 9eb6bd77-2a94-4918-8245-2f8675c23d75 - kind: update_summary - private: false - enabled: false - updated_at: 2026-01-20T09:45:43.040-08:00 - created_at: 2026-01-20T09:45:43.040-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_boolean_response' - description: incident_permission_set_boolean deleted + $ref: '#/components/schemas/workflow_group_response' + description: workflow group deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident_permission_set_boolean + summary: Delete a workflow_group tags: - - IncidentPermissionSetBooleans + - WorkflowGroups x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_permission_set_boolean by id - operationId: getIncidentPermissionSetBoolean + description: Retrieves a specific workflow group by id + operationId: getWorkflowGroup parameters: - explode: false in: path @@ -20799,40 +13245,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 5cae5d6a-e09f-4848-a784-b0c1b17d09bc - type: incident_permission_set_booleans - attributes: - incident_permission_set_id: 64800b19-1d9b-407c-9fc2-e9e59a979560 - kind: update_summary - private: false - enabled: false - updated_at: 2026-01-20T09:45:39.856-08:00 - created_at: 2026-01-20T09:45:39.856-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_boolean_response' - description: incident_permission_set_boolean found + $ref: '#/components/schemas/workflow_group_response' + description: workflow group found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident_permission_set_boolean + summary: Retrieves a workflow group tags: - - IncidentPermissionSetBooleans + - WorkflowGroups x-accepts: - application/vnd.api+json put: - description: Update a specific incident_permission_set_boolean by id - operationId: updateIncidentPermissionSetBoolean + description: Update a specific workflow group by id + operationId: updateWorkflowGroup parameters: - explode: false in: path @@ -20845,61 +13276,49 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_permission_set_boolean' + $ref: '#/components/schemas/update_workflow_group' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 839a3e4e-ee9c-4485-b475-a9e8bec8c5ee - type: incident_permission_set_booleans - attributes: - incident_permission_set_id: 170bcf36-ba67-47ec-9282-aa84283c1087 - kind: update_timeline - private: false - enabled: false - updated_at: 2026-01-20T09:45:41.487-08:00 - created_at: 2026-01-20T09:45:41.418-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_boolean_response' - description: incident_permission_set_boolean updated + $ref: '#/components/schemas/workflow_group_response' + description: workflow group updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident_permission_set_boolean + summary: Update a workflow group tags: - - IncidentPermissionSetBooleans + - WorkflowGroups x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_permission_sets/{incident_permission_set_id}/resources: + /v1/workflows/{workflow_id}/workflow_runs: get: - description: List incident_permission_set_resources - operationId: listIncidentPermissionSetResources + description: List workflow runs + operationId: ListWorkflowRuns parameters: - explode: false in: path - name: incident_permission_set_id + name: workflow_id required: true schema: type: string style: simple - - explode: true + - description: "comma separated if needed. eg: genius_task_runs" + explode: true in: query name: include required: false schema: + enum: + - genius_task_runs type: string style: form - explode: true @@ -20916,13 +13335,6 @@ paths: schema: type: integer style: form - - explode: true - in: query - name: "filter[kind]" - required: false - schema: - type: string - style: form - explode: true in: query name: "filter[created_at][gt]" @@ -20951,34 +13363,27 @@ paths: schema: type: string style: form - - explode: true - in: query - name: sort - required: false - schema: - type: string - style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_permission_set_resource_list' - description: success + $ref: '#/components/schemas/workflow_runs_list' + description: success with date filters using gte with timezone security: - bearer_auth: [] - summary: List incident_permission_set_resources + summary: List workflow runs tags: - - IncidentPermissionSetResources + - WorkflowRuns x-accepts: - application/vnd.api+json post: - description: Creates a new incident_permission_set_resource from provided data - operationId: createIncidentPermissionSetResource + description: Creates a new workflow run from provided data + operationId: createWorkflowRun parameters: - explode: false in: path - name: incident_permission_set_id + name: workflow_id required: true schema: type: string @@ -20987,218 +13392,66 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_permission_set_resource' + $ref: '#/components/schemas/new_workflow_run' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 97538aa1-45b1-4cc8-acc7-cfc4489df70d - type: incident_permission_set_resources - attributes: - incident_permission_set_id: 873d41be-8f6a-44eb-ab82-be2f5e7fc13c - kind: incident_types - private: false - resource_id: 1cb49b3b-fe3c-4ee9-b1a5-98183dba1113 - resource_type: IncidentType - updated_at: 2026-01-20T09:45:46.455-08:00 - created_at: 2026-01-20T09:45:46.455-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_resource_response' - description: incident_permission_set_resource created + $ref: '#/components/schemas/workflow_run_response' + description: workflow run created "422": content: application/vnd.api+json: - example: - errors: - - title: Resource must exist - status: "422" - - title: Kind can't be blank - status: "422" - - title: Kind is not included in the list - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request + description: workflow run not created "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident_permission_set_resource + summary: Creates a workflow run tags: - - IncidentPermissionSetResources + - WorkflowRuns x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_permission_set_resources/{id}: - delete: - description: Delete a specific incident_permission_set_resource by id - operationId: deleteIncidentPermissionSetResource - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 721d3380-24f3-4c1a-afa0-25a711612ddb - type: incident_permission_set_resources - attributes: - incident_permission_set_id: 6976547d-5126-475d-ab00-9fd8bd87b161 - kind: incident_types - private: false - resource_id: 5bb0eaf4-348a-4c79-a14f-07f458db37d0 - resource_type: IncidentType - updated_at: 2026-01-20T09:45:51.676-08:00 - created_at: 2026-01-20T09:45:51.676-08:00 - schema: - $ref: '#/components/schemas/incident_permission_set_resource_response' - description: incident_permission_set_resource deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete an incident_permission_set_resource - tags: - - IncidentPermissionSetResources - x-accepts: - - application/vnd.api+json + /v1/workflows: get: - description: Retrieves a specific incident_permission_set_resource by id - operationId: getIncidentPermissionSetResource - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 4a2fa645-b0e8-4363-a3a0-89d47396dbdc - type: incident_permission_set_resources - attributes: - incident_permission_set_id: e22568a9-52d8-4499-9a34-7bee638b3417 - kind: incident_types - private: false - resource_id: 51c7ce10-e7f0-4443-8409-0cf6f0358d86 - resource_type: IncidentType - updated_at: 2026-01-20T09:45:48.292-08:00 - created_at: 2026-01-20T09:45:48.292-08:00 - schema: - $ref: '#/components/schemas/incident_permission_set_resource_response' - description: incident_permission_set_resource found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves an incident_permission_set_resource - tags: - - IncidentPermissionSetResources - x-accepts: - - application/vnd.api+json - put: - description: Update a specific incident_permission_set_resource by id - operationId: updateIncidentPermissionSetResource + description: List workflows + operationId: listWorkflows parameters: - - explode: false - in: path - name: id - required: true + - description: "comma separated if needed. eg: form_field_conditions,alert_field_conditions" + explode: true + in: query + name: include + required: false schema: + enum: + - form_field_conditions + - alert_field_conditions + - genius_tasks + - genius_workflow_runs type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_incident_permission_set_resource' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 0e1c0789-44a8-4443-a942-eecb2ac2fed7 - type: incident_permission_set_resources - attributes: - incident_permission_set_id: cdbf3c6d-d4d7-41c1-a580-3d64e5a817f3 - kind: statuses - private: false - resource_id: cc8df9b7-f2e4-4696-9ca0-98582c835e52 - resource_type: IncidentType - updated_at: 2026-01-20T09:45:50.029-08:00 - created_at: 2026-01-20T09:45:49.957-08:00 - schema: - $ref: '#/components/schemas/incident_permission_set_resource_response' - description: incident_permission_set_resource updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update an incident_permission_set_resource - tags: - - IncidentPermissionSetResources - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/incident_permission_sets: - get: - description: List incident_permission_sets - operationId: listIncidentPermissionSets - parameters: - - explode: true + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true in: query - name: include + name: sort required: false schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position type: string style: form - explode: true @@ -21224,14 +13477,14 @@ paths: style: form - explode: true in: query - name: "filter[slug]" + name: "filter[name]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[slug]" required: false schema: type: string @@ -21266,7 +13519,56 @@ paths: style: form - explode: true in: query - name: sort + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" required: false schema: type: string @@ -21276,79 +13578,56 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_permission_set_list' + $ref: '#/components/schemas/workflow_list' description: success security: - bearer_auth: [] - summary: List incident_permission_sets + summary: List workflows tags: - - IncidentPermissionSets + - Workflows x-accepts: - application/vnd.api+json post: - description: Creates a new incident_permission_set from provided data - operationId: createIncidentPermissionSet + description: Creates a new workflow from provided data + operationId: createWorkflow parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_permission_set' + $ref: '#/components/schemas/new_workflow' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 8cbf951c-cf4b-4582-a251-b7235bc1de0c - type: incident_permission_sets - attributes: - team_id: 337 - name: Infrastructure - slug: infrastructure - description: null - private_incident_permissions: - - read - public_incident_permissions: - - read - updated_at: 2026-01-20T09:45:55.467-08:00 - created_at: 2026-01-20T09:45:55.467-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_response' - description: incident_permission_set created - "422": + $ref: '#/components/schemas/workflow_response' + description: ignores alert field conditions in create request + "401": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request - "401": + description: responds with unauthorized for invalid token + "403": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: non-admins can't set 'locked' while creating a workflow security: - bearer_auth: [] - summary: Creates an incident_permission_set + summary: Creates a workflow tags: - - IncidentPermissionSets + - Workflows x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_permission_sets/{id}: + /v1/workflows/{id}: delete: - description: Delete a specific incident_permission_set by id - operationId: deleteIncidentPermissionSet + description: Delete a specific workflow by id + operationId: deleteWorkflow parameters: - explode: false in: path @@ -21361,44 +13640,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 313bbf14-d53a-4b98-b413-023d8ec41fa5 - type: incident_permission_sets - attributes: - team_id: 348 - name: Eos excepturi repellendus quasi. - slug: eos-excepturi-repellendus-quasi - description: Laboriosam sit ut qui. - private_incident_permissions: - - read - public_incident_permissions: - - read - updated_at: 2026-01-20T09:46:00.699-08:00 - created_at: 2026-01-20T09:46:00.523-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_response' - description: incident_permission_set deleted + $ref: '#/components/schemas/workflow_response' + description: admin can destroy locked workflow "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: non-admin can't destroy locked workflow security: - bearer_auth: [] - summary: Delete an incident_permission_set + summary: Delete a workflow tags: - - IncidentPermissionSets + - Workflows x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_permission_set by id - operationId: getIncidentPermissionSet + description: Retrieves a specific workflow by id + operationId: getWorkflow parameters: - explode: false in: path @@ -21407,48 +13667,42 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple + - description: "comma separated if needed. eg: form_field_conditions,alert_field_conditions" + explode: true + in: query + name: include + required: false + schema: + enum: + - form_field_conditions + - alert_field_conditions + - genius_tasks + - genius_workflow_runs + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 75201533-ea71-4a89-ac1f-49267dec95f0 - type: incident_permission_sets - attributes: - team_id: 340 - name: Vero ratione fuga rerum. - slug: vero-ratione-fuga-rerum - description: Quaerat in ut nisi. - private_incident_permissions: - - read - public_incident_permissions: - - read - updated_at: 2026-01-20T09:45:56.722-08:00 - created_at: 2026-01-20T09:45:56.722-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_response' - description: incident_permission_set found + $ref: '#/components/schemas/workflow_response' + description: does not serialize alert field conditions "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident_permission_set + summary: Retrieves a workflow tags: - - IncidentPermissionSets + - Workflows x-accepts: - application/vnd.api+json put: - description: Update a specific incident_permission_set by id - operationId: updateIncidentPermissionSet + description: Update a specific workflow by id + operationId: updateWorkflow parameters: - explode: false in: path @@ -21461,52 +13715,68 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_permission_set' + $ref: '#/components/schemas/update_workflow' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 32ad833d-6d66-4cf7-a8e4-9813e7291bb8 - type: incident_permission_sets - attributes: - team_id: 344 - name: Security - slug: quos-quam-aspernatur-odio - description: Facilis officia laborum dolorem. - private_incident_permissions: - - read - public_incident_permissions: - - read - updated_at: 2026-01-20T09:45:58.517-08:00 - created_at: 2026-01-20T09:45:58.381-08:00 schema: - $ref: '#/components/schemas/incident_permission_set_response' - description: incident_permission_set updated + $ref: '#/components/schemas/workflow_response' + description: preserves repeat_condition_* fields when omitted from PATCH + payload "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: non-admin can't update locked workflow + "403": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: non-admin can't update 'locked' attribute security: - bearer_auth: [] - summary: Update an incident_permission_set + summary: Update a workflow tags: - - IncidentPermissionSets + - Workflows x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/post_mortems: + /v1/heartbeats/{heartbeat_id}/ping: + post: + description: Ping a specific heartbeat by id + operationId: pingHeartbeat + parameters: + - explode: false + in: path + name: heartbeat_id + required: true + schema: + type: string + style: simple + responses: + "204": + description: create ping + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Ping a heartbeat + tags: + - Heartbeats + x-accepts: + - application/vnd.api+json + /v1/heartbeats: get: - description: List incident retrospectives - operationId: listIncidentPostMortems + description: List heartbeats + operationId: listHeartbeats parameters: - explode: true in: query @@ -21538,141 +13808,31 @@ paths: style: form - explode: true in: query - name: "filter[status]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[severity]" + name: "filter[name]" required: false schema: type: string style: form - explode: true in: query - name: "filter[type]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[user_id]" + name: "filter[created_at][gte]" required: false schema: - type: integer - style: form - - description: Filter by incident type slugs - explode: true - in: query - name: "filter[types]" - required: false - schema: - type: string - style: form - - description: Filter by incident type IDs (UUIDs) - explode: true - in: query - name: "filter[type_ids]" - required: false - schema: - type: string - style: form - - description: Filter by environment slugs - explode: true - in: query - name: "filter[environments]" - required: false - schema: - type: string - style: form - - description: Filter by environment IDs (UUIDs) - explode: true - in: query - name: "filter[environment_ids]" - required: false - schema: - type: string - style: form - - description: Filter by functionality slugs - explode: true - in: query - name: "filter[functionalities]" - required: false - schema: - type: string - style: form - - description: Filter by functionality IDs (UUIDs) - explode: true - in: query - name: "filter[functionality_ids]" - required: false - schema: - type: string - style: form - - description: Filter by service slugs - explode: true - in: query - name: "filter[services]" - required: false - schema: - type: string - style: form - - description: Filter by service IDs (UUIDs) - explode: true - in: query - name: "filter[service_ids]" - required: false - schema: - type: string - style: form - - description: Filter by team/group slugs - explode: true - in: query - name: "filter[teams]" - required: false - schema: - type: string - style: form - - description: Filter by team/group IDs (UUIDs) - explode: true - in: query - name: "filter[team_ids]" - required: false - schema: - type: string - style: form - - description: Filter by cause slugs - explode: true - in: query - name: "filter[causes]" - required: false - schema: - type: string - style: form - - description: Filter by cause IDs (UUIDs) - explode: true - in: query - name: "filter[cause_ids]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string + type: string style: form - explode: true in: query @@ -21688,184 +13848,61 @@ paths: schema: type: string style: form - - explode: true - in: query - name: "filter[started_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[started_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[started_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[started_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[resolved_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[resolved_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[resolved_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[resolved_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: sort - required: false - schema: - type: string - style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_post_mortem_list' - description: success + $ref: '#/components/schemas/heartbeat_list' + description: filter by name security: - bearer_auth: [] - summary: List incident retrospectives + summary: List heartbeats tags: - - IncidentRetrospectives + - Heartbeats x-accepts: - application/vnd.api+json - /v1/post_mortems/{id}: - get: - description: List incidents retrospectives - operationId: ListIncidentPostmortem - parameters: - - explode: false - in: path - name: id + post: + description: Creates a new heartbeat from provided data + operationId: createHeartbeat + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_heartbeat' required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple responses: - "200": + "201": content: application/vnd.api+json: - example: - data: - id: d68aa56c-0eed-4615-999c-227498f628a7 - type: incident_post_mortems - attributes: - incident_id: d8613eba-b407-482b-90d0-b626450ef79d - title: Illo quia et et. - status: draft - url: https://test.rootly.com/account/post_mortems/illo-quia-et-et - short_url: null - content: null - published_at: null - started_at: 2026-01-20T09:46:03.495-08:00 - mitigated_at: null - resolved_at: null - cancelled_at: null - show_timeline: true - show_timeline_starred_only: false - show_timeline_genius: true - show_timeline_trail: true - show_timeline_tasks: true - show_timeline_action_items: true - show_timeline_order: desc - show_functionalities_impacted: true - show_services_impacted: true - show_groups_impacted: true - show_action_items: true - created_at: 2026-01-20T09:46:03.894-08:00 - updated_at: 2026-01-20T09:46:03.898-08:00 - relationships: - incident_retrospective_steps: - data: - - id: 92b4d850-1009-447f-a68c-b7a62345a30c - type: incident_retrospective_steps schema: - $ref: '#/components/schemas/incident_post_mortem_response' - description: incident_post_mortem found - "404": + $ref: '#/components/schemas/heartbeat_response' + description: heartbeat created + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: interval less than 60 seconds + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Retrieves an incident retrospective + summary: Creates a heartbeat tags: - - IncidentRetrospectives + - Heartbeats + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - put: - description: Update a specific incident retrospective by id - operationId: updateIncidentPostmortem + /v1/heartbeats/{id}: + delete: + description: Delete a specific heartbeat by id + operationId: deleteHeartbeat parameters: - explode: false in: path @@ -21874,193 +13911,109 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_incident_post_mortem' - required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: d68aa56c-0eed-4615-999c-227498f628a7 - type: incident_post_mortems - attributes: - incident_id: d8613eba-b407-482b-90d0-b626450ef79d - title: Retrospective updated - status: draft - url: https://test.rootly.com/account/post_mortems/illo-quia-et-et - short_url: null - content: null - published_at: null - started_at: 2026-01-20T09:46:03.495-08:00 - mitigated_at: null - resolved_at: null - cancelled_at: null - show_timeline: false - show_timeline_starred_only: false - show_timeline_genius: true - show_timeline_trail: true - show_timeline_tasks: true - show_timeline_action_items: true - show_timeline_order: desc - show_functionalities_impacted: true - show_services_impacted: true - show_groups_impacted: true - show_action_items: true - created_at: 2026-01-20T09:46:03.894-08:00 - updated_at: 2026-01-20T09:46:10.314-08:00 - relationships: - incident_retrospective_steps: - data: [] schema: - $ref: '#/components/schemas/incident_post_mortem_response' - description: incident_post_mortem updated + $ref: '#/components/schemas/heartbeat_response' + description: heartbeat deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident retrospective + summary: Delete a heartbeat tags: - - IncidentRetrospectives - x-content-type: application/vnd.api+json + - Heartbeats x-accepts: - application/vnd.api+json - /v1/incident_retrospective_steps/{id}: get: - description: Retrieves a specific incident retrospective step by id - operationId: getIncidentRetrospectiveStep + description: Retrieves a specific heartbeat by id + operationId: getHeartbeat parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 986ca315-fdbe-426c-ae0c-feefdb5a231e - type: incident_retrospective_steps - attributes: - retrospective_step_id: 5f97202e-0dbb-4a0e-bc49-b8e332999b97 - incident_id: 633f0451-098c-4f08-84fc-7924625a355e - title: Step 4 - description: null - due_date: null - user_id: null - kind: custom - position: 1 - skippable: false - status: todo - status_changed_at: null - status_changed_by_id: null - created_at: 2026-01-20T09:46:12.088-08:00 - updated_at: 2026-01-20T09:46:12.088-08:00 schema: - $ref: '#/components/schemas/incident_retrospective_step_response' - description: incident retrospective_step found + $ref: '#/components/schemas/heartbeat_response' + description: heartbeat found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident retrospective step + summary: Retrieves a heartbeat tags: - - IncidentRetrospectiveSteps + - Heartbeats x-accepts: - application/vnd.api+json put: - description: Update a specific incident retrospective step by id - operationId: updateIncidentRetrospectiveStep + description: Update a specific heartbeat by id + operationId: updateHeartbeat parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_retrospective_step' + $ref: '#/components/schemas/update_heartbeat' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 986ca315-fdbe-426c-ae0c-feefdb5a231e - type: incident_retrospective_steps - attributes: - retrospective_step_id: 5f97202e-0dbb-4a0e-bc49-b8e332999b97 - incident_id: 633f0451-098c-4f08-84fc-7924625a355e - title: Step 2 - description: Step 2 description - due_date: 2024-12-05T08:10:58.323-08:00 - user_id: null - kind: custom - position: 2 - skippable: true - status: todo - status_changed_at: null - status_changed_by_id: null - created_at: 2026-01-20T09:46:12.088-08:00 - updated_at: 2026-01-20T09:46:12.409-08:00 schema: - $ref: '#/components/schemas/incident_retrospective_step_response' - description: incident_retrospective_step updated + $ref: '#/components/schemas/heartbeat_response' + description: heartbeat updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid enum value security: - bearer_auth: [] - summary: Update an incident retrospective step + summary: Update a heartbeat tags: - - IncidentRetrospectiveSteps + - Heartbeats x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_roles/{incident_role_id}/incident_role_tasks: + /v1/incidents/{incident_id}/action_items: get: - description: List incident_role tasks - operationId: listIncidentRoleTasks + description: List incident action items + operationId: listIncidentActionItems parameters: - explode: false in: path - name: incident_role_id + name: incident_id required: true schema: type: string @@ -22091,22 +14044,22 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_role_task_list' + $ref: '#/components/schemas/incident_action_item_list' description: success security: - bearer_auth: [] - summary: List incident role tasks + summary: List incident action items tags: - - IncidentRoleTasks + - IncidentActionItems x-accepts: - application/vnd.api+json post: - description: Creates a new task from provided data - operationId: createIncidentRoleTask + description: Creates a new action item from provided data + operationId: createIncidentActionItem parameters: - explode: false in: path - name: incident_role_id + name: incident_id required: true schema: type: string @@ -22115,58 +14068,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_role_task' + $ref: '#/components/schemas/new_incident_action_item' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 13bd21eb-5e84-4b04-b662-77e69aa254b6 - type: incident_role_tasks - attributes: - incident_role_id: 90828b89-898a-4cab-b9a0-0dc215e2bf03 - task: New task - description: New task description - priority: high - created_at: 2026-01-20T09:46:13.543-08:00 - updated_at: 2026-01-20T09:46:13.543-08:00 schema: - $ref: '#/components/schemas/incident_role_task_response' - description: incident_role_task created + $ref: '#/components/schemas/incident_action_item_response' + description: incident_action_item created "422": content: application/vnd.api+json: - example: - errors: - - title: Task can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident role task + summary: Creates an incident action item tags: - - IncidentRoleTasks + - IncidentActionItems x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_role_tasks/{id}: + /v1/action_items/{id}: delete: - description: Delete a specific incident_role task by id - operationId: deleteIncidentRoleTask + description: Delete a specific incident action item by id + operationId: deleteIncidentActionItem parameters: - explode: false in: path @@ -22179,40 +14113,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 6e89d608-baa2-4bca-a7fb-44912eb011bc - type: incident_role_tasks - attributes: - incident_role_id: 90828b89-898a-4cab-b9a0-0dc215e2bf03 - task: Aliquid quia delectus ab. - description: Natus recusandae sapiente optio. - priority: medium - created_at: 2026-01-20T09:46:13.477-08:00 - updated_at: 2026-01-20T09:46:14.679-08:00 schema: - $ref: '#/components/schemas/incident_role_task_response' - description: incident_role_task deleted + $ref: '#/components/schemas/incident_action_item_response' + description: incident_action_item deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident role task + summary: Delete an incident action item tags: - - IncidentRoleTasks + - IncidentActionItems x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_role_task by id - operationId: getIncidentRoleTask + description: Retrieves a specific incident_action_item by id + operationId: getIncidentActionItems parameters: - explode: false in: path @@ -22225,40 +14144,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 6e89d608-baa2-4bca-a7fb-44912eb011bc - type: incident_role_tasks - attributes: - incident_role_id: 90828b89-898a-4cab-b9a0-0dc215e2bf03 - task: Aliquid quia delectus ab. - description: Natus recusandae sapiente optio. - priority: medium - created_at: 2026-01-20T09:46:13.477-08:00 - updated_at: 2026-01-20T09:46:13.483-08:00 schema: - $ref: '#/components/schemas/incident_role_task_response' - description: incident_role_task found + $ref: '#/components/schemas/incident_action_item_response' + description: incident_action_item found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident role task + summary: Retrieves an incident action item tags: - - IncidentRoleTasks + - IncidentActionItems x-accepts: - application/vnd.api+json put: - description: Update a specific incident_role task by id - operationId: updateIncidentRoleTask + description: Update a specific incident action item by id + operationId: updateIncidentActionItem parameters: - explode: false in: path @@ -22271,48 +14175,33 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_role_task' + $ref: '#/components/schemas/update_incident_action_item' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 6e89d608-baa2-4bca-a7fb-44912eb011bc - type: incident_role_tasks - attributes: - incident_role_id: 90828b89-898a-4cab-b9a0-0dc215e2bf03 - task: Task updated - description: Task description updated - priority: medium - created_at: 2026-01-20T09:46:13.477-08:00 - updated_at: 2026-01-20T09:46:14.299-08:00 schema: - $ref: '#/components/schemas/incident_role_task_response' - description: incident_role_task updated + $ref: '#/components/schemas/incident_action_item_response' + description: incident_action_item updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident role task + summary: Update an incident action item tags: - - IncidentRoleTasks + - IncidentActionItems x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_roles: + /v1/action_items: get: - description: List incident roles - operationId: listIncidentRoles + description: List all action items for an organization + operationId: listAllIncidentActionItems parameters: - explode: true in: query @@ -22337,31 +14226,87 @@ paths: style: form - explode: true in: query - name: "filter[search]" + name: "filter[kind]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[priority]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[status]" required: false schema: type: string style: form - explode: true in: query - name: "filter[enabled]" + name: "filter[incident_status]" required: false schema: - type: boolean + type: string + style: form + - explode: true + in: query + name: "filter[incident_created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[due_date][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[due_date][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[due_date][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[due_date][lte]" + required: false + schema: + type: string style: form - explode: true in: query @@ -22393,251 +14338,347 @@ paths: style: form - explode: true in: query - name: sort + name: "filter[kind][eq]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/incident_role_list' - description: success - security: - - bearer_auth: [] - summary: List incident roles - tags: - - IncidentRoles - x-accepts: - - application/vnd.api+json - post: - description: Creates a new incident role from provided data - operationId: createIncidentRole - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_incident_role' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: ebe6caa7-8edd-41a0-871b-dffc1f8dc505 - type: incident_roles - attributes: - slug: my-incident-role - name: My Incident Role - summary: My Incident Role summary - description: My Incident Role description - position: 1 - optional: false - enabled: true - allow_multi_user_assignment: true - created_at: 2026-01-20T09:46:16.569-08:00 - updated_at: 2026-01-20T09:46:16.569-08:00 - schema: - $ref: '#/components/schemas/incident_role_response' - description: incident_role created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates an incident role - tags: - - IncidentRoles - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/incident_roles/{id}: - delete: - description: Delete a specific incident_role by id - operationId: deleteIncidentRole - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[kind][not_eq]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string + style: form + - explode: true + in: query + name: "filter[kind][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[priority][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[priority][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[priority][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[priority][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[status][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_status][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_status][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_status][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_status][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_action_item_list' + description: success + security: + - bearer_auth: [] + summary: List all action items for an organization + tags: + - IncidentActionItems + x-accepts: + - application/vnd.api+json + /v1/incidents/{incident_id}/custom_field_selections: + get: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. List incident custom\ + \ field selections" + operationId: listIncidentCustomFieldSelections + parameters: + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_custom_field_selection_list' + description: success + security: + - bearer_auth: [] + summary: "[DEPRECATED] List incident custom field selections" + tags: + - "[DEPRECATED] IncidentCustomFieldSelections" + x-accepts: + - application/vnd.api+json + post: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Creates a new incident\ + \ custom field selection from provided data" + operationId: createIncidentCustomFieldSelection + parameters: + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_incident_custom_field_selection' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_custom_field_selection_response' + description: incident_custom_field_selection created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: "[DEPRECATED] Creates an incident custom field selection" + tags: + - "[DEPRECATED] IncidentCustomFieldSelections" + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incident_custom_field_selections/{id}: + delete: + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Delete a specific\ + \ incident custom field selection by id" + operationId: deleteIncidentCustomFieldSelection + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 9fce3fea-4bcd-45c7-8492-b3c4f3952414 - type: incident_roles - attributes: - slug: quisquam-architecto-eos-accusantium - name: Quisquam architecto eos accusantium. - summary: null - description: null - position: 1 - optional: false - enabled: true - allow_multi_user_assignment: false - created_at: 2026-01-20T09:46:15.774-08:00 - updated_at: 2026-01-20T09:46:17.242-08:00 schema: - $ref: '#/components/schemas/incident_role_response' - description: incident_role deleted + $ref: '#/components/schemas/incident_custom_field_selection_response' + description: incident_custom_field_selection deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident role + summary: "[DEPRECATED] Delete an incident custom field selection" tags: - - IncidentRoles + - "[DEPRECATED] IncidentCustomFieldSelections" x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_role by id - operationId: getIncidentRole + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Retrieves a specific\ + \ incident custom field selection by id" + operationId: getIncidentCustomFieldSelection parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 9fce3fea-4bcd-45c7-8492-b3c4f3952414 - type: incident_roles - attributes: - slug: quisquam-architecto-eos-accusantium - name: Quisquam architecto eos accusantium. - summary: null - description: null - position: 1 - optional: false - enabled: true - allow_multi_user_assignment: false - created_at: 2026-01-20T09:46:15.774-08:00 - updated_at: 2026-01-20T09:46:15.774-08:00 schema: - $ref: '#/components/schemas/incident_role_response' - description: incident_role found + $ref: '#/components/schemas/incident_custom_field_selection_response' + description: incident_custom_field_selection found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident role + summary: "[DEPRECATED] Retrieves an incident custom field selection" tags: - - IncidentRoles + - "[DEPRECATED] IncidentCustomFieldSelections" x-accepts: - application/vnd.api+json put: - description: Update a specific incident_role by id - operationId: updateIncidentRole + deprecated: true + description: "[DEPRECATED] Use form field endpoints instead. Update a specific\ + \ incident custom field selection by id" + operationId: updateIncidentCustomFieldSelection parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_role' + $ref: '#/components/schemas/update_incident_custom_field_selection' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 9fce3fea-4bcd-45c7-8492-b3c4f3952414 - type: incident_roles - attributes: - slug: my-incident-role-updated - name: My Incident Role Updated - summary: My Incident Role Summary Updated - description: My Incident Role Description Updated - position: 2 - optional: true - enabled: true - allow_multi_user_assignment: false - created_at: 2026-01-20T09:46:15.774-08:00 - updated_at: 2026-01-20T09:46:17.035-08:00 schema: - $ref: '#/components/schemas/incident_role_response' - description: incident_role updated + $ref: '#/components/schemas/incident_custom_field_selection_response' + description: incident_custom_field_selection updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident role + summary: "[DEPRECATED] Update an incident custom field selection" tags: - - IncidentRoles + - "[DEPRECATED] IncidentCustomFieldSelections" x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{incident_id}/status-page-events: + /v1/events/{incident_event_id}/functionalities: get: - description: List incident status page events - operationId: listIncidentStatusPages + description: List incident event functionalities + operationId: listIncidentEventFunctionalities parameters: - explode: false in: path - name: incident_id + name: incident_event_id required: true schema: type: string @@ -22668,22 +14709,22 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_status_page_event_list' + $ref: '#/components/schemas/incident_event_functionality_list' description: success security: - bearer_auth: [] - summary: List incident status page events + summary: List incident event functionalities tags: - - IncidentStatusPageEvents + - IncidentEventFunctionalities x-accepts: - application/vnd.api+json post: - description: Creates a new event from provided data - operationId: createIncidentStatusPage + description: Creates a new event functionality from provided data + operationId: createIncidentEventFunctionality parameters: - explode: false in: path - name: incident_id + name: incident_event_id required: true schema: type: string @@ -22692,63 +14733,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_status_page_event' + $ref: '#/components/schemas/new_incident_event_functionality' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 3030f5e2-aefb-4e38-a883-650d66cd5d4b - type: incident_status_page_events - attributes: - incident_id: 33147962-e35d-4d00-96db-fa838697450c - status_page_id: 16430d72-cdbb-4e4e-b432-36f2eec812e5 - status: investigating - notify_subscribers: true - should_tweet: false - started_at: 2026-01-20T09:46:19.189-08:00 - created_at: 2026-01-20T09:46:19.189-08:00 - updated_at: 2026-01-20T09:46:19.189-08:00 - event: New Event schema: - $ref: '#/components/schemas/incident_status_page_event_response' - description: incident_status_page_event created + $ref: '#/components/schemas/incident_event_functionality_response' + description: incident_event_functionality created "422": content: application/vnd.api+json: - example: - errors: - - title: Status page must exist - status: "422" - - title: Event can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident status page event + summary: Creates an incident event functionality tags: - - IncidentStatusPageEvents + - IncidentEventFunctionalities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/status-page-events/{id}: + /v1/incident_event_functionalities/{id}: delete: - description: Delete a specific incident status page event by id - operationId: deleteIncidentStatusPage + description: Delete a specific incident event functionality by id + operationId: deleteIncidentEventFunctionality parameters: - explode: false in: path @@ -22761,43 +14778,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 28b3eb48-a8a0-49eb-ae40-9dd4c6e3ff87 - type: incident_status_page_events - attributes: - incident_id: 33147962-e35d-4d00-96db-fa838697450c - status_page_id: 16430d72-cdbb-4e4e-b432-36f2eec812e5 - status: investigating - notify_subscribers: false - should_tweet: false - started_at: 2026-01-20T09:46:19.055-08:00 - created_at: 2026-01-20T09:46:19.055-08:00 - updated_at: 2026-01-20T09:46:19.984-08:00 - event: Iste ut blanditiis officiis. schema: - $ref: '#/components/schemas/incident_status_page_event_response' - description: incident_status_page_event deleted + $ref: '#/components/schemas/incident_event_functionality_response' + description: incident_event deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident status page event + summary: Delete an incident event functionality tags: - - IncidentStatusPageEvents + - IncidentEventFunctionalities x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_status_page_event by id - operationId: getIncidentStatusPages + description: Retrieves a specific incident_event_functionality by id + operationId: getIncidentEventFunctionalities parameters: - explode: false in: path @@ -22810,43 +14809,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 28b3eb48-a8a0-49eb-ae40-9dd4c6e3ff87 - type: incident_status_page_events - attributes: - incident_id: 33147962-e35d-4d00-96db-fa838697450c - status_page_id: 16430d72-cdbb-4e4e-b432-36f2eec812e5 - status: investigating - notify_subscribers: false - should_tweet: false - started_at: 2026-01-20T09:46:19.055-08:00 - created_at: 2026-01-20T09:46:19.055-08:00 - updated_at: 2026-01-20T09:46:19.055-08:00 - event: Iste ut blanditiis officiis. schema: - $ref: '#/components/schemas/incident_status_page_event_response' - description: incident_status_page_event found + $ref: '#/components/schemas/incident_event_functionality_response' + description: incident_event_functionality found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident status page event + summary: Retrieves an incident event functionality tags: - - IncidentStatusPageEvents + - IncidentEventFunctionalities x-accepts: - application/vnd.api+json put: - description: Update a specific incident status page event by id - operationId: updateIncidentStatusPage + description: Update a specific incident event functionality by id + operationId: updateIncidentEventFunctionality parameters: - explode: false in: path @@ -22859,83 +14840,46 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_status_page_event' + $ref: '#/components/schemas/update_incident_event_functionality' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 28b3eb48-a8a0-49eb-ae40-9dd4c6e3ff87 - type: incident_status_page_events - attributes: - incident_id: 33147962-e35d-4d00-96db-fa838697450c - status_page_id: d77010ea-c6cc-4526-b216-2ee74256b4bd - status: investigating - notify_subscribers: false - should_tweet: false - started_at: 2026-01-20T09:46:19.055-08:00 - created_at: 2026-01-20T09:46:19.055-08:00 - updated_at: 2026-01-20T09:46:19.765-08:00 - event: Event updated schema: - $ref: '#/components/schemas/incident_status_page_event_response' - description: incident_status_page_event updated + $ref: '#/components/schemas/incident_event_functionality_response' + description: incident_event_functionality updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident status page event + summary: Update an incident event tags: - - IncidentStatusPageEvents + - IncidentEventFunctionalities x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{incident_id}/sub_statuses: + /v1/events/{incident_event_id}/services: get: - description: List incident_sub_statuses - operationId: listIncidentSubStatuses + description: List incident event services + operationId: listIncidentEventServices parameters: - explode: false in: path - name: incident_id + name: incident_event_id required: true schema: type: string style: simple - - description: "comma separated if needed. eg: sub_status,assigned_by_user" - explode: true + - explode: true in: query name: include required: false schema: - enum: - - sub_status - - assigned_by_user - type: string - style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true - in: query - name: sort - required: false - schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at - - assigned_at - - -assigned_at type: string style: form - explode: true @@ -22952,62 +14896,27 @@ paths: schema: type: integer style: form - - explode: true - in: query - name: "filter[sub_status_id]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[assigned_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[assigned_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[assigned_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[assigned_at][lte]" - required: false - schema: - type: string - style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_sub_status_list' + $ref: '#/components/schemas/incident_event_service_list' description: success security: - bearer_auth: [] - summary: List incident_sub_statuses + summary: List incident event services tags: - - IncidentSubStatuses + - IncidentEventServices x-accepts: - application/vnd.api+json post: - description: Creates a new sub-status assignment from provided data - operationId: createIncidentSubStatus + description: Creates a new event service from provided data + operationId: createIncidentEventService parameters: - explode: false in: path - name: incident_id + name: incident_event_id required: true schema: type: string @@ -23016,53 +14925,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_sub_status' + $ref: '#/components/schemas/new_incident_event_service' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 291fec04-2255-44d7-bb54-a2315c2c35ed - type: incident_sub_statuses - attributes: - sub_status_id: d1aafcdd-c04b-47d9-b444-f20fc6f379f4 - incident_id: e84a2541-062b-4799-8144-2b743cac79aa - assigned_at: 2026-01-20T09:46:21.000-08:00 - assigned_by_user_id: null - relationships: - sub_status: - data: - id: d1aafcdd-c04b-47d9-b444-f20fc6f379f4 - type: sub_statuses - assigned_by_user: - data: null schema: - $ref: '#/components/schemas/incident_sub_status_response' - description: incident_sub_status created + $ref: '#/components/schemas/incident_event_service_response' + description: incident_event_service created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a sub-status assignment + summary: Creates an incident event service tags: - - IncidentSubStatuses + - IncidentEventServices x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_sub_statuses/{id}: + /v1/incident_event_services/{id}: delete: - description: Delete a specific incident_sub_status by id - operationId: deleteIncidentSubStatus + description: Delete a specific incident event service by id + operationId: deleteIncidentEventService parameters: - explode: false in: path @@ -23075,47 +14970,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 4199e44d-8da2-4966-bd8a-d25dd8c9e87f - type: incident_sub_statuses - attributes: - sub_status_id: e1661758-366a-415f-b821-623a587730dd - incident_id: e84a2541-062b-4799-8144-2b743cac79aa - assigned_at: 2026-01-20T09:46:21.599-08:00 - assigned_by_user_id: 609 - relationships: - sub_status: - data: - id: e1661758-366a-415f-b821-623a587730dd - type: sub_statuses - assigned_by_user: - data: - id: "609" - type: users schema: - $ref: '#/components/schemas/incident_sub_status_response' - description: incident_sub_status deleted + $ref: '#/components/schemas/incident_event_service_response' + description: incident_event deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident_sub_status + summary: Delete an incident event functionalitu tags: - - IncidentSubStatuses + - IncidentEventServices x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_sub_status by id - operationId: getIncidentSubStatus + description: Retrieves a specific incident_event_service by id + operationId: getIncidentEventServices parameters: - explode: false in: path @@ -23124,52 +14997,29 @@ paths: schema: type: string style: simple - - description: "comma separated if needed. eg: sub_status,assigned_by_user" - explode: true - in: query - name: include - required: false - schema: - enum: - - sub_status - - assigned_by_user - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 4199e44d-8da2-4966-bd8a-d25dd8c9e87f - type: incident_sub_statuses - attributes: - sub_status_id: e1661758-366a-415f-b821-623a587730dd - incident_id: e84a2541-062b-4799-8144-2b743cac79aa - assigned_at: 2026-01-20T09:46:21.599-08:00 - assigned_by_user_id: 609 - relationships: - sub_status: - data: - id: e1661758-366a-415f-b821-623a587730dd - type: sub_statuses - assigned_by_user: - data: - id: "609" - type: users schema: - $ref: '#/components/schemas/incident_sub_status_response' - description: sub_status found + $ref: '#/components/schemas/incident_event_service_response' + description: incident_event_service found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: Retrieves incident_sub_status + summary: Retrieves an incident event service tags: - - IncidentSubStatuses + - IncidentEventServices x-accepts: - application/vnd.api+json put: - description: Update a specific incident_sub_status by id - operationId: updateIncidentSubStatus + description: Update a specific incident event service by id + operationId: updateIncidentEventService parameters: - explode: false in: path @@ -23182,46 +15032,41 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_sub_status' + $ref: '#/components/schemas/update_incident_event_service' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 4199e44d-8da2-4966-bd8a-d25dd8c9e87f - type: incident_sub_statuses - attributes: - sub_status_id: e1661758-366a-415f-b821-623a587730dd - incident_id: e84a2541-062b-4799-8144-2b743cac79aa - assigned_at: 2026-01-20T09:46:22.000-08:00 - assigned_by_user_id: 609 - relationships: - sub_status: - data: - id: e1661758-366a-415f-b821-623a587730dd - type: sub_statuses - assigned_by_user: - data: - id: "609" - type: users schema: - $ref: '#/components/schemas/incident_sub_status_response' - description: incident_sub_status updated + $ref: '#/components/schemas/incident_event_service_response' + description: incident_event_service updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: Update incident_sub_status + summary: Update an incident event tags: - - IncidentSubStatuses + - IncidentEventServices x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_types: + /v1/incidents/{incident_id}/events: get: - description: List incident types - operationId: listIncident Types + description: List incident events + operationId: listIncidentEvents parameters: + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple - explode: true in: query name: include @@ -23243,754 +15088,825 @@ paths: schema: type: integer style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[color]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: sort - required: false - schema: - type: string - style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_type_list' + $ref: '#/components/schemas/incident_event_list' description: success security: - bearer_auth: [] - summary: List incident types + summary: List incident events tags: - - IncidentTypes + - IncidentEvents x-accepts: - application/vnd.api+json post: - description: Creates a new incident_type from provided data - operationId: createIncidentType - parameters: [] + description: Creates a new event from provided data + operationId: createIncidentEvent + parameters: + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident_type' + $ref: '#/components/schemas/new_incident_event' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: c7733fc5-f17f-498f-b347-5632c0c95eb5 - type: incident_types - attributes: - slug: bug - name: Bug - description: Bug caused by a human - color: '#FFF' - position: 1 - notify_emails: - - hello@rootly.com - - world@rootly.com - slack_channels: - - id: C03MKDSEJE8 - name: elastisearch - slack_aliases: - - id: S03F7QUV7F1 - name: leadership - created_at: 2026-01-20T09:46:24.246-08:00 - updated_at: 2026-01-20T09:46:24.246-08:00 schema: - $ref: '#/components/schemas/incident_type_response' - description: incident_type created + $ref: '#/components/schemas/incident_event_response' + description: incident_event created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident type + summary: Creates an incident event tags: - - IncidentTypes + - IncidentEvents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incident_types/{id}: + /v1/events/{id}: delete: - description: Delete a specific incident_type by id - operationId: deleteIncidentType + description: Delete a specific incident event by id + operationId: deleteIncidentEvent parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 764cf75b-de1f-4572-9dfb-2e9add9a75dd - type: incident_types - attributes: - slug: laborum-sint-commodi-unde - name: Laborum sint commodi unde. - description: Sunt non facilis perferendis. - color: '#047BF8' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:23.283-08:00 - updated_at: 2026-01-20T09:46:25.027-08:00 schema: - $ref: '#/components/schemas/incident_type_response' - description: incident_type deleted + $ref: '#/components/schemas/incident_event_response' + description: incident_event deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident type + summary: Delete an incident event tags: - - IncidentTypes + - IncidentEvents x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident_type by id - operationId: getIncidentType + description: Retrieves a specific incident_event by id + operationId: getIncidentEvents parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 764cf75b-de1f-4572-9dfb-2e9add9a75dd - type: incident_types - attributes: - slug: laborum-sint-commodi-unde - name: Laborum sint commodi unde. - description: Sunt non facilis perferendis. - color: '#047BF8' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:23.283-08:00 - updated_at: 2026-01-20T09:46:23.283-08:00 schema: - $ref: '#/components/schemas/incident_type_response' - description: incident_type found by slug + $ref: '#/components/schemas/incident_event_response' + description: incident_event found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident type + summary: Retrieves an incident event tags: - - IncidentTypes + - IncidentEvents x-accepts: - application/vnd.api+json put: - description: Update a specific incident_type by id - operationId: updateIncidentType + description: Update a specific incident event by id + operationId: updateIncidentEvent parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident_type' + $ref: '#/components/schemas/update_incident_event' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 764cf75b-de1f-4572-9dfb-2e9add9a75dd - type: incident_types - attributes: - slug: p1 - name: P1 - description: Medium Priority - color: '#000' - position: 2 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:23.283-08:00 - updated_at: 2026-01-20T09:46:24.808-08:00 schema: - $ref: '#/components/schemas/incident_type_response' - description: incident_type updated + $ref: '#/components/schemas/incident_event_response' + description: incident_event updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident type + summary: Update an incident event tags: - - IncidentTypes + - IncidentEvents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents: + /v1/incidents/{incident_id}/feedbacks: get: - description: List incidents - operationId: listIncidents + description: List incident feedbacks + operationId: listIncidentFeedbacks parameters: + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple - explode: true in: query - name: "page[number]" + name: include required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "page[number]" required: false schema: type: integer style: form - explode: true in: query - name: "filter[search]" + name: "page[size]" required: false schema: - type: string + type: integer style: form - - explode: true - in: query - name: "filter[kind]" - required: false + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_feedback_list' + description: success + security: + - bearer_auth: [] + summary: List incident feedbacks + tags: + - IncidentFeedbacks + x-accepts: + - application/vnd.api+json + post: + description: Creates a new feedback from provided data + operationId: createIncidentFeedback + parameters: + - explode: false + in: path + name: incident_id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[status]" - required: false + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_incident_feedback' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_feedback_response' + description: incident_feedback created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates an incident feedback + tags: + - IncidentFeedbacks + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/feedbacks/{id}: + get: + description: Retrieves a specific incident_feedback by id + operationId: getIncidentFeedbacks + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[private]" - required: false + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_feedback_response' + description: incident_feedback found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves an incident feedback + tags: + - IncidentFeedbacks + x-accepts: + - application/vnd.api+json + put: + description: Update a specific incident feedback by id + operationId: updateIncidentFeedback + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[user_id]" - required: false + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_incident_feedback' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_feedback_response' + description: incident_feedback updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update an incident feedback + tags: + - IncidentFeedbacks + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incidents/{incident_id}/form_field_selections: + get: + description: List incident form field selections + operationId: listIncidentFormFieldSelections + parameters: + - explode: false + in: path + name: incident_id + required: true schema: - type: integer - style: form + type: string + style: simple - explode: true in: query - name: "filter[severity]" + name: include required: false schema: type: string style: form - explode: true in: query - name: "filter[severity_id]" + name: "page[number]" required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "filter[labels]" + name: "page[size]" required: false schema: - type: string + type: integer style: form - - explode: true - in: query - name: "filter[types]" - required: false + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_form_field_selection_list' + description: success + security: + - bearer_auth: [] + summary: List incident form field selections + tags: + - IncidentFormFieldSelections + x-accepts: + - application/vnd.api+json + post: + description: Creates a new incident form field selection from provided data + operationId: createIncidentFormFieldSelection + parameters: + - explode: false + in: path + name: incident_id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[type_ids]" - required: false + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_incident_form_field_selection' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_form_field_selection_response' + description: incident_form_field_selection created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates an incident form field selection + tags: + - IncidentFormFieldSelections + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incident_form_field_selections/{id}: + delete: + description: Delete a specific incident form field selection by id + operationId: deleteIncidentFormFieldSelection + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[environments]" - required: false + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_form_field_selection_response' + description: incident_form_field_selection deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete an incident form field selection + tags: + - IncidentFormFieldSelections + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific incident form field selection by id + operationId: getIncidentFormFieldSelection + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[environment_ids]" - required: false + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_form_field_selection_response' + description: incident_form_field_selection found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves an incident form field selection + tags: + - IncidentFormFieldSelections + x-accepts: + - application/vnd.api+json + put: + description: Update a specific incident form field selection by id + operationId: updateIncidentFormFieldSelection + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[functionalities]" - required: false + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_incident_form_field_selection' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_form_field_selection_response' + description: incident_form_field_selection updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update an incident form field selection + tags: + - IncidentFormFieldSelections + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incident_permission_sets/{incident_permission_set_id}/booleans: + get: + description: List incident_permission_set_booleans + operationId: listIncidentPermissionSetBooleans + parameters: + - explode: false + in: path + name: incident_permission_set_id + required: true schema: type: string - style: form + style: simple - explode: true in: query - name: "filter[functionality_ids]" + name: include required: false schema: type: string style: form - explode: true in: query - name: "filter[services]" + name: "page[number]" required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "filter[service_ids]" + name: "page[size]" required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "filter[teams]" + name: "filter[kind]" required: false schema: type: string style: form - explode: true in: query - name: "filter[team_ids]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[cause]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[cause_ids]" + name: "filter[created_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[custom_field_selected_option_ids]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: sort required: false schema: type: string style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[updated_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[updated_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[updated_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[updated_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[started_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[started_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[started_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[started_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[detected_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[detected_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[detected_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[detected_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[acknowledged_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[acknowledged_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[acknowledged_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[acknowledged_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][lt]" - required: false + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_permission_set_boolean_list' + description: success + security: + - bearer_auth: [] + summary: List incident_permission_set_booleans + tags: + - IncidentPermissionSetBooleans + x-accepts: + - application/vnd.api+json + post: + description: Creates a new incident_permission_set_boolean from provided data + operationId: createIncidentPermissionSetBoolean + parameters: + - explode: false + in: path + name: incident_permission_set_id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[mitigated_at][lte]" - required: false + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_incident_permission_set_boolean' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_permission_set_boolean_response' + description: incident_permission_set_boolean created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates an incident_permission_set_boolean + tags: + - IncidentPermissionSetBooleans + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incident_permission_set_booleans/{id}: + delete: + description: Delete a specific incident_permission_set_boolean by id + operationId: deleteIncidentPermissionSetBoolean + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[resolved_at][gt]" - required: false + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_permission_set_boolean_response' + description: incident_permission_set_boolean deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete an incident_permission_set_boolean + tags: + - IncidentPermissionSetBooleans + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific incident_permission_set_boolean by id + operationId: getIncidentPermissionSetBoolean + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[resolved_at][gte]" - required: false + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_permission_set_boolean_response' + description: incident_permission_set_boolean found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves an incident_permission_set_boolean + tags: + - IncidentPermissionSetBooleans + x-accepts: + - application/vnd.api+json + put: + description: Update a specific incident_permission_set_boolean by id + operationId: updateIncidentPermissionSetBoolean + parameters: + - explode: false + in: path + name: id + required: true schema: type: string - style: form - - explode: true - in: query - name: "filter[resolved_at][lt]" - required: false + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_incident_permission_set_boolean' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_permission_set_boolean_response' + description: incident_permission_set_boolean updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update an incident_permission_set_boolean + tags: + - IncidentPermissionSetBooleans + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incident_permission_sets/{incident_permission_set_id}/resources: + get: + description: List incident_permission_set_resources + operationId: listIncidentPermissionSetResources + parameters: + - explode: false + in: path + name: incident_permission_set_id + required: true schema: type: string - style: form + style: simple - explode: true in: query - name: "filter[resolved_at][lte]" + name: include required: false schema: type: string style: form - explode: true in: query - name: "filter[closed_at][gt]" + name: "page[number]" required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "filter[closed_at][gte]" + name: "page[size]" required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "filter[closed_at][lt]" + name: "filter[kind]" required: false schema: type: string style: form - explode: true in: query - name: "filter[closed_at][lte]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[in_triage_at][gt]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[in_triage_at][gte]" + name: "filter[created_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[in_triage_at][lt]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true - in: query - name: "filter[in_triage_at][lte]" - required: false - schema: - type: string - style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true in: query name: sort required: false schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at - type: string - style: form - - description: "comma separated if needed. eg: sub_statuses,causes,subscribers" - explode: true - in: query - name: include - required: false - schema: - enum: - - sub_statuses - - causes - - subscribers - - roles - - slack_messages - - environments - - incident_types - - services - - functionalities - - groups - - events - - action_items - - custom_field_selections - - feedbacks - - incident_post_mortem - - alerts type: string style: form responses: @@ -23998,7647 +15914,297 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/incident_list' + $ref: '#/components/schemas/incident_permission_set_resource_list' description: success security: - bearer_auth: [] - summary: List incidents + summary: List incident_permission_set_resources tags: - - Incidents + - IncidentPermissionSetResources x-accepts: - application/vnd.api+json post: - description: Creates a new incident from provided data - operationId: createIncident - parameters: [] + description: Creates a new incident_permission_set_resource from provided data + operationId: createIncidentPermissionSetResource + parameters: + - explode: false + in: path + name: incident_permission_set_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_incident' + $ref: '#/components/schemas/new_incident_permission_set_resource' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 888bace7-1356-4aad-a926-fb747fe68c54 - type: incidents - attributes: - parent_incident_id: null - sequential_id: 11 - title: Oh no! Something is broken - slug: oh-no-something-is-broken - kind: normal - private: false - summary: |- - this is the description and there are new lines - - this is the next line - - this is the 3rd line - status: started - source: api - url: http://localhost:3001/account/incidents/11-oh-no-something-is-broken - short_url: null - user: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:42.583-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - severity: - data: - id: f073e489-9237-4a0d-afa6-cb0e8b0b46e4 - type: severities - attributes: - name: fahcs - slug: fahcs - description: Eos ut laboriosam quas. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:31.406-08:00 - updated_at: 2026-01-20T09:46:31.406-08:00 - in_triage_by: null - started_by: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:42.583-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: Public incident notification - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: PROJ-123 - jira_issue_id: "10001" - jira_issue_url: https://jira.example.com/browse/PROJ-123 - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: incident-response - slack_channel_id: C123456789 - slack_channel_url: https://team.slack.com/channels/incident-response - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: https://docs.google.com/document/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:42.740-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:42.785-08:00 - updated_at: 2026-01-20T09:46:42.887-08:00 - muted_service_ids: [] - labels: - platform: windows - version: "1.12" - CaseSensitive: preserve - relationships: - causes: - data: - - id: cf6cac3e-0422-4c82-b9f7-6c3b01fcaada - type: causes - - id: 7c4d3d1e-33fd-46dd-8445-5d7f78fa91f9 - type: causes - subscribers: - data: [] - roles: - data: - - id: 927e84a4-05de-46a1-9eaa-e49a21d0805e - type: incident_role_assignments - environments: - data: - - id: fb69ca8c-497f-4216-8539-061cb3a11915 - type: environments - - id: 65a9df64-578f-4a13-a276-7c11822311db - type: environments - incident_types: - data: - - id: 5ca55313-dbb3-47b2-b36c-05d876bb4fd1 - type: incident_types - - id: 8ae8bbf4-844b-4dce-aee8-bb88548e5278 - type: incident_types - services: - data: - - id: 3c970a3f-4649-4916-9ccb-5e15d914b7cc - type: services - - id: 1283b1b4-635e-4b79-b54d-f45310c1fa79 - type: services - functionalities: - data: - - id: 45643c6d-c772-410f-a1a8-2c410472ef85 - type: functionalities - - id: 928550e3-d19b-4f5a-8aa3-1e667d1412b8 - type: functionalities - groups: - data: - - id: 94f1e7fe-fcd5-41c4-8098-a9c33a579d20 - type: groups - - id: 2a1a3e9d-c2aa-45e3-ad5d-279868e3a030 - type: groups - events: - data: - - id: 9cbd28a1-b678-4ce7-a030-02e7b76b8ffb - type: incident_events - - id: 4ea72d12-d9b3-4817-8513-b7bb12aae905 - type: incident_events - - id: 31957d17-c54d-43d9-88b7-28e6e05d29e3 - type: incident_events - - id: e3d8c090-6ad3-4bb7-b796-0bf4cc846c3f - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] schema: - $ref: '#/components/schemas/incident_response' - description: incident created + $ref: '#/components/schemas/incident_permission_set_resource_response' + description: incident_permission_set_resource created "422": content: application/vnd.api+json: - example: - errors: - - title: Detected at can not be before Started time - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid causes association + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an incident + summary: Creates an incident_permission_set_resource tags: - - Incidents + - IncidentPermissionSetResources x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{id}: + /v1/incident_permission_set_resources/{id}: delete: - description: Delete a specific incident by id - operationId: deleteIncident + description: Delete a specific incident_permission_set_resource by id + operationId: deleteIncidentPermissionSetResource parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: started - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:46.176-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] schema: - $ref: '#/components/schemas/incident_response' - description: incident deleted + $ref: '#/components/schemas/incident_permission_set_resource_response' + description: incident_permission_set_resource deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an incident + summary: Delete an incident_permission_set_resource tags: - - Incidents + - IncidentPermissionSetResources x-accepts: - application/vnd.api+json get: - description: Retrieves a specific incident by id - operationId: getIncident + description: Retrieves a specific incident_permission_set_resource by id + operationId: getIncidentPermissionSetResource parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - - description: "comma separated if needed. eg: sub_statuses,causes,subscribers" - explode: true - in: query - name: include - required: false - schema: - enum: - - sub_statuses - - causes - - subscribers - - roles - - slack_messages - - environments - - incident_types - - services - - functionalities - - groups - - events - - action_items - - custom_field_selections - - feedbacks - - incident_post_mortem - - alerts type: string - style: form + style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: started - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:27.695-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] schema: - $ref: '#/components/schemas/incident_response' - description: incident found by slug + $ref: '#/components/schemas/incident_permission_set_resource_response' + description: incident_permission_set_resource found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an incident + summary: Retrieves an incident_permission_set_resource tags: - - Incidents + - IncidentPermissionSetResources x-accepts: - application/vnd.api+json put: - description: Update a specific incident by id - operationId: updateIncident + description: Update a specific incident_permission_set_resource by id + operationId: updateIncidentPermissionSetResource parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_incident' + $ref: '#/components/schemas/update_incident_permission_set_resource' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Oh no! Something is broken again - slug: nemo-error-ex-ad - kind: normal - private: true - summary: What could it be again? - status: started - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: Updated public title - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: PROJ-456 - jira_issue_id: "10002" - jira_issue_url: https://jira.example.com/browse/PROJ-456 - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: updated-incident-channel - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: https://docs.google.com/document/d/updated - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:45.645-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 988d459b-16e3-4d46-a56d-076906ec12d9 - type: incident_events - - id: d5d06b63-dbb5-4959-8f42-ba705edb8783 - type: incident_events - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] schema: - $ref: '#/components/schemas/incident_response' - description: incident updated + $ref: '#/components/schemas/incident_permission_set_resource_response' + description: incident_permission_set_resource updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an incident + summary: Update an incident_permission_set_resource tags: - - Incidents + - IncidentPermissionSetResources x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{id}/mitigate: - put: - description: Mitigate a specific incident by id - operationId: mitigateIncident + /v1/incident_permission_sets: + get: + description: List incident_permission_sets + operationId: listIncidentPermissionSets parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: include + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/mitigate_incident' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: mitigated - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:46.503-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: Restart database fixed it! - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: 2026-01-20T09:46:46.635-08:00 - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:46.667-08:00 - muted_service_ids: [] - labels: {} - relationships: - incident_post_mortem: - data: - id: e137d243-60cc-4b19-8a68-9f8ebd390738 - type: incident_post_mortems - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 31764cee-ae4e-42b6-a4ef-0150cb08aaf7 - type: incident_events - - id: 8244e8d9-e204-4312-8ed3-d7308cfaedbf - type: incident_events - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] - schema: - $ref: '#/components/schemas/incident_response' - description: incident mitigated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Mitigate an incident - tags: - - Incidents - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/incidents/{id}/resolve: - put: - description: Resolve a specific incident by id - operationId: resolveIncident - parameters: - - explode: false - in: path - name: id - required: true + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/resolve_incident' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: resolved - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:47.131-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: Restart database fixed it! - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: 2026-01-20T09:46:47.288-08:00 - resolved_at: 2026-01-20T09:46:47.288-08:00 - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:47.357-08:00 - muted_service_ids: [] - labels: {} - relationships: - incident_post_mortem: - data: - id: e137d243-60cc-4b19-8a68-9f8ebd390738 - type: incident_post_mortems - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: b35dfdd7-aba4-4649-937d-5f1838f29cc7 - type: incident_events - - id: 77fdac36-515c-4539-80b1-c293e58101b6 - type: incident_events - - id: ac45ebaa-3e3a-445b-b4ff-37e420668071 - type: incident_events - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] - schema: - $ref: '#/components/schemas/incident_response' - description: incident resolved - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Resolve an incident - tags: - - Incidents - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/incidents/{id}/cancel: - put: - description: Cancel a specific incident by id - operationId: cancelIncident - parameters: - - explode: false - in: path - name: id - required: true + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/cancel_incident' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: cancelled - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:47.755-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - mitigation_message: null - resolution_message: null - cancellation_message: Nevermind! - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: 2026-01-20T09:46:47.895-08:00 - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:47.932-08:00 - muted_service_ids: [] - labels: {} - relationships: - incident_post_mortem: - data: - id: e137d243-60cc-4b19-8a68-9f8ebd390738 - type: incident_post_mortems - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 5a2046e9-40a1-4aeb-9925-d6fd95011e3d - type: incident_events - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] - schema: - $ref: '#/components/schemas/incident_response' - description: incident cancel - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Cancel an incident - tags: - - Incidents - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/incidents/{id}/in_triage: - put: - description: Set a specific incident by ID to triage state - operationId: triageIncident - parameters: - - explode: false - in: path - name: id - required: true + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/in_triage_incident' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: aceb8479-6297-4268-80b6-588c234b028c - type: incidents - attributes: - parent_incident_id: null - sequential_id: 10 - title: Odio ullam voluptatem fuga. - slug: odio-ullam-voluptatem-fuga - kind: normal - private: false - summary: Architecto hic eos. Totam reprehenderit autem. Doloremque - fugit voluptatem. - status: in_triage - source: web - url: http://localhost:3001/account/incidents/10-odio-ullam-voluptatem-fuga - short_url: null - user: - data: - id: "634" - type: users - attributes: - name: Grover Beer - email: humberto@medhurst-wunsch.test - phone: null - phone_2: null - first_name: Grover - last_name: Beer - full_name: Grover Beer - full_name_with_team: "[Hahn-Baumbach] Grover Beer" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:31.282-08:00 - created_at: 2026-01-20T09:46:30.981-08:00 - relationships: - email_addresses: - data: - - id: b16b367a-37ab-4624-9ee7-c3e59f1073ed - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: d7de8064-0181-4c89-8b9c-58d0e719e042 - type: user_notification_rules - - id: d6a93954-e3fb-4b89-a4db-ca03f57d9cf4 - type: user_notification_rules - severity: - data: - id: 42b38c23-62b8-4b44-bd50-c4716c0da946 - type: severities - attributes: - name: cpsdc - slug: cpsdc - description: Reiciendis debitis cupiditate magnam. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:31.254-08:00 - updated_at: 2026-01-20T09:46:31.254-08:00 - in_triage_by: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:48.283-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - started_by: - data: - id: "634" - type: users - attributes: - name: Grover Beer - email: humberto@medhurst-wunsch.test - phone: null - phone_2: null - first_name: Grover - last_name: Beer - full_name: Grover Beer - full_name_with_team: "[Hahn-Baumbach] Grover Beer" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:31.282-08:00 - created_at: 2026-01-20T09:46:30.981-08:00 - relationships: - email_addresses: - data: - - id: b16b367a-37ab-4624-9ee7-c3e59f1073ed - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: d7de8064-0181-4c89-8b9c-58d0e719e042 - type: user_notification_rules - - id: d6a93954-e3fb-4b89-a4db-ca03f57d9cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: 2026-01-20T09:46:48.422-08:00 - started_at: null - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:31.259-08:00 - updated_at: 2026-01-20T09:46:48.459-08:00 - muted_service_ids: [] - labels: {} - relationships: - incident_post_mortem: - data: - id: 446e75d1-4fad-480e-bafc-242d625a1770 - type: incident_post_mortems - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 5f068aad-ce45-4f46-b34e-2224c48f18d0 - type: incident_events - - id: 4ab14d1b-c27b-494e-8c89-d5ea5971fd25 - type: incident_events - - id: c11ffafc-b92b-46cd-ae26-2e6ffe754547 - type: incident_events - - id: ef03ba2e-9bc8-4b07-94b1-6a31cb39f80f - type: incident_events - - id: be29db01-2cfb-4463-81e0-c4b012cc1606 - type: incident_events - - id: a9a97348-9950-41d5-8062-71381a43c37f - type: incident_events - - id: 2775cbc6-fc2b-40cc-80ee-d04633cfd786 - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] - schema: - $ref: '#/components/schemas/incident_response' - description: incident set to triage - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Triage an incident - tags: - - Incidents - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/incidents/{id}/restart: - put: - description: Restart a specific incident by id - operationId: restartIncident - parameters: - - explode: false - in: path - name: id - required: true + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/restart_incident' - required: true + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: aceb8479-6297-4268-80b6-588c234b028c - type: incidents - attributes: - parent_incident_id: null - sequential_id: 10 - title: Odio ullam voluptatem fuga. - slug: odio-ullam-voluptatem-fuga - kind: normal - private: false - summary: Architecto hic eos. Totam reprehenderit autem. Doloremque - fugit voluptatem. - status: started - source: web - url: http://localhost:3001/account/incidents/10-odio-ullam-voluptatem-fuga - short_url: null - user: - data: - id: "634" - type: users - attributes: - name: Grover Beer - email: humberto@medhurst-wunsch.test - phone: null - phone_2: null - first_name: Grover - last_name: Beer - full_name: Grover Beer - full_name_with_team: "[Hahn-Baumbach] Grover Beer" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:31.282-08:00 - created_at: 2026-01-20T09:46:30.981-08:00 - relationships: - email_addresses: - data: - - id: b16b367a-37ab-4624-9ee7-c3e59f1073ed - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: d7de8064-0181-4c89-8b9c-58d0e719e042 - type: user_notification_rules - - id: d6a93954-e3fb-4b89-a4db-ca03f57d9cf4 - type: user_notification_rules - severity: - data: - id: 42b38c23-62b8-4b44-bd50-c4716c0da946 - type: severities - attributes: - name: cpsdc - slug: cpsdc - description: Reiciendis debitis cupiditate magnam. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:31.254-08:00 - updated_at: 2026-01-20T09:46:31.254-08:00 - in_triage_by: null - started_by: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:48.850-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:48.995-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:31.259-08:00 - updated_at: 2026-01-20T09:46:49.029-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: c3dec7f5-1e28-46c2-b3f2-4e74a6ce9f2d - type: incident_events - - id: c11ffafc-b92b-46cd-ae26-2e6ffe754547 - type: incident_events - - id: ef03ba2e-9bc8-4b07-94b1-6a31cb39f80f - type: incident_events - - id: be29db01-2cfb-4463-81e0-c4b012cc1606 - type: incident_events - - id: a9a97348-9950-41d5-8062-71381a43c37f - type: incident_events - - id: 2775cbc6-fc2b-40cc-80ee-d04633cfd786 - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] - schema: - $ref: '#/components/schemas/incident_response' - description: incident restarted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/incident_permission_set_list' + description: success security: - bearer_auth: [] - summary: Restart an incident + summary: List incident_permission_sets tags: - - Incidents - x-content-type: application/vnd.api+json + - IncidentPermissionSets x-accepts: - application/vnd.api+json - /v1/incidents/{id}/duplicate: - put: - description: Mark an incident as a duplicate - operationId: markAsDuplicateIncident - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple + post: + description: Creates a new incident_permission_set from provided data + operationId: createIncidentPermissionSet + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/resolve_incident' + $ref: '#/components/schemas/new_incident_permission_set' required: true responses: - "200": + "201": content: application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: cancelled - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: Duplicate ! - public_title: null - duplicate_incident_id: 833022d1-d66d-49e1-8e9f-a10b27bcbc9a - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: 2026-01-20T09:46:49.626-08:00 - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:49.662-08:00 - muted_service_ids: [] - labels: {} - relationships: - incident_post_mortem: - data: - id: e137d243-60cc-4b19-8a68-9f8ebd390738 - type: incident_post_mortems - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 454bb491-a743-4879-855b-268197f8ee83 - type: incident_events - - id: 1e348fbe-4a03-4c4f-9efa-c4a26fcd3469 - type: incident_events - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] schema: - $ref: '#/components/schemas/incident_response' - description: incident marked as duplicated - "404": + $ref: '#/components/schemas/incident_permission_set_response' + description: incident_permission_set created + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Mark an incident as a duplicate - tags: - - Incidents - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/incidents/{id}/add_subscribers: - post: - description: Add subscribers to incident - operationId: addSubscribersToIncident - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/add_subscribers' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: started - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:27.695-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: - - id: e6240656-7661-4c80-afd2-26e4cd61c86b - type: incident_subscribers - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] - schema: - $ref: '#/components/schemas/incident_response' - description: add subscribers to incident - "404": + description: invalid request + "401": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Add subscribers to incident + summary: Creates an incident_permission_set tags: - - Incidents + - IncidentPermissionSets x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/incidents/{id}/remove_subscribers: + /v1/incident_permission_sets/{id}: delete: - description: Remove subscribers to incident - operationId: removeSubscribersToIncident + description: Delete a specific incident_permission_set by id + operationId: deleteIncidentPermissionSet parameters: - explode: false in: path @@ -31647,609 +16213,29 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/remove_subscribers' - required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: started - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:27.695-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: [] - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] schema: - $ref: '#/components/schemas/incident_response' - description: remove subscribers from incident + $ref: '#/components/schemas/incident_permission_set_response' + description: incident_permission_set deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Remove subscribers from incident + summary: Delete an incident_permission_set tags: - - Incidents - x-content-type: application/vnd.api+json + - IncidentPermissionSets x-accepts: - application/vnd.api+json - /v1/incidents/{id}/assign_role_to_user: - post: - description: Assign user to incident - operationId: assignUserToIncident + get: + description: Retrieves a specific incident_permission_set by id + operationId: getIncidentPermissionSet parameters: - explode: false in: path @@ -32258,837 +16244,29 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/assign_role_to_user' - required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: started - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:51.219-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: - - id: 4ab89fb2-558b-455e-bc74-b7ed85ae0b2c - type: incident_subscribers - roles: - data: - - id: 5803d26a-b957-4187-8321-98b14f6846ab - type: incident_role_assignments - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: d60b6291-23ee-415e-b1f8-3fcb91e77c08 - type: incident_events - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] - included: - - id: 5803d26a-b957-4187-8321-98b14f6846ab - type: incident_role_assignments - attributes: - incident_role: - data: - id: 1c537e68-7426-4cd5-908e-2222d2960344 - type: incident_roles - attributes: - slug: eius-perferendis-sint-impedit - name: Eius perferendis sint impedit. - summary: null - description: null - position: 1 - optional: false - enabled: true - allow_multi_user_assignment: false - created_at: 2026-01-20T09:46:31.522-08:00 - updated_at: 2026-01-20T09:46:31.522-08:00 - user: - data: - id: "617" - type: users - attributes: - name: Alvin Schmidt - email: carey@barton.test - phone: null - phone_2: null - first_name: Alvin - last_name: Schmidt - full_name: Alvin Schmidt - full_name_with_team: "[Hahn-Baumbach] Alvin Schmidt" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:51.080-08:00 - created_at: 2026-01-20T09:46:25.803-08:00 - relationships: - email_addresses: - data: - - id: 017eee33-70a3-4677-8ecc-31be556e1b59 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 2a928e59-4d6c-4721-80b7-8694bcd8152f - type: user_notification_rules - - id: a8ae1d2e-566d-4955-a7ac-c6ae85615062 - type: user_notification_rules - updated_at: 2026-01-20T09:46:51.210-08:00 - created_at: 2026-01-20T09:46:51.210-08:00 schema: - $ref: '#/components/schemas/incident_response' - description: assign user to incident + $ref: '#/components/schemas/incident_permission_set_response' + description: incident_permission_set found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Assign user to incident + summary: Retrieves an incident_permission_set tags: - - Incidents - x-content-type: application/vnd.api+json + - IncidentPermissionSets x-accepts: - application/vnd.api+json - /v1/incidents/{id}/unassign_role_from_user: - delete: - description: Remove assigned user from incident - operationId: removeAssignedUserFromIncident + put: + description: Update a specific incident_permission_set by id + operationId: updateIncidentPermissionSet parameters: - explode: false in: path @@ -33101,640 +16279,33 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/unassign_role_from_user' + $ref: '#/components/schemas/update_incident_permission_set' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 92093adc-3fd9-4933-9a01-1584e9d48faf - type: incidents - attributes: - parent_incident_id: null - sequential_id: 1 - title: Nemo error ex ad. - slug: nemo-error-ex-ad - kind: normal - private: false - summary: Quia minima rem. Consequuntur debitis nihil. Voluptas - ullam labore. - status: started - source: web - url: http://localhost:3001/account/incidents/1-nemo-error-ex-ad - short_url: null - user: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - severity: - data: - id: d921b581-b928-4ba8-8ca2-328f0fb3b75d - type: severities - attributes: - name: oewa7 - slug: oewa7 - description: Voluptas et iure molestiae. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:46:27.632-08:00 - updated_at: 2026-01-20T09:46:27.632-08:00 - in_triage_by: null - started_by: - data: - id: "619" - type: users - attributes: - name: Janie Cormier - email: leonila_hilpert@reichel.example - phone: null - phone_2: null - first_name: Janie - last_name: Cormier - full_name: Janie Cormier - full_name_with_team: "[Hahn-Baumbach] Janie Cormier" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:46:27.656-08:00 - created_at: 2026-01-20T09:46:26.985-08:00 - relationships: - email_addresses: - data: - - id: 40ad116d-0228-4e7c-aaab-17f096014ac4 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 62ebcce5-25d5-4f1d-b5ec-16bfa2b20109 - alerts_permissions: - - create - - read - api_keys_permissions: - - create - - update - - read - - delete - audits_permissions: [] - billing_permissions: [] - catalogs_permissions: - - create - - read - - update - - delete - communication_permissions: - - read - created_at: 2026-01-20T09:46:26.032-08:00 - deleted_at: null - display_order: 2 - edge_connector_permissions: [] - environments_permissions: - - create - - read - - update - - delete - form_fields_permissions: - - create - - read - - update - - delete - functionalities_permissions: - - create - - read - - update - - delete - groups_permissions: - - create - - read - - update - - delete - incident_causes_permissions: - - create - - read - - update - - delete - incident_communication_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 0d7d92d3-90ed-466a-a2a6-cb25350f53f2 - incident_roles_permissions: - - create - - read - - update - - delete - incident_types_permissions: - - create - - read - - update - - delete - incidents_permissions: - - create - - read - - update - - delete - integrations_permissions: [] - invitations_permissions: - - create - - read - - update - - delete - is_deletable: false - is_editable: true - name: user - paging_permissions: - - create - - read - - update - - delete - playbooks_permissions: - - create - - read - - update - - delete - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - create - - read - - update - - delete - roles_permissions: [] - secrets_permissions: - - create - - read - - update - - delete - services_permissions: - - create - - read - - update - - delete - severities_permissions: - - create - - read - - update - - delete - slug: user - status_pages_permissions: - - create - - read - - update - - delete - sub_statuses_permissions: - - read - team_id: 383 - updated_at: 2026-01-20T09:46:26.032-08:00 - webhooks_permissions: [] - workflows_permissions: - - create - - read - - update - - delete - on_call_role: - data: - id: bc39dc14-93f9-4a0a-ad24-9f79141b71ef - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - created_at: 2026-01-20T09:46:26.054-08:00 - deleted_at: null - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - name: None - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedule_override_permissions: [] - schedules_permissions: [] - services_permissions: [] - shift_overrides_permissions: [] - slug: none - system_role: no_access - team_id: 383 - updated_at: 2026-01-20T09:46:26.054-08:00 - webhooks_permissions: [] - workflows_permissions: [] - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 40bd5b27-5727-4346-935d-654963831993 - type: user_notification_rules - - id: e0d1753c-c257-419a-bdb0-26916c8a3cf4 - type: user_notification_rules - mitigated_by: null - resolved_by: null - closed_by: null - cancelled_by: null - mitigation_message: null - resolution_message: null - cancellation_message: null - public_title: null - duplicate_incident_id: null - retrospective_progress_status: not_started - zoom_meeting_id: null - zoom_meeting_start_url: null - zoom_meeting_join_url: null - zoom_meeting_password: null - zoom_meeting_pstn_password: null - zoom_meeting_h323_password: null - zoom_meeting_global_dial_in_numbers: [] - shortcut_story_id: null - shortcut_story_url: null - shortcut_task_id: null - shortcut_task_url: null - asana_task_id: null - asana_task_url: null - github_issue_id: null - github_issue_url: null - gitlab_issue_id: null - gitlab_issue_url: null - jira_issue_key: null - jira_issue_id: null - jira_issue_url: null - google_meeting_id: null - google_meeting_url: null - trello_card_id: null - trello_card_url: null - linear_issue_id: null - linear_issue_url: null - zendesk_ticket_id: null - zendesk_ticket_url: null - motion_task_id: null - motion_task_url: null - clickup_task_id: null - clickup_task_url: null - slack_channel_name: null - slack_channel_id: null - slack_channel_url: null - slack_channel_short_url: null - slack_channel_deep_link: null - slack_channel_archived: false - slack_last_message_ts: null - service_now_incident_id: null - service_now_incident_key: null - service_now_incident_url: null - opsgenie_incident_id: null - opsgenie_incident_url: null - opsgenie_alert_id: null - opsgenie_alert_url: null - victor_ops_incident_id: null - victor_ops_incident_url: null - pagerduty_incident_id: null - pagerduty_incident_number: null - pagerduty_incident_url: null - mattermost_channel_id: null - mattermost_channel_name: null - mattermost_channel_url: null - confluence_page_id: null - confluence_page_url: null - quip_page_id: null - quip_page_url: null - airtable_base_key: null - airtable_table_name: null - airtable_record_id: null - airtable_record_url: null - google_drive_id: null - google_drive_parent_id: null - google_drive_url: null - sharepoint_page_id: null - sharepoint_page_url: null - datadog_notebook_id: null - datadog_notebook_url: null - freshservice_ticket_id: null - freshservice_ticket_url: null - freshservice_task_id: null - freshservice_task_url: null - scheduled_for: null - scheduled_until: null - in_triage_at: null - started_at: 2026-01-20T09:46:27.636-08:00 - detected_at: null - acknowledged_at: null - mitigated_at: null - resolved_at: null - closed_at: null - cancelled_at: null - created_at: 2026-01-20T09:46:27.636-08:00 - updated_at: 2026-01-20T09:46:53.617-08:00 - muted_service_ids: [] - labels: {} - relationships: - causes: - data: [] - subscribers: - data: - - id: 0dd6c1c0-437a-434d-b852-635b4d27ff22 - type: incident_subscribers - roles: - data: [] - environments: - data: [] - incident_types: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - events: - data: - - id: 095f5d15-74cf-49f8-a4ce-e8c2f17f47b9 - type: incident_events - - id: 64177840-a532-441e-96a1-29163e8bacfc - type: incident_events - - id: 3ae61338-082b-4863-91ed-004d2694716e - type: incident_events - action_items: - data: [] - custom_field_selections: - data: [] - feedbacks: - data: [] - attachments: - data: [] - slack_messages: - data: [] - alerts: - data: [] schema: - $ref: '#/components/schemas/incident_response' - description: remove assigned user from incident + $ref: '#/components/schemas/incident_permission_set_response' + description: incident_permission_set updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Remove assigned user from incident + summary: Update an incident_permission_set tags: - - Incidents + - IncidentPermissionSets x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/ip_ranges: - get: - description: Retrieves the IP ranges for rootly.com services - operationId: getIpRanges - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: ip_ranges - type: ip_ranges - attributes: - integrations_ipv4: - - 34.232.217.139 - - 18.213.181.255 - integrations_ipv6: [] - webhooks_ipv4: - - 34.232.217.139 - - 18.213.181.255 - webhooks_ipv6: [] - schema: - $ref: '#/components/schemas/ip_ranges_response' - description: ip_ranges found - security: - - bearer_auth: [] - summary: Retrieves IP ranges - tags: - - IpRanges - x-accepts: - - application/vnd.api+json - /v1/live_call_routers: + /v1/post_mortems: get: - description: List Live Call Routers - operationId: listLiveCallRouters + description: List incident retrospectives + operationId: listIncidentPostMortems parameters: - explode: true in: query @@ -33766,435 +16337,236 @@ paths: style: form - explode: true in: query - name: "filter[name]" + name: "filter[status]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[severity]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[type]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[user_id]" + required: false + schema: + type: integer + style: form + - description: Filter by incident type slugs + explode: true + in: query + name: "filter[types]" required: false schema: type: string style: form - - explode: true + - description: Filter by incident type IDs (UUIDs) + explode: true in: query - name: "filter[created_at][lt]" + name: "filter[type_ids]" required: false schema: type: string style: form - - explode: true + - description: Filter by environment slugs + explode: true in: query - name: "filter[created_at][lte]" + name: "filter[environments]" required: false schema: type: string style: form - - explode: true + - description: Filter by environment IDs (UUIDs) + explode: true in: query - name: sort + name: "filter[environment_ids]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/live_call_router_list' - description: success - security: - - bearer_auth: [] - summary: List Live Call Routers - tags: - - LiveCallRouters - x-accepts: - - application/vnd.api+json - post: - description: Creates a new Live Call Router from provided data - operationId: createLiveCallRouter - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_live_call_router' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 39f94f4a-13e4-4c3a-8e20-0e82c4b0344f - type: live_call_routers - attributes: - kind: voicemail - name: live_call_router-prod - country_code: US - phone_type: toll_free - phone_number: "+14155552344" - voicemail_greeting: hello - slug: live_call_router-prod - enabled: true - created_at: 2026-01-20T09:46:57.456-08:00 - updated_at: 2026-01-20T09:46:57.478-08:00 - calling_tree_prompt: "Press 1 for service, Press 2 for escalation\ - \ policy" - paging_targets: - - id: 1254f87e-31e4-4880-b33a-75068588cf04 - type: service - alert_urgency_id: 71796eb1-ccfe-4efa-9de3-1dc664eab403 - - id: aaecbf51-3801-4efc-a5ee-69135b75a321 - type: escalation_policy - alert_urgency_id: 47cffbbe-0f82-4240-93ce-9ed013a22d5b - schema: - $ref: '#/components/schemas/live_call_router_response' - description: live_call_router created with multiple notification targets - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a Live Call Router - tags: - - LiveCallRouters - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/live_call_routers/generate_phone_number: - get: - description: Generates a phone number for Live Call Router - operationId: generatePhoneNumberLiveCallRouter - parameters: - - explode: true + - description: Filter by functionality slugs + explode: true in: query - name: country_code - required: true + name: "filter[functionalities]" + required: false schema: - enum: - - AU - - CA - - DE - - NL - - NZ - - GB - - US type: string style: form - - explode: true + - description: Filter by functionality IDs (UUIDs) + explode: true in: query - name: phone_type - required: true + name: "filter[functionality_ids]" + required: false schema: - enum: - - local - - toll_free - - mobile type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - phone_number: "+18001000052" - description: live_call_router phone number - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid params - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: live_call_router without required params - security: - - bearer_auth: [] - summary: Generates a phone number for Live Call Router - tags: - - LiveCallRouters - x-accepts: - - application/vnd.api+json - /v1/live_call_routers/{id}: - delete: - description: Delete a specific Live Call Router by id - operationId: deleteLiveCallRouter - parameters: - - explode: false - in: path - name: id - required: true + - description: Filter by service slugs + explode: true + in: query + name: "filter[services]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: e7aa194e-1f5c-4509-a234-2178dcde4e2f - type: live_call_routers - attributes: - kind: voicemail - name: Non voluptatum non rerum. - country_code: US - phone_type: local - phone_number: "+14155551234" - voicemail_greeting: Assumenda blanditiis dicta ut. - slug: non-voluptatum-non-rerum - enabled: true - created_at: 2026-01-20T09:47:05.877-08:00 - updated_at: 2026-01-20T09:47:05.945-08:00 - calling_tree_prompt: Est fugit tenetur commodi. - paging_targets: - - id: 650a79ac-cde0-4d4c-a04a-8b97886ef9e7 - type: service - alert_urgency_id: 1aa81c1a-8149-43b6-a791-8a3be6d9cef2 - schema: - $ref: '#/components/schemas/live_call_router_response' - description: live_call_router deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a Live Call Router - tags: - - LiveCallRouters - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific Live Call Router by id - operationId: getLiveCallRouter - parameters: - - explode: false - in: path - name: id - required: true + style: form + - description: Filter by service IDs (UUIDs) + explode: true + in: query + name: "filter[service_ids]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: e51a9420-41fa-4dc1-b9b1-2b205ba5e6f4 - type: live_call_routers - attributes: - kind: voicemail - name: Ea suscipit facilis nostrum. - country_code: US - phone_type: local - phone_number: "+14155551234" - voicemail_greeting: Eveniet alias deserunt doloremque. - slug: ea-suscipit-facilis-nostrum - enabled: true - created_at: 2026-01-20T09:46:59.238-08:00 - updated_at: 2026-01-20T09:46:59.238-08:00 - calling_tree_prompt: Dolorum dolores veritatis incidunt. - paging_targets: - - id: 0a0bacaa-fce0-4174-a5e6-337785213caa - type: service - alert_urgency_id: bc234d1b-783e-469a-a9a2-c81c894451d1 - schema: - $ref: '#/components/schemas/live_call_router_response' - description: live_call_router found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a Live Call Router - tags: - - LiveCallRouters - x-accepts: - - application/vnd.api+json - put: - description: Update a specific Live Call Router by id - operationId: updateLiveCallRouter - parameters: - - explode: false - in: path - name: id - required: true + style: form + - description: Filter by team/group slugs + explode: true + in: query + name: "filter[teams]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_live_call_router' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 7f97f963-a38e-4bba-aaf9-d73c73506c13 - type: live_call_routers - attributes: - kind: voicemail - name: live_call_router_staging - country_code: US - phone_type: local - phone_number: "+14155551234" - voicemail_greeting: Voluptatem aperiam fugit omnis. - slug: fugit-recusandae-eos-ducimus - enabled: true - created_at: 2026-01-20T09:47:02.265-08:00 - updated_at: 2026-01-20T09:47:02.344-08:00 - calling_tree_prompt: Sed in nihil ut. - paging_targets: - - id: 06332f6a-1858-414a-b342-c6cdfdcd9472 - type: service - alert_urgency_id: ee6abd50-f3bd-4733-8e22-99d6a5ab8fcc - schema: - $ref: '#/components/schemas/live_call_router_response' - description: live_call_router updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a Live Call Router - tags: - - LiveCallRouters - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/on_call_roles: - get: - description: List On-Call Roles - operationId: listOnCallRoles - parameters: + style: form + - description: Filter by team/group IDs (UUIDs) + explode: true + in: query + name: "filter[team_ids]" + required: false + schema: + type: string + style: form + - description: Filter by cause slugs + explode: true + in: query + name: "filter[causes]" + required: false + schema: + type: string + style: form + - description: Filter by cause IDs (UUIDs) + explode: true + in: query + name: "filter[cause_ids]" + required: false + schema: + type: string + style: form - explode: true in: query - name: include + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[created_at][gte]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[created_at][lt]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[started_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[started_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[started_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[started_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[mitigated_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[mitigated_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[mitigated_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[mitigated_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[resolved_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[resolved_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[resolved_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[resolved_at][lte]" required: false schema: type: string @@ -34211,165 +16583,89 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/on_call_role_list' + $ref: '#/components/schemas/incident_post_mortem_list' description: success security: - bearer_auth: [] - summary: List On-Call Roles + summary: List incident retrospectives tags: - - OnCallRoles + - IncidentRetrospectives x-accepts: - application/vnd.api+json - post: - description: Creates a new On-Call Role from provided data - operationId: createOnCallRole - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_on_call_role' + /v1/post_mortems/{id}: + get: + description: List incidents retrospectives + operationId: ListIncidentPostmortem + parameters: + - explode: false + in: path + name: id required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: ab5e4dd1-1347-41d6-ae57-87c3eddb5fe6 - type: on_call_roles - attributes: - team_id: 425 - name: Infrastructure - slug: infrastructure - system_role: custom - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - schedule_override_permissions: [] - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedules_permissions: [] - services_permissions: [] - webhooks_permissions: [] - workflows_permissions: [] - updated_at: 2026-01-20T09:47:09.980-08:00 - created_at: 2026-01-20T09:47:09.980-08:00 - schema: - $ref: '#/components/schemas/on_call_role_response' - description: on_call_role created - "422": + "200": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": + $ref: '#/components/schemas/incident_post_mortem_response' + description: incident_post_mortem found + "404": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates an On-Call Role + summary: Retrieves an incident retrospective tags: - - OnCallRoles - x-content-type: application/vnd.api+json + - IncidentRetrospectives x-accepts: - application/vnd.api+json - /v1/on_call_roles/{id}: - delete: - description: Delete a specific On-Call Role by id - operationId: deleteOnCallRole + put: + description: Update a specific incident retrospective by id + operationId: updateIncidentPostmortem parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_incident_post_mortem' + required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: a815ec1f-b795-40a6-91d5-c247cc21965c - type: on_call_roles - attributes: - team_id: 425 - name: On-Call Role 15 - slug: on-call-role-15 - system_role: custom - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - schedule_override_permissions: [] - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedules_permissions: [] - services_permissions: [] - webhooks_permissions: [] - workflows_permissions: [] - updated_at: 2026-01-20T09:47:11.721-08:00 - created_at: 2026-01-20T09:47:11.650-08:00 schema: - $ref: '#/components/schemas/on_call_role_response' - description: on_call_role deleted + $ref: '#/components/schemas/incident_post_mortem_response' + description: incident_post_mortem updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an On-Call Role + summary: Update an incident retrospective tags: - - OnCallRoles + - IncidentRetrospectives + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json + /v1/incident_retrospective_steps/{id}: get: - description: Retrieves a specific On-Call Role by id - operationId: getOnCallRole + description: Retrieves a specific incident retrospective step by id + operationId: getIncidentRetrospectiveStep parameters: - explode: false in: path @@ -34382,62 +16678,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: a58a70bd-326e-4d47-afae-673bc7613646 - type: on_call_roles - attributes: - team_id: 425 - name: On-Call Role 11 - slug: on-call-role-11 - system_role: admin - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - schedule_override_permissions: [] - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedules_permissions: [] - services_permissions: [] - webhooks_permissions: [] - workflows_permissions: [] - updated_at: 2026-01-20T09:47:10.489-08:00 - created_at: 2026-01-20T09:47:10.489-08:00 schema: - $ref: '#/components/schemas/on_call_role_response' - description: on_call_role found + $ref: '#/components/schemas/incident_retrospective_step_response' + description: incident retrospective_step found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an On-Call Role + summary: Retrieves an incident retrospective step tags: - - OnCallRoles + - IncidentRetrospectiveSteps x-accepts: - application/vnd.api+json put: - description: Update a specific On-Call Role by id - operationId: updateOnCallRole + description: Update a specific incident retrospective step by id + operationId: updateIncidentRetrospectiveStep parameters: - explode: false in: path @@ -34450,74 +16709,37 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_on_call_role' + $ref: '#/components/schemas/update_incident_retrospective_step' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 57e8f4b4-cbbb-409d-a0e6-eabd258c3b87 - type: on_call_roles - attributes: - team_id: 425 - name: Security - slug: on-call-role-13 - system_role: custom - alert_sources_permissions: [] - alert_urgency_permissions: [] - alerts_permissions: [] - api_keys_permissions: [] - audits_permissions: [] - contacts_permissions: [] - escalation_policies_permissions: [] - groups_permissions: [] - heartbeats_permissions: [] - integrations_permissions: [] - invitations_permissions: [] - live_call_routing_permissions: [] - schedule_override_permissions: [] - alert_fields_permissions: [] - alert_groups_permissions: [] - alert_routing_rules_permissions: [] - on_call_readiness_report_permissions: [] - on_call_roles_permissions: [] - schedules_permissions: [] - services_permissions: [] - webhooks_permissions: [] - workflows_permissions: [] - updated_at: 2026-01-20T09:47:11.154-08:00 - created_at: 2026-01-20T09:47:11.087-08:00 schema: - $ref: '#/components/schemas/on_call_role_response' - description: on_call_role updated + $ref: '#/components/schemas/incident_retrospective_step_response' + description: incident_retrospective_step updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an On-Call Role + summary: Update an incident retrospective step tags: - - OnCallRoles + - IncidentRetrospectiveSteps x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/schedules/{schedule_id}/on_call_shadows: + /v1/incident_roles/{incident_role_id}/incident_role_tasks: get: - description: List shadow shifts for schedule - operationId: listOnCallShadows + description: List incident_role tasks + operationId: listIncidentRoleTasks parameters: - explode: false in: path - name: schedule_id + name: incident_role_id required: true schema: type: string @@ -34548,22 +16770,22 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/on_call_shadows_list' + $ref: '#/components/schemas/incident_role_task_list' description: success security: - bearer_auth: [] - summary: List On Call Shadows for Shift + summary: List incident role tasks tags: - - OnCallShadows + - IncidentRoleTasks x-accepts: - application/vnd.api+json post: - description: Creates a new on call shadow configuration from provided data - operationId: createOnCallShadow + description: Creates a new task from provided data + operationId: createIncidentRoleTask parameters: - explode: false in: path - name: schedule_id + name: incident_role_id required: true schema: type: string @@ -34572,60 +16794,39 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_on_call_shadow' + $ref: '#/components/schemas/new_incident_role_task' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 5d8b4646-9e9e-4dd2-8989-f0c3821f88fc - type: on_call_shadows - attributes: - schedule_id: 172b5591-e589-497b-b014-a6406d6064db - shadowable_type: User - shadowable_id: "745" - shadow_user_id: 744 - starts_at: 2026-01-22T09:47:13.595-08:00 - ends_at: 2026-01-23T09:47:13.595-08:00 - created_at: 2026-01-20T09:47:13.650-08:00 - updated_at: 2026-01-20T09:47:13.650-08:00 schema: - $ref: '#/components/schemas/on_call_shadow_response' - description: shadow shift is created + $ref: '#/components/schemas/incident_role_task_response' + description: incident_role_task created "422": content: application/vnd.api+json: - example: - errors: - - title: Shadow user must exist - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: creates an shadow configuration + summary: Creates an incident role task tags: - - OnCallShadows + - IncidentRoleTasks x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/on_call_shadows/{id}: + /v1/incident_role_tasks/{id}: delete: - description: Delete a specific on call shadow configuration by id - operationId: deleteOnCallShadow + description: Delete a specific incident_role task by id + operationId: deleteIncidentRoleTask parameters: - explode: false in: path @@ -34638,42 +16839,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 5b226070-ba1e-441d-9a65-95f38ccb86f5 - type: on_call_shadows - attributes: - schedule_id: 172b5591-e589-497b-b014-a6406d6064db - shadowable_type: User - shadowable_id: "745" - shadow_user_id: 744 - starts_at: 2026-01-20T11:47:13.000-08:00 - ends_at: 2026-01-21T09:47:13.000-08:00 - created_at: 2026-01-20T09:47:13.517-08:00 - updated_at: 2026-01-20T09:47:13.517-08:00 schema: - $ref: '#/components/schemas/on_call_shadow_response' - description: override shift deleted + $ref: '#/components/schemas/incident_role_task_response' + description: incident_role_task deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an on call shadow configuration + summary: Delete an incident role task tags: - - OverrideShifts + - IncidentRoleTasks x-accepts: - application/vnd.api+json get: - description: Retrieves a specific On Call Shadow configuration by ID - operationId: getOnCallShadow + description: Retrieves a specific incident_role_task by id + operationId: getIncidentRoleTask parameters: - explode: false in: path @@ -34686,42 +16870,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 5b226070-ba1e-441d-9a65-95f38ccb86f5 - type: on_call_shadows - attributes: - schedule_id: 172b5591-e589-497b-b014-a6406d6064db - shadowable_type: User - shadowable_id: "745" - shadow_user_id: 744 - starts_at: 2026-01-20T11:47:13.000-08:00 - ends_at: 2026-01-21T09:47:13.000-08:00 - created_at: 2026-01-20T09:47:13.517-08:00 - updated_at: 2026-01-20T09:47:13.517-08:00 schema: - $ref: '#/components/schemas/on_call_shadow_response' - description: override shift found + $ref: '#/components/schemas/incident_role_task_response' + description: incident_role_task found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an On Call Shadow configuration by ID + summary: Retrieves an incident role task tags: - - OnCallShadows + - IncidentRoleTasks x-accepts: - application/vnd.api+json put: - description: Update a specific on call shadow configuration by id - operationId: updateOnCallShadow + description: Update a specific incident_role task by id + operationId: updateIncidentRoleTask parameters: - explode: false in: path @@ -34734,617 +16901,364 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_on_call_shadow' + $ref: '#/components/schemas/update_incident_role_task' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 5b226070-ba1e-441d-9a65-95f38ccb86f5 - type: on_call_shadows - attributes: - schedule_id: 172b5591-e589-497b-b014-a6406d6064db - shadowable_type: Schedule - shadowable_id: 172b5591-e589-497b-b014-a6406d6064db - shadow_user_id: 744 - starts_at: 2026-01-20T11:47:13.000-08:00 - ends_at: 2026-01-21T09:47:13.000-08:00 - created_at: 2026-01-20T09:47:13.517-08:00 - updated_at: 2026-01-20T09:47:14.134-08:00 schema: - $ref: '#/components/schemas/on_call_shadow_response' - description: on call shadows configuration is is updated + $ref: '#/components/schemas/incident_role_task_response' + description: incident_role_task updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update an On Call Shadow configuration + summary: Update an incident role task tags: - - OnCallShadows + - IncidentRoleTasks x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/schedules/{schedule_id}/override_shifts: + /v1/incident_roles: get: - description: List override shifts - operationId: listOverrideShifts + description: List incident roles + operationId: listIncidentRoles parameters: - - explode: false - in: path - name: schedule_id - required: true + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[name]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[enabled]" required: false schema: - type: integer + type: boolean style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/override_shift_list' - description: success - security: - - bearer_auth: [] - summary: List override shifts - tags: - - OverrideShifts - x-accepts: - - application/vnd.api+json - post: - description: "Creates a new override shift from provided data. If any existing\ - \ override shifts overlap with the specified time range, they will be automatically\ - \ deleted and replaced by the new override." - operationId: createOverrideShift - parameters: - - explode: false - in: path - name: schedule_id - required: true + - explode: true + in: query + name: "filter[created_at][gt]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_override_shift' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: c45c6127-5b9d-4ab4-803b-b15649b045d6 - type: shifts - attributes: - schedule_id: 8f675e22-9c15-4d08-85f1-34ab50f935b4 - rotation_id: null - user_id: 749 - starts_at: 2026-01-20T11:47:22.000-08:00 - ends_at: 2026-01-21T09:47:22.000-08:00 - is_override: true - relationships: - shift_override: - data: - id: e63f349d-8dab-4d17-b4d6-52c7086b2bc6 - type: shift_overrides - user: - data: - id: "749" - type: users - assignee: - data: - id: "749" - type: users - schema: - $ref: '#/components/schemas/override_shift_response' - description: returns assignee relationship when schedule nesting enabled - "422": - content: - application/vnd.api+json: - example: - errors: - - title: User must exist - status: "422" - - title: Assignee type must be User - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: cannot create schedule-based override shift - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: creates an override shift - tags: - - OverrideShifts - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/override_shifts/{id}: - delete: - description: Delete a specific override shift by id - operationId: deleteOverrideShift - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 29cacd86-92c0-4301-91c6-9ad98e72da96 - type: shifts - attributes: - schedule_id: 8f675e22-9c15-4d08-85f1-34ab50f935b4 - rotation_id: 8ac52d07-4d91-4515-ae27-6761794c3954 - user_id: 762 - starts_at: 2026-01-20T03:47:16.000-08:00 - ends_at: 2026-01-20T11:47:16.000-08:00 - is_override: true - relationships: - shift_override: - data: null - user: - data: - id: "762" - type: users - schema: - $ref: '#/components/schemas/override_shift_response' - description: override shift deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete an override shift - tags: - - OverrideShifts - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific override shift by id - operationId: getOverrideShift - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 29cacd86-92c0-4301-91c6-9ad98e72da96 - type: shifts - attributes: - schedule_id: 8f675e22-9c15-4d08-85f1-34ab50f935b4 - rotation_id: 8ac52d07-4d91-4515-ae27-6761794c3954 - user_id: 762 - starts_at: 2026-01-20T03:47:16.000-08:00 - ends_at: 2026-01-20T11:47:16.000-08:00 - is_override: true - relationships: - shift_override: - data: null - user: - data: - id: "762" - type: users - schema: - $ref: '#/components/schemas/override_shift_response' - description: override shift found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves an override shift - tags: - - OverrideShifts - x-accepts: - - application/vnd.api+json - put: - description: Update a specific override shift by id - operationId: updateOverrideShift - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_override_shift' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 29cacd86-92c0-4301-91c6-9ad98e72da96 - type: shifts - attributes: - schedule_id: 8f675e22-9c15-4d08-85f1-34ab50f935b4 - rotation_id: 8ac52d07-4d91-4515-ae27-6761794c3954 - user_id: 794 - starts_at: 2026-01-20T03:47:16.000-08:00 - ends_at: 2026-01-20T11:47:16.000-08:00 - is_override: true - relationships: - shift_override: - data: - id: 5037572d-665c-4530-934f-1bef124987d7 - type: shift_overrides - user: - data: - id: "794" - type: users - schema: - $ref: '#/components/schemas/override_shift_response' - description: override shift updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update an override shift - tags: - - OverrideShifts - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/playbooks/{playbook_id}/playbook_tasks: - get: - description: List playbook tasks - operationId: listPlaybookTasks - parameters: - - explode: false - in: path - name: playbook_id - required: true + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[slug][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[slug][in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[slug][not_in]" required: false schema: - type: integer + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/playbook_task_list' + $ref: '#/components/schemas/incident_role_list' description: success security: - bearer_auth: [] - summary: List playbook tasks + summary: List incident roles tags: - - PlaybookTasks + - IncidentRoles x-accepts: - application/vnd.api+json post: - description: Creates a new task from provided data - operationId: createPlaybookTask - parameters: - - explode: false - in: path - name: playbook_id - required: true - schema: - type: string - style: simple + description: Creates a new incident role from provided data + operationId: createIncidentRole + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_playbook_task' + $ref: '#/components/schemas/new_incident_role' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: e4f7183b-0254-4ff8-877b-7c3f54f4a838 - type: playbook_tasks - attributes: - playbook_id: 23b18877-6aa7-4cbb-865a-80105fe36410 - task: New task - description: New task description - position: 1 - created_at: 2026-01-20T09:47:25.508-08:00 - updated_at: 2026-01-20T09:47:25.508-08:00 schema: - $ref: '#/components/schemas/playbook_task_response' - description: playbook_task created + $ref: '#/components/schemas/incident_role_response' + description: incident_role created "422": content: application/vnd.api+json: - example: - errors: - - title: Task can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a playbook task + summary: Creates an incident role tags: - - PlaybookTasks + - IncidentRoles x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/playbook_tasks/{id}: + /v1/incident_roles/{id}: delete: - description: Delete a specific playbook task by id - operationId: deletePlaybookTask + description: Delete a specific incident_role by id + operationId: deleteIncidentRole parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: ff07116b-97ec-4ff0-90ab-2371a4db88ef - type: playbook_tasks - attributes: - playbook_id: 23b18877-6aa7-4cbb-865a-80105fe36410 - task: Consectetur fugit fugiat quia. - description: Quia voluptatibus eveniet consequuntur. - position: 3 - created_at: 2026-01-20T09:47:25.386-08:00 - updated_at: 2026-01-20T09:47:26.615-08:00 schema: - $ref: '#/components/schemas/playbook_task_response' - description: playbook_task deleted + $ref: '#/components/schemas/incident_role_response' + description: incident_role deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a playbook task + summary: Delete an incident role tags: - - PlaybookTasks + - IncidentRoles x-accepts: - application/vnd.api+json get: - description: Retrieves a specific playbook_task by id - operationId: getPlaybookTask + description: Retrieves a specific incident_role by id + operationId: getIncidentRole parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: ff07116b-97ec-4ff0-90ab-2371a4db88ef - type: playbook_tasks - attributes: - playbook_id: 23b18877-6aa7-4cbb-865a-80105fe36410 - task: Consectetur fugit fugiat quia. - description: Quia voluptatibus eveniet consequuntur. - position: 3 - created_at: 2026-01-20T09:47:25.386-08:00 - updated_at: 2026-01-20T09:47:25.392-08:00 schema: - $ref: '#/components/schemas/playbook_task_response' - description: playbook_task found + $ref: '#/components/schemas/incident_role_response' + description: incident_role found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a playbook task + summary: Retrieves an incident role tags: - - PlaybookTasks + - IncidentRoles x-accepts: - application/vnd.api+json put: - description: Update a specific playbook task by id - operationId: updatePlaybookTask + description: Update a specific incident_role by id + operationId: updateIncidentRole parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_playbook_task' + $ref: '#/components/schemas/update_incident_role' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: ff07116b-97ec-4ff0-90ab-2371a4db88ef - type: playbook_tasks - attributes: - playbook_id: 23b18877-6aa7-4cbb-865a-80105fe36410 - task: Task updated - description: Task description updated - position: 2 - created_at: 2026-01-20T09:47:25.386-08:00 - updated_at: 2026-01-20T09:47:26.287-08:00 schema: - $ref: '#/components/schemas/playbook_task_response' - description: playbook_task updated + $ref: '#/components/schemas/incident_role_response' + description: incident_role updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a playbook task + summary: Update an incident role tags: - - PlaybookTasks + - IncidentRoles x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/playbooks: + /v1/incidents/{incident_id}/status-page-events: get: - description: List playbooks - operationId: listPlaybooks + description: List incident status page events + operationId: listIncidentStatusPages parameters: - - description: "comma separated if needed. eg: severities,environments,services" - explode: true + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple + - explode: true in: query name: include required: false schema: - enum: - - severities - - environments - - services - - functionalities - - groups - - causes - - incident_types type: string style: form - explode: true @@ -35366,114 +17280,63 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/playbook_list' + $ref: '#/components/schemas/incident_status_page_event_list' description: success security: - bearer_auth: [] - summary: List playbooks + summary: List incident status page events tags: - - Playbooks + - IncidentStatusPageEvents x-accepts: - application/vnd.api+json post: - description: Creates a new playbook from provided data - operationId: createPlaybook - parameters: [] + description: Creates a new event from provided data + operationId: createIncidentStatusPage + parameters: + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_playbook' + $ref: '#/components/schemas/new_incident_status_page_event' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 65e7fef5-ce0b-41c2-b1aa-d163c43d8ef8 - type: playbooks - attributes: - title: How to handle customer-facing incident? - summary: This is a summary - external_url: null - severity_ids: [] - environment_ids: - - 06df4615-38de-4f80-865b-d081d529e9a3 - - 7a290e85-63bf-4f58-a1a6-46d14768db2d - service_ids: - - 8f6cb3cc-13be-4c9d-9eb4-b4f97ac01464 - - 7c82bda3-3a5c-43ec-8158-24b736dc97ed - functionality_ids: - - 0d1e8e05-0889-4585-8be5-a1f8c512cae5 - - f65f0243-48be-472f-8310-0eadeae1f466 - group_ids: [] - incident_type_ids: [] - cause_ids: [] - created_at: 2026-01-20T09:47:30.223-08:00 - updated_at: 2026-01-20T09:47:30.223-08:00 - relationships: - severities: - data: [] - environments: - data: - - id: 06df4615-38de-4f80-865b-d081d529e9a3 - type: environments - - id: 7a290e85-63bf-4f58-a1a6-46d14768db2d - type: environments - services: - data: - - id: 8f6cb3cc-13be-4c9d-9eb4-b4f97ac01464 - type: services - - id: 7c82bda3-3a5c-43ec-8158-24b736dc97ed - type: services - functionalities: - data: - - id: 0d1e8e05-0889-4585-8be5-a1f8c512cae5 - type: functionalities - - id: f65f0243-48be-472f-8310-0eadeae1f466 - type: functionalities - groups: - data: [] - causes: - data: [] - incident_types: - data: [] schema: - $ref: '#/components/schemas/playbook_response' - description: playbook created + $ref: '#/components/schemas/incident_status_page_event_response' + description: incident_status_page_event created with component statuses "422": content: application/vnd.api+json: - example: - errors: - - title: Title can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a playbook + summary: Creates an incident status page event tags: - - Playbooks + - IncidentStatusPageEvents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/playbooks/{id}: + /v1/status-page-events/{id}: delete: - description: Delete a specific playbook by id - operationId: deletePlaybook + description: Delete a specific incident status page event by id + operationId: deleteIncidentStatusPage parameters: - explode: false in: path @@ -35486,61 +17349,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: b7480677-8f85-4c71-8bee-ab7788766155 - type: playbooks - attributes: - title: Nulla soluta accusantium expedita. - summary: null - external_url: null - severity_ids: [] - environment_ids: [] - service_ids: [] - functionality_ids: [] - group_ids: [] - incident_type_ids: [] - cause_ids: [] - created_at: 2026-01-20T09:47:27.749-08:00 - updated_at: 2026-01-20T09:47:32.235-08:00 - relationships: - severities: - data: [] - environments: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - causes: - data: [] - incident_types: - data: [] schema: - $ref: '#/components/schemas/playbook_response' - description: playbook deleted + $ref: '#/components/schemas/incident_status_page_event_response' + description: incident_status_page_event deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a playbook + summary: Delete an incident status page event tags: - - Playbooks + - IncidentStatusPageEvents x-accepts: - application/vnd.api+json get: - description: Retrieves a specific playbook by id - operationId: getPlaybook + description: Retrieves a specific incident_status_page_event by id + operationId: getIncidentStatusPages parameters: - explode: false in: path @@ -35549,81 +17376,29 @@ paths: schema: type: string style: simple - - description: "comma separated if needed. eg: severities,environments,services" - explode: true - in: query - name: include - required: false - schema: - enum: - - severities - - environments - - services - - functionalities - - groups - - causes - - incident_types - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: b7480677-8f85-4c71-8bee-ab7788766155 - type: playbooks - attributes: - title: Nulla soluta accusantium expedita. - summary: null - external_url: null - severity_ids: [] - environment_ids: [] - service_ids: [] - functionality_ids: [] - group_ids: [] - incident_type_ids: [] - cause_ids: [] - created_at: 2026-01-20T09:47:27.749-08:00 - updated_at: 2026-01-20T09:47:27.749-08:00 - relationships: - severities: - data: [] - environments: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - causes: - data: [] - incident_types: - data: [] schema: - $ref: '#/components/schemas/playbook_response' - description: playbook found + $ref: '#/components/schemas/incident_status_page_event_response' + description: incident_status_page_event found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a playbook + summary: Retrieves an incident status page event tags: - - Playbooks + - IncidentStatusPageEvents x-accepts: - application/vnd.api+json put: - description: Update a specific playbook by id - operationId: updatePlaybook + description: Update a specific incident status page event by id + operationId: updateIncidentStatusPage parameters: - explode: false in: path @@ -35636,75 +17411,65 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_playbook' + $ref: '#/components/schemas/update_incident_status_page_event' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: b7480677-8f85-4c71-8bee-ab7788766155 - type: playbooks - attributes: - title: How to handle security incident? - summary: This is a summary - external_url: null - severity_ids: [] - environment_ids: [] - service_ids: [] - functionality_ids: [] - group_ids: [] - incident_type_ids: [] - cause_ids: [] - created_at: 2026-01-20T09:47:27.749-08:00 - updated_at: 2026-01-20T09:47:31.740-08:00 - relationships: - severities: - data: [] - environments: - data: [] - services: - data: [] - functionalities: - data: [] - groups: - data: [] - causes: - data: [] - incident_types: - data: [] schema: - $ref: '#/components/schemas/playbook_response' - description: playbook updated + $ref: '#/components/schemas/incident_status_page_event_response' + description: incident_status_page_event started_at updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a playbook + summary: Update an incident status page event tags: - - Playbooks + - IncidentStatusPageEvents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/post_mortem_templates: + /v1/incidents/{incident_id}/sub_statuses: get: - description: List Retrospective Templates - operationId: listPostmortemTemplates + description: List incident_sub_statuses + operationId: listIncidentSubStatuses parameters: - - explode: true + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: sub_status,assigned_by_user" + explode: true in: query name: include required: false schema: + enum: + - sub_status + - assigned_by_user + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - assigned_at + - -assigned_at type: string style: form - explode: true @@ -35721,246 +17486,197 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[sub_status_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[assigned_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[assigned_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[assigned_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[assigned_at][lte]" + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/post_mortem_template_list' + $ref: '#/components/schemas/incident_sub_status_list' description: success security: - bearer_auth: [] - summary: List Retrospective Templates + summary: List incident_sub_statuses tags: - - RetrospectiveTemplates + - IncidentSubStatuses x-accepts: - application/vnd.api+json post: - description: Creates a new Retrospective Template from provided data - operationId: createPostmortemTemplate - parameters: [] + description: Creates a new sub-status assignment from provided data + operationId: createIncidentSubStatus + parameters: + - explode: false + in: path + name: incident_id + required: true + schema: + type: string + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_post_mortem_template' + $ref: '#/components/schemas/new_incident_sub_status' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: fd2c9d2b-0ec3-4ca5-bf74-918191f69ae1 - type: post_mortem_templates - attributes: - name: Template with Blocks - slug: template-with-blocks - format: html - default: false - content: | -
-

Before

After

-
- content_html:

Before

After

- content_json: null - created_at: 2026-01-20T09:47:34.629-08:00 - updated_at: 2026-01-20T09:47:34.632-08:00 - schema: - $ref: '#/components/schemas/post_mortem_template_response' - description: post_mortem_template created with TipTap blocks - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + $ref: '#/components/schemas/incident_sub_status_response' + description: incident_sub_status created "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a retrospective template + summary: Creates a sub-status assignment tags: - - RetrospectiveTemplates + - IncidentSubStatuses x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/post_mortem_templates/{id}: + /v1/incident_sub_statuses/{id}: delete: - description: Delete a specific Retrospective Template by id - operationId: deletePostmortemTemplate + description: Delete a specific incident_sub_status by id + operationId: deleteIncidentSubStatus parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: 4ae47fda-5e5e-48b8-bf85-5666bfc91b6a - type: post_mortem_templates - attributes: - name: Quia quidem rerum corporis. - slug: quia-quidem-rerum-corporis - format: html - default: false - content: "" - content_html: null - content_json: null - created_at: 2026-01-20T09:47:33.447-08:00 - updated_at: 2026-01-20T09:47:35.788-08:00 schema: - $ref: '#/components/schemas/post_mortem_template_response' - description: Retrospective Template deleted + $ref: '#/components/schemas/incident_sub_status_response' + description: incident_sub_status deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a Retrospective Template + summary: Delete an incident_sub_status tags: - - RetrospectiveTemplates + - IncidentSubStatuses x-accepts: - application/vnd.api+json get: - description: Retrieves a specific Retrospective Template by id - operationId: getPostmortemTemplate + description: Retrieves a specific incident_sub_status by id + operationId: getIncidentSubStatus parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple + - description: "comma separated if needed. eg: sub_status,assigned_by_user" + explode: true + in: query + name: include + required: false + schema: + enum: + - sub_status + - assigned_by_user + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 4ae47fda-5e5e-48b8-bf85-5666bfc91b6a - type: post_mortem_templates - attributes: - name: Quia quidem rerum corporis. - slug: quia-quidem-rerum-corporis - format: html - default: false - content: "" - content_html: null - content_json: null - created_at: 2026-01-20T09:47:33.447-08:00 - updated_at: 2026-01-20T09:47:33.454-08:00 - schema: - $ref: '#/components/schemas/post_mortem_template_response' - description: Retrospective Template found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/incident_sub_status_response' + description: sub_status found security: - bearer_auth: [] - summary: Retrieves a Retrospective Template + summary: Retrieves incident_sub_status tags: - - RetrospectiveTemplates + - IncidentSubStatuses x-accepts: - application/vnd.api+json put: - description: Update a specific Retrospective Template by id - operationId: updatePostmortemTemplate + description: Update a specific incident_sub_status by id + operationId: updateIncidentSubStatus parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getAlertField_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_post_mortem_template' + $ref: '#/components/schemas/update_incident_sub_status' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 4ae47fda-5e5e-48b8-bf85-5666bfc91b6a - type: post_mortem_templates - attributes: - name: Quia quidem rerum corporis. - slug: quia-quidem-rerum-corporis - format: html - default: false - content: | -
-

Safe content

-
- content_html:

Safe content

- content_json: null - created_at: 2026-01-20T09:47:33.447-08:00 - updated_at: 2026-01-20T09:47:35.484-08:00 schema: - $ref: '#/components/schemas/post_mortem_template_response' - description: Retrospective Template updated with sanitized content - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/incident_sub_status_response' + description: incident_sub_status updated security: - bearer_auth: [] - summary: Update a Retrospective Template + summary: Update incident_sub_status tags: - - RetrospectiveTemplates + - IncidentSubStatuses x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/pulses: + /v1/incident_types: get: - description: List pulses - operationId: listPulses + description: List incident types + operationId: listIncidentTypes parameters: - explode: true in: query @@ -35971,460 +17687,338 @@ paths: style: form - explode: true in: query - name: "filter[source]" + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[services]" + name: "filter[name]" required: false schema: type: string style: form - explode: true in: query - name: "filter[environments]" + name: "filter[color]" required: false schema: type: string style: form - explode: true in: query - name: "filter[labels]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[refs]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[started_at][gt]" + name: "filter[created_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[started_at][gte]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[started_at][lt]" + name: "filter[slug][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[started_at][lte]" + name: "filter[slug][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[ended_at][gt]" + name: "filter[slug][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[ended_at][gte]" + name: "filter[slug][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[ended_at][lt]" + name: "filter[name][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[ended_at][lte]" + name: "filter[name][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[name][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[name][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[color][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[color][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[color][in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[color][not_in]" required: false schema: - type: integer + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/pulse_list' + $ref: '#/components/schemas/incident_type_list' description: success security: - bearer_auth: [] - summary: List pulses + summary: List incident types tags: - - Pulses + - IncidentTypes x-accepts: - application/vnd.api+json post: - description: Creates a new pulse from provided data - operationId: createPulse + description: Creates a new incident_type from provided data + operationId: createIncidentType parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_pulse' + $ref: '#/components/schemas/new_incident_type' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: cde9d4e0-ba77-4f9a-9249-17f3d0a19eb9 - type: pulses - attributes: - short_id: null - source: k8s - summary: Deploy k8s - labels: - - key: status - value: succeeded - refs: - - key: sha - value: cd62148cbc5eb42168fe99fdb50a364e12b206ac - - key: image - value: registry.rootly.com/rootly/my-service:cd6214 - services: - - id: 53112ace-97df-486e-9a61-88ba2f85739e - alert_broadcast_channel: {} - alert_broadcast_enabled: false - alert_urgency_id: null - alerts_email_address: service-96166104512e148c4cfd8efb3037a044@email.rootly.com - alerts_email_enabled: false - backstage_id: null - color: '#047BF8' - cortex_id: null - created_at: 2026-01-20T09:47:37.173-08:00 - datadog_id: null - deleted_at: null - description: Hic repudiandae quis inventore. - external_id: null - github_repository_branch: master - github_repository_name: null - gitlab_repository_branch: master - gitlab_repository_name: null - heroku_app_name: null - incident_broadcast_channel: {} - incident_broadcast_enabled: false - incidents_count: 0 - kubernetes_deployment_name: null - name: Eveniet sed nisi eos. - notify_emails: [] - opsgenie_id: null - opsgenie_team_id: null - opslevel_id: null - pagerduty_id: null - position: 1 - public_description: null - service_now_ci_sys_id: null - show_uptime: true - show_uptime_last_days: 60 - slack_aliases: [] - slack_channels: [] - slug: eveniet-sed-nisi-eos - status: operational - team_id: 449 - updated_at: 2026-01-20T09:47:37.173-08:00 - environments: - - id: baa610df-9f9f-42b9-aa3b-a79e6bd89d60 - color: '#8e8e2f' - created_at: 2026-01-20T09:47:37.192-08:00 - deleted_at: null - description: Voluptates et adipisci aut. - external_id: null - incidents_count: 0 - name: Debitis placeat soluta sint. - notify_emails: [] - position: 1 - slack_aliases: [] - slack_channels: [] - slug: debitis-placeat-soluta-sint - team_id: 449 - updated_at: 2026-01-20T09:47:37.192-08:00 - data: - url: https://additionaldata.com - external_url: https://external-url.com - started_at: 2026-01-20T09:38:20.000-08:00 - ended_at: 2026-01-20T09:40:20.000-08:00 - created_at: 2026-01-20T09:47:38.392-08:00 - updated_at: 2026-01-20T09:47:38.392-08:00 schema: - $ref: '#/components/schemas/pulse_response' - description: pulse created + $ref: '#/components/schemas/incident_type_response' + description: incident_type created "422": content: application/vnd.api+json: - example: - errors: - - title: Summary can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates a pulse + summary: Creates an incident type tags: - - Pulses + - IncidentTypes x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/pulses/{id}: + /v1/incident_types/{id}: + delete: + description: Delete a specific incident_type by id + operationId: deleteIncidentType + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_type_response' + description: incident_type deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete an incident type + tags: + - IncidentTypes + x-accepts: + - application/vnd.api+json get: - description: Retrieves a specific pulse by id - operationId: getPulse + description: Retrieves a specific incident_type by id + operationId: getIncidentType parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: d527d05d-0937-43fc-9379-7b519e9bb667 - type: pulses - attributes: - short_id: null - source: unknown - summary: Doloremque officia in dicta. - labels: [] - refs: [] - services: [] - environments: [] - data: {} - external_url: null - started_at: 2026-01-20T09:47:37.107-08:00 - ended_at: null - created_at: 2026-01-20T09:47:37.107-08:00 - updated_at: 2026-01-20T09:47:37.107-08:00 schema: - $ref: '#/components/schemas/pulse_response' - description: pulse found + $ref: '#/components/schemas/incident_type_response' + description: incident_type found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a pulse + summary: Retrieves an incident type tags: - - Pulses + - IncidentTypes x-accepts: - application/vnd.api+json put: - description: Update a specific pulse by id - operationId: updatePulse + description: Update a specific incident_type by id + operationId: updateIncidentType parameters: - explode: false in: path name: id required: true schema: - type: string + $ref: '#/components/schemas/getAlertField_id_parameter' style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_pulse' + $ref: '#/components/schemas/update_incident_type' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: d527d05d-0937-43fc-9379-7b519e9bb667 - type: pulses - attributes: - short_id: null - source: unknown - summary: Deploy k8s - labels: [] - refs: [] - services: - - id: b566a8c9-c441-4cc1-8a27-f6dc8bd92612 - alert_broadcast_channel: {} - alert_broadcast_enabled: false - alert_urgency_id: null - alerts_email_address: service-f71c1b783aab5ce3fc601a7a6e292aac@email.rootly.com - alerts_email_enabled: false - backstage_id: null - color: '#047BF8' - cortex_id: null - created_at: 2026-01-20T09:47:37.204-08:00 - datadog_id: null - deleted_at: null - description: Modi consequatur dignissimos non. - external_id: null - github_repository_branch: master - github_repository_name: null - gitlab_repository_branch: master - gitlab_repository_name: null - heroku_app_name: null - incident_broadcast_channel: {} - incident_broadcast_enabled: false - incidents_count: 0 - kubernetes_deployment_name: null - name: Consectetur neque tempore eum. - notify_emails: [] - opsgenie_id: null - opsgenie_team_id: null - opslevel_id: null - pagerduty_id: null - position: 2 - public_description: null - service_now_ci_sys_id: null - show_uptime: true - show_uptime_last_days: 60 - slack_aliases: [] - slack_channels: [] - slug: consectetur-neque-tempore-eum - status: operational - team_id: 449 - updated_at: 2026-01-20T09:47:37.204-08:00 - environments: - - id: cfa4785e-e9f1-4719-a279-22de55a4c1b3 - color: '#c5e7e7' - created_at: 2026-01-20T09:47:37.221-08:00 - deleted_at: null - description: Dolor consequatur sed molestiae. - external_id: null - incidents_count: 0 - name: Occaecati qui odit possimus. - notify_emails: [] - position: 2 - slack_aliases: [] - slack_channels: [] - slug: occaecati-qui-odit-possimus - team_id: 449 - updated_at: 2026-01-20T09:47:37.221-08:00 - data: {} - external_url: null - started_at: 2026-01-20T09:47:37.107-08:00 - ended_at: null - created_at: 2026-01-20T09:47:37.107-08:00 - updated_at: 2026-01-20T09:47:38.988-08:00 schema: - $ref: '#/components/schemas/pulse_response' - description: pulse updated + $ref: '#/components/schemas/incident_type_response' + description: incident_type updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a pulse + summary: Update an incident type tags: - - Pulses + - IncidentTypes x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/retrospective_configurations: + /v1/incident_types/properties: get: - description: List retrospective configurations - operationId: listRetrospectiveConfigurations + description: List IncidentType Catalog Properties + operationId: listIncidentTypeCatalogProperties parameters: - - description: "comma separated if needed. eg: severities,groups" + - description: "comma separated if needed. eg: catalog" explode: true in: query name: include required: false schema: enum: - - severities - - groups - - incident_types + - catalog + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position type: string style: form - explode: true @@ -36441,6 +18035,20 @@ paths: schema: type: integer style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form - explode: true in: query name: "filter[kind]" @@ -36448,167 +18056,95 @@ paths: schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/retrospective_configuration_list' - description: success - security: - - bearer_auth: [] - summary: List retrospective configurations - tags: - - RetrospectiveConfigurations - x-accepts: - - application/vnd.api+json - /v1/retrospective_configurations/{id}: - get: - description: Retrieves a specific retrospective_configuration by id - operationId: getRetrospectiveConfiguration - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[created_at][gt]" + required: false schema: type: string - style: simple - - description: "comma separated if needed. eg: severities,groups" - explode: true + style: form + - explode: true in: query - name: include + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" required: false schema: - enum: - - severities - - groups - - incident_types type: string style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 26053ded-5117-4ae9-99e7-497e784e7a00 - type: retrospective_configurations - attributes: - kind: skip - severity_ids: - - c5001478-fb2c-4ba9-9827-b1941940b2fc - incident_type_ids: [] - group_ids: [] - created_at: 2026-01-20T09:47:40.180-08:00 - updated_at: 2026-01-20T09:47:40.180-08:00 - relationships: - severities: - data: - - id: c5001478-fb2c-4ba9-9827-b1941940b2fc - type: severities - groups: - data: [] - incident_types: - data: [] - schema: - $ref: '#/components/schemas/retrospective_configuration_response' - description: retrospective_configuration found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/catalog_property_list' + description: success security: - bearer_auth: [] - summary: Retrieves a Retrospective Configuration + summary: List Catalog Properties tags: - - RetrospectiveConfigurations + - IncidentTypes x-accepts: - application/vnd.api+json - put: - description: Update a specific retrospective configuration by id - operationId: updateRetrospectiveConfiguration - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple + post: + description: Creates a new Catalog Property from provided data + operationId: createIncidentTypeCatalogProperty + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_retrospective_configuration' + $ref: '#/components/schemas/new_catalog_property' required: true responses: - "200": + "201": content: application/vnd.api+json: - example: - data: - id: 8762987e-90af-46d4-9db5-b5dcdf7bb5a4 - type: retrospective_configurations - attributes: - kind: skip - severity_ids: [] - incident_type_ids: [] - group_ids: - - 4419fbc6-9269-491a-b8d5-180214b48c53 - created_at: 2026-01-20T09:47:42.135-08:00 - updated_at: 2026-01-20T09:47:42.135-08:00 - relationships: - severities: - data: [] - groups: - data: - - id: 4419fbc6-9269-491a-b8d5-180214b48c53 - type: groups - incident_types: - data: [] schema: - $ref: '#/components/schemas/retrospective_configuration_response' - description: retrospective configuration updated - "404": + $ref: '#/components/schemas/catalog_property_response' + description: catalog_property created ignores wrong catalog_type attribute + "422": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: exceeds max fields per catalog + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Update a retrospective configuration + summary: Creates a Catalog Property tags: - - RetrospectiveConfigurations + - IncidentTypes x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/retrospective_process_groups/{retrospective_process_group_id}/steps: + /v1/incidents: get: - description: List RetrospectiveProcessGroup Steps - operationId: listRetrospectiveProcessGroupSteps + description: List incidents + operationId: listIncidents parameters: - - explode: false - in: path - name: retrospective_process_group_id - required: true - schema: - type: string - style: simple - - explode: true + - description: The cursor to fetch results using cursor pagination. A cursor + is provided in meta.next_cursor in the response. + explode: true in: query - name: include + name: "page[after]" required: false schema: type: string @@ -36629,4532 +18165,1155 @@ paths: style: form - explode: true in: query - name: "filter[retrospective_step_id]" + name: "filter[search]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[kind]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[status]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[private]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[user_id]" required: false schema: - type: string + type: integer style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/retrospective_process_group_step_list' - description: success - security: - - bearer_auth: [] - summary: List RetrospectiveProcessGroup Steps - tags: - - RetrospectiveProcessGroupSteps - x-accepts: - - application/vnd.api+json - post: - description: Creates a new retrospective process group step from provided data - operationId: createRetrospectiveProcessGroupStep - parameters: - - explode: false - in: path - name: retrospective_process_group_id - required: true + - explode: true + in: query + name: "filter[severity]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_retrospective_process_group_step' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: e40b1cf6-1878-427d-93f8-b628e1fa757a - type: retrospective_process_group_steps - attributes: - retrospective_process_group_id: e749f9a0-d6db-4b53-9690-45dfadd17b2b - retrospective_step_id: 4648a561-ff39-4e67-9f21-caab47fbf0e4 - position: 1 - updated_at: 2026-01-20T09:47:46.307-08:00 - created_at: 2026-01-20T09:47:46.307-08:00 - schema: - $ref: '#/components/schemas/retrospective_process_group_step_response' - description: retrospective_process_group_step created - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a retrospective process group step - tags: - - RetrospectiveProcessGroupSteps - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/retrospective_process_group_steps/{id}: - delete: - description: Delete a specific RetrospectiveProcessGroup Step by id - operationId: deleteRetrospectiveProcessGroupStep - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[severity_id]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 909c595d-3bcb-44ff-adcc-0dccb662a0d9 - type: retrospective_process_group_steps - attributes: - retrospective_process_group_id: e749f9a0-d6db-4b53-9690-45dfadd17b2b - retrospective_step_id: b252221c-56c4-49a9-a545-6afcc7305fb7 - position: 1 - updated_at: 2026-01-20T09:47:47.390-08:00 - created_at: 2026-01-20T09:47:47.338-08:00 - schema: - $ref: '#/components/schemas/retrospective_process_group_step_response' - description: retrospective_process_group_step deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a RetrospectiveProcessGroup Step - tags: - - RetrospectiveProcessGroupSteps - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific RetrospectiveProcessGroup Step by id - operationId: getRetrospectiveProcessGroupStep - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[labels]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: bbb4ef68-8455-4a2d-a3d2-02eced8422db - type: retrospective_process_group_steps - attributes: - retrospective_process_group_id: e749f9a0-d6db-4b53-9690-45dfadd17b2b - retrospective_step_id: c6c0798a-ce51-4818-b3d8-24f20b4e9888 - position: 1 - updated_at: 2026-01-20T09:47:46.665-08:00 - created_at: 2026-01-20T09:47:46.665-08:00 - schema: - $ref: '#/components/schemas/retrospective_process_group_step_response' - description: sub_status found - security: - - bearer_auth: [] - summary: Retrieves a RetrospectiveProcessGroup Step - tags: - - RetrospectiveProcessGroupSteps - x-accepts: - - application/vnd.api+json - put: - description: Update a specific RetrospectiveProcessGroup Step by id - operationId: updateRetrospectiveProcessGroupStep - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[types]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_retrospective_process_group_step' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 5a921af8-bf84-488d-ab19-550f84b58c4a - type: retrospective_process_group_steps - attributes: - retrospective_process_group_id: e749f9a0-d6db-4b53-9690-45dfadd17b2b - retrospective_step_id: ef774217-fcdc-449e-968a-d2aa2d099d29 - position: 2 - updated_at: 2026-01-20T09:47:47.079-08:00 - created_at: 2026-01-20T09:47:47.031-08:00 - schema: - $ref: '#/components/schemas/retrospective_process_group_step_response' - description: retrospective_process_group_step updated - security: - - bearer_auth: [] - summary: Update RetrospectiveProcessGroup Step - tags: - - RetrospectiveProcessGroupSteps - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/retrospective_processes/{retrospective_process_id}/groups: - get: - description: List Retrospective Process Groups - operationId: listRetrospectiveProcessGroups - parameters: - - explode: false - in: path - name: retrospective_process_id - required: true + style: form + - explode: true + in: query + name: "filter[type_ids]" + required: false schema: type: string - style: simple - - description: "comma separated if needed. eg: retrospective_process_group_steps" - explode: true + style: form + - explode: true in: query - name: include + name: "filter[environments]" required: false schema: - enum: - - retrospective_process_group_steps type: string style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true + - explode: true in: query - name: sort + name: "filter[environment_ids]" required: false schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at - - position - - -position type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[functionalities]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[functionality_ids]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[sub_status_id]" + name: "filter[functionality_names]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[services]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[service_ids]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[service_names]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[teams]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/retrospective_process_group_list' - description: success - security: - - bearer_auth: [] - summary: List Retrospective Process Groups - tags: - - RetrospectiveProcessGroups - x-accepts: - - application/vnd.api+json - post: - description: Creates a new retrospective process group from provided data - operationId: createRetrospectiveProcessGroup - parameters: - - explode: false - in: path - name: retrospective_process_id - required: true + - explode: true + in: query + name: "filter[team_ids]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_retrospective_process_group' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 9257e51c-6b8a-4fab-baf9-80bbc8d7b059 - type: retrospective_process_groups - attributes: - retrospective_process_id: 4fb3e7ff-2869-4099-9372-5590c97dd22c - sub_status_id: 269d3c12-c4a7-4e44-b539-71054dd6d020 - position: 3 - updated_at: 2026-01-20T09:47:49.633-08:00 - created_at: 2026-01-20T09:47:49.633-08:00 - relationships: - retrospective_process_group_steps: - data: [] - schema: - $ref: '#/components/schemas/retrospective_process_group_response' - description: retrospective_process_group created - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a retrospective process group - tags: - - RetrospectiveProcessGroups - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/retrospective_process_groups/{id}: - delete: - description: Delete a specific Retrospective Process Group by id - operationId: deleteRetrospectiveProcessGroup - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[team_names]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 5e1354e2-51f4-4b7b-9a92-ac93814b730c - type: retrospective_process_groups - attributes: - retrospective_process_id: 4fb3e7ff-2869-4099-9372-5590c97dd22c - sub_status_id: b248d7a4-8d80-4ea4-b383-52d892c4aae7 - position: 1 - updated_at: 2026-01-20T09:47:49.953-08:00 - created_at: 2026-01-20T09:47:49.351-08:00 - relationships: - retrospective_process_group_steps: - data: [] - schema: - $ref: '#/components/schemas/retrospective_process_group_response' - description: retrospective_process_group deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a Retrospective Process Group - tags: - - RetrospectiveProcessGroups - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific Retrospective Process Group by id - operationId: getRetrospectiveProcessGroup - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[cause]" + required: false schema: type: string - style: simple - - description: "comma separated if needed. eg: retrospective_process_group_steps" - explode: true + style: form + - explode: true in: query - name: include + name: "filter[cause_ids]" required: false schema: - enum: - - retrospective_process_group_steps type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 5e1354e2-51f4-4b7b-9a92-ac93814b730c - type: retrospective_process_groups - attributes: - retrospective_process_id: 4fb3e7ff-2869-4099-9372-5590c97dd22c - sub_status_id: b248d7a4-8d80-4ea4-b383-52d892c4aae7 - position: 1 - updated_at: 2026-01-20T09:47:49.351-08:00 - created_at: 2026-01-20T09:47:49.351-08:00 - relationships: - retrospective_process_group_steps: - data: [] - schema: - $ref: '#/components/schemas/retrospective_process_group_response' - description: sub_status found - security: - - bearer_auth: [] - summary: Retrieves a Retrospective Process Group - tags: - - RetrospectiveProcessGroups - x-accepts: - - application/vnd.api+json - put: - description: Update a specific Retrospective Process Group by id - operationId: updateRetrospectiveProcessGroup - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[custom_field_selected_option_ids]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_retrospective_process_group' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 5e1354e2-51f4-4b7b-9a92-ac93814b730c - type: retrospective_process_groups - attributes: - retrospective_process_id: 4fb3e7ff-2869-4099-9372-5590c97dd22c - sub_status_id: b248d7a4-8d80-4ea4-b383-52d892c4aae7 - position: 1 - updated_at: 2026-01-20T09:47:49.351-08:00 - created_at: 2026-01-20T09:47:49.351-08:00 - relationships: - retrospective_process_group_steps: - data: [] - schema: - $ref: '#/components/schemas/retrospective_process_group_response' - description: retrospective_process_group updated - security: - - bearer_auth: [] - summary: Update a Retrospective Process Group - tags: - - RetrospectiveProcessGroups - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/retrospective_processes: - get: - description: List retrospective processes - operationId: listRetrospectiveProcesses - parameters: - - description: "comma separated if needed. eg: retrospective_steps,severities" + style: form + - explode: true + in: query + name: "filter[slack_channel_id]" + required: false + schema: + type: string + style: form + - description: Filter by the human-readable incident number (the 123 in INC-123). explode: true in: query - name: include + name: "filter[sequential_id]" required: false schema: - enum: - - retrospective_steps - - severities - - incident_types - - groups type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[created_at][gt]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[created_at][gte]" required: false schema: - type: integer + type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/retrospective_process_list' - description: success - security: - - bearer_auth: [] - summary: List retrospective processes - tags: - - RetrospectiveProcesses - x-accepts: - - application/vnd.api+json - post: - description: Creates a new retrospective process from provided data - operationId: createRetrospectiveProcess - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_retrospective_process' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: cf67eb40-0396-4869-83db-4c11958c089b - type: retrospective_processes - attributes: - name: Retrospective Process 1 - description: Retrospective Process 1 Description - is_default: false - created_at: 2026-01-20T09:47:51.846-08:00 - updated_at: 2026-01-20T09:47:51.846-08:00 - retrospective_process_matching_criteria: - severity_ids: - - 463670bd-0502-4ba2-a7ff-78dacaa550ac - relationships: - retrospective_steps: - data: - - id: b4e4d9cb-2f2b-4536-86d3-a9fb2e1d9190 - type: retrospective_steps - - id: 96d5b5e1-6ff8-4348-88c5-7947caaa338d - type: retrospective_steps - severities: - data: - - id: 463670bd-0502-4ba2-a7ff-78dacaa550ac - type: severities - schema: - $ref: '#/components/schemas/retrospective_process_response' - description: retrospective_process created - "422": - content: - application/vnd.api+json: - example: - name: - - can't be blank - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a retrospective process - tags: - - RetrospectiveProcesses - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/retrospective_processes/{id}: - delete: - description: Delete a specific retrospective process by id - operationId: deleteRetrospectiveProcess - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[created_at][lt]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: b976400e-806c-46e0-92bb-7b445bc527a4 - type: retrospective_processes - attributes: - name: A dolor id itaque. - description: Quae sunt deserunt. Aut consectetur et. Magni non - perspiciatis. - is_default: false - created_at: 2026-01-20T09:47:50.940-08:00 - updated_at: 2026-01-20T09:47:52.675-08:00 - retrospective_process_matching_criteria: - incident_type_ids: - - 553fe520-eac2-47e4-8f2e-d030a69fa628 - relationships: - retrospective_steps: - data: - - id: 9ada18b7-2938-4a95-8aaa-bef3a438ea76 - type: retrospective_steps - - id: b333cf40-7a42-4755-bf84-9c05d6d32f91 - type: retrospective_steps - incident_types: - data: - - id: 553fe520-eac2-47e4-8f2e-d030a69fa628 - type: incident_types - schema: - $ref: '#/components/schemas/retrospective_process_response' - description: retrospective_process deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a retrospective process - tags: - - RetrospectiveProcesses - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific retrospective process by id - operationId: getRetrospectiveProcess - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false schema: type: string - style: simple - - description: "comma separated if needed. eg: retrospective_steps,severities" - explode: true + style: form + - explode: true in: query - name: include + name: "filter[updated_at][gt]" required: false schema: - enum: - - retrospective_steps - - severities - - incident_types - - groups type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: b976400e-806c-46e0-92bb-7b445bc527a4 - type: retrospective_processes - attributes: - name: A dolor id itaque. - description: Quae sunt deserunt. Aut consectetur et. Magni non - perspiciatis. - is_default: false - created_at: 2026-01-20T09:47:50.940-08:00 - updated_at: 2026-01-20T09:47:50.940-08:00 - retrospective_process_matching_criteria: - incident_type_ids: - - 553fe520-eac2-47e4-8f2e-d030a69fa628 - relationships: - retrospective_steps: - data: - - id: 9ada18b7-2938-4a95-8aaa-bef3a438ea76 - type: retrospective_steps - - id: b333cf40-7a42-4755-bf84-9c05d6d32f91 - type: retrospective_steps - incident_types: - data: - - id: 553fe520-eac2-47e4-8f2e-d030a69fa628 - type: incident_types - schema: - $ref: '#/components/schemas/retrospective_process_response' - description: retrospective_process found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a retrospective process - tags: - - RetrospectiveProcesses - x-accepts: - - application/vnd.api+json - put: - description: Updates a specific retrospective process by id - operationId: updateRetrospectiveProcess - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[updated_at][gte]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_retrospective_process' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: b976400e-806c-46e0-92bb-7b445bc527a4 - type: retrospective_processes - attributes: - name: Retrospective Process 2 - description: Retrospective Process 2 description - is_default: false - created_at: 2026-01-20T09:47:50.940-08:00 - updated_at: 2026-01-20T09:47:52.445-08:00 - retrospective_process_matching_criteria: - group_ids: - - 5e80d080-aecf-427a-b510-2dec2023973d - relationships: - retrospective_steps: - data: - - id: 9ada18b7-2938-4a95-8aaa-bef3a438ea76 - type: retrospective_steps - - id: b333cf40-7a42-4755-bf84-9c05d6d32f91 - type: retrospective_steps - groups: - data: - - id: 5e80d080-aecf-427a-b510-2dec2023973d - type: groups - schema: - $ref: '#/components/schemas/retrospective_process_response' - description: retrospective_process updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a retrospective process - tags: - - RetrospectiveProcesses - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/retrospective_processes/{retrospective_process_id}/retrospective_steps: - get: - description: List retrospective steps - operationId: listRetrospectiveSteps - parameters: - - explode: false - in: path - name: retrospective_process_id - required: true + style: form + - explode: true + in: query + name: "filter[updated_at][lt]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[updated_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[started_at][gt]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[started_at][gte]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: sort + name: "filter[started_at][lt]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/retrospective_step_list' - description: success - security: - - bearer_auth: [] - summary: List retrospective steps - tags: - - RetrospectiveSteps - x-accepts: - - application/vnd.api+json - post: - description: Creates a new retrospective step from provided data - operationId: createRetrospectiveStep - parameters: - - explode: false - in: path - name: retrospective_process_id - required: true + - explode: true + in: query + name: "filter[started_at][lte]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_retrospective_step' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: ccbd763d-2a1e-4355-b6a1-75d6e5edeb1b - type: retrospective_steps - attributes: - retrospective_process_id: 26c7ed36-f38a-45ee-acf3-6a783c104032 - title: Step 1 - description: Step 1 description - incident_role_id: b2fa4f5e-ef29-4941-818a-2425ad5525b6 - due_after_days: 5 - position: 1 - skippable: false - created_at: 2026-01-20T09:47:53.857-08:00 - updated_at: 2026-01-20T09:47:53.857-08:00 - schema: - $ref: '#/components/schemas/retrospective_step_response' - description: retrospective_step created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Title can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a retrospective step - tags: - - RetrospectiveSteps - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/retrospective_steps/{id}: - delete: - description: Delete a specific retrospective step by id - operationId: deleteRetrospectiveStep - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[detected_at][gt]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 4c60a25f-e3a1-4dc6-8ea5-207b885d5913 - type: retrospective_steps - attributes: - retrospective_process_id: 26c7ed36-f38a-45ee-acf3-6a783c104032 - title: Step 11 - description: Bar - incident_role_id: b2fa4f5e-ef29-4941-818a-2425ad5525b6 - due_after_days: null - position: 1 - skippable: true - created_at: 2026-01-20T09:47:53.778-08:00 - updated_at: 2026-01-20T09:47:54.662-08:00 - schema: - $ref: '#/components/schemas/retrospective_step_response' - description: retrospective_step deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a retrospective step - tags: - - RetrospectiveSteps - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific retrospective step by id - operationId: getRetrospectiveStep - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[detected_at][gte]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 4c60a25f-e3a1-4dc6-8ea5-207b885d5913 - type: retrospective_steps - attributes: - retrospective_process_id: 26c7ed36-f38a-45ee-acf3-6a783c104032 - title: Step 11 - description: Bar - incident_role_id: b2fa4f5e-ef29-4941-818a-2425ad5525b6 - due_after_days: null - position: 1 - skippable: true - created_at: 2026-01-20T09:47:53.778-08:00 - updated_at: 2026-01-20T09:47:53.778-08:00 - schema: - $ref: '#/components/schemas/retrospective_step_response' - description: retrospective_step found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a retrospective step - tags: - - RetrospectiveSteps - x-accepts: - - application/vnd.api+json - put: - description: Update a specific retrospective step by id - operationId: updateRetrospectiveStep - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[detected_at][lt]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_retrospective_step' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 4c60a25f-e3a1-4dc6-8ea5-207b885d5913 - type: retrospective_steps - attributes: - retrospective_process_id: 26c7ed36-f38a-45ee-acf3-6a783c104032 - title: Step 2 - description: Step 2 description - incident_role_id: 9db23009-610f-4b63-8aa8-dffa5918cfb8 - due_after_days: 7 - position: 2 - skippable: true - created_at: 2026-01-20T09:47:53.778-08:00 - updated_at: 2026-01-20T09:47:54.399-08:00 - schema: - $ref: '#/components/schemas/retrospective_step_response' - description: retrospective_step updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a retrospective step - tags: - - RetrospectiveSteps - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/roles: - get: - description: List roles - operationId: listRoles - parameters: + style: form - explode: true in: query - name: include + name: "filter[detected_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[acknowledged_at][gt]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[acknowledged_at][gte]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[acknowledged_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[acknowledged_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[mitigated_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[mitigated_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[mitigated_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[mitigated_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[resolved_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: sort + name: "filter[resolved_at][gte]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/role_list' - description: success - security: - - bearer_auth: [] - summary: List roles - tags: - - Roles - x-accepts: - - application/vnd.api+json - post: - description: Creates a new role from provided data - operationId: createRole - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_role' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 16624a60-e9e8-432b-953f-12987a672ec9 - type: roles - attributes: - team_id: 476 - name: Infrastructure - slug: infrastructure - is_deletable: true - is_editable: true - alerts_permissions: - - create - - read - api_keys_permissions: - - read - audits_permissions: [] - billing_permissions: - - update - environments_permissions: - - read - form_fields_permissions: - - read - functionalities_permissions: - - read - groups_permissions: - - read - incident_causes_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: c17777fc-86d7-4e6a-98b9-66fcebbbfa88 - incident_roles_permissions: - - read - incident_types_permissions: - - read - incidents_permissions: - - read - integrations_permissions: [] - invitations_permissions: - - read - playbooks_permissions: - - read - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - read - roles_permissions: - - read - secrets_permissions: - - create - services_permissions: - - read - severities_permissions: - - read - status_pages_permissions: - - read - webhooks_permissions: - - read - workflows_permissions: - - read - updated_at: 2026-01-20T09:47:57.859-08:00 - created_at: 2026-01-20T09:47:57.859-08:00 - schema: - $ref: '#/components/schemas/role_response' - description: role created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a role - tags: - - Roles - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/roles/{id}: - delete: - description: Delete a specific role by id - operationId: deleteRole - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[resolved_at][lt]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 91025343-c2f5-4b74-ba5e-36388f402d04 - type: roles - attributes: - team_id: 487 - name: Role 15 - slug: role-15 - is_deletable: true - is_editable: true - alerts_permissions: - - create - - read - api_keys_permissions: - - read - audits_permissions: [] - billing_permissions: - - update - environments_permissions: - - read - form_fields_permissions: - - read - functionalities_permissions: - - read - groups_permissions: - - read - incident_causes_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: b630d0e5-da63-42d0-8661-f872ebf7b77a - incident_roles_permissions: - - read - incident_types_permissions: - - read - incidents_permissions: - - read - integrations_permissions: [] - invitations_permissions: - - read - playbooks_permissions: - - read - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - read - roles_permissions: - - read - secrets_permissions: - - create - services_permissions: - - read - severities_permissions: - - read - status_pages_permissions: - - read - webhooks_permissions: - - read - workflows_permissions: - - read - updated_at: 2026-01-20T09:48:07.322-08:00 - created_at: 2026-01-20T09:48:07.248-08:00 - schema: - $ref: '#/components/schemas/role_response' - description: role deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a role - tags: - - Roles - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific role by id - operationId: getRole - parameters: - - explode: false - in: path - name: id - required: true + type: string + style: form + - explode: true + in: query + name: "filter[resolved_at][lte]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: fe633ab7-a713-444c-a6ee-b9f14f514f1e - type: roles - attributes: - team_id: 479 - name: Role 11 - slug: role-11 - is_deletable: true - is_editable: true - alerts_permissions: - - create - - read - api_keys_permissions: - - read - audits_permissions: [] - billing_permissions: - - update - environments_permissions: - - read - form_fields_permissions: - - read - functionalities_permissions: - - read - groups_permissions: - - read - incident_causes_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: 094124e6-a3a0-4751-8ac4-048f97f8d2e3 - incident_roles_permissions: - - read - incident_types_permissions: - - read - incidents_permissions: - - read - integrations_permissions: [] - invitations_permissions: - - read - playbooks_permissions: - - read - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - read - roles_permissions: - - read - secrets_permissions: - - create - services_permissions: - - read - severities_permissions: - - read - status_pages_permissions: - - read - webhooks_permissions: - - read - workflows_permissions: - - read - updated_at: 2026-01-20T09:47:59.104-08:00 - created_at: 2026-01-20T09:47:59.104-08:00 - schema: - $ref: '#/components/schemas/role_response' - description: role found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a role - tags: - - Roles - x-accepts: - - application/vnd.api+json - put: - description: Update a specific role by id - operationId: updateRole - parameters: - - explode: false - in: path - name: id - required: true + type: string + style: form + - explode: true + in: query + name: "filter[closed_at][gt]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_role' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: c1f765c9-a4a3-4b10-a2cb-06ec4984faf0 - type: roles - attributes: - team_id: 483 - name: Security - slug: role-13 - is_deletable: true - is_editable: true - alerts_permissions: - - create - - read - api_keys_permissions: - - read - audits_permissions: [] - billing_permissions: - - update - environments_permissions: - - read - form_fields_permissions: - - read - functionalities_permissions: - - read - groups_permissions: - - read - incident_causes_permissions: - - read - incident_feedbacks_permissions: - - read - - create - - update - incident_permission_set_id: b2e8c565-2ed8-4f42-9231-8e7ab9994363 - incident_roles_permissions: - - read - incident_types_permissions: - - read - incidents_permissions: - - read - integrations_permissions: [] - invitations_permissions: - - read - playbooks_permissions: - - read - private_incidents_permissions: [] - pulses_permissions: - - create - - update - - read - retrospective_permissions: - - read - roles_permissions: - - read - secrets_permissions: - - create - services_permissions: - - read - severities_permissions: - - read - status_pages_permissions: - - read - webhooks_permissions: - - read - workflows_permissions: - - read - updated_at: 2026-01-20T09:48:05.700-08:00 - created_at: 2026-01-20T09:48:05.638-08:00 - schema: - $ref: '#/components/schemas/role_response' - description: role updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a role - tags: - - Roles - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedule_rotations/{schedule_rotation_id}/schedule_rotation_active_days: - get: - description: List schedule rotation active days - operationId: listScheduleRotationActiveDays - parameters: - - explode: false - in: path - name: schedule_rotation_id - required: true + type: string + style: form + - explode: true + in: query + name: "filter[closed_at][gte]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[closed_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[closed_at][lte]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[in_triage_at][gt]" required: false schema: - type: integer + type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/schedule_rotation_active_day_list' - description: success - security: - - bearer_auth: [] - summary: List schedule rotation active days - tags: - - ScheduleRotationActiveDays - x-accepts: - - application/vnd.api+json - post: - description: Creates a new schedule rotation active day from provided data - operationId: createScheduleRotationActiveDay - parameters: - - explode: false - in: path - name: schedule_rotation_id - required: true + - explode: true + in: query + name: "filter[in_triage_at][gte]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_schedule_rotation_active_day' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 67ca8a84-0597-48c7-a91a-29a175e17937 - type: schedule_rotation_active_days - attributes: - schedule_rotation_id: ddc2d642-b021-4d7c-b122-9b816ccd0384 - day_name: M - created_at: 2026-01-20T09:48:15.295-08:00 - updated_at: 2026-01-20T09:48:15.295-08:00 - active_time_attributes: - - start_time: 07:30 - end_time: 16:30 - - start_time: 17:00 - end_time: 20:00 - schema: - $ref: '#/components/schemas/schedule_rotation_active_day_response' - description: schedule_rotation_active_day created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Day name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a schedule rotation active day - tags: - - ScheduleRotationActiveDays - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedule_rotation_active_days/{id}: - delete: - description: Delete a specific schedule rotation active day - operationId: deleteScheduleRotationActiveDay - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[in_triage_at][lt]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 3bf2f1b3-334e-484f-9aeb-306081718142 - type: schedule_rotation_active_days - attributes: - schedule_rotation_id: ddc2d642-b021-4d7c-b122-9b816ccd0384 - day_name: S - created_at: 2026-01-20T09:48:15.224-08:00 - updated_at: 2026-01-20T09:48:16.170-08:00 - active_time_attributes: [] - schema: - $ref: '#/components/schemas/schedule_rotation_active_day_response' - description: schedule_rotation_active_day deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a schedule rotation active day - tags: - - ScheduleRotationActiveDays - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific schedule rotation active day by id - operationId: getScheduleRotationActiveDay - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[in_triage_at][lte]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 3bf2f1b3-334e-484f-9aeb-306081718142 - type: schedule_rotation_active_days - attributes: - schedule_rotation_id: ddc2d642-b021-4d7c-b122-9b816ccd0384 - day_name: S - created_at: 2026-01-20T09:48:15.224-08:00 - updated_at: 2026-01-20T09:48:15.224-08:00 - active_time_attributes: [] - schema: - $ref: '#/components/schemas/schedule_rotation_active_day_response' - description: schedule_rotation_active_day found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a schedule rotation active day - tags: - - ScheduleRotationActiveDays - x-accepts: - - application/vnd.api+json - put: - description: Update a specific schedule rotation active day by id - operationId: updateScheduleRotationActiveDay - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[kind][eq]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_schedule_rotation_active_day' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 3bf2f1b3-334e-484f-9aeb-306081718142 - type: schedule_rotation_active_days - attributes: - schedule_rotation_id: ddc2d642-b021-4d7c-b122-9b816ccd0384 - day_name: M - created_at: 2026-01-20T09:48:15.224-08:00 - updated_at: 2026-01-20T09:48:15.935-08:00 - active_time_attributes: - - start_time: 10:30 - end_time: 03:30 - schema: - $ref: '#/components/schemas/schedule_rotation_active_day_response' - description: schedule_rotation_active_day updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a schedule rotation active day - tags: - - ScheduleRotationActiveDays - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedule_rotations/{schedule_rotation_id}/schedule_rotation_users: - get: - operationId: listScheduleRotationUsers - parameters: - - explode: false - in: path - name: schedule_rotation_id - required: true + style: form + - explode: true + in: query + name: "filter[kind][not_eq]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[kind][in]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[kind][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[status][eq]" required: false schema: - type: integer + type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/schedule_rotation_user_list' - description: success - security: - - bearer_auth: [] - summary: List schedule rotation users - tags: - - ScheduleRotationUsers - x-accepts: - - application/vnd.api+json - post: - description: Creates a new schedule rotation user from provided data - operationId: createScheduleRotationUser - parameters: - - explode: false - in: path - name: schedule_rotation_id - required: true + - explode: true + in: query + name: "filter[status][not_eq]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_schedule_rotation_user' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 15ddca12-a6c4-42f4-9219-e4930dbfa6ab - type: schedule_rotation_users - attributes: - schedule_rotation_id: 53b6b7e0-5730-480b-b848-3bd425ab4501 - user_id: 857 - position: 2 - created_at: 2026-01-20T09:48:17.484-08:00 - updated_at: 2026-01-20T09:48:17.484-08:00 - schema: - $ref: '#/components/schemas/schedule_rotation_user_response' - description: schedule_rotation_user created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: User must exist - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a schedule rotation user - tags: - - ScheduleRotationUsers - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedule_rotation_users/{id}: - delete: - description: Delete a specific schedule rotation user by id - operationId: deleteScheduleRotationUser - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 233f5cc4-bceb-42fa-8fb2-679d63ab4565 - type: schedule_rotation_users - attributes: - schedule_rotation_id: 53b6b7e0-5730-480b-b848-3bd425ab4501 - user_id: 857 - position: 2 - created_at: 2026-01-20T09:48:17.426-08:00 - updated_at: 2026-01-20T09:48:18.242-08:00 - schema: - $ref: '#/components/schemas/schedule_rotation_user_response' - description: schedule_rotation_user deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a schedule rotation user - tags: - - ScheduleRotationUsers - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific schedule rotation user by id - operationId: getScheduleRotationUser - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 233f5cc4-bceb-42fa-8fb2-679d63ab4565 - type: schedule_rotation_users - attributes: - schedule_rotation_id: 53b6b7e0-5730-480b-b848-3bd425ab4501 - user_id: 857 - position: 2 - created_at: 2026-01-20T09:48:17.426-08:00 - updated_at: 2026-01-20T09:48:17.431-08:00 - schema: - $ref: '#/components/schemas/schedule_rotation_user_response' - description: schedule_rotation_user found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a schedule rotation user - tags: - - ScheduleRotationUsers - x-accepts: - - application/vnd.api+json - put: - description: Update a specific schedule rotation user by id - operationId: updateScheduleRotationUser - parameters: - - explode: false - in: path - name: id - required: true - schema: - type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_schedule_rotation_user' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 233f5cc4-bceb-42fa-8fb2-679d63ab4565 - type: schedule_rotation_users - attributes: - schedule_rotation_id: 53b6b7e0-5730-480b-b848-3bd425ab4501 - user_id: 857 - position: 2 - created_at: 2026-01-20T09:48:17.426-08:00 - updated_at: 2026-01-20T09:48:17.431-08:00 - schema: - $ref: '#/components/schemas/schedule_rotation_user_response' - description: schedule_rotation_user updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update schedule rotation user - tags: - - ScheduleRotationUsers - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedules/{schedule_id}/schedule_rotations: - get: - description: List schedule rotations - operationId: listScheduleRotations - parameters: - - explode: false - in: path - name: schedule_id - required: true - schema: - type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[status][in]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[status][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[private][eq]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: sort + name: "filter[private][not_eq]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/schedule_rotation_list' - description: success - security: - - bearer_auth: [] - summary: List schedule rotations - tags: - - ScheduleRotations - x-accepts: - - application/vnd.api+json - post: - description: Creates a new schedule rotation from provided data - operationId: createScheduleRotation - parameters: - - explode: false - in: path - name: schedule_id - required: true + - explode: true + in: query + name: "filter[private][in]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_schedule_rotation' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 3b6f92cd-00e3-473d-8694-e453f1a1a2f5 - type: schedule_rotations - attributes: - schedule_id: bde26bf7-40c0-4937-ad96-568d9d53781d - name: Schedule Rotation Name - position: 1 - schedule_rotationable_type: ScheduleWeeklyRotation - active_all_week: false - active_days: - - M - - T - active_time_type: same_time - time_zone: American Samoa - start_time: null - end_time: null - schedule_rotationable_attributes: - handoff_time: 21:30 - handoff_day: T - active_time_attributes: - - start_time: 07:30 - end_time: 16:30 - - start_time: 17:00 - end_time: 21:00 - schema: - $ref: '#/components/schemas/schedule_rotation_response' - description: schedule_rotation created with custom active times - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a schedule rotation - tags: - - ScheduleRotations - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedule_rotations/{id}: - delete: - description: Delete a specific schedule rotation by id - operationId: deleteScheduleRotation - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[private][not_in]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 1d16bdb7-6c08-47f0-ac58-a4ac490c49e8 - type: schedule_rotations - attributes: - schedule_id: bde26bf7-40c0-4937-ad96-568d9d53781d - name: Schedule Rotation 39 - position: 1 - schedule_rotationable_type: ScheduleDailyRotation - active_all_week: true - active_days: [] - active_time_type: all_day - time_zone: UTC - start_time: null - end_time: null - schedule_rotationable_attributes: - handoff_time: 17:00 - active_time_attributes: [] - schema: - $ref: '#/components/schemas/schedule_rotation_response' - description: schedule_rotation deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a schedule rotation - tags: - - ScheduleRotations - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific schedule rotation by id - operationId: getScheduleRotation - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[user_id][eq]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 1d16bdb7-6c08-47f0-ac58-a4ac490c49e8 - type: schedule_rotations - attributes: - schedule_id: bde26bf7-40c0-4937-ad96-568d9d53781d - name: Schedule Rotation 39 - position: 1 - schedule_rotationable_type: ScheduleDailyRotation - active_all_week: true - active_days: [] - active_time_type: all_day - time_zone: UTC - start_time: null - end_time: null - schedule_rotationable_attributes: - handoff_time: 17:00 - active_time_attributes: [] - schema: - $ref: '#/components/schemas/schedule_rotation_response' - description: schedule_rotation found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a schedule rotation - tags: - - ScheduleRotations - x-accepts: - - application/vnd.api+json - put: - description: Update a specific schedule rotation by id - operationId: updateScheduleRotation - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[user_id][not_eq]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_schedule_rotation' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 1d16bdb7-6c08-47f0-ac58-a4ac490c49e8 - type: schedule_rotations - attributes: - schedule_id: bde26bf7-40c0-4937-ad96-568d9d53781d - name: Updated Schedule Rotation Name - position: 1 - schedule_rotationable_type: ScheduleWeeklyRotation - active_all_week: false - active_days: - - M - - T - active_time_type: same_time - time_zone: American Samoa - start_time: null - end_time: null - schedule_rotationable_attributes: - handoff_time: 22:30 - handoff_day: T - active_time_attributes: - - start_time: 07:30 - end_time: 20:30 - schema: - $ref: '#/components/schemas/schedule_rotation_response' - description: schedule_rotation updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a schedule rotation - tags: - - ScheduleRotations - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedules: - get: - description: List schedules - operationId: listSchedules - parameters: + style: form - explode: true in: query - name: include + name: "filter[user_id][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[user_id][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[severity][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[severity][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[severity][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[severity][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[severity_id][eq]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[severity_id][not_eq]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[severity_id][in]" required: false schema: - type: integer + type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/schedule_list' - description: success - security: - - bearer_auth: [] - summary: List schedules - tags: - - Schedules - x-accepts: - - application/vnd.api+json - post: - description: Creates a new schedule from provided data - operationId: createSchedule - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_schedule' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: a31ff4a7-3f13-47bb-b808-ecffdffe37d9 - type: schedules - attributes: - name: Schedule Name - description: Schedule Description - all_time_coverage: true - slack_user_group: {} - slack_channel: null - owner_user_id: 880 - owner_group_ids: - - 621dba7c-de98-4f62-9a93-201ad8930ebc - created_at: 2026-01-20T09:48:32.416-08:00 - updated_at: 2026-01-20T09:48:32.416-08:00 - relationships: - owner_user: - data: - id: "880" - type: users - escalation_policies: - data: [] - schema: - $ref: '#/components/schemas/schedule_response' - description: schedule created - "422": - content: - application/vnd.api+json: - example: - name: - - can't be blank - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a schedule - tags: - - Schedules - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedules/{id}: - delete: - description: Delete a specific schedule by id - operationId: deleteSchedule - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[severity_id][not_in]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 17042056-735c-4a96-8882-6483b4a3ebc4 - type: schedules - attributes: - name: Schedule 29 - description: Schedule description - all_time_coverage: false - slack_user_group: {} - slack_channel: null - owner_user_id: 880 - owner_group_ids: - - 621dba7c-de98-4f62-9a93-201ad8930ebc - created_at: 2026-01-20T09:48:24.090-08:00 - updated_at: 2026-01-20T09:48:33.649-08:00 - relationships: - owner_user: - data: - id: "880" - type: users - escalation_policies: - data: [] - schema: - $ref: '#/components/schemas/schedule_response' - description: schedule deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a schedule - tags: - - Schedules - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific schedule by id - operationId: getSchedule - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[labels][eq]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 17042056-735c-4a96-8882-6483b4a3ebc4 - type: schedules - attributes: - name: Schedule 29 - description: Schedule description - all_time_coverage: false - slack_user_group: {} - slack_channel: null - owner_user_id: 880 - owner_group_ids: - - 621dba7c-de98-4f62-9a93-201ad8930ebc - created_at: 2026-01-20T09:48:24.090-08:00 - updated_at: 2026-01-20T09:48:24.102-08:00 - relationships: - owner_user: - data: - id: "880" - type: users - escalation_policies: - data: [] - schema: - $ref: '#/components/schemas/schedule_response' - description: schedule found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a schedule - tags: - - Schedules - x-accepts: - - application/vnd.api+json - put: - description: Updates a specific schedule by id - operationId: updateSchedule - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[labels][not_eq]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_schedule' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 17042056-735c-4a96-8882-6483b4a3ebc4 - type: schedules - attributes: - name: Updated schedule name - description: Updated schedule description - all_time_coverage: true - slack_user_group: {} - slack_channel: - id: ABC123 - name: Slack Channel - owner_user_id: 880 - owner_group_ids: - - 621dba7c-de98-4f62-9a93-201ad8930ebc - created_at: 2026-01-20T09:48:24.090-08:00 - updated_at: 2026-01-20T09:48:33.463-08:00 - relationships: - owner_user: - data: - id: "880" - type: users - escalation_policies: - data: [] - schema: - $ref: '#/components/schemas/schedule_response' - description: schedule updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a schedule - tags: - - Schedules - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/schedules/{id}/shifts: - get: - description: Retrieves schedule shifts - operationId: getScheduleShifts - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[labels][in]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: to + name: "filter[labels][not_in]" required: false schema: type: string style: form - explode: true in: query - name: from + name: "filter[zendesk_ticket_id][eq]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - - id: 6524d588-bc3c-4cdb-b0c3-2eca1ea7b4fe - type: shifts - attributes: - schedule_id: 17042056-735c-4a96-8882-6483b4a3ebc4 - rotation_id: 5a93dd0d-baa0-4c8b-bb88-24e1d7d3898a - user_id: 905 - starts_at: 2026-01-20T07:48:30.000-08:00 - ends_at: 2026-01-20T11:48:30.000-08:00 - is_override: true - relationships: - shift_override: - data: null - user: - data: - id: "905" - type: users - - id: b64af79a-9fa9-5d0e-a5b7-7e953bf8d25a - type: shifts - attributes: - schedule_id: 17042056-735c-4a96-8882-6483b4a3ebc4 - rotation_id: 6aa79d54-89fd-4ba4-b5e2-3802c5430d08 - user_id: 909 - starts_at: 2026-01-20T12:48:30.000-08:00 - ends_at: 2026-01-20T16:48:30.000-08:00 - is_override: false - relationships: - shift_override: - data: null - user: - data: - id: "909" - type: users - schema: - $ref: '#/components/schemas/shift_list' - description: schedule shifts found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a schedule shifts - tags: - - Shifts - x-accepts: - - application/vnd.api+json - /v1/secrets: - get: - description: List secrets - operationId: listSecrets - parameters: - explode: true in: query - name: include + name: "filter[zendesk_ticket_id][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[zendesk_ticket_id][in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[zendesk_ticket_id][not_in]" required: false schema: - type: integer + type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/secret_list' - description: success - security: - - bearer_auth: [] - summary: List secrets - tags: - - Secrets - x-accepts: - - application/vnd.api+json - post: - description: Creates a new secret from provided data - operationId: createSecret - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_secret' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 686bcb1d-669c-4e55-b874-230b09ba6b49 - type: secrets - attributes: - kind: built_in - name: pusnsmwgbb - secret: "[REDACTED]" - hashicorp_vault_mount: secret - hashicorp_vault_path: null - hashicorp_vault_version: 0 - created_at: 2026-01-20T09:48:35.654-08:00 - updated_at: 2026-01-20T09:48:35.654-08:00 - schema: - $ref: '#/components/schemas/secret_response' - description: secret created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: "Name only allows letters, numbers, and underscore" - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a secret - tags: - - Secrets - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/secrets/{id}: - delete: - description: Delete a specific secret by id - operationId: deleteSecret - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[sequential_id][eq]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 10344bd6-8b4b-4edb-9c15-e0507ff11396 - type: secrets - attributes: - kind: built_in - name: vuugvkkgme - secret: "[REDACTED]" - hashicorp_vault_mount: secret - hashicorp_vault_path: null - hashicorp_vault_version: 0 - created_at: 2026-01-20T09:48:34.928-08:00 - updated_at: 2026-01-20T09:48:36.499-08:00 - schema: - $ref: '#/components/schemas/secret_response' - description: secret deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a secret - tags: - - Secrets - x-accepts: - - application/vnd.api+json - get: - description: Retrieve a specific secret by id - operationId: getSecret - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[sequential_id][not_eq]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 10344bd6-8b4b-4edb-9c15-e0507ff11396 - type: secrets - attributes: - kind: built_in - name: vuugvkkgme - secret: "[REDACTED]" - hashicorp_vault_mount: secret - hashicorp_vault_path: null - hashicorp_vault_version: 0 - created_at: 2026-01-20T09:48:34.928-08:00 - updated_at: 2026-01-20T09:48:34.928-08:00 - schema: - $ref: '#/components/schemas/secret_response' - description: secret found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a secret - tags: - - Secrets - x-accepts: - - application/vnd.api+json - put: - description: Update a specific secret by id - operationId: updateSecret - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[sequential_id][in]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_secret' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 10344bd6-8b4b-4edb-9c15-e0507ff11396 - type: secrets - attributes: - kind: built_in - name: foo_bar - secret: "[REDACTED]" - hashicorp_vault_mount: secret - hashicorp_vault_path: null - hashicorp_vault_version: 0 - created_at: 2026-01-20T09:48:34.928-08:00 - updated_at: 2026-01-20T09:48:36.241-08:00 - schema: - $ref: '#/components/schemas/secret_response' - description: secret updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a secret - tags: - - Secrets - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/services: - get: - description: List services - operationId: listServices - parameters: + style: form - explode: true in: query - name: include + name: "filter[sequential_id][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[types][eq]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[types][not_eq]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[types][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[types][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[type_ids][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[backstage_id]" + name: "filter[type_ids][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[cortex_id]" + name: "filter[type_ids][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[opslevel_id]" + name: "filter[type_ids][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[external_id]" + name: "filter[environments][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[alert_broadcast_enabled]" + name: "filter[environments][not_eq]" required: false schema: - type: boolean + type: string style: form - explode: true in: query - name: "filter[incident_broadcast_enabled]" + name: "filter[environments][in]" required: false schema: - type: boolean + type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[environments][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[environment_ids][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[environment_ids][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[environment_ids][in]" required: false schema: type: string style: form - explode: true in: query - name: sort + name: "filter[environment_ids][not_in]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/service_list' - description: success - security: - - bearer_auth: [] - summary: List services - tags: - - Services - x-accepts: - - application/vnd.api+json - post: - description: Creates a new service from provided data - operationId: createService - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_service' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: c83139fa-49d3-404c-967d-423500aad41e - type: services - attributes: - name: elasticsearch-prod - slug: elasticsearch-prod - description: Elastisearch - public_description: Public description - notify_emails: - - john@rootly.com - - doe@rootly.com - color: '#FFF' - status: operational - position: 1 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: - - id: C03MKDSEJE8 - name: elastisearch - slack_aliases: - - id: S03F7QUV7F1 - name: engineering - github_repository_name: rootlyhq/my-github-service - github_repository_branch: main - gitlab_repository_name: rootlyhq/my-gitlab-service - gitlab_repository_branch: main - kubernetes_deployment_name: null - opsgenie_id: 8743a1b2-11da-480e-8493-744660987bef - pagerduty_id: PQ9K7I8 - backstage_id: null - external_id: d795fe69-acc2-4b30-92c9-3c25cbb92056 - cortex_id: null - service_now_ci_sys_id: null - environment_ids: - - 5601261e-6072-4edc-956d-17d5b33109c7 - service_ids: - - 7f5cbadd-d3d4-46de-aa8e-ab7df5aa4f2b - owner_group_ids: - - 28df95b1-3996-4175-9d58-47a6d5d2ddc3 - owners_group_ids: - - 28df95b1-3996-4175-9d58-47a6d5d2ddc3 - owner_user_ids: - - 912 - owners_user_ids: - - 912 - incidents_count: 0 - alert_urgency_id: null - alerts_email_enabled: true - alerts_email_address: service-5a16519c9893135f9c499d337dd40acd@test.email.rootly.com - alert_broadcast_enabled: true - alert_broadcast_channel: - id: C789ALERT - name: service-alerts - incident_broadcast_enabled: false - incident_broadcast_channel: {} - created_at: 2026-01-20T09:48:44.502-08:00 - updated_at: 2026-01-20T09:48:44.502-08:00 - escalation_policy_id: 75149db8-6c31-46d5-ada4-31f939b4217a - schema: - $ref: '#/components/schemas/service_response' - description: service created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a service - tags: - - Services - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/services/{id}: - delete: - description: Delete a specific service by id - operationId: deleteService - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 7f5cbadd-d3d4-46de-aa8e-ab7df5aa4f2b - type: services - attributes: - name: Laborum qui eos in. - slug: laborum-qui-eos-in - description: Qui maxime ut est. - public_description: null - notify_emails: [] - color: '#047BF8' - status: partial_outage - position: 1 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: [] - slack_aliases: [] - github_repository_name: null - github_repository_branch: master - gitlab_repository_name: null - gitlab_repository_branch: master - kubernetes_deployment_name: null - opsgenie_id: null - pagerduty_id: null - backstage_id: null - external_id: null - cortex_id: null - service_now_ci_sys_id: null - environment_ids: [] - service_ids: [] - owner_group_ids: [] - owners_group_ids: [] - owner_user_ids: [] - owners_user_ids: [] - incidents_count: 1 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: service-aab4eb7179df3fadc9759a4a1fc4adce@email.rootly.com - alert_broadcast_enabled: false - alert_broadcast_channel: {} - incident_broadcast_enabled: false - incident_broadcast_channel: {} - created_at: 2026-01-20T09:48:37.681-08:00 - updated_at: 2026-01-20T09:48:46.534-08:00 - escalation_policy_id: null - schema: - $ref: '#/components/schemas/service_response' - description: service deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a service - tags: - - Services - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific service by id - operationId: getService - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[services][eq]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 7f5cbadd-d3d4-46de-aa8e-ab7df5aa4f2b - type: services - attributes: - name: Laborum qui eos in. - slug: laborum-qui-eos-in - description: Qui maxime ut est. - public_description: null - notify_emails: [] - color: '#047BF8' - status: partial_outage - position: 1 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: [] - slack_aliases: [] - github_repository_name: null - github_repository_branch: master - gitlab_repository_name: null - gitlab_repository_branch: master - kubernetes_deployment_name: null - opsgenie_id: null - pagerduty_id: null - backstage_id: null - external_id: null - cortex_id: null - service_now_ci_sys_id: null - environment_ids: [] - service_ids: [] - owner_group_ids: [] - owners_group_ids: [] - owner_user_ids: [] - owners_user_ids: [] - incidents_count: 1 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: service-aab4eb7179df3fadc9759a4a1fc4adce@email.rootly.com - alert_broadcast_enabled: false - alert_broadcast_channel: {} - incident_broadcast_enabled: false - incident_broadcast_channel: {} - created_at: 2026-01-20T09:48:37.681-08:00 - updated_at: 2026-01-20T09:48:38.050-08:00 - escalation_policy_id: null - schema: - $ref: '#/components/schemas/service_response' - description: service found by slug - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a service - tags: - - Services - x-accepts: - - application/vnd.api+json - put: - description: Update a specific service by id - operationId: updateService - parameters: - - explode: false - in: path - name: id - required: true + type: string + style: form + - explode: true + in: query + name: "filter[services][not_eq]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_service' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 7f5cbadd-d3d4-46de-aa8e-ab7df5aa4f2b - type: services - attributes: - name: elasticsearch-staging - slug: laborum-qui-eos-in - description: Elastisearch - public_description: Public description updated - notify_emails: - - hello@rootly.com - - world@rootly.com - color: '#FFF' - status: partial_outage - position: 2 - show_uptime: true - show_uptime_last_days: 60 - slack_channels: - - id: C03MKDSEJE8 - name: elastisearch - slack_aliases: - - id: S03F7QUV7F1 - name: leadership - github_repository_name: rootlyhq/my-another-github-service - github_repository_branch: master - gitlab_repository_name: rootlyhq/my-another-gitlab-service - gitlab_repository_branch: master - kubernetes_deployment_name: null - opsgenie_id: 8743a1b2-11da-480e-8493-744660987bec - pagerduty_id: PQ9K7I9 - backstage_id: null - external_id: 33bfcc62-cc35-46e6-a270-8c52a56fb358 - cortex_id: null - service_now_ci_sys_id: null - environment_ids: - - 5601261e-6072-4edc-956d-17d5b33109c7 - service_ids: - - 7f5cbadd-d3d4-46de-aa8e-ab7df5aa4f2b - owner_group_ids: [] - owners_group_ids: [] - owner_user_ids: [] - owners_user_ids: [] - incidents_count: 1 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: service-aab4eb7179df3fadc9759a4a1fc4adce@email.rootly.com - alert_broadcast_enabled: true - alert_broadcast_channel: - id: C999ALERT - name: staging-alerts - incident_broadcast_enabled: true - incident_broadcast_channel: - id: C999INCIDENT - name: staging-incidents - created_at: 2026-01-20T09:48:37.681-08:00 - updated_at: 2026-01-20T09:48:46.067-08:00 - escalation_policy_id: 75149db8-6c31-46d5-ada4-31f939b4217a - schema: - $ref: '#/components/schemas/service_response' - description: service updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a service - tags: - - Services - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/services/{id}/incidents_chart: - get: - description: Get service incidents chart - operationId: getServiceIncidentsChart - parameters: - - explode: false - in: path - name: id - required: true + type: string + style: form + - explode: true + in: query + name: "filter[services][in]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple + type: string + style: form - explode: true in: query - name: period - required: true + name: "filter[services][not_in]" + required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - "2025-11-21 00:00:00 UTC": 0 - "2025-11-28 00:00:00 UTC": 0 - "2025-12-05 00:00:00 UTC": 0 - "2025-12-12 00:00:00 UTC": 0 - "2025-12-19 00:00:00 UTC": 0 - "2025-12-26 00:00:00 UTC": 0 - "2026-01-02 00:00:00 UTC": 0 - "2026-01-09 00:00:00 UTC": 0 - "2026-01-16 00:00:00 UTC": 1 - schema: - $ref: '#/components/schemas/incidents_chart_response' - description: success - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Get service incidents chart - tags: - - Services - x-accepts: - - application/vnd.api+json - /v1/services/{id}/uptime_chart: - get: - description: Get service uptime chart - operationId: getServiceUptimeChart - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[service_ids][eq]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple + type: string + style: form - explode: true in: query - name: period + name: "filter[service_ids][not_eq]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - "2026-01-05": 100.0 - "2026-01-06": 100.0 - "2026-01-07": 100.0 - "2026-01-08": 100.0 - "2026-01-09": 100.0 - "2026-01-10": 100.0 - "2026-01-11": 100.0 - "2026-01-12": 100.0 - "2026-01-13": 100.0 - "2026-01-14": 100.0 - "2026-01-15": 100.0 - "2026-01-16": 100.0 - "2026-01-17": 50.0 - "2026-01-18": 0.0 - "2026-01-19": 100.0 - "2026-01-20": 100.0 - schema: - $ref: '#/components/schemas/uptime_chart_response' - description: success - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Get service uptime chart - tags: - - Services - x-accepts: - - application/vnd.api+json - /v1/severities: - get: - description: List severities - operationId: listSeverities - parameters: - explode: true in: query - name: include + name: "filter[service_ids][in]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[service_ids][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[service_names][eq]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[service_names][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[service_names][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[service_names][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[severity]" + name: "filter[functionalities][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[color]" + name: "filter[functionalities][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[functionalities][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[functionalities][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[functionality_ids][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[functionality_ids][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: sort + name: "filter[functionality_ids][in]" required: false schema: type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/severity_list' - description: success - security: - - bearer_auth: [] - summary: List severities - tags: - - Severities - x-accepts: - - application/vnd.api+json - post: - description: Creates a new severity from provided data - operationId: createSeverity - parameters: [] - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/new_severity' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: c296d76b-5166-479d-9592-d94765520651 - type: severities - attributes: - name: P0 - slug: p0 - description: High Priority - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: - - hello@rootly.com - - world@rootly.com - slack_channels: - - id: C03MKDSEJE8 - name: elastisearch - slack_aliases: - - id: S03F7QUV7F1 - name: leadership - created_at: 2026-01-20T09:48:51.799-08:00 - updated_at: 2026-01-20T09:48:51.799-08:00 - schema: - $ref: '#/components/schemas/severity_response' - description: severity created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a severity - tags: - - Severities - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/severities/{id}: - delete: - description: Delete a specific severity by id - operationId: deleteSeverity - parameters: - - explode: false - in: path - name: id - required: true + - explode: true + in: query + name: "filter[functionality_ids][not_in]" + required: false schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 76820111-d829-4024-8c8e-1ee6268f26a8 - type: severities - attributes: - name: wuttb - slug: wuttb - description: Nobis aspernatur est ducimus. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:48:50.110-08:00 - updated_at: 2026-01-20T09:48:53.086-08:00 - schema: - $ref: '#/components/schemas/severity_response' - description: severity deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a severity - tags: - - Severities - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific severity by id - operationId: getSeverity - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 76820111-d829-4024-8c8e-1ee6268f26a8 - type: severities - attributes: - name: wuttb - slug: wuttb - description: Nobis aspernatur est ducimus. - severity: medium - color: '#E58A1F' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:48:50.110-08:00 - updated_at: 2026-01-20T09:48:50.110-08:00 - schema: - $ref: '#/components/schemas/severity_response' - description: severity found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a severity - tags: - - Severities - x-accepts: - - application/vnd.api+json - put: - description: Update a specific severity by id - operationId: updateSeverity - parameters: - - explode: false - in: path - name: id - required: true - schema: - $ref: '#/components/schemas/getAlertField_id_parameter' - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_severity' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 76820111-d829-4024-8c8e-1ee6268f26a8 - type: severities - attributes: - name: P1 - slug: p1 - description: Medium Priority - severity: medium - color: '#000' - position: 2 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - created_at: 2026-01-20T09:48:50.110-08:00 - updated_at: 2026-01-20T09:48:52.781-08:00 - schema: - $ref: '#/components/schemas/severity_response' - description: severity updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update a severity - tags: - - Severities - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/shifts: - get: - description: List shifts - operationId: listShifts - parameters: - - description: "comma separated if needed. eg: shift_override,user. Note: `user`\ - \ is deprecated, use `assignee` instead." - explode: true + type: string + style: form + - explode: true in: query - name: include + name: "filter[functionality_names][eq]" required: false schema: - enum: - - shift_override - - user - - assignee type: string style: form - - description: "Start range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z\ - \ or 2025-01-01T00:00:00+00:00)" - explode: true + - explode: true in: query - name: from + name: "filter[functionality_names][not_eq]" required: false schema: type: string style: form - - description: "End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z\ - \ or 2025-01-01T00:00:00+00:00)" - explode: true + - explode: true in: query - name: to + name: "filter[functionality_names][in]" required: false schema: type: string style: form - explode: true in: query - name: "user_ids[]" + name: "filter[functionality_names][not_in]" required: false schema: - items: - type: integer - type: array + type: string style: form - explode: true in: query - name: "schedule_ids[]" + name: "filter[causes][eq]" required: false schema: - items: - type: string - type: array + type: string style: form - responses: - "200": - content: - application/vnd.api+json: - example: - data: - - id: 66f9e725-ad0d-4b7f-bb9d-c68e05870e39 - type: shifts - attributes: - schedule_id: 68ccefeb-0220-4644-b55a-93b7dbfe12cb - rotation_id: 6860819f-febb-475c-a7fa-a6f7e5343a6e - user_id: 923 - starts_at: 2024-07-02T21:00:00.000-07:00 - ends_at: 2024-07-02T23:00:00.000-07:00 - is_override: true - relationships: - shift_override: - data: null - user: - data: - id: "923" - type: users - - id: b4f31b05-b117-5a37-a8f7-aaa1d735aea3 - type: shifts - attributes: - schedule_id: 68ccefeb-0220-4644-b55a-93b7dbfe12cb - rotation_id: 9b0f3364-0238-4362-b831-1a635edd48a0 - user_id: 923 - starts_at: 2024-07-02T19:00:00.000-07:00 - ends_at: 2024-07-02T21:00:00.000-07:00 - is_override: false - relationships: - shift_override: - data: null - user: - data: - id: "923" - type: users - schema: - $ref: '#/components/schemas/shift_list' - description: success - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: List shifts - tags: - - Shifts - x-accepts: - - application/vnd.api+json - /v1/status-pages/{status_page_id}/templates: - get: - description: List status page templates - operationId: listStatusPageTemplates - parameters: - - explode: false - in: path - name: status_page_id - required: true + - explode: true + in: query + name: "filter[causes][not_eq]" + required: false schema: type: string - style: simple + style: form - explode: true in: query - name: include + name: "filter[causes][in]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[causes][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[cause_ids][eq]" required: false schema: - type: integer + type: string style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/status_page_template_list' - description: success - security: - - bearer_auth: [] - summary: List status page templates - tags: - - StatusPageTemplates - x-accepts: - - application/vnd.api+json - post: - description: Creates a new template from provided data - operationId: createStatusPageTemplate - parameters: - - explode: false - in: path - name: status_page_id - required: true + - explode: true + in: query + name: "filter[cause_ids][not_eq]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/status_page_template' - required: true - responses: - "201": - content: - application/vnd.api+json: - example: - data: - id: 2cd2f7a8-60f8-445f-933a-74fd09ce1f6f - type: status_page_templates - attributes: - status_page_id: c16d143f-5ed9-44c7-a7cb-36eb5d3b56b5 - title: Created from API - body: This was created from API. - update_status: null - should_notify_subscribers: false - position: 4 - enabled: true - created_at: 2026-01-20T09:48:58.877-08:00 - updated_at: 2026-01-20T09:48:58.877-08:00 - kind: normal - schema: - $ref: '#/components/schemas/status_page_template_response' - description: incident_event created - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Title can't be blank - status: "422" - - title: Body can't be blank - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - security: - - bearer_auth: [] - summary: Creates a status page template - tags: - - StatusPageTemplates - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/templates/{id}: - delete: - description: Delete a specific template event by id - operationId: deleteStatusPageTemplate - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[cause_ids][in]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 43af8415-d405-4199-a5ce-d428c43ce7ea - type: status_page_templates - attributes: - status_page_id: c16d143f-5ed9-44c7-a7cb-36eb5d3b56b5 - title: Eaque - body: Molestiae voluptatem magnam ut. - update_status: null - should_notify_subscribers: false - position: 1 - enabled: true - created_at: 2026-01-20T09:48:58.745-08:00 - updated_at: 2026-01-20T09:49:00.400-08:00 - kind: normal - schema: - $ref: '#/components/schemas/status_page_template_response' - description: incident_event deleted - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Delete a incident event - tags: - - StatusPageTemplates - x-accepts: - - application/vnd.api+json - get: - description: Retrieves a specific status_page_template by id - operationId: getStatusPageTemplate - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[cause_ids][not_in]" + required: false schema: type: string - style: simple - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 43af8415-d405-4199-a5ce-d428c43ce7ea - type: status_page_templates - attributes: - status_page_id: c16d143f-5ed9-44c7-a7cb-36eb5d3b56b5 - title: Eaque - body: Molestiae voluptatem magnam ut. - update_status: null - should_notify_subscribers: false - position: 1 - enabled: true - created_at: 2026-01-20T09:48:58.745-08:00 - updated_at: 2026-01-20T09:48:58.745-08:00 - kind: normal - schema: - $ref: '#/components/schemas/status_page_template_response' - description: status page template found - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Retrieves a status page template - tags: - - StatusPageTemplates - x-accepts: - - application/vnd.api+json - put: - description: Update a specific template event by id - operationId: updateStatusPageTemplate - parameters: - - explode: false - in: path - name: id - required: true + style: form + - explode: true + in: query + name: "filter[teams][eq]" + required: false schema: type: string - style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/status_page_template' - required: true - responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: 43af8415-d405-4199-a5ce-d428c43ce7ea - type: status_page_templates - attributes: - status_page_id: c16d143f-5ed9-44c7-a7cb-36eb5d3b56b5 - title: Update template title - body: Update template body - update_status: null - should_notify_subscribers: false - position: 1 - enabled: true - created_at: 2026-01-20T09:48:58.745-08:00 - updated_at: 2026-01-20T09:48:59.669-08:00 - kind: normal - schema: - $ref: '#/components/schemas/status_page_template_response' - description: incident_event updated - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found - security: - - bearer_auth: [] - summary: Update status page template - tags: - - StatusPageTemplates - x-content-type: application/vnd.api+json - x-accepts: - - application/vnd.api+json - /v1/status-pages: - get: - description: List status pages - operationId: listStatusPages - parameters: + style: form - explode: true in: query - name: include + name: "filter[teams][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "page[number]" + name: "filter[teams][in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "page[size]" + name: "filter[teams][not_in]" required: false schema: - type: integer + type: string style: form - explode: true in: query - name: "filter[search]" + name: "filter[team_ids][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[name]" + name: "filter[team_ids][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[slug]" + name: "filter[team_ids][in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gt]" + name: "filter[team_ids][not_in]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][gte]" + name: "filter[team_names][eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "filter[team_names][not_eq]" required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lte]" + name: "filter[team_names][in]" required: false schema: type: string style: form - explode: true + in: query + name: "filter[team_names][not_in]" + required: false + schema: + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true in: query name: sort required: false schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - started_at + - -started_at + - in_triage_at + - -in_triage_at + - mitigated_at + - -mitigated_at + - resolved_at + - -resolved_at + type: string + style: form + - description: "comma separated if needed. eg: sub_statuses,causes,subscribers" + explode: true + in: query + name: include + required: false + schema: + enum: + - sub_statuses + - causes + - subscribers + - roles + - slack_messages + - environments + - incident_types + - services + - functionalities + - groups + - events + - action_items + - custom_field_selections + - feedbacks + - incident_post_mortem + - alerts type: string style: form responses: @@ -41162,108 +19321,62 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/status_page_list' + $ref: '#/components/schemas/incident_list' description: success + "400": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: malformed date filter security: - bearer_auth: [] - summary: List status pages + summary: List incidents tags: - - StatusPages + - Incidents x-accepts: - application/vnd.api+json post: - description: Creates a new status page from provided data - operationId: createStatusPage + description: Creates a new incident from provided data + operationId: createIncident parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_status_page' + $ref: '#/components/schemas/new_incident' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: fbc2e7a1-491b-427b-b8d6-3571d4be2332 - type: status_pages - attributes: - title: My Status Page - slug: my-status-page - public_title: null - description: My Status Page description - public_description: null - header_color: '#0061F2' - footer_color: '#1F2F41' - allow_search_engine_index: true - public: false - website_url: null - website_privacy_url: null - website_support_url: null - ga_tracking_id: null - time_zone: Etc/UTC - success_message: All Systems Operational - failure_message: Something's not quite right - authentication_enabled: false - authentication_password: "[REDACTED]" - enabled: true - functionality_ids: - - da56dfe3-52d7-4859-a3e0-12a6c89e0353 - service_ids: - - 026e1cb1-8421-43e2-85fd-a04a3292a19b - allow_email_subscribers: true - allow_sms_subscribers: true - allow_rss_atom_feeds: true - show_uptime: true - show_uptime_last_days: 30 - external_domain_names: [] - authentication_method: none - saml_idp_sso_service_url: null - saml_idp_slo_service_url: null - saml_idp_cert: null - saml_idp_cert_fingerprint: null - saml_name_identifier_format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - saml_sp_entity_id: http://localhost:3001/teams/520/status-pages/fbc2e7a1-491b-427b-b8d6-3571d4be2332/saml/metadata - saml_authentication_available: false - created_at: 2026-01-20T09:49:04.431-08:00 - updated_at: 2026-01-20T09:49:04.431-08:00 schema: - $ref: '#/components/schemas/status_page_response' - description: status page with SAML created + $ref: '#/components/schemas/incident_response' + description: incident created "422": content: application/vnd.api+json: - example: - errors: - - title: Title can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid SAML configuration + description: invalid causes association "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a status page + summary: Creates an incident tags: - - StatusPages + - Incidents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/status-pages/{id}: + /v1/incidents/{id}: delete: - description: Delete a specific status page by id - operationId: deleteStatusPage + description: Delete a specific incident by id + operationId: deleteIncident parameters: - explode: false in: path @@ -41276,71 +19389,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 183bffed-2677-481f-933c-47b4b4c906fc - type: status_pages - attributes: - title: Minus consequatur quod id. - slug: minus-consequatur-quod-id - public_title: null - description: null - public_description: null - header_color: '#0061F2' - footer_color: '#1F2F41' - allow_search_engine_index: true - public: false - website_url: null - website_privacy_url: null - website_support_url: null - ga_tracking_id: null - time_zone: Etc/UTC - success_message: All Systems Operational - failure_message: Something's not quite right - authentication_enabled: false - authentication_password: "[REDACTED]" - enabled: true - functionality_ids: [] - service_ids: [] - allow_email_subscribers: true - allow_sms_subscribers: true - allow_rss_atom_feeds: true - show_uptime: true - show_uptime_last_days: 60 - external_domain_names: [] - authentication_method: none - saml_idp_sso_service_url: null - saml_idp_slo_service_url: null - saml_idp_cert: null - saml_idp_cert_fingerprint: null - saml_name_identifier_format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - saml_sp_entity_id: http://localhost:3001/teams/520/status-pages/183bffed-2677-481f-933c-47b4b4c906fc/saml/metadata - saml_authentication_available: false - created_at: 2026-01-20T09:49:02.034-08:00 - updated_at: 2026-01-20T09:49:06.514-08:00 schema: - $ref: '#/components/schemas/status_page_response' - description: status_page deleted + $ref: '#/components/schemas/incident_response' + description: incident deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a status page + summary: Delete an incident tags: - - StatusPages + - Incidents x-accepts: - application/vnd.api+json get: - description: Retrieves a specific status page by id - operationId: getStatusPage + description: Retrieves a specific incident by id + operationId: getIncident parameters: - explode: false in: path @@ -41349,75 +19416,54 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple + - description: "comma separated if needed. eg: sub_statuses,causes,subscribers" + explode: true + in: query + name: include + required: false + schema: + enum: + - sub_statuses + - causes + - subscribers + - roles + - slack_messages + - environments + - incident_types + - services + - functionalities + - groups + - events + - action_items + - custom_field_selections + - feedbacks + - incident_post_mortem + - alerts + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 183bffed-2677-481f-933c-47b4b4c906fc - type: status_pages - attributes: - title: Minus consequatur quod id. - slug: minus-consequatur-quod-id - public_title: null - description: null - public_description: null - header_color: '#0061F2' - footer_color: '#1F2F41' - allow_search_engine_index: true - public: false - website_url: null - website_privacy_url: null - website_support_url: null - ga_tracking_id: null - time_zone: Etc/UTC - success_message: All Systems Operational - failure_message: Something's not quite right - authentication_enabled: false - authentication_password: "[REDACTED]" - enabled: true - functionality_ids: [] - service_ids: [] - allow_email_subscribers: true - allow_sms_subscribers: true - allow_rss_atom_feeds: true - show_uptime: true - show_uptime_last_days: 60 - external_domain_names: [] - authentication_method: none - saml_idp_sso_service_url: null - saml_idp_slo_service_url: null - saml_idp_cert: null - saml_idp_cert_fingerprint: null - saml_name_identifier_format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - saml_sp_entity_id: http://localhost:3001/teams/520/status-pages/183bffed-2677-481f-933c-47b4b4c906fc/saml/metadata - saml_authentication_available: false - created_at: 2026-01-20T09:49:02.034-08:00 - updated_at: 2026-01-20T09:49:02.034-08:00 schema: - $ref: '#/components/schemas/status_page_response' - description: status_page found + $ref: '#/components/schemas/incident_response' + description: incident found by slug "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a status page + summary: Retrieves an incident tags: - - StatusPages + - Incidents x-accepts: - application/vnd.api+json put: - description: Update a specific status page by id - operationId: updateStatusPage + description: Update a specific incident by id + operationId: updateIncident parameters: - explode: false in: path @@ -41430,178 +19476,72 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_status_page' + $ref: '#/components/schemas/update_incident' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 183bffed-2677-481f-933c-47b4b4c906fc - type: status_pages - attributes: - title: My Status Page Updated - slug: my-status-page-updated - public_title: null - description: My Status Page Description Updated - public_description: null - header_color: '#0061F2' - footer_color: '#1F2F41' - allow_search_engine_index: true - public: false - website_url: null - website_privacy_url: null - website_support_url: null - ga_tracking_id: null - time_zone: Etc/UTC - success_message: All Systems Operational - failure_message: Something's not quite right - authentication_enabled: false - authentication_password: "[REDACTED]" - enabled: true - functionality_ids: [] - service_ids: [] - allow_email_subscribers: true - allow_sms_subscribers: true - allow_rss_atom_feeds: true - show_uptime: true - show_uptime_last_days: 60 - external_domain_names: [] - authentication_method: none - saml_idp_sso_service_url: null - saml_idp_slo_service_url: null - saml_idp_cert: null - saml_idp_cert_fingerprint: null - saml_name_identifier_format: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - saml_sp_entity_id: http://localhost:3001/teams/520/status-pages/183bffed-2677-481f-933c-47b4b4c906fc/saml/metadata - saml_authentication_available: false - created_at: 2026-01-20T09:49:02.034-08:00 - updated_at: 2026-01-20T09:49:05.907-08:00 schema: - $ref: '#/components/schemas/status_page_response' - description: status page SAML updated + $ref: '#/components/schemas/incident_response' + description: incident updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a status page + summary: Update an incident tags: - - StatusPages + - Incidents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/statuses: - get: - description: List Statuses - operationId: listStatuses + /v1/incidents/{id}/mitigate: + put: + description: Mitigate a specific incident by id + operationId: mitigateIncident parameters: - - explode: true - in: query - name: include - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "page[number]" - required: false + - explode: false + in: path + name: id + required: true schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[enabled]" - required: false - schema: - type: boolean - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false - schema: - type: string - style: form + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/mitigate_incident' + required: true responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/status_list' - description: success - "401": + $ref: '#/components/schemas/incident_response' + description: incident mitigated + "404": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: List Statuses + summary: Mitigate an incident tags: - - Statuses + - Incidents + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/statuses/{id}: - get: - description: Retrieves a specific Status by id - operationId: getStatus + /v1/incidents/{id}/resolve: + put: + description: Resolve a specific incident by id + operationId: resolveIncident parameters: - explode: false in: path @@ -41610,195 +19550,300 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/resolve_incident' + required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 95fef61b-dfda-4573-96eb-65d6762bc735 - type: statuses - attributes: - name: Status 1 - slug: status-1 - description: null - color: '#047BF8' - enabled: true - created_at: 2026-01-20T09:49:07.723-08:00 - updated_at: 2026-01-20T09:49:07.723-08:00 schema: - $ref: '#/components/schemas/status_response' - description: status found by slug + $ref: '#/components/schemas/incident_response' + description: incident resolved "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a Status + summary: Resolve an incident tags: - - Statuses + - Incidents + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/sub_statuses: - get: - description: List Sub-Statuses - operationId: listSubStatuses + /v1/incidents/{id}/cancel: + put: + description: Cancel a specific incident by id + operationId: cancelIncident parameters: - - explode: true - in: query - name: include - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "page[number]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[name]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[parent_status]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false + - explode: false + in: path + name: id + required: true schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/cancel_incident' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_response' + description: incident cancel + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Cancel an incident + tags: + - Incidents + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incidents/{id}/in_triage: + put: + description: Set a specific incident by ID to triage state + operationId: triageIncident + parameters: + - explode: false + in: path + name: id + required: true schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/in_triage_incident' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_response' + description: incident set to triage + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Triage an incident + tags: + - Incidents + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incidents/{id}/restart: + put: + description: Restart a specific incident by id + operationId: restartIncident + parameters: + - explode: false + in: path + name: id + required: true schema: - type: string - style: form + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/restart_incident' + required: true responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/sub_status_list' - description: success + $ref: '#/components/schemas/incident_response' + description: incident restarted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: List Sub-Statuses + summary: Restart an incident tags: - - SubStatuses + - Incidents + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - post: - description: Creates a new Sub-Status from provided data - operationId: createSubStatus - parameters: [] + /v1/incidents/{id}/duplicate: + put: + description: Mark an incident as a duplicate + operationId: markAsDuplicateIncident + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_sub_status' + $ref: '#/components/schemas/resolve_incident' required: true responses: - "201": + "200": content: application/vnd.api+json: - example: - data: - id: 36ad812c-fe67-4d7e-b933-8f7392daaa63 - type: sub_statuses - attributes: - name: Test - description: This is a description - slug: test - parent_status: started - position: 13 - deleted_at: null - updated_at: 2026-01-20T09:49:11.303-08:00 - created_at: 2026-01-20T09:49:11.303-08:00 schema: - $ref: '#/components/schemas/sub_status_response' - description: sub_status created + $ref: '#/components/schemas/incident_response' + description: incident marked as duplicated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Mark an incident as a duplicate + tags: + - Incidents + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/incidents/{id}/detach_from_parent: + put: + description: Detach a sub-incident from its parent incident + operationId: detachFromParentIncident + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_response' + description: incident detached from parent "422": + description: incident has no parent + "404": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: Name is too short (minimum is 1 character) - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid request - "401": + description: resource not found + security: + - bearer_auth: [] + summary: Detach an incident from its parent + tags: + - Incidents + x-accepts: + - application/vnd.api+json + /v1/incidents/{id}/unmark_as_duplicate: + put: + description: Remove the duplicate marking from an incident + operationId: unmarkAsDuplicateIncident + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_response' + description: duplicate marking removed + "422": + description: incident is not marked as duplicate + "404": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + description: resource not found security: - bearer_auth: [] - summary: Creates a Sub-Status + summary: Remove duplicate marking from an incident tags: - - SubStatuses + - Incidents + x-accepts: + - application/vnd.api+json + /v1/incidents/{id}/add_subscribers: + post: + description: Add subscribers to incident + operationId: addSubscribersToIncident + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/add_subscribers' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incident_response' + description: add subscribers to incident + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Add subscribers to incident + tags: + - Incidents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/sub_statuses/{id}: + /v1/incidents/{id}/remove_subscribers: delete: - description: Delete a specific Sub-Status by id - operationId: deleteSubStatus + description: Remove subscribers to incident + operationId: removeSubscribersToIncident parameters: - explode: false in: path @@ -41807,46 +19852,37 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/remove_subscribers' + required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 8f6579e6-d200-4dd8-9e2c-4e1474556334 - type: sub_statuses - attributes: - name: e8852 - description: Temporibus sed voluptas culpa. - slug: e8852 - parent_status: started - position: 3 - deleted_at: 2026-01-20T09:49:12.200-08:00 - updated_at: 2026-01-20T09:49:12.200-08:00 - created_at: 2026-01-20T09:49:10.455-08:00 schema: - $ref: '#/components/schemas/sub_status_response' - description: sub_status deleted + $ref: '#/components/schemas/incident_response' + description: remove subscribers from incident "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a Sub-Status + summary: Remove subscribers from incident tags: - - SubStatuses + - Incidents + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - get: - description: Retrieves a specific Sub-Status by id - operationId: getSubStatus + /v1/incidents/{id}/assign_role_to_user: + post: + description: Assign user to incident + operationId: assignUserToIncident parameters: - explode: false in: path @@ -41855,46 +19891,37 @@ paths: schema: $ref: '#/components/schemas/getAlertField_id_parameter' style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/assign_role_to_user' + required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 8f6579e6-d200-4dd8-9e2c-4e1474556334 - type: sub_statuses - attributes: - name: e8852 - description: Temporibus sed voluptas culpa. - slug: e8852 - parent_status: started - position: 3 - deleted_at: null - updated_at: 2026-01-20T09:49:10.455-08:00 - created_at: 2026-01-20T09:49:10.455-08:00 schema: - $ref: '#/components/schemas/sub_status_response' - description: sub_status found by slug + $ref: '#/components/schemas/incident_response' + description: assign user to incident "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a Sub-Status + summary: Assign user to incident tags: - - SubStatuses + - Incidents + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - put: - description: Update a specific Sub-Status by id - operationId: updateSubStatus + /v1/incidents/{id}/unassign_role_from_user: + delete: + description: Remove assigned user from incident + operationId: removeAssignedUserFromIncident parameters: - explode: false in: path @@ -41907,59 +19934,57 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_sub_status' + $ref: '#/components/schemas/unassign_role_from_user' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 8f6579e6-d200-4dd8-9e2c-4e1474556334 - type: sub_statuses - attributes: - name: e8852 - description: Updated description - slug: e8852 - parent_status: started - position: 3 - deleted_at: null - updated_at: 2026-01-20T09:49:11.965-08:00 - created_at: 2026-01-20T09:49:10.455-08:00 schema: - $ref: '#/components/schemas/sub_status_response' - description: sub_status updated + $ref: '#/components/schemas/incident_response' + description: remove assigned user from incident "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a Sub-Status + summary: Remove assigned user from incident tags: - - SubStatuses + - Incidents x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/teams: + /v1/ip_ranges: get: - description: List teams - operationId: listTeams + description: Retrieves the IP ranges for rootly.com services + operationId: getIpRanges + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ip_ranges_response' + description: ip_ranges found + security: + - bearer_auth: [] + summary: Retrieves IP ranges + tags: + - IpRanges + x-accepts: + - application/vnd.api+json + /v1/live_call_routers: + get: + description: List Live Call Routers + operationId: listLiveCallRouters parameters: - - description: "comma separated if needed. eg: users" - explode: true + - explode: true in: query name: include required: false schema: - enum: - - users type: string style: form - explode: true @@ -41983,13 +20008,6 @@ paths: schema: type: string style: form - - explode: true - in: query - name: "filter[slug]" - required: false - schema: - type: string - style: form - explode: true in: query name: "filter[name]" @@ -41999,620 +20017,353 @@ paths: style: form - explode: true in: query - name: "filter[backstage_id]" + name: "filter[slug]" required: false schema: type: string style: form - explode: true in: query - name: "filter[cortex_id]" + name: "filter[created_at][gt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[opslevel_id]" + name: "filter[created_at][gte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[external_id]" + name: "filter[created_at][lt]" required: false schema: type: string style: form - explode: true in: query - name: "filter[color]" + name: "filter[created_at][lte]" required: false schema: type: string style: form - explode: true in: query - name: "filter[alert_broadcast_enabled]" + name: sort required: false schema: - type: boolean - style: form - - explode: true - in: query - name: "filter[incident_broadcast_enabled]" - required: false - schema: - type: boolean - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lt]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][lte]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: sort - required: false - schema: - type: string + type: string style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/team_list' + $ref: '#/components/schemas/live_call_router_list' description: success security: - bearer_auth: [] - summary: List teams + summary: List Live Call Routers tags: - - Teams + - LiveCallRouters x-accepts: - application/vnd.api+json post: - description: Creates a new team from provided data - operationId: createTeam + description: Creates a new Live Call Router from provided data + operationId: createLiveCallRouter parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_team' + $ref: '#/components/schemas/new_live_call_router' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 6984ab8a-98f9-47f3-8648-5c94eb28f45c - type: groups - attributes: - slug: infrastructure - name: Infrastructure - description: Everything infrastructure related - color: '#FFF' - position: 1 - notify_emails: - - john@rootly.com - - doe@rootly.com - slack_channels: - - id: C03MKDSEJE8 - name: infrastructure - slack_aliases: - - id: S03F7QUV7F1 - name: infrastructure - pagerduty_id: PQ9K7I8 - pagerduty_service_id: null - backstage_id: null - external_id: d795fe69-acc2-4b30-92c9-3c25cbb92056 - opsgenie_id: 8743a1b2-11da-480e-8493-744660987bef - victor_ops_id: e877c558-12e2-44d2-8723-5c86f7473c54 - pagertree_id: daa8bcd6-bf4a-4716-976c-812832ae115e - cortex_id: null - service_now_ci_sys_id: null - user_ids: - - 951 - - 952 - admin_ids: [] - incidents_count: 0 - alert_urgency_id: null - alerts_email_enabled: true - alerts_email_address: group-57ec97c3f99160199dd8b2899a917e85@test.email.rootly.com - alert_broadcast_enabled: true - alert_broadcast_channel: - id: C123ALERT - name: team-alerts - incident_broadcast_enabled: true - incident_broadcast_channel: - id: C123INCIDENT - name: team-incidents - auto_add_members_when_attached: true - created_at: 2026-01-20T09:49:17.299-08:00 - updated_at: 2026-01-20T09:49:17.309-08:00 - relationships: - users: - data: - - id: "951" - type: users - - id: "952" - type: users schema: - $ref: '#/components/schemas/team_response' - description: team created + $ref: '#/components/schemas/live_call_router_response' + description: live_call_router created with multiple targets without calling_tree_enabled + (backward compat) "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' - description: invalid association + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a team + summary: Creates a Live Call Router tags: - - Teams + - LiveCallRouters x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/teams/{id}: + /v1/live_call_routers/generate_phone_number: + get: + description: Generates a phone number for Live Call Router + operationId: generatePhoneNumberLiveCallRouter + parameters: + - explode: true + in: query + name: country_code + required: true + schema: + enum: + - AU + - CA + - DE + - NL + - NZ + - SE + - CH + - GB + - US + type: string + style: form + - explode: true + in: query + name: phone_type + required: true + schema: + enum: + - local + - toll_free + - mobile + type: string + style: form + responses: + "200": + description: live_call_router phone number + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: live_call_router without required params + security: + - bearer_auth: [] + summary: Generates a phone number for Live Call Router + tags: + - LiveCallRouters + x-accepts: + - application/vnd.api+json + /v1/live_call_routers/{id}: delete: - description: Delete a specific team by id - operationId: deleteTeam + description: Delete a specific Live Call Router by id + operationId: deleteLiveCallRouter parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getTeam_id_parameter' + type: string style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: e817b995-09ee-4895-b8eb-1a1beaea2f05 - type: groups - attributes: - slug: autem-sunt-nulla-et - name: Autem sunt nulla et. - description: null - color: '#E65252' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - pagerduty_id: null - pagerduty_service_id: null - backstage_id: null - external_id: null - opsgenie_id: null - victor_ops_id: null - pagertree_id: null - cortex_id: null - service_now_ci_sys_id: null - user_ids: [] - admin_ids: [] - incidents_count: 1 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: group-d8963df03967aa5ef9c3a00e7f8263c5@email.rootly.com - alert_broadcast_enabled: false - alert_broadcast_channel: {} - incident_broadcast_enabled: false - incident_broadcast_channel: {} - auto_add_members_when_attached: false - created_at: 2026-01-20T09:49:13.996-08:00 - updated_at: 2026-01-20T09:49:18.642-08:00 - relationships: - users: - data: [] schema: - $ref: '#/components/schemas/team_response' - description: team deleted + $ref: '#/components/schemas/live_call_router_response' + description: live_call_router deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete a team + summary: Delete a Live Call Router tags: - - Teams + - LiveCallRouters x-accepts: - application/vnd.api+json get: - description: Retrieves a specific team by id - operationId: getTeam + description: Retrieves a specific Live Call Router by id + operationId: getLiveCallRouter parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getTeam_id_parameter' - style: simple - - description: "comma separated if needed. eg: users" - explode: true - in: query - name: include - required: false - schema: - enum: - - users type: string - style: form + style: simple responses: "200": content: application/vnd.api+json: - example: - data: - id: e817b995-09ee-4895-b8eb-1a1beaea2f05 - type: groups - attributes: - slug: autem-sunt-nulla-et - name: Autem sunt nulla et. - description: null - color: '#E65252' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - pagerduty_id: null - pagerduty_service_id: null - backstage_id: null - external_id: null - opsgenie_id: null - victor_ops_id: null - pagertree_id: null - cortex_id: null - service_now_ci_sys_id: null - user_ids: [] - admin_ids: [] - incidents_count: 1 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: group-d8963df03967aa5ef9c3a00e7f8263c5@email.rootly.com - alert_broadcast_enabled: false - alert_broadcast_channel: {} - incident_broadcast_enabled: false - incident_broadcast_channel: {} - auto_add_members_when_attached: false - created_at: 2026-01-20T09:49:13.996-08:00 - updated_at: 2026-01-20T09:49:13.996-08:00 - relationships: - users: - data: [] schema: - $ref: '#/components/schemas/team_response' - description: team found by slug + $ref: '#/components/schemas/live_call_router_response' + description: live_call_router found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a team + summary: Retrieves a Live Call Router tags: - - Teams + - LiveCallRouters x-accepts: - application/vnd.api+json put: - description: Update a specific team by id - operationId: updateTeam + description: Update a specific Live Call Router by id + operationId: updateLiveCallRouter parameters: - explode: false in: path name: id required: true schema: - $ref: '#/components/schemas/getTeam_id_parameter' + type: string style: simple requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_team' + $ref: '#/components/schemas/update_live_call_router' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: e817b995-09ee-4895-b8eb-1a1beaea2f05 - type: groups - attributes: - slug: security - name: Security - description: Everything security related - color: '#000' - position: 2 - notify_emails: - - hello@rootly.com - - world@rootly.com - slack_channels: - - id: C03MKDSEJE8 - name: infrastructure - slack_aliases: - - id: S03F7QUV7F1 - name: infrastructure - pagerduty_id: PQ9K7I9 - pagerduty_service_id: null - backstage_id: null - external_id: 95ee00ee-4b35-40f7-bd0f-a919f9b8008d - opsgenie_id: a6edf90f-1a61-4592-99a7-bcf101c81bca - victor_ops_id: 0ae4de13-145a-4214-9cd5-c982ef95a740 - pagertree_id: c4378a92-505c-49e4-a46e-c44c830bbc99 - cortex_id: null - service_now_ci_sys_id: null - user_ids: - - 951 - admin_ids: [] - incidents_count: 1 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: group-d8963df03967aa5ef9c3a00e7f8263c5@email.rootly.com - alert_broadcast_enabled: false - alert_broadcast_channel: {} - incident_broadcast_enabled: true - incident_broadcast_channel: - id: C456INCIDENT - name: security-incidents - auto_add_members_when_attached: false - created_at: 2026-01-20T09:49:13.996-08:00 - updated_at: 2026-01-20T09:49:18.354-08:00 - relationships: - users: - data: - - id: "951" - type: users schema: - $ref: '#/components/schemas/team_response' - description: team updated + $ref: '#/components/schemas/live_call_router_response' + description: live_call_router multichannel notification fields updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update a team + summary: Update a Live Call Router tags: - - Teams + - LiveCallRouters x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/teams/{id}/incidents_chart: + /v1/incidents/{incident_id}/meeting_recordings: get: - description: Get team incidents chart - operationId: getTeamIncidentsChart + description: "List all meeting recording sessions for an incident. Returns recordings\ + \ sorted by session number. Each recording represents one bot session with\ + \ its own transcript, status, and metadata." + operationId: listMeetingRecordings parameters: - - explode: false + - description: Incident UUID + explode: false in: path - name: id + name: incident_id required: true schema: type: string style: simple - - explode: true + - description: Page number + explode: true in: query - name: period - required: true + name: "page[number]" + required: false schema: - type: string + type: integer + style: form + - description: Number of recordings per page + explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer style: form responses: "200": content: application/vnd.api+json: - example: - data: - "2025-12-20": 0 - "2025-12-21": 0 - "2025-12-22": 0 - "2025-12-23": 0 - "2025-12-24": 0 - "2025-12-25": 0 - "2025-12-26": 0 - "2025-12-27": 0 - "2025-12-28": 0 - "2025-12-29": 0 - "2025-12-30": 0 - "2025-12-31": 0 - "2026-01-01": 0 - "2026-01-02": 0 - "2026-01-03": 0 - "2026-01-04": 0 - "2026-01-05": 0 - "2026-01-06": 0 - "2026-01-07": 0 - "2026-01-08": 0 - "2026-01-09": 0 - "2026-01-10": 0 - "2026-01-11": 0 - "2026-01-12": 0 - "2026-01-13": 0 - "2026-01-14": 0 - "2026-01-15": 0 - "2026-01-16": 0 - "2026-01-17": 1 - "2026-01-18": 0 - "2026-01-19": 0 - "2026-01-20": 0 schema: - $ref: '#/components/schemas/incidents_chart_response' - description: success + $ref: '#/components/schemas/meeting_recording_list' + description: meeting recordings listed "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + description: incident not found security: - bearer_auth: [] - summary: Get team incidents chart + summary: List meeting recordings tags: - - Teams + - Meeting Recordings x-accepts: - application/vnd.api+json - /v1/users/{user_id}/email_addresses: - get: - description: Retrieves all email addresses for the specified user - operationId: getUserEmailAddresses + post: + description: "Invite a recording bot to the incident's meeting. If no previous\ + \ recordings exist for the platform, a new bot is invited (session 1). If\ + \ previous sessions exist, a new session is created (re-invite). The bot joins\ + \ the meeting, records audio/video, and generates a transcript when the session\ + \ ends." + operationId: createMeetingRecording parameters: - - explode: false + - description: Incident UUID + explode: false in: path - name: user_id + name: incident_id required: true schema: type: string style: simple + - description: Meeting platform + explode: true + in: query + name: platform + required: false + schema: + enum: + - zoom + - google_meet + - microsoft_teams + - webex + type: string + style: form responses: - "200": - content: - application/vnd.api+json: - example: - data: - - id: aa0482fc-2ef1-4456-ab76-9216d111b78a - type: user_email_addresses - attributes: - user_id: 956 - email: angelic_shanahan@abernathy-schumm.test - primary: true - verified_at: 2026-01-20T09:49:19.277-08:00 - created_at: 2026-01-20T09:49:19.291-08:00 - updated_at: 2026-01-20T09:49:19.291-08:00 - - id: c555d64b-b7b2-4736-9741-971b67bdc822 - type: user_email_addresses - attributes: - user_id: 956 - email: wilfred_conn@kuvalis-green.example - primary: false - verified_at: null - created_at: 2026-01-20T09:49:21.497-08:00 - updated_at: 2026-01-20T09:49:21.497-08:00 - - id: df1bc007-9c75-4630-85b8-3a58d074fd01 - type: user_email_addresses - attributes: - user_id: 956 - email: myong_stamm@gusikowski-hessel.test - primary: false - verified_at: null - created_at: 2026-01-20T09:49:21.515-08:00 - updated_at: 2026-01-20T09:49:21.515-08:00 - links: - self: http://www.example.com/v1/users/956/email_addresses?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/users/956/email_addresses?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/users/956/email_addresses?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 3 - total_pages: 1 - schema: - $ref: '#/components/schemas/user_email_address_list' - description: user_email_addresses found - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - "404": + "201": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: responds with not found when accessing other user's resources + $ref: '#/components/schemas/meeting_recording_response' + description: recording session created + "422": + description: validation error (e.g. bot already active) security: - bearer_auth: [] - summary: Retrieves user email addresses + summary: Create meeting recording tags: - - UserEmailAddresses + - Meeting Recordings x-accepts: - application/vnd.api+json + /v1/incidents/{incident_id}/meeting_recordings/import: post: - description: Creates a new user email address from provided data - operationId: createUserEmailAddress + description: "Import an externally captured meeting recording and attach it\ + \ to an incident. Video and transcript are fetched asynchronously. The existing\ + \ POST /v1/incidents/{incident_id}/meeting_recordings endpoint invites a bot\ + \ — this endpoint handles recordings that were captured outside of the bot\ + \ flow." + operationId: importMeetingRecording parameters: - - explode: false + - description: Incident UUID + explode: false in: path - name: user_id + name: incident_id required: true schema: type: string @@ -42621,66 +20372,108 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_user_email_address' - required: true + $ref: '#/components/schemas/import_meeting_recording' responses: "201": content: application/vnd.api+json: - example: - data: - id: 491a9050-f4d1-44d4-9679-2d65a8de2647 - type: user_email_addresses - attributes: - user_id: 956 - email: test@example.com - primary: false - verified_at: null - created_at: 2026-01-20T09:49:21.267-08:00 - updated_at: 2026-01-20T09:49:21.267-08:00 schema: - $ref: '#/components/schemas/user_email_address_response' - description: user_email_address created - "401": + $ref: '#/components/schemas/meeting_recording_response' + description: recording imported + "422": + description: "validation error (e.g. unsupported source, duplicate recording)" + security: + - bearer_auth: [] + summary: Import a meeting recording + tags: + - Meeting Recordings + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/meeting_recordings: + get: + description: "List meeting recordings across the organization. Returns the current\ + \ user's standalone recordings plus incident-backed recordings the user can\ + \ access. Supports filtering by status, platform, and created_by." + operationId: listAllMeetingRecordings + parameters: + - description: Filter by status + explode: true + in: query + name: status + required: false + schema: + type: string + style: form + - description: Filter by platform + explode: true + in: query + name: platform + required: false + schema: + type: string + style: form + - description: Filter by creator type + explode: true + in: query + name: created_by + required: false + schema: + type: string + style: form + responses: + "200": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - "404": + $ref: '#/components/schemas/meeting_recording_list' + description: meeting recordings found + security: + - bearer_auth: [] + summary: List all meeting recordings + tags: + - Meeting Recordings + x-accepts: + - application/vnd.api+json + /v1/meeting_recordings/start_session: + post: + description: Start a new desktop recording session. The server creates a recording + record and returns a stream token the desktop client uses to send audio. No + provider-specific configuration is needed from the client. + operationId: startRecordingSession + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/start_session_request' + responses: + "201": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: responds with not found when accessing other user's resources + $ref: '#/components/schemas/start_session_response' + description: session created "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + description: invalid platform security: - bearer_auth: [] - summary: Creates a user email address + summary: Start a recording session tags: - - UserEmailAddresses + - Meeting Recordings x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/email_addresses/{id}: + /v1/meeting_recordings/{id}/delete_session: delete: - description: Deletes a user email address - operationId: deleteUserEmailAddress + description: "Delete a standalone meeting recording (not linked to an incident).\ + \ Only the recording owner can delete it. Active recordings (pending, recording,\ + \ paused) must be stopped first. Returns 404 for incident-linked recordings\ + \ or recordings owned by another user." + operationId: deleteStandaloneMeetingRecording parameters: - - explode: false + - description: Meeting Recording UUID + explode: false in: path name: id required: true @@ -42688,245 +20481,158 @@ paths: type: string style: simple responses: - "200": - content: - application/vnd.api+json: - example: - data: - id: bbb90d65-9ee3-4ca8-9d6b-3a6a00da69a9 - type: user_email_addresses - attributes: - user_id: 956 - email: ezekiel_treutel@rowe-hayes.example - primary: false - verified_at: null - created_at: 2026-01-20T09:49:22.321-08:00 - updated_at: 2026-01-20T09:49:22.370-08:00 - schema: - $ref: '#/components/schemas/user_email_address_response' - description: user_email_address deleted - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + "204": + description: recording deleted + "422": + description: cannot delete active recording "404": + description: recording not found or not owned by user + security: + - bearer_auth: [] + summary: Delete a standalone meeting recording + tags: + - Meeting Recordings + x-accepts: + - application/json + /v1/meeting_recordings/{id}: + delete: + description: "Delete a meeting recording. Only completed or failed recordings\ + \ can be deleted. Active recordings (pending, recording, paused) must be stopped\ + \ first." + operationId: deleteMeetingRecording + parameters: + - description: Meeting Recording UUID + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: responds with not found when accessing other user's resources + $ref: '#/components/schemas/meeting_recording_response' + description: meeting recording deleted + "422": + description: cannot delete active recording security: - bearer_auth: [] - summary: Delete user email address + summary: Delete a meeting recording tags: - - UserEmailAddresses + - Meeting Recordings x-accepts: - application/vnd.api+json get: - description: Retrieves a specific user email address - operationId: showUserEmailAddress + description: "Retrieve a single meeting recording session including its status,\ + \ duration, speaker count, word count, and transcript summary." + operationId: getMeetingRecording parameters: - - explode: false + - description: Meeting Recording UUID + explode: false in: path name: id required: true schema: type: string style: simple + - description: "comma separated if needed. eg: transcript" + explode: true + in: query + name: include + required: false + schema: + enum: + - transcript + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: 8a74540c-0498-40b1-ac37-a7b2d498a740 - type: user_email_addresses - attributes: - user_id: 956 - email: oren_gerhold@donnelly.example - primary: false - verified_at: null - created_at: 2026-01-20T09:49:21.715-08:00 - updated_at: 2026-01-20T09:49:21.715-08:00 - schema: - $ref: '#/components/schemas/user_email_address_response' - description: user_email_address found - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + $ref: '#/components/schemas/meeting_recording_response' + description: meeting recording found "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with not found when accessing other user's resources + description: meeting recording not found security: - bearer_auth: [] - summary: Show user email address + summary: Get a meeting recording tags: - - UserEmailAddresses + - Meeting Recordings x-accepts: - application/vnd.api+json - put: - description: Updates a user email address - operationId: updateUserEmailAddress + /v1/meeting_recordings/{id}/delete_video: + delete: + description: "Delete only the video file from a meeting recording. The transcript,\ + \ summary, and all metadata are preserved. Only non-active recordings with\ + \ an attached video can have their video deleted." + operationId: deleteMeetingRecordingVideo parameters: - - explode: false + - description: Meeting Recording UUID + explode: false in: path name: id required: true schema: type: string style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_user_email_address' - required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: 395ab285-b476-40cc-a4ce-c30f0a79b134 - type: user_email_addresses - attributes: - user_id: 956 - email: updated@example.com - primary: false - verified_at: null - created_at: 2026-01-20T09:49:21.974-08:00 - updated_at: 2026-01-20T09:49:22.043-08:00 - schema: - $ref: '#/components/schemas/user_email_address_response' - description: user_email_address updated - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: responds with not found when accessing other user's resources + $ref: '#/components/schemas/meeting_recording_response' + description: video deleted "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request + description: cannot delete video (active recording or no video) security: - bearer_auth: [] - summary: Update user email address + summary: Delete video from a meeting recording tags: - - UserEmailAddresses - x-content-type: application/vnd.api+json + - Meeting Recordings x-accepts: - application/vnd.api+json - /v1/email_addresses/{id}/verify: + /v1/meeting_recordings/{id}/pause: post: - description: Verifies an email address using a verification token - operationId: verifyUserEmailAddress + description: Pause an active recording session. The bot remains in the meeting + but stops capturing audio/video. Use the resume endpoint to continue recording. + operationId: pauseMeetingRecording parameters: - - explode: false + - description: Meeting Recording UUID + explode: false in: path name: id required: true schema: type: string style: simple - - explode: true - in: query - name: token - required: true - schema: - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: ea7eb4ef-4a8c-4082-9d4c-aa63d5345d67 - type: user_email_addresses - attributes: - user_id: 956 - email: rory@feeney.test - primary: false - verified_at: 2026-01-20T09:49:27.975-08:00 - created_at: 2026-01-20T09:49:27.925-08:00 - updated_at: 2026-01-20T09:49:27.992-08:00 schema: - $ref: '#/components/schemas/user_email_address_response' - description: email address verified successfully + $ref: '#/components/schemas/meeting_recording_response' + description: recording paused "422": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid or expired verification token - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: invalid or expired token - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: email address not found + description: recording is not active security: - bearer_auth: [] - summary: Verifies an email address with token + summary: Pause a meeting recording tags: - - UserEmailAddresses + - Meeting Recordings x-accepts: - application/vnd.api+json - /v1/email_addresses/{id}/resend_verification: + /v1/meeting_recordings/{id}/resume: post: - description: Resends verification email for an email address - operationId: resendUserEmailAddressVerification + description: Resume a paused recording session. The bot continues capturing + audio/video from the meeting. + operationId: resumeMeetingRecording parameters: - - explode: false + - description: Meeting Recording UUID + explode: false in: path name: id required: true @@ -42937,59 +20643,85 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 54caab83-d9cf-43ff-b153-df6b70707df5 - type: user_email_addresses - attributes: - user_id: 956 - email: emilia@ratke.test - primary: false - verified_at: null - created_at: 2026-01-20T09:49:28.234-08:00 - updated_at: 2026-01-20T09:49:28.234-08:00 schema: - $ref: '#/components/schemas/user_email_address_response' - description: verification email sent successfully + $ref: '#/components/schemas/meeting_recording_response' + description: recording resumed "422": + description: recording is not paused + security: + - bearer_auth: [] + summary: Resume a meeting recording + tags: + - Meeting Recordings + x-accepts: + - application/vnd.api+json + /v1/meeting_recordings/{id}/stop: + post: + description: "Stop an active or paused recording. The bot finishes processing,\ + \ generates a transcript, and the session status transitions to completed.\ + \ This is irreversible — to record again, create a new session." + operationId: stopMeetingRecording + parameters: + - description: Meeting Recording UUID + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": content: application/vnd.api+json: - example: - errors: - - title: Email address is already verified - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: email address already verified - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: email address not found + $ref: '#/components/schemas/meeting_recording_response' + description: recording stopped + "422": + description: recording cannot be stopped security: - bearer_auth: [] - summary: Resends verification email + summary: Stop a meeting recording tags: - - UserEmailAddresses + - Meeting Recordings x-accepts: - application/vnd.api+json - /v1/users/{user_id}/notification_rules: - get: - description: List user notification rules - operationId: listUserNotificationRules + /v1/meeting_recordings/{id}/leave: + post: + description: "Remove the recording bot from the meeting entirely. Unlike stop,\ + \ this immediately disconnects the bot. The session will transition to analyzing\ + \ and then completed once transcript processing finishes." + operationId: leaveMeetingRecording parameters: - - explode: false + - description: Meeting Recording UUID + explode: false in: path - name: user_id + name: id required: true schema: type: string style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/meeting_recording_response' + description: bot left the call + "422": + description: bot is not in a call + security: + - bearer_auth: [] + summary: Leave a meeting call + tags: + - Meeting Recordings + x-accepts: + - application/vnd.api+json + /v1/on_call_pay_reports: + get: + description: List on-call pay reports + operationId: listOnCallPayReports + parameters: - explode: true in: query name: include @@ -43013,7 +20745,35 @@ paths: style: form - explode: true in: query - name: sort + name: "filter[status]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" required: false schema: type: string @@ -43023,88 +20783,57 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/user_notification_rule_list' + $ref: '#/components/schemas/on_call_pay_report_list' description: success security: - bearer_auth: [] - summary: List user notification rules + summary: List On-Call Pay Reports tags: - - UserNotificationRules + - OnCallPayReports x-accepts: - application/vnd.api+json post: - description: Creates a new user notification rule from provided data - operationId: createUserNotificationRule - parameters: - - explode: false - in: path - name: user_id - required: true - schema: - type: string - style: simple + description: Generates a new on-call pay report for the given date range. The + report is generated asynchronously. + operationId: createOnCallPayReport + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_user_notification_rule' + $ref: '#/components/schemas/new_on_call_pay_report' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: b8b846c3-3405-4b7b-aa07-c15f3bd9f47b - type: user_notification_rules - attributes: - user_id: 961 - delay: 2 - position: 1 - user_email_address_id: 443393fc-09fb-4f67-b753-10eeae3745ad - user_call_number_id: 42cf56e3-8188-443d-adad-64ab588123fb - user_sms_number_id: 42cf56e3-8188-443d-adad-64ab588123fb - user_device_id: c5ac63e0-0c48-42b5-b523-01a99d49f3f2 - enabled_contact_types: - - email - created_at: 2026-01-20T09:49:30.719-08:00 - updated_at: 2026-01-20T09:49:30.719-08:00 schema: - $ref: '#/components/schemas/user_notification_rule_response' - description: user_notification_rule created + $ref: '#/components/schemas/on_call_pay_report_response' + description: on_call_pay_report created "422": content: application/vnd.api+json: - example: - errors: - - title: Enabled contact types You must select at least 1 contact - type - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates an user notification rule + summary: Creates an On-Call Pay Report tags: - - UserNotificationRules + - OnCallPayReports x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/notification_rules/{id}: - delete: - description: Delete a specific user notification rule by id - operationId: deleteUserNotificationRule + /v1/on_call_pay_reports/{id}: + get: + description: Retrieves a specific on-call pay report by id + operationId: getOnCallPayReport parameters: - explode: false in: path @@ -43113,49 +20842,36 @@ paths: schema: type: string style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: ac19dd02-5004-41c3-a5fe-ef9f9677e903 - type: user_notification_rules - attributes: - user_id: 961 - delay: 1 - position: 2 - user_email_address_id: null - user_call_number_id: null - user_sms_number_id: null - user_device_id: null - enabled_contact_types: - - email - created_at: 2026-01-20T09:49:30.635-08:00 - updated_at: 2026-01-20T09:49:32.002-08:00 schema: - $ref: '#/components/schemas/user_notification_rule_response' - description: user_notification_rule deleted + $ref: '#/components/schemas/on_call_pay_report_response' + description: on_call_pay_report found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: resource not found for different team security: - bearer_auth: [] - summary: Delete an user notification rule + summary: Retrieves an On-Call Pay Report tags: - - UserNotificationRules + - OnCallPayReports x-accepts: - application/vnd.api+json - get: - description: Retrieves a specific user notification rule by id - operationId: getUserNotificationRule + put: + description: Update a specific on-call pay report by id. Triggers report regeneration. + operationId: updateOnCallPayReport parameters: - explode: false in: path @@ -43164,49 +20880,43 @@ paths: schema: type: string style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_on_call_pay_report' + required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: ac19dd02-5004-41c3-a5fe-ef9f9677e903 - type: user_notification_rules - attributes: - user_id: 961 - delay: 1 - position: 2 - user_email_address_id: null - user_call_number_id: null - user_sms_number_id: null - user_device_id: null - enabled_contact_types: - - email - created_at: 2026-01-20T09:49:30.635-08:00 - updated_at: 2026-01-20T09:49:30.643-08:00 schema: - $ref: '#/components/schemas/user_notification_rule_response' - description: user_notification_rule found + $ref: '#/components/schemas/on_call_pay_report_response' + description: on_call_pay_report updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: not allowed when flipper disabled + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request security: - bearer_auth: [] - summary: Retrieves an user notification rule + summary: Update an On-Call Pay Report tags: - - UserNotificationRules + - OnCallPayReports + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - put: - description: Update a specific user notification rule by id - operationId: updateUserNotificationRule + /v1/on_call_pay_reports/{id}/regenerate: + post: + description: Triggers regeneration of an existing on-call pay report. + operationId: regenerateOnCallPayReport parameters: - explode: false in: path @@ -43215,163 +20925,139 @@ paths: schema: type: string style: simple - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/update_user_notification_rule' - required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: ac19dd02-5004-41c3-a5fe-ef9f9677e903 - type: user_notification_rules - attributes: - user_id: 961 - delay: 2 - position: 1 - user_email_address_id: 443393fc-09fb-4f67-b753-10eeae3745ad - user_call_number_id: 42cf56e3-8188-443d-adad-64ab588123fb - user_sms_number_id: null - user_device_id: c5ac63e0-0c48-42b5-b523-01a99d49f3f2 - enabled_contact_types: - - device - created_at: 2026-01-20T09:49:30.635-08:00 - updated_at: 2026-01-20T09:49:31.402-08:00 schema: - $ref: '#/components/schemas/user_notification_rule_response' - description: user_notification_rule updated + $ref: '#/components/schemas/on_call_pay_report_response' + description: on_call_pay_report regeneration triggered "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: resource not found + description: on_call_pay_report not found security: - bearer_auth: [] - summary: Update an user notification rule + summary: Regenerate an On-Call Pay Report tags: - - UserNotificationRules - x-content-type: application/vnd.api+json + - OnCallPayReports x-accepts: - application/vnd.api+json - /v1/users/{user_id}/phone_numbers: + /v1/on_call_roles: get: - description: Retrieves all phone numbers for the specified user - operationId: getUserPhoneNumbers + description: List On-Call Roles + operationId: listOnCallRoles parameters: - - explode: false - in: path - name: user_id - required: true + - explode: true + in: query + name: include + required: false schema: type: string - style: simple + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - - id: 3128748c-4fcc-420e-ab89-05051828112f - type: user_phone_numbers - attributes: - user_id: 965 - phone: +13129599349 x5200 - primary: true - created_at: 2026-01-20T09:49:35.113-08:00 - updated_at: 2026-01-20T09:49:35.185-08:00 - - id: f5404737-6e3f-4ddd-90d4-feec12abb1ff - type: user_phone_numbers - attributes: - user_id: 965 - phone: +16104028291 x4074 - primary: false - created_at: 2026-01-20T09:49:35.134-08:00 - updated_at: 2026-01-20T09:49:35.134-08:00 - links: - self: http://www.example.com/v1/users/965/phone_numbers?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/users/965/phone_numbers?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/users/965/phone_numbers?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 2 - total_pages: 1 - schema: - $ref: '#/components/schemas/user_phone_number_list' - description: user_phone_numbers found - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" - schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: - $ref: '#/components/schemas/errors_list' - description: resource not found + $ref: '#/components/schemas/on_call_role_list' + description: success security: - bearer_auth: [] - summary: Retrieves user phone numbers + summary: List On-Call Roles tags: - - UserPhoneNumbers + - OnCallRoles x-accepts: - application/vnd.api+json post: - description: Creates a new user phone number from provided data - operationId: createUserPhoneNumber - parameters: - - explode: false - in: path - name: user_id - required: true - schema: - type: string - style: simple + description: Creates a new On-Call Role from provided data + operationId: createOnCallRole + parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_user_phone_number' + $ref: '#/components/schemas/new_on_call_role' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 3f0a95c0-4244-4552-800a-0f68ca756c91 - type: user_phone_numbers - attributes: - user_id: 965 - phone: "+14155552671" - primary: true - created_at: 2026-01-20T09:49:34.770-08:00 - updated_at: 2026-01-20T09:49:34.770-08:00 schema: - $ref: '#/components/schemas/user_phone_number_response' - description: user_phone_number created + $ref: '#/components/schemas/on_call_role_response' + description: on_call_role created "422": content: application/vnd.api+json: @@ -43381,35 +21067,21 @@ paths: "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token - "404": - content: - application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" - schema: - $ref: '#/components/schemas/errors_list' - description: resource not found security: - bearer_auth: [] - summary: Creates a user phone number + summary: Creates an On-Call Role tags: - - UserPhoneNumbers + - OnCallRoles x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/phone_numbers/{id}: + /v1/on_call_roles/{id}: delete: - description: Deletes a user phone number - operationId: deleteUserPhoneNumber + description: Delete a specific On-Call Role by id + operationId: deleteOnCallRole parameters: - explode: false in: path @@ -43422,61 +21094,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: 0b455c95-e365-4eb5-84f8-bdbc9a955a49 - type: user_phone_numbers - attributes: - user_id: 965 - phone: +12086616181 x7844 - primary: true - created_at: 2026-01-20T09:49:36.262-08:00 - updated_at: 2026-01-20T09:49:36.354-08:00 - schema: - $ref: '#/components/schemas/user_phone_number_response' - description: user_phone_number deleted - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + $ref: '#/components/schemas/on_call_role_response' + description: on_call_role deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found - "422": - content: - application/vnd.api+json: - example: - errors: - - title: Cannot delete phone number that is used by a notification - rule. Please remove the phone number from the notification rule - first. - status: "422" - schema: - $ref: '#/components/schemas/errors_list' - description: cannot delete phone number used by notification rule security: - bearer_auth: [] - summary: Delete user phone number + summary: Delete an On-Call Role tags: - - UserPhoneNumbers + - OnCallRoles x-accepts: - application/vnd.api+json get: - description: Retrieves a specific user phone number - operationId: showUserPhoneNumber + description: Retrieves a specific On-Call Role by id + operationId: getOnCallRole parameters: - explode: false in: path @@ -43489,49 +21125,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: e7d51376-d60b-4eb2-92e4-e545d14f098f - type: user_phone_numbers - attributes: - user_id: 965 - phone: +19408121034 x1208 - primary: true - created_at: 2026-01-20T09:49:35.364-08:00 - updated_at: 2026-01-20T09:49:35.431-08:00 - schema: - $ref: '#/components/schemas/user_phone_number_response' - description: user_phone_number found - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + $ref: '#/components/schemas/on_call_role_response' + description: on_call_role found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Show user phone number + summary: Retrieves an On-Call Role tags: - - UserPhoneNumbers + - OnCallRoles x-accepts: - application/vnd.api+json put: - description: Updates a user phone number - operationId: updateUserPhoneNumber + description: Update a specific On-Call Role by id + operationId: updateOnCallRole parameters: - explode: false in: path @@ -43544,810 +21156,126 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_user_phone_number' + $ref: '#/components/schemas/update_on_call_role' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: e5b8a1f4-996f-499d-ba61-058aab6d31e8 - type: user_phone_numbers - attributes: - user_id: 965 - phone: "+14155553000" - primary: true - created_at: 2026-01-20T09:49:35.813-08:00 - updated_at: 2026-01-20T09:49:35.909-08:00 - schema: - $ref: '#/components/schemas/user_phone_number_response' - description: user_phone_number updated and verification status reset - "422": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/errors_list' - description: invalid request - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + $ref: '#/components/schemas/on_call_role_response' + description: on_call_role updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Update user phone number + summary: Update an On-Call Role tags: - - UserPhoneNumbers + - OnCallRoles x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/users: + /v1/schedules/{schedule_id}/on_call_shadows: get: - description: List users - operationId: listUsers + description: List shadow shifts for schedule + operationId: listOnCallShadows parameters: - - explode: true - in: query - name: "page[number]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "page[size]" - required: false - schema: - type: integer - style: form - - explode: true - in: query - name: "filter[search]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[email]" - required: false - schema: - type: string - style: form - - explode: true - in: query - name: "filter[created_at][gt]" - required: false + - explode: false + in: path + name: schedule_id + required: true schema: type: string - style: form + style: simple - explode: true in: query - name: "filter[created_at][gte]" + name: include required: false schema: type: string style: form - explode: true in: query - name: "filter[created_at][lt]" + name: "page[number]" required: false schema: - type: string + type: integer style: form - explode: true in: query - name: "filter[created_at][lte]" - required: false - schema: - type: string - style: form - - description: "comma separated if needed. eg: created_at,updated_at" - explode: true - in: query - name: sort - required: false - schema: - enum: - - created_at - - -created_at - - updated_at - - -updated_at - type: string - style: form - - description: "comma separated if needed. eg: email_addresses,phone_numbers" - explode: true - in: query - name: include + name: "page[size]" required: false schema: - enum: - - email_addresses - - phone_numbers - - devices - - role - - on_call_role - - teams - - schedules - - notification_rules - type: string + type: integer style: form responses: "200": content: application/vnd.api+json: - example: - data: - - id: "982" - type: users - attributes: - name: Ollie Champlin - email: cuc.ondricka@mccullough-renner.test - phone: null - phone_2: null - first_name: Ollie - last_name: Champlin - full_name: Ollie Champlin - full_name_with_team: "[Daugherty-Kilback] Ollie Champlin" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:41.005-08:00 - created_at: 2026-01-20T09:49:41.005-08:00 - relationships: - email_addresses: - data: - - id: 708f1a46-88b4-448c-afe9-643ecb4822ed - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: a9536683-320f-4d50-b978-f7e1f8c33477 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 9f3a528a-26d6-4481-90e7-7b6b12ab8028 - type: user_notification_rules - - id: 380d4d64-4da7-4e71-84e7-91cfd5b95eed - type: user_notification_rules - - id: "981" - type: users - attributes: - name: Dennise Quitzon - email: ciara@medhurst-simonis.test - phone: null - phone_2: null - first_name: Dennise - last_name: Quitzon - full_name: Dennise Quitzon - full_name_with_team: "[Daugherty-Kilback] Dennise Quitzon" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:40.889-08:00 - created_at: 2026-01-20T09:49:40.889-08:00 - relationships: - email_addresses: - data: - - id: aa589e8f-241c-47d0-bc8d-db3a3ca22220 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: a693ce62-27fe-419e-8b33-ba26bce8bbaa - type: user_notification_rules - - id: 199dd145-f126-480d-9112-9aeb8431ebbd - type: user_notification_rules - - id: "980" - type: users - attributes: - name: Hermila Keeling - email: chuck@ondricka-emard.test - phone: null - phone_2: null - first_name: Hermila - last_name: Keeling - full_name: Hermila Keeling - full_name_with_team: "[Daugherty-Kilback] Hermila Keeling" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:40.736-08:00 - created_at: 2026-01-20T09:49:40.736-08:00 - relationships: - email_addresses: - data: - - id: ea1a2c5c-3fb0-4fa4-9634-65fa510a6a48 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: e16785fd-8d7e-4008-97e0-72638813bafb - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 54b55990-ca30-40af-8526-2a0c104ee6a1 - type: user_notification_rules - - id: 462c8ebb-c240-4efc-9f44-84d8399b5112 - type: user_notification_rules - - id: "978" - type: users - attributes: - name: Stasia Erdman - email: tatum_graham@lindgren.example - phone: null - phone_2: null - first_name: Stasia - last_name: Erdman - full_name: Stasia Erdman - full_name_with_team: "[Daugherty-Kilback] Stasia Erdman" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:40.239-08:00 - created_at: 2026-01-20T09:49:40.239-08:00 - relationships: - email_addresses: - data: - - id: ccc4241d-e08e-49a4-b49c-492bebf0ab58 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 4ae9823c-3d96-4a67-9fe0-bf193b8599c2 - type: user_notification_rules - - id: 25f89a08-2795-4709-adf9-034f225666dd - type: user_notification_rules - - id: "977" - type: users - attributes: - name: Zelma Denesik - email: fabian@fadel.test - phone: null - phone_2: null - first_name: Zelma - last_name: Denesik - full_name: Zelma Denesik - full_name_with_team: "[Daugherty-Kilback] Zelma Denesik" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:40.115-08:00 - created_at: 2026-01-20T09:49:40.115-08:00 - relationships: - email_addresses: - data: - - id: 4e5c5511-11c6-4afb-889c-1ed825e0f3c6 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 0c7252c3-0284-4784-a7c6-64a7b033f273 - type: user_notification_rules - - id: e1e6cd9e-0f4d-4ae4-a1dd-093b6fb990ef - type: user_notification_rules - - id: "976" - type: users - attributes: - name: Curt Leannon - email: kris@schinner.example - phone: null - phone_2: null - first_name: Curt - last_name: Leannon - full_name: Curt Leannon - full_name_with_team: "[Daugherty-Kilback] Curt Leannon" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:40.000-08:00 - created_at: 2026-01-20T09:49:40.000-08:00 - relationships: - email_addresses: - data: - - id: 47c4aad5-19b1-4603-a7bf-d94e04f2e649 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 0a2b83f9-e36d-4ce7-960d-5dec223473a9 - type: user_notification_rules - - id: e2251110-529c-4bff-ab6a-ee70a1c65696 - type: user_notification_rules - - id: "975" - type: users - attributes: - name: Dwain Hettinger - email: jene_champlin@rohan.test - phone: null - phone_2: null - first_name: Dwain - last_name: Hettinger - full_name: Dwain Hettinger - full_name_with_team: "[Daugherty-Kilback] Dwain Hettinger" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.887-08:00 - created_at: 2026-01-20T09:49:39.887-08:00 - relationships: - email_addresses: - data: - - id: 6056bac5-e48e-41b9-bf08-57c1a87cfd57 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 3fe118fc-ef9d-435e-9b2f-aaf528708887 - type: user_notification_rules - - id: 50b3dca8-9716-4284-a798-4c61a8031a8a - type: user_notification_rules - - id: "974" - type: users - attributes: - name: Harmony Hagenes - email: julian_dicki@kiehn.example - phone: null - phone_2: null - first_name: Harmony - last_name: Hagenes - full_name: Harmony Hagenes - full_name_with_team: "[Daugherty-Kilback] Harmony Hagenes" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.790-08:00 - created_at: 2026-01-20T09:49:39.790-08:00 - relationships: - email_addresses: - data: - - id: 75156b05-e83b-4d49-9f15-a18a6005599b - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 6681d719-94ea-485c-969e-ebcf44abbb8c - type: user_notification_rules - - id: 18568a29-50ea-4d60-bb42-0883ddd53827 - type: user_notification_rules - - id: "973" - type: users - attributes: - name: Tam Dare - email: hilario_hills@roberts.test - phone: null - phone_2: null - first_name: Tam - last_name: Dare - full_name: Tam Dare - full_name_with_team: "[Daugherty-Kilback] Tam Dare" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.678-08:00 - created_at: 2026-01-20T09:49:39.678-08:00 - relationships: - email_addresses: - data: - - id: 4742afda-ce6b-43f0-8203-545ac8f398ad - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: fae0821f-2f13-41e0-a3fa-6b5b193a1a36 - type: user_notification_rules - - id: e8e6ae73-a131-4a1a-a188-99503640e49e - type: user_notification_rules - - id: "972" - type: users - attributes: - name: Carlene Powlowski - email: brianna_bartoletti@dickinson-beier.example - phone: null - phone_2: null - first_name: Carlene - last_name: Powlowski - full_name: Carlene Powlowski - full_name_with_team: "[Daugherty-Kilback] Carlene Powlowski" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.575-08:00 - created_at: 2026-01-20T09:49:39.575-08:00 - relationships: - email_addresses: - data: - - id: c43d9327-fb02-40ee-b653-2fec2ba717f9 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 3ab9df77-2fef-43aa-a67e-700f60b8d55f - type: user_notification_rules - - id: c3bc5d5b-3ed2-4286-a535-e907040a073f - type: user_notification_rules - - id: "971" - type: users - attributes: - name: Christena Funk - email: lisbeth@boyle-stark.example - phone: null - phone_2: null - first_name: Christena - last_name: Funk - full_name: Christena Funk - full_name_with_team: "[Daugherty-Kilback] Christena Funk" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.469-08:00 - created_at: 2026-01-20T09:49:39.469-08:00 - relationships: - email_addresses: - data: - - id: 3d7b5a18-6cec-453b-b69b-cc04b49d12f9 - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 7d584522-e2fe-4a01-b5f1-8b0a789d963b - type: user_notification_rules - - id: 2895fea4-918a-4fdc-ad46-8e5c4f203347 - type: user_notification_rules - - id: "970" - type: users - attributes: - name: Joseph Sporer - email: anabel_kunde@dooley.example - phone: null - phone_2: null - first_name: Joseph - last_name: Sporer - full_name: Joseph Sporer - full_name_with_team: "[Daugherty-Kilback] Joseph Sporer" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.314-08:00 - created_at: 2026-01-20T09:49:39.314-08:00 - relationships: - email_addresses: - data: - - id: 60d6f574-a81b-4c66-9a93-0e04ed9764ae - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 910cc2c7-eadd-4e65-a880-2b08884f0170 - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 56e68203-2f2b-4691-91d5-34cbe1e054c5 - type: user_notification_rules - - id: a3082bac-4245-490c-b1f0-ef3b718d84bb - type: user_notification_rules - - id: "969" - type: users - attributes: - name: Oren Champlin - email: tanesha@oconnell-waelchi.example - phone: null - phone_2: null - first_name: Oren - last_name: Champlin - full_name: Oren Champlin - full_name_with_team: "[Daugherty-Kilback] Oren Champlin" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.309-08:00 - created_at: 2026-01-20T09:49:38.957-08:00 - relationships: - email_addresses: - data: - - id: 205be1b5-c6fa-40bd-a926-b4d752f9831e - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: e16785fd-8d7e-4008-97e0-72638813bafb - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: d3eaa158-5c9e-4c07-a017-747a2a5431b7 - type: user_notification_rules - - id: f32c28f4-ca0f-4531-9727-e1ffbb7af1e1 - type: user_notification_rules - links: - self: http://www.example.com/v1/users?page%5Bnumber%5D=1&page%5Bsize%5D=50 - first: http://www.example.com/v1/users?page%5Bnumber%5D=1&page%5Bsize%5D=50 - prev: null - next: null - last: http://www.example.com/v1/users?page%5Bnumber%5D=1&page%5Bsize%5D=50 - meta: - current_page: 1 - next_page: null - prev_page: null - total_count: 13 - total_pages: 1 - schema: - $ref: '#/components/schemas/user_list' - description: user found - "401": - content: - application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: - $ref: '#/components/schemas/errors_list' - description: responds with unauthorized for invalid token + $ref: '#/components/schemas/on_call_shadows_list' + description: success security: - bearer_auth: [] - summary: List users + summary: List On Call Shadows for Shift tags: - - Users + - OnCallShadows x-accepts: - application/vnd.api+json - /v1/users/me: - get: - description: Get current user - operationId: getCurrentUser + post: + description: Creates a new on call shadow configuration from provided data + operationId: createOnCallShadow + parameters: + - explode: false + in: path + name: schedule_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_on_call_shadow' + required: true responses: - "200": + "201": content: application/vnd.api+json: - example: - data: - id: "969" - type: users - attributes: - name: Oren Champlin - email: tanesha@oconnell-waelchi.example - phone: null - phone_2: null - first_name: Oren - last_name: Champlin - full_name: Oren Champlin - full_name_with_team: "[Daugherty-Kilback] Oren Champlin" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.309-08:00 - created_at: 2026-01-20T09:49:38.957-08:00 - relationships: - email_addresses: - data: - - id: 205be1b5-c6fa-40bd-a926-b4d752f9831e - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: e16785fd-8d7e-4008-97e0-72638813bafb - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: d3eaa158-5c9e-4c07-a017-747a2a5431b7 - type: user_notification_rules - - id: f32c28f4-ca0f-4531-9727-e1ffbb7af1e1 - type: user_notification_rules schema: - $ref: '#/components/schemas/user_response' - description: user found + $ref: '#/components/schemas/on_call_shadow_response' + description: shadow shift is created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Get current user + summary: creates an shadow configuration tags: - - Users + - OnCallShadows + x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/users/{id}: + /v1/on_call_shadows/{id}: delete: - description: Delete a specific user by id - operationId: deleteUser + description: Delete a specific on call shadow configuration by id. Future shadows + are hard-deleted. Active shadows (started in the past) have their end time + truncated to preserve historical data. + operationId: deleteOnCallShadow parameters: - explode: false in: path @@ -44360,69 +21288,31 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: "970" - type: users - attributes: - name: Joseph Sporer - email: anabel_kunde@dooley.example - phone: null - phone_2: null - first_name: Joseph - last_name: Sporer - full_name: Joseph Sporer - full_name_with_team: "[Daugherty-Kilback] Joseph Sporer" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.314-08:00 - created_at: 2026-01-20T09:49:39.314-08:00 - relationships: - email_addresses: - data: - - id: 60d6f574-a81b-4c66-9a93-0e04ed9764ae - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: null - on_call_role: - data: null - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 56e68203-2f2b-4691-91d5-34cbe1e054c5 - type: user_notification_rules - - id: a3082bac-4245-490c-b1f0-ef3b718d84bb - type: user_notification_rules schema: - $ref: '#/components/schemas/user_response' - description: user deleted + $ref: '#/components/schemas/on_call_shadow_response' + description: active shadow is preserved with truncated end time + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: shadow period already ended "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Delete an user + summary: Delete an on call shadow configuration tags: - - Users + - OverrideShifts x-accepts: - application/vnd.api+json get: - description: Retrieves a specific user by id - operationId: getUser + description: Retrieves a specific On Call Shadow configuration by ID + operationId: getOnCallShadow parameters: - explode: false in: path @@ -44431,201 +21321,29 @@ paths: schema: type: string style: simple - - description: "comma separated if needed. eg: email_addresses,phone_numbers" - explode: true - in: query - name: include - required: false - schema: - enum: - - email_addresses - - phone_numbers - - devices - - role - - on_call_role - - teams - - schedules - - notification_rules - type: string - style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: "969" - type: users - attributes: - name: Oren Champlin - email: tanesha@oconnell-waelchi.example - phone: null - phone_2: null - first_name: Oren - last_name: Champlin - full_name: Oren Champlin - full_name_with_team: "[Daugherty-Kilback] Oren Champlin" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:39.309-08:00 - created_at: 2026-01-20T09:49:38.957-08:00 - relationships: - email_addresses: - data: - - id: 205be1b5-c6fa-40bd-a926-b4d752f9831e - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: e16785fd-8d7e-4008-97e0-72638813bafb - type: roles - on_call_role: - data: - id: 89cbd841-5f07-44ef-ba14-e6acb0b36b81 - type: on_call_roles - teams: - data: - - id: 0ffdcd58-8d01-4049-8f0a-f9903a7e0647 - type: groups - schedules: - data: - - id: e44d967b-1ec5-4e3e-b143-da75627dae61 - type: schedules - notification_rules: - data: - - id: f32c28f4-ca0f-4531-9727-e1ffbb7af1e1 - type: user_notification_rules - - id: 209abc20-b956-4511-a0a2-d44f962a6f62 - type: user_notification_rules - - id: d3eaa158-5c9e-4c07-a017-747a2a5431b7 - type: user_notification_rules - included: - - id: 0ffdcd58-8d01-4049-8f0a-f9903a7e0647 - type: groups - attributes: - slug: molestias-sint-in-iure - name: Molestias sint in iure. - description: null - color: '#E65252' - position: 1 - notify_emails: [] - slack_channels: [] - slack_aliases: [] - pagerduty_id: null - pagerduty_service_id: null - backstage_id: null - external_id: null - opsgenie_id: null - victor_ops_id: null - pagertree_id: null - cortex_id: null - service_now_ci_sys_id: null - user_ids: - - 969 - admin_ids: [] - incidents_count: 0 - alert_urgency_id: null - alerts_email_enabled: false - alerts_email_address: group-b6951c35c4b44453d9dab8b493ab2a61@email.rootly.com - alert_broadcast_enabled: false - alert_broadcast_channel: {} - incident_broadcast_enabled: false - incident_broadcast_channel: {} - auto_add_members_when_attached: false - created_at: 2026-01-20T09:49:42.330-08:00 - updated_at: 2026-01-20T09:49:42.343-08:00 - relationships: - users: - data: - - id: "969" - type: users - - id: e44d967b-1ec5-4e3e-b143-da75627dae61 - type: schedules - attributes: - name: Schedule 45 - description: Schedule description - all_time_coverage: false - slack_user_group: {} - slack_channel: null - owner_user_id: 985 - owner_group_ids: [] - created_at: 2026-01-20T09:49:42.590-08:00 - updated_at: 2026-01-20T09:49:42.609-08:00 - relationships: - owner_user: - data: - id: "985" - type: users - escalation_policies: - data: [] - - id: f32c28f4-ca0f-4531-9727-e1ffbb7af1e1 - type: user_notification_rules - attributes: - user_id: 969 - delay: 0 - position: 1 - user_email_address_id: 205be1b5-c6fa-40bd-a926-b4d752f9831e - user_call_number_id: null - user_sms_number_id: null - user_device_id: null - enabled_contact_types: - - email - created_at: 2026-01-20T09:49:39.010-08:00 - updated_at: 2026-01-20T09:49:39.010-08:00 - - id: 209abc20-b956-4511-a0a2-d44f962a6f62 - type: user_notification_rules - attributes: - user_id: 969 - delay: 1 - position: 1 - user_email_address_id: null - user_call_number_id: null - user_sms_number_id: null - user_device_id: null - enabled_contact_types: - - email - created_at: 2026-01-20T09:49:42.642-08:00 - updated_at: 2026-01-20T09:49:42.642-08:00 - - id: d3eaa158-5c9e-4c07-a017-747a2a5431b7 - type: user_notification_rules - attributes: - user_id: 969 - delay: 0 - position: 2 - user_email_address_id: 205be1b5-c6fa-40bd-a926-b4d752f9831e - user_call_number_id: null - user_sms_number_id: null - user_device_id: null - enabled_contact_types: - - email - created_at: 2026-01-20T09:49:39.002-08:00 - updated_at: 2026-01-20T09:49:42.644-08:00 schema: - $ref: '#/components/schemas/user_response' - description: "user found with teams, schedules, and notification_rules includes" + $ref: '#/components/schemas/on_call_shadow_response' + description: override shift found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves an user + summary: Retrieves an On Call Shadow configuration by ID tags: - - Users + - OnCallShadows x-accepts: - application/vnd.api+json put: - description: Update a specific user by id - operationId: updateUser + description: Update a specific on call shadow configuration by id + operationId: updateOnCallShadow parameters: - explode: false in: path @@ -44638,128 +21356,266 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_user' + $ref: '#/components/schemas/update_on_call_shadow' + required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: "970" - type: users - attributes: - name: New Name - email: anabel_kunde@dooley.example - phone: null - phone_2: null - first_name: New - last_name: Name - full_name: New Name - full_name_with_team: "[Daugherty-Kilback] New Name" - slack_id: null - time_zone: Etc/UTC - updated_at: 2026-01-20T09:49:43.723-08:00 - created_at: 2026-01-20T09:49:39.314-08:00 - relationships: - email_addresses: - data: - - id: 60d6f574-a81b-4c66-9a93-0e04ed9764ae - type: user_email_addresses - phone_numbers: - data: [] - devices: - data: [] - role: - data: - id: 776aa86d-0eb1-4137-ac6d-427bbf762b52 - type: roles - on_call_role: - data: - id: e82bc3e0-1373-412e-a602-935729f2081d - type: on_call_roles - teams: - data: [] - schedules: - data: [] - notification_rules: - data: - - id: 56e68203-2f2b-4691-91d5-34cbe1e054c5 - type: user_notification_rules - - id: a3082bac-4245-490c-b1f0-ef3b718d84bb - type: user_notification_rules schema: - $ref: '#/components/schemas/user_response' - description: update name and role simultaneously + $ref: '#/components/schemas/on_call_shadow_response' + description: on call shadows configuration is is updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - detail: On-call role not found or does not belong to this team - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: returns 404 for on_call_role_id belonging to another team + description: resource not found security: - bearer_auth: [] - summary: Update a user + summary: Update an On Call Shadow configuration tags: - - Users + - OnCallShadows x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/webhooks/endpoints/{endpoint_id}/deliveries: + /v1/oncalls: get: - description: List webhook deliveries for given endpoint - operationId: listWebhooksDeliveries + description: "List who is currently on-call, with support for filtering by escalation\ + \ policy, schedule, and user. Returns on-call entries grouped by escalation\ + \ policy level." + operationId: listOncalls parameters: - - explode: true + - description: "comma separated if needed. eg: user,schedule" + explode: true in: query name: include required: false schema: + enum: + - user + - schedule + - escalation_policy type: string style: form - - explode: false - in: path - name: endpoint_id - required: true + - description: "Start of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z).\ + \ Defaults to current time." + explode: true + in: query + name: since + required: false schema: type: string - style: simple - - explode: true + style: form + - description: "End of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z).\ + \ Defaults to 'since' time." + explode: true in: query - name: "page[number]" + name: until required: false schema: - type: integer + type: string style: form - - explode: true + - description: "When true, returns only the first on-call entry per escalation\ + \ policy path and level" + explode: true in: query - name: "page[size]" + name: earliest required: false schema: - type: integer + type: boolean style: form - responses: - "200": - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/webhooks_delivery_list' - description: success - security: - - bearer_auth: [] - summary: List webhook deliveries - tags: - - WebhooksDeliveries - x-accepts: + - description: "Timezone for response times (e.g., America/New_York). Defaults\ + \ to UTC." + explode: true + in: query + name: time_zone + required: false + schema: + type: string + style: form + - description: Comma-separated escalation policy IDs + explode: true + in: query + name: "filter[escalation_policy_ids]" + required: false + schema: + type: string + style: form + - description: Comma-separated schedule IDs + explode: true + in: query + name: "filter[schedule_ids]" + required: false + schema: + type: string + style: form + - description: Comma-separated user IDs + explode: true + in: query + name: "filter[user_ids]" + required: false + schema: + type: string + style: form + - description: Comma-separated service IDs + explode: true + in: query + name: "filter[service_ids]" + required: false + schema: + type: string + style: form + - description: Comma-separated group IDs (teams) + explode: true + in: query + name: "filter[group_ids]" + required: false + schema: + type: string + style: form + - description: "Comma-separated notification types to include. One or both of:\ + \ audible, quiet. When omitted, returns oncalls from all non-deferral escalation\ + \ paths. When provided, limits results to matching notification types and\ + \ sorts audible-first." + explode: true + in: query + name: "filter[notification_types]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/oncall_list' + description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found when alerting is disabled + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: List on-calls + tags: + - OnCalls + x-accepts: + - application/vnd.api+json + /v1/schedules/{schedule_id}/override_shifts: + get: + description: List override shifts + operationId: listOverrideShifts + parameters: + - explode: false + in: path + name: schedule_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/override_shift_list' + description: success + security: + - bearer_auth: [] + summary: List override shifts + tags: + - OverrideShifts + x-accepts: - application/vnd.api+json - /v1/webhooks/deliveries/{id}/deliver: post: - description: Retries a webhook delivery - operationId: deliverWebhooksDelivery + description: "Creates a new override shift from provided data. If any existing\ + \ override shifts overlap with the specified time range, they will be automatically\ + \ deleted and replaced by the new override. This endpoint is idempotent: re-sending\ + \ an identical override (same user and same start/end time) returns the existing\ + \ override with a 200 status and does not recreate it." + operationId: createOverrideShift + parameters: + - explode: false + in: path + name: schedule_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_override_shift' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/override_shift_response' + description: returns assignee relationship when schedule nesting enabled + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: cannot create schedule-based override shift + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/override_shift_response' + description: returns the existing override without recreating it + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: creates an override shift + tags: + - OverrideShifts + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/override_shifts/{id}: + delete: + description: Delete a specific override shift by id + operationId: deleteOverrideShift parameters: - explode: false in: path @@ -44772,77 +21628,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: da46fe33-4efa-4e7a-8506-0e900aef7170 - type: webhooks_deliveries - attributes: - endpoint_id: 13585b3e-a8fb-45ed-b014-557d50289096 - payload: "{\"event\":{\"id\":\"64696e57-085e-4fd5-9e59-00c45457aeda\"\ - ,\"type\":\"incident.created\",\"issued_at\":\"2026-01-20T09:49:55.242-08:00\"\ - },\"data\":{\"id\":null,\"sequential_id\":null,\"title\":\"\ - Nameless Empathy\",\"slug\":\"nameless-empathy\",\"kind\":\"\ - normal\",\"private\":false,\"summary\":null,\"status\":\"started\"\ - ,\"url\":\"http://localhost:3001/account/incidents\",\"short_url\"\ - :null,\"mitigation_message\":null,\"resolution_message\":null,\"\ - cancellation_message\":null,\"public_title\":null,\"zoom_meeting_id\"\ - :null,\"zoom_meeting_start_url\":null,\"zoom_meeting_join_url\"\ - :null,\"zoom_meeting_password\":null,\"zoom_meeting_pstn_password\"\ - :null,\"zoom_meeting_h323_password\":null,\"zoom_meeting_global_dial_in_numbers\"\ - :[],\"shortcut_story_id\":null,\"shortcut_story_url\":null,\"\ - shortcut_task_id\":null,\"shortcut_task_url\":null,\"asana_task_id\"\ - :null,\"asana_task_url\":null,\"github_issue_id\":null,\"github_issue_url\"\ - :null,\"gitlab_issue_id\":null,\"gitlab_issue_url\":null,\"\ - jira_issue_id\":null,\"jira_issue_url\":null,\"google_meeting_id\"\ - :null,\"google_meeting_url\":null,\"trello_card_id\":null,\"\ - trello_card_url\":null,\"linear_issue_id\":null,\"linear_issue_url\"\ - :null,\"zendesk_ticket_id\":null,\"zendesk_ticket_url\":null,\"\ - motion_task_id\":null,\"motion_task_url\":null,\"clickup_task_id\"\ - :null,\"clickup_task_url\":null,\"slack_channel_name\":null,\"\ - slack_channel_id\":null,\"slack_channel_url\":null,\"slack_channel_short_url\"\ - :null,\"slack_channel_deep_link\":null,\"slack_channel_archived\"\ - :false,\"service_now_incident_id\":null,\"service_now_incident_key\"\ - :null,\"service_now_incident_url\":null,\"opsgenie_incident_id\"\ - :null,\"opsgenie_incident_url\":null,\"opsgenie_alert_id\":null,\"\ - opsgenie_alert_url\":null,\"victor_ops_incident_id\":null,\"\ - victor_ops_incident_url\":null,\"pagerduty_incident_id\":null,\"\ - pagerduty_incident_number\":null,\"pagerduty_incident_url\"\ - :null,\"mattermost_channel_id\":null,\"mattermost_channel_name\"\ - :null,\"mattermost_channel_url\":null,\"confluence_page_id\"\ - :null,\"confluence_page_url\":null,\"quip_page_id\":null,\"\ - quip_page_url\":null,\"airtable_base_key\":null,\"airtable_table_name\"\ - :null,\"airtable_record_id\":null,\"airtable_record_url\":null,\"\ - google_drive_id\":null,\"google_drive_parent_id\":null,\"google_drive_url\"\ - :null,\"sharepoint_page_id\":null,\"sharepoint_page_url\":null,\"\ - datadog_notebook_id\":null,\"datadog_notebook_url\":null,\"\ - freshservice_ticket_id\":null,\"freshservice_ticket_url\":null,\"\ - freshservice_task_id\":null,\"freshservice_task_url\":null,\"\ - started_at\":\"2026-01-20T09:49:55.231-08:00\",\"detected_at\"\ - :null,\"acknowledged_at\":null,\"mitigated_at\":null,\"resolved_at\"\ - :null,\"cancelled_at\":null,\"created_at\":null,\"updated_at\"\ - :null,\"labels\":{},\"severity\":null,\"user\":null,\"started_by\"\ - :null,\"mitigated_by\":null,\"resolved_by\":null,\"cancelled_by\"\ - :null,\"causes\":[],\"roles\":[],\"environments\":[],\"incident_types\"\ - :[],\"services\":[],\"functionalities\":[],\"groups\":[],\"\ - events\":[],\"action_items\":[],\"form_field_selections\":[],\"\ - feedbacks\":[]}}" - delivered_at: 2026-01-20T09:49:55.443-08:00 - created_at: 2026-01-20T09:49:55.254-08:00 - updated_at: 2026-01-20T09:49:55.443-08:00 schema: - $ref: '#/components/schemas/webhooks_delivery_response' - description: webhooks_delivery delivered + $ref: '#/components/schemas/override_shift_response' + description: override shift deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found security: - bearer_auth: [] - summary: Retries a webhook delivery + summary: Delete an override shift tags: - - WebhooksDeliveries + - OverrideShifts x-accepts: - application/vnd.api+json - /v1/webhooks/deliveries/{id}: get: - description: Retrieves a specific webhook delivery by id - operationId: getWebhooksDelivery + description: Retrieves a specific override shift by id + operationId: getOverrideShift parameters: - explode: false in: path @@ -44855,88 +21659,72 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: da46fe33-4efa-4e7a-8506-0e900aef7170 - type: webhooks_deliveries - attributes: - endpoint_id: 13585b3e-a8fb-45ed-b014-557d50289096 - payload: "{\"event\":{\"id\":\"64696e57-085e-4fd5-9e59-00c45457aeda\"\ - ,\"type\":\"incident.created\",\"issued_at\":\"2026-01-20T09:49:55.242-08:00\"\ - },\"data\":{\"id\":null,\"sequential_id\":null,\"title\":\"\ - Nameless Empathy\",\"slug\":\"nameless-empathy\",\"kind\":\"\ - normal\",\"private\":false,\"summary\":null,\"status\":\"started\"\ - ,\"url\":\"http://localhost:3001/account/incidents\",\"short_url\"\ - :null,\"mitigation_message\":null,\"resolution_message\":null,\"\ - cancellation_message\":null,\"public_title\":null,\"zoom_meeting_id\"\ - :null,\"zoom_meeting_start_url\":null,\"zoom_meeting_join_url\"\ - :null,\"zoom_meeting_password\":null,\"zoom_meeting_pstn_password\"\ - :null,\"zoom_meeting_h323_password\":null,\"zoom_meeting_global_dial_in_numbers\"\ - :[],\"shortcut_story_id\":null,\"shortcut_story_url\":null,\"\ - shortcut_task_id\":null,\"shortcut_task_url\":null,\"asana_task_id\"\ - :null,\"asana_task_url\":null,\"github_issue_id\":null,\"github_issue_url\"\ - :null,\"gitlab_issue_id\":null,\"gitlab_issue_url\":null,\"\ - jira_issue_id\":null,\"jira_issue_url\":null,\"google_meeting_id\"\ - :null,\"google_meeting_url\":null,\"trello_card_id\":null,\"\ - trello_card_url\":null,\"linear_issue_id\":null,\"linear_issue_url\"\ - :null,\"zendesk_ticket_id\":null,\"zendesk_ticket_url\":null,\"\ - motion_task_id\":null,\"motion_task_url\":null,\"clickup_task_id\"\ - :null,\"clickup_task_url\":null,\"slack_channel_name\":null,\"\ - slack_channel_id\":null,\"slack_channel_url\":null,\"slack_channel_short_url\"\ - :null,\"slack_channel_deep_link\":null,\"slack_channel_archived\"\ - :false,\"service_now_incident_id\":null,\"service_now_incident_key\"\ - :null,\"service_now_incident_url\":null,\"opsgenie_incident_id\"\ - :null,\"opsgenie_incident_url\":null,\"opsgenie_alert_id\":null,\"\ - opsgenie_alert_url\":null,\"victor_ops_incident_id\":null,\"\ - victor_ops_incident_url\":null,\"pagerduty_incident_id\":null,\"\ - pagerduty_incident_number\":null,\"pagerduty_incident_url\"\ - :null,\"mattermost_channel_id\":null,\"mattermost_channel_name\"\ - :null,\"mattermost_channel_url\":null,\"confluence_page_id\"\ - :null,\"confluence_page_url\":null,\"quip_page_id\":null,\"\ - quip_page_url\":null,\"airtable_base_key\":null,\"airtable_table_name\"\ - :null,\"airtable_record_id\":null,\"airtable_record_url\":null,\"\ - google_drive_id\":null,\"google_drive_parent_id\":null,\"google_drive_url\"\ - :null,\"sharepoint_page_id\":null,\"sharepoint_page_url\":null,\"\ - datadog_notebook_id\":null,\"datadog_notebook_url\":null,\"\ - freshservice_ticket_id\":null,\"freshservice_ticket_url\":null,\"\ - freshservice_task_id\":null,\"freshservice_task_url\":null,\"\ - started_at\":\"2026-01-20T09:49:55.231-08:00\",\"detected_at\"\ - :null,\"acknowledged_at\":null,\"mitigated_at\":null,\"resolved_at\"\ - :null,\"cancelled_at\":null,\"created_at\":null,\"updated_at\"\ - :null,\"labels\":{},\"severity\":null,\"user\":null,\"started_by\"\ - :null,\"mitigated_by\":null,\"resolved_by\":null,\"cancelled_by\"\ - :null,\"causes\":[],\"roles\":[],\"environments\":[],\"incident_types\"\ - :[],\"services\":[],\"functionalities\":[],\"groups\":[],\"\ - events\":[],\"action_items\":[],\"form_field_selections\":[],\"\ - feedbacks\":[]}}" - delivered_at: null - created_at: 2026-01-20T09:49:55.254-08:00 - updated_at: 2026-01-20T09:49:55.254-08:00 schema: - $ref: '#/components/schemas/webhooks_delivery_response' - description: webhooks_delivery found + $ref: '#/components/schemas/override_shift_response' + description: override shift found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' description: resource not found security: - bearer_auth: [] - summary: Retrieves a webhook delivery + summary: Retrieves an override shift tags: - - WebhooksDeliveries + - OverrideShifts x-accepts: - application/vnd.api+json - /v1/webhooks/endpoints: + put: + description: Update a specific override shift by id + operationId: updateOverrideShift + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_override_shift' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/override_shift_response' + description: override shift updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update an override shift + tags: + - OverrideShifts + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/playbooks/{playbook_id}/playbook_tasks: get: - description: List webhook endpoints - operationId: listWebhooksEndpoints + description: List playbook tasks + operationId: listPlaybookTasks parameters: + - explode: false + in: path + name: playbook_id + required: true + schema: + type: string + style: simple - explode: true in: query name: include @@ -44958,102 +21746,255 @@ paths: schema: type: integer style: form - - explode: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/playbook_task_list' + description: success + security: + - bearer_auth: [] + summary: List playbook tasks + tags: + - PlaybookTasks + x-accepts: + - application/vnd.api+json + post: + description: Creates a new task from provided data + operationId: createPlaybookTask + parameters: + - explode: false + in: path + name: playbook_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_playbook_task' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/playbook_task_response' + description: playbook_task created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a playbook task + tags: + - PlaybookTasks + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/playbook_tasks/{id}: + delete: + description: Delete a specific playbook task by id + operationId: deletePlaybookTask + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/playbook_task_response' + description: playbook_task deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a playbook task + tags: + - PlaybookTasks + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific playbook_task by id + operationId: getPlaybookTask + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/playbook_task_response' + description: playbook_task found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a playbook task + tags: + - PlaybookTasks + x-accepts: + - application/vnd.api+json + put: + description: Update a specific playbook task by id + operationId: updatePlaybookTask + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_playbook_task' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/playbook_task_response' + description: playbook_task updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a playbook task + tags: + - PlaybookTasks + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/playbooks: + get: + description: List playbooks + operationId: listPlaybooks + parameters: + - description: "comma separated if needed. eg: severities,environments,services" + explode: true in: query - name: "filter[slug]" + name: include required: false schema: + enum: + - severities + - environments + - services + - functionalities + - groups + - causes + - incident_types type: string style: form - explode: true in: query - name: "filter[name]" + name: "page[number]" required: false schema: - type: string + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer style: form responses: "200": content: application/vnd.api+json: schema: - $ref: '#/components/schemas/webhooks_endpoint_list' - description: excludes hidden endpoints from listing + $ref: '#/components/schemas/playbook_list' + description: success security: - bearer_auth: [] - summary: List webhook endpoints + summary: List playbooks tags: - - WebhooksEndpoints + - Playbooks x-accepts: - application/vnd.api+json post: - description: Creates a new webhook endpoint from provided data - operationId: createWebhooksEndpoint + description: Creates a new playbook from provided data + operationId: createPlaybook parameters: [] requestBody: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/new_webhooks_endpoint' + $ref: '#/components/schemas/new_playbook' required: true responses: "201": content: application/vnd.api+json: - example: - data: - id: 88fd0cf1-2e18-4908-8766-4a43c5884d1e - type: webhooks_endpoints - attributes: - team_id: 550 - slug: test-0afb306e-421b-4e97-818e-08810f99016c - name: Test - url: https://test.com/test - secret: 7Y5ibpcfaCrXMjTY - event_types: - - incident.created - enabled: true - created_at: 2026-01-20T09:49:56.699-08:00 - updated_at: 2026-01-20T09:49:56.699-08:00 schema: - $ref: '#/components/schemas/webhooks_endpoint_response' - description: webhooks_endpoint created + $ref: '#/components/schemas/playbook_response' + description: playbook created "422": content: application/vnd.api+json: - example: - errors: - - title: Name can't be blank - status: "422" - - title: URL is not a valid URL - status: "422" - - title: URL can't be blank - status: "422" schema: $ref: '#/components/schemas/errors_list' description: invalid request "401": content: application/vnd.api+json: - example: - errors: - - title: Invalid token - status: "401" schema: $ref: '#/components/schemas/errors_list' description: responds with unauthorized for invalid token security: - bearer_auth: [] - summary: Creates a webhook endpoint + summary: Creates a playbook tags: - - WebhooksEndpoints + - Playbooks x-content-type: application/vnd.api+json x-accepts: - application/vnd.api+json - /v1/webhooks/endpoints/{id}: + /v1/playbooks/{id}: delete: - description: Delete a specific webhook endpoint by id - operationId: deleteWebhooksEndpoint + description: Delete a specific playbook by id + operationId: deletePlaybook parameters: - explode: false in: path @@ -45066,43 +22007,25 @@ paths: "200": content: application/vnd.api+json: - example: - data: - id: c8c49296-e78f-4440-92c2-e52795965afc - type: webhooks_endpoints - attributes: - team_id: 550 - slug: test - name: test - url: https://test.com - secret: GHt5D9JPN7Nx8PSj - event_types: [] - enabled: true - created_at: 2026-01-20T09:49:56.587-08:00 - updated_at: 2026-01-20T09:49:57.884-08:00 schema: - $ref: '#/components/schemas/webhooks_endpoint_response' - description: webhooks_endpoint deleted + $ref: '#/components/schemas/playbook_response' + description: playbook deleted "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: hidden endpoint not accessible + description: resource not found security: - bearer_auth: [] - summary: Delete a webhook endpoint + summary: Delete a playbook tags: - - WebhooksEndpoints + - Playbooks x-accepts: - application/vnd.api+json get: - description: Retrieves a specific webhook endpoint by id - operationId: getWebhooksEndpoint + description: Retrieves a specific playbook by id + operationId: getPlaybook parameters: - explode: false in: path @@ -45111,47 +22034,45 @@ paths: schema: type: string style: simple + - description: "comma separated if needed. eg: severities,environments,services" + explode: true + in: query + name: include + required: false + schema: + enum: + - severities + - environments + - services + - functionalities + - groups + - causes + - incident_types + type: string + style: form responses: "200": content: application/vnd.api+json: - example: - data: - id: c8c49296-e78f-4440-92c2-e52795965afc - type: webhooks_endpoints - attributes: - team_id: 550 - slug: test - name: test - url: https://test.com - secret: GHt5D9JPN7Nx8PSj - event_types: [] - enabled: true - created_at: 2026-01-20T09:49:56.587-08:00 - updated_at: 2026-01-20T09:49:56.587-08:00 schema: - $ref: '#/components/schemas/webhooks_endpoint_response' - description: webhooks_endpoint found + $ref: '#/components/schemas/playbook_response' + description: playbook found "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: hidden endpoint not accessible + description: resource not found security: - bearer_auth: [] - summary: Retrieves a webhook endpoint + summary: Retrieves a playbook tags: - - WebhooksEndpoints + - Playbooks x-accepts: - application/vnd.api+json put: - description: Update a specific webhook endpoint by id - operationId: updateWebhooksEndpoint + description: Update a specific playbook by id + operationId: updatePlaybook parameters: - explode: false in: path @@ -45164,39 +22085,8062 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/update_webhooks_endpoint' + $ref: '#/components/schemas/update_playbook' required: true responses: "200": content: application/vnd.api+json: - example: - data: - id: c8c49296-e78f-4440-92c2-e52795965afc - type: webhooks_endpoints - attributes: - team_id: 550 - slug: test - name: Updated - url: https://test.com - secret: GHt5D9JPN7Nx8PSj - event_types: [] - enabled: true - created_at: 2026-01-20T09:49:56.587-08:00 - updated_at: 2026-01-20T09:49:57.604-08:00 schema: - $ref: '#/components/schemas/webhooks_endpoint_response' - description: webhooks_endpoint updated + $ref: '#/components/schemas/playbook_response' + description: playbook updated "404": content: application/vnd.api+json: - example: - errors: - - title: Not found or unauthorized - status: "404" schema: $ref: '#/components/schemas/errors_list' - description: hidden endpoint not accessible + description: resource not found + security: + - bearer_auth: [] + summary: Update a playbook + tags: + - Playbooks + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/post_mortem_templates: + get: + description: List Retrospective Templates + operationId: listPostmortemTemplates + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/post_mortem_template_list' + description: success + security: + - bearer_auth: [] + summary: List Retrospective Templates + tags: + - RetrospectiveTemplates + x-accepts: + - application/vnd.api+json + post: + description: Creates a new Retrospective Template from provided data + operationId: createPostmortemTemplate + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_post_mortem_template' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/post_mortem_template_response' + description: post_mortem_template created with TipTap blocks + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a retrospective template + tags: + - RetrospectiveTemplates + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/post_mortem_templates/{id}: + delete: + description: Delete a specific Retrospective Template by id + operationId: deletePostmortemTemplate + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/post_mortem_template_response' + description: Retrospective Template deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a Retrospective Template + tags: + - RetrospectiveTemplates + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific Retrospective Template by id + operationId: getPostmortemTemplate + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/post_mortem_template_response' + description: Retrospective Template found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a Retrospective Template + tags: + - RetrospectiveTemplates + x-accepts: + - application/vnd.api+json + put: + description: Update a specific Retrospective Template by id + operationId: updatePostmortemTemplate + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_post_mortem_template' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/post_mortem_template_response' + description: Retrospective Template updated with sanitized content + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a Retrospective Template + tags: + - RetrospectiveTemplates + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/pulses: + get: + description: List pulses + operationId: listPulses + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[refs]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[started_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[started_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[started_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[started_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[ended_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[ended_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[ended_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[ended_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[source][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[services][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[environments][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[labels][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[refs][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[refs][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[refs][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[refs][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/pulse_list' + description: success + security: + - bearer_auth: [] + summary: List pulses + tags: + - Pulses + x-accepts: + - application/vnd.api+json + post: + description: Creates a new pulse from provided data + operationId: createPulse + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_pulse' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/pulse_response' + description: pulse created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a pulse + tags: + - Pulses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/pulses/{id}: + get: + description: Retrieves a specific pulse by id + operationId: getPulse + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/pulse_response' + description: pulse found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a pulse + tags: + - Pulses + x-accepts: + - application/vnd.api+json + put: + description: Update a specific pulse by id + operationId: updatePulse + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_pulse' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/pulse_response' + description: pulse updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a pulse + tags: + - Pulses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/alerts/receipts/{id}: + get: + description: "Retrieve the delivery receipt for a notification by ID, including\ + \ its state and (when applicable) failure reason and referenced resource." + operationId: getReceipt + parameters: + - description: Receipt ID + explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/receipt' + description: receipt found + "404": + description: receipt not found + security: + - bearer_auth: [] + summary: Get a receipt + tags: + - Alerts + x-accepts: + - application/json + /v1/retrospective_configurations: + get: + description: List retrospective configurations + operationId: listRetrospectiveConfigurations + parameters: + - description: "comma separated if needed. eg: severities,groups" + explode: true + in: query + name: include + required: false + schema: + enum: + - severities + - groups + - incident_types + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[kind]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_configuration_list' + description: success + security: + - bearer_auth: [] + summary: List retrospective configurations + tags: + - RetrospectiveConfigurations + x-accepts: + - application/vnd.api+json + /v1/retrospective_configurations/{id}: + get: + description: Retrieves a specific retrospective_configuration by id + operationId: getRetrospectiveConfiguration + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: severities,groups" + explode: true + in: query + name: include + required: false + schema: + enum: + - severities + - groups + - incident_types + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_configuration_response' + description: retrospective_configuration found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a Retrospective Configuration + tags: + - RetrospectiveConfigurations + x-accepts: + - application/vnd.api+json + put: + description: Update a specific retrospective configuration by id + operationId: updateRetrospectiveConfiguration + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_retrospective_configuration' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_configuration_response' + description: retrospective configuration updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a retrospective configuration + tags: + - RetrospectiveConfigurations + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_process_groups/{retrospective_process_group_id}/steps: + get: + description: List RetrospectiveProcessGroup Steps + operationId: listRetrospectiveProcessGroupSteps + parameters: + - explode: false + in: path + name: retrospective_process_group_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[retrospective_step_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_step_list' + description: success + security: + - bearer_auth: [] + summary: List RetrospectiveProcessGroup Steps + tags: + - RetrospectiveProcessGroupSteps + x-accepts: + - application/vnd.api+json + post: + description: Creates a new retrospective process group step from provided data + operationId: createRetrospectiveProcessGroupStep + parameters: + - explode: false + in: path + name: retrospective_process_group_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_retrospective_process_group_step' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_step_response' + description: retrospective_process_group_step created + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a retrospective process group step + tags: + - RetrospectiveProcessGroupSteps + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_process_group_steps/{id}: + delete: + description: Delete a specific RetrospectiveProcessGroup Step by id + operationId: deleteRetrospectiveProcessGroupStep + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_step_response' + description: retrospective_process_group_step deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a RetrospectiveProcessGroup Step + tags: + - RetrospectiveProcessGroupSteps + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific RetrospectiveProcessGroup Step by id + operationId: getRetrospectiveProcessGroupStep + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_step_response' + description: sub_status found + security: + - bearer_auth: [] + summary: Retrieves a RetrospectiveProcessGroup Step + tags: + - RetrospectiveProcessGroupSteps + x-accepts: + - application/vnd.api+json + put: + description: Update a specific RetrospectiveProcessGroup Step by id + operationId: updateRetrospectiveProcessGroupStep + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_retrospective_process_group_step' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_step_response' + description: retrospective_process_group_step updated + security: + - bearer_auth: [] + summary: Update RetrospectiveProcessGroup Step + tags: + - RetrospectiveProcessGroupSteps + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_processes/{retrospective_process_id}/groups: + get: + description: List Retrospective Process Groups + operationId: listRetrospectiveProcessGroups + parameters: + - explode: false + in: path + name: retrospective_process_id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: retrospective_process_group_steps" + explode: true + in: query + name: include + required: false + schema: + enum: + - retrospective_process_group_steps + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[sub_status_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_list' + description: success + security: + - bearer_auth: [] + summary: List Retrospective Process Groups + tags: + - RetrospectiveProcessGroups + x-accepts: + - application/vnd.api+json + post: + description: Creates a new retrospective process group from provided data + operationId: createRetrospectiveProcessGroup + parameters: + - explode: false + in: path + name: retrospective_process_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_retrospective_process_group' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_response' + description: retrospective_process_group created + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a retrospective process group + tags: + - RetrospectiveProcessGroups + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_process_groups/{id}: + delete: + description: Delete a specific Retrospective Process Group by id + operationId: deleteRetrospectiveProcessGroup + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_response' + description: retrospective_process_group deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a Retrospective Process Group + tags: + - RetrospectiveProcessGroups + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific Retrospective Process Group by id + operationId: getRetrospectiveProcessGroup + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: retrospective_process_group_steps" + explode: true + in: query + name: include + required: false + schema: + enum: + - retrospective_process_group_steps + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_response' + description: sub_status found + security: + - bearer_auth: [] + summary: Retrieves a Retrospective Process Group + tags: + - RetrospectiveProcessGroups + x-accepts: + - application/vnd.api+json + put: + description: Update a specific Retrospective Process Group by id + operationId: updateRetrospectiveProcessGroup + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_retrospective_process_group' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_group_response' + description: retrospective_process_group updated + security: + - bearer_auth: [] + summary: Update a Retrospective Process Group + tags: + - RetrospectiveProcessGroups + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_processes: + get: + description: List retrospective processes + operationId: listRetrospectiveProcesses + parameters: + - description: "comma separated if needed. eg: retrospective_steps,severities" + explode: true + in: query + name: include + required: false + schema: + enum: + - retrospective_steps + - severities + - incident_types + - groups + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_list' + description: success + security: + - bearer_auth: [] + summary: List retrospective processes + tags: + - RetrospectiveProcesses + x-accepts: + - application/vnd.api+json + post: + description: Creates a new retrospective process from provided data + operationId: createRetrospectiveProcess + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_retrospective_process' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_response' + description: retrospective_process created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a retrospective process + tags: + - RetrospectiveProcesses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_processes/{id}: + delete: + description: Delete a specific retrospective process by id + operationId: deleteRetrospectiveProcess + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_response' + description: retrospective_process deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a retrospective process + tags: + - RetrospectiveProcesses + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific retrospective process by id + operationId: getRetrospectiveProcess + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: retrospective_steps,severities" + explode: true + in: query + name: include + required: false + schema: + enum: + - retrospective_steps + - severities + - incident_types + - groups + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_response' + description: retrospective_process found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a retrospective process + tags: + - RetrospectiveProcesses + x-accepts: + - application/vnd.api+json + put: + description: Updates a specific retrospective process by id + operationId: updateRetrospectiveProcess + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_retrospective_process' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_process_response' + description: retrospective_process updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a retrospective process + tags: + - RetrospectiveProcesses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_processes/{retrospective_process_id}/retrospective_steps: + get: + description: List retrospective steps + operationId: listRetrospectiveSteps + parameters: + - explode: false + in: path + name: retrospective_process_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_step_list' + description: success + security: + - bearer_auth: [] + summary: List retrospective steps + tags: + - RetrospectiveSteps + x-accepts: + - application/vnd.api+json + post: + description: Creates a new retrospective step from provided data + operationId: createRetrospectiveStep + parameters: + - explode: false + in: path + name: retrospective_process_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_retrospective_step' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_step_response' + description: retrospective_step created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a retrospective step + tags: + - RetrospectiveSteps + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/retrospective_steps/{id}: + delete: + description: Delete a specific retrospective step by id + operationId: deleteRetrospectiveStep + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_step_response' + description: retrospective_step deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a retrospective step + tags: + - RetrospectiveSteps + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific retrospective step by id + operationId: getRetrospectiveStep + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_step_response' + description: retrospective_step found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a retrospective step + tags: + - RetrospectiveSteps + x-accepts: + - application/vnd.api+json + put: + description: Update a specific retrospective step by id + operationId: updateRetrospectiveStep + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_retrospective_step' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/retrospective_step_response' + description: retrospective_step updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a retrospective step + tags: + - RetrospectiveSteps + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/roles: + get: + description: List roles + operationId: listRoles + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/role_list' + description: success + security: + - bearer_auth: [] + summary: List roles + tags: + - Roles + x-accepts: + - application/vnd.api+json + post: + description: Creates a new role from provided data + operationId: createRole + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_role' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/role_response' + description: role created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a role + tags: + - Roles + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/roles/{id}: + delete: + description: Delete a specific role by id + operationId: deleteRole + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/role_response' + description: role deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a role + tags: + - Roles + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific role by id + operationId: getRole + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/role_response' + description: role found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a role + tags: + - Roles + x-accepts: + - application/vnd.api+json + put: + description: Update a specific role by id + operationId: updateRole + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_role' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/role_response' + description: role updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a role + tags: + - Roles + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedule_rotations/{schedule_rotation_id}/schedule_rotation_active_days: + get: + description: List schedule rotation active days + operationId: listScheduleRotationActiveDays + parameters: + - explode: false + in: path + name: schedule_rotation_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_active_day_list' + description: success + security: + - bearer_auth: [] + summary: List schedule rotation active days + tags: + - ScheduleRotationActiveDays + x-accepts: + - application/vnd.api+json + post: + description: Creates a new schedule rotation active day from provided data + operationId: createScheduleRotationActiveDay + parameters: + - explode: false + in: path + name: schedule_rotation_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_schedule_rotation_active_day' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_active_day_response' + description: schedule_rotation_active_day created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a schedule rotation active day + tags: + - ScheduleRotationActiveDays + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedule_rotation_active_days/{id}: + delete: + description: Delete a specific schedule rotation active day + operationId: deleteScheduleRotationActiveDay + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_active_day_response' + description: schedule_rotation_active_day deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a schedule rotation active day + tags: + - ScheduleRotationActiveDays + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific schedule rotation active day by id + operationId: getScheduleRotationActiveDay + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_active_day_response' + description: schedule_rotation_active_day found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a schedule rotation active day + tags: + - ScheduleRotationActiveDays + x-accepts: + - application/vnd.api+json + put: + description: Update a specific schedule rotation active day by id + operationId: updateScheduleRotationActiveDay + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_schedule_rotation_active_day' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_active_day_response' + description: schedule_rotation_active_day updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a schedule rotation active day + tags: + - ScheduleRotationActiveDays + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedule_rotations/{schedule_rotation_id}/schedule_rotation_users: + get: + operationId: listScheduleRotationUsers + parameters: + - explode: false + in: path + name: schedule_rotation_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_user_list' + description: success + security: + - bearer_auth: [] + summary: List schedule rotation users + tags: + - ScheduleRotationUsers + x-accepts: + - application/vnd.api+json + post: + description: Creates a new schedule rotation user from provided data + operationId: createScheduleRotationUser + parameters: + - explode: false + in: path + name: schedule_rotation_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_schedule_rotation_user' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_user_response' + description: schedule_rotation_user created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a schedule rotation user + tags: + - ScheduleRotationUsers + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedule_rotation_users/{id}: + delete: + description: Delete a specific schedule rotation user by id + operationId: deleteScheduleRotationUser + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_user_response' + description: schedule_rotation_user deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a schedule rotation user + tags: + - ScheduleRotationUsers + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific schedule rotation user by id + operationId: getScheduleRotationUser + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_user_response' + description: schedule_rotation_user found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a schedule rotation user + tags: + - ScheduleRotationUsers + x-accepts: + - application/vnd.api+json + put: + description: Update a specific schedule rotation user by id + operationId: updateScheduleRotationUser + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_schedule_rotation_user' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_user_response' + description: schedule_rotation_user updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update schedule rotation user + tags: + - ScheduleRotationUsers + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedules/{schedule_id}/schedule_rotations: + get: + description: List schedule rotations + operationId: listScheduleRotations + parameters: + - explode: false + in: path + name: schedule_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_list' + description: success + security: + - bearer_auth: [] + summary: List schedule rotations + tags: + - ScheduleRotations + x-accepts: + - application/vnd.api+json + post: + description: Creates a new schedule rotation from provided data + operationId: createScheduleRotation + parameters: + - explode: false + in: path + name: schedule_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_schedule_rotation' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_response' + description: schedule_rotation created with custom active times + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a schedule rotation + tags: + - ScheduleRotations + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedule_rotations/{id}: + delete: + description: Delete a specific schedule rotation by id + operationId: deleteScheduleRotation + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_response' + description: schedule_rotation deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a schedule rotation + tags: + - ScheduleRotations + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific schedule rotation by id + operationId: getScheduleRotation + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_response' + description: schedule_rotation found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a schedule rotation + tags: + - ScheduleRotations + x-accepts: + - application/vnd.api+json + put: + description: Update a specific schedule rotation by id + operationId: updateScheduleRotation + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_schedule_rotation' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_rotation_response' + description: schedule_rotation updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a schedule rotation + tags: + - ScheduleRotations + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedules: + get: + description: List schedules + operationId: listSchedules + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - description: Filter schedules by owning team IDs. Comma-separate multiple + values. + explode: true + in: query + name: "filter[team_ids]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[team_ids][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[team_ids][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[team_ids][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[team_ids][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_list' + description: success + security: + - bearer_auth: [] + summary: List schedules + tags: + - Schedules + x-accepts: + - application/vnd.api+json + post: + description: Creates a new schedule from provided data + operationId: createSchedule + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_schedule' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_response' + description: schedule created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a schedule + tags: + - Schedules + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedules/{id}: + delete: + description: Delete a specific schedule by id + operationId: deleteSchedule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_response' + description: schedule deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a schedule + tags: + - Schedules + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific schedule by id + operationId: getSchedule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_response' + description: schedule found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a schedule + tags: + - Schedules + x-accepts: + - application/vnd.api+json + put: + description: Updates a specific schedule by id + operationId: updateSchedule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_schedule' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/schedule_response' + description: schedule updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a schedule + tags: + - Schedules + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedules/{id}/shifts: + get: + description: Retrieves schedule shifts + operationId: getScheduleShifts + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: to + required: false + schema: + type: string + style: form + - explode: true + in: query + name: from + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/shift_list' + description: schedule shifts found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a schedule shifts + tags: + - Shifts + x-accepts: + - application/vnd.api+json + /v1/secrets: + get: + description: List secrets + operationId: listSecrets + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/secret_list' + description: success + security: + - bearer_auth: [] + summary: List secrets + tags: + - Secrets + x-accepts: + - application/vnd.api+json + post: + description: Creates a new secret from provided data + operationId: createSecret + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_secret' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/secret_response' + description: secret created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a secret + tags: + - Secrets + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/secrets/{id}: + delete: + description: Delete a specific secret by id + operationId: deleteSecret + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/secret_response' + description: secret deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a secret + tags: + - Secrets + x-accepts: + - application/vnd.api+json + get: + description: Retrieve a specific secret by id + operationId: getSecret + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/secret_response' + description: secret found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a secret + tags: + - Secrets + x-accepts: + - application/vnd.api+json + put: + description: Update a specific secret by id + operationId: updateSecret + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_secret' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/secret_response' + description: secret updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a secret + tags: + - Secrets + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/services: + get: + description: List services + operationId: listServices + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[backstage_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[cortex_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[opslevel_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[external_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled]" + required: false + schema: + type: boolean + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled]" + required: false + schema: + type: boolean + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/service_list' + description: success + security: + - bearer_auth: [] + summary: List services + tags: + - Services + x-accepts: + - application/vnd.api+json + post: + description: Creates a new service from provided data + operationId: createService + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_service' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/service_response' + description: service created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a service + tags: + - Services + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/services/{id}: + delete: + description: Delete a specific service by id + operationId: deleteService + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/service_response' + description: service deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a service + tags: + - Services + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific service by id + operationId: getService + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/service_response' + description: service found by slug + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a service + tags: + - Services + x-accepts: + - application/vnd.api+json + put: + description: Update a specific service by id + operationId: updateService + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_service' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/service_response' + description: service updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a service + tags: + - Services + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/services/{id}/incidents_chart: + get: + description: Get service incidents chart + operationId: getServiceIncidentsChart + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + - explode: true + in: query + name: period + required: true + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incidents_chart_response' + description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Get service incidents chart + tags: + - Services + x-accepts: + - application/vnd.api+json + /v1/services/{id}/uptime_chart: + get: + description: Get service uptime chart + operationId: getServiceUptimeChart + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + - explode: true + in: query + name: period + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/uptime_chart_response' + description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Get service uptime chart + tags: + - Services + x-accepts: + - application/vnd.api+json + /v1/services/properties: + get: + description: List Service Catalog Properties + operationId: listServiceCatalogProperties + parameters: + - description: "comma separated if needed. eg: catalog" + explode: true + in: query + name: include + required: false + schema: + enum: + - catalog + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/catalog_property_list' + description: success + security: + - bearer_auth: [] + summary: List Catalog Properties + tags: + - Services + x-accepts: + - application/vnd.api+json + post: + description: Creates a new Catalog Property from provided data + operationId: createServiceCatalogProperty + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_catalog_property' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/catalog_property_response' + description: catalog_property created ignores wrong catalog_type attribute + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: exceeds max fields per catalog + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a Catalog Property + tags: + - Services + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/services/bulk_upsert: + post: + description: "Create or update multiple services by external_id. Only attributes\ + \ present in the payload are written (managed-fields semantics). Transactional:\ + \ all succeed or all fail. Requires an API key with both create and update\ + \ capability across the resource scope (team/org-scoped); record-scoped principals\ + \ cannot use this endpoint (they receive 404), which also prevents the create-vs-update\ + \ branch from leaking whether an external_id exists." + operationId: bulkUpsertServices + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_upsert_services' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_upsert_services_response' + description: records upserted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkUpsertServices_422_response' + description: validation or record-level error + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: unauthorized + security: + - bearer_auth: [] + summary: Bulk upsert Services + tags: + - Services + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/services/bulk_delete: + post: + description: "Delete services by external_id list, or prune by managed_by source.\ + \ Two mutually exclusive modes." + operationId: bulkDeleteServices + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_destroy_services' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_destroy_services_response' + description: records deleted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkDeleteServices_422_response' + description: validation or partial-failure error + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: unauthorized + security: + - bearer_auth: [] + summary: Bulk delete Services + tags: + - Services + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/severities: + get: + description: List severities + operationId: listSeverities + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[severity]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[severity][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[severity][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[severity][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[severity][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/severity_list' + description: success + security: + - bearer_auth: [] + summary: List severities + tags: + - Severities + x-accepts: + - application/vnd.api+json + post: + description: Creates a new severity from provided data + operationId: createSeverity + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_severity' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/severity_response' + description: severity created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a severity + tags: + - Severities + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/severities/{id}: + delete: + description: Delete a specific severity by id + operationId: deleteSeverity + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/severity_response' + description: severity deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a severity + tags: + - Severities + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific severity by id + operationId: getSeverity + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/severity_response' + description: severity found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a severity + tags: + - Severities + x-accepts: + - application/vnd.api+json + put: + description: Update a specific severity by id + operationId: updateSeverity + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_severity' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/severity_response' + description: severity updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a severity + tags: + - Severities + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/schedules/{schedule_id}/shift_coverage_requests: + get: + description: List active shift coverage requests for a schedule. + operationId: listShiftCoverageRequests + parameters: + - explode: false + in: path + name: schedule_id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/shift_coverage_request_list' + description: shift_coverage_requests listed + security: + - bearer_auth: [] + summary: list shift coverage requests + tags: + - ShiftCoverageRequests + x-accepts: + - application/vnd.api+json + post: + description: "Creates coverage requests for the shifts overlapping the requested\ + \ time range. A range can span multiple consecutive shifts (e.g. across a\ + \ handoff), so one or more coverage requests may be created; the response\ + \ is always a list. A coverage request broadcasts to schedule members so someone\ + \ can volunteer to cover the shift." + operationId: createShiftCoverageRequest + parameters: + - explode: false + in: path + name: schedule_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_shift_coverage_request' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/shift_coverage_request_list' + description: "without override permission, can request coverage for own\ + \ shift" + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: "without override permission, cannot request coverage for another\ + \ user's shift" + security: + - bearer_auth: [] + summary: creates shift coverage requests + tags: + - ShiftCoverageRequests + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/shift_coverage_requests/{id}: + delete: + description: Deletes a shift coverage request. + operationId: deleteShiftCoverageRequest + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/shift_coverage_request_response' + description: shift_coverage_request deleted + security: + - bearer_auth: [] + summary: deletes a shift coverage request + tags: + - ShiftCoverageRequests + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific shift coverage request. + operationId: getShiftCoverageRequest + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/shift_coverage_request_response' + description: shift_coverage_request found + security: + - bearer_auth: [] + summary: retrieves a shift coverage request + tags: + - ShiftCoverageRequests + x-accepts: + - application/vnd.api+json + /v1/shifts: + get: + description: List shifts + operationId: listShifts + parameters: + - description: "comma separated if needed. eg: shift_override,user. Note: `user`\ + \ is deprecated, use `assignee` instead." + explode: true + in: query + name: include + required: false + schema: + enum: + - shift_override + - user + - assignee + - shift_shadow + type: string + style: form + - description: "Start range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z\ + \ or 2025-01-01T00:00:00+00:00)" + explode: true + in: query + name: from + required: false + schema: + type: string + style: form + - description: "End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z\ + \ or 2025-01-01T00:00:00+00:00)" + explode: true + in: query + name: to + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "user_ids[]" + required: false + schema: + items: + type: integer + type: array + style: form + - explode: true + in: query + name: "schedule_ids[]" + required: false + schema: + items: + type: string + type: array + style: form + - description: Page number (defaults to 1) + explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - description: "Number of shifts per page (defaults to 50, max 1000)" + explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/shift_list' + description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: List shifts + tags: + - Shifts + x-accepts: + - application/vnd.api+json + /v1/slas: + get: + description: List SLAs + operationId: listSLAs + parameters: + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sla_list' + description: success + security: + - bearer_auth: [] + summary: List SLAs + tags: + - SLAs + x-accepts: + - application/vnd.api+json + post: + description: Creates a new SLA from provided data + operationId: createSLA + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_sla' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sla_response' + description: SLA created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates an SLA + tags: + - SLAs + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/slas/{id}: + delete: + description: Delete a specific SLA by id + operationId: deleteSLA + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sla_response' + description: SLA deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found for another team + security: + - bearer_auth: [] + summary: Delete an SLA + tags: + - SLAs + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific SLA by id + operationId: getSLA + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sla_response' + description: SLA found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found for another team + security: + - bearer_auth: [] + summary: Retrieves an SLA + tags: + - SLAs + x-accepts: + - application/vnd.api+json + put: + description: Update a specific SLA by id + operationId: updateSLA + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_sla' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sla_response' + description: SLA updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found for another team + security: + - bearer_auth: [] + summary: Update an SLA + tags: + - SLAs + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/status-pages/{status_page_id}/announcements: + get: + description: List status page announcements + operationId: listStatusPageAnnouncements + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_announcement_list' + description: success + security: + - bearer_auth: [] + summary: List status page announcements + tags: + - StatusPageAnnouncements + x-accepts: + - application/vnd.api+json + post: + description: Posts an announcement to a status page and notifies its subscribers + unless notify_subscribers is false + operationId: createStatusPageAnnouncement + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_status_page_announcement' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_announcement_response' + description: status_page_announcement created without notifying subscribers + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a status page announcement + tags: + - StatusPageAnnouncements + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/announcements/{id}: + delete: + description: Delete a specific status page announcement by id + operationId: deleteStatusPageAnnouncement + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_announcement_response' + description: status_page_announcement deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a status page announcement + tags: + - StatusPageAnnouncements + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific status page announcement by id + operationId: getStatusPageAnnouncement + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_announcement_response' + description: status page announcement found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a status page announcement + tags: + - StatusPageAnnouncements + x-accepts: + - application/vnd.api+json + put: + description: Update a specific status page announcement by id + operationId: updateStatusPageAnnouncement + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_status_page_announcement' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_announcement_response' + description: status_page_announcement updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a status page announcement + tags: + - StatusPageAnnouncements + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/status-pages/{status_page_id}/component-groups: + get: + description: List status page component groups + operationId: listStatusPageComponentGroups + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_group_list' + description: success + security: + - bearer_auth: [] + summary: List status page component groups + tags: + - StatusPageComponentGroups + x-accepts: + - application/vnd.api+json + post: + description: Creates a new status page component group from provided data + operationId: createStatusPageComponentGroup + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_status_page_component_group' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_group_response' + description: component group created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a status page component group + tags: + - StatusPageComponentGroups + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/component-groups/{id}: + delete: + description: Delete a status page component group together with its components + operationId: deleteStatusPageComponentGroup + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + description: group deleted along with its member components + security: + - bearer_auth: [] + summary: Delete a status page component group + tags: + - StatusPageComponentGroups + x-accepts: + - application/json + get: + description: Retrieves a status page component group + operationId: getStatusPageComponentGroup + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_group_response' + description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with not found for another team's token + security: + - bearer_auth: [] + summary: Retrieves a status page component group + tags: + - StatusPageComponentGroups + x-accepts: + - application/vnd.api+json + put: + description: Update a status page component group + operationId: updateStatusPageComponentGroup + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_status_page_component_group' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_group_response' + description: component group reordered + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + security: + - bearer_auth: [] + summary: Update a status page component group + tags: + - StatusPageComponentGroups + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/status-pages/{status_page_id}/components: + get: + description: List status page components + operationId: listStatusPageComponents + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_list' + description: success + security: + - bearer_auth: [] + summary: List status page components + tags: + - StatusPageComponents + x-accepts: + - application/vnd.api+json + post: + description: Creates a new status page component from provided data + operationId: createStatusPageComponent + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_status_page_component' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_response' + description: catalog-backed component created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a status page component + tags: + - StatusPageComponents + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/components/{id}: + delete: + description: Delete a status page component + operationId: deleteStatusPageComponent + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + description: "catalog-backed component detached, source and catalog left\ + \ intact" + security: + - bearer_auth: [] + summary: Delete a status page component + tags: + - StatusPageComponents + x-accepts: + - application/json + get: + description: Retrieves a status page component + operationId: getStatusPageComponent + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_response' + description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with not found for another team's token + security: + - bearer_auth: [] + summary: Retrieves a status page component + tags: + - StatusPageComponents + x-accepts: + - application/vnd.api+json + put: + description: Update a status page component + operationId: updateStatusPageComponent + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_status_page_component' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_component_response' + description: catalog-backed component ignores name and description overrides + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid position rejected + security: + - bearer_auth: [] + summary: Update a status page component + tags: + - StatusPageComponents + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/status-pages/{status_page_id}/templates: + get: + description: List status page templates + operationId: listStatusPageTemplates + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_template_list' + description: success + security: + - bearer_auth: [] + summary: List status page templates + tags: + - StatusPageTemplates + x-accepts: + - application/vnd.api+json + post: + description: Creates a new template from provided data + operationId: createStatusPageTemplate + parameters: + - explode: false + in: path + name: status_page_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_template' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_template_response' + description: incident_event created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a status page template + tags: + - StatusPageTemplates + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/templates/{id}: + delete: + description: Delete a specific template event by id + operationId: deleteStatusPageTemplate + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_template_response' + description: incident_event deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a incident event + tags: + - StatusPageTemplates + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific status_page_template by id + operationId: getStatusPageTemplate + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_template_response' + description: status page template found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a status page template + tags: + - StatusPageTemplates + x-accepts: + - application/vnd.api+json + put: + description: Update a specific template event by id + operationId: updateStatusPageTemplate + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_template' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_template_response' + description: incident_event updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update status page template + tags: + - StatusPageTemplates + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/status-pages: + get: + description: List status pages + operationId: listStatusPages + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_list' + description: success + security: + - bearer_auth: [] + summary: List status pages + tags: + - StatusPages + x-accepts: + - application/vnd.api+json + post: + description: Creates a new status page from provided data + operationId: createStatusPage + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_status_page' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_response' + description: status page with SAML created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid SAML configuration + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a status page + tags: + - StatusPages + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/status-pages/{id}: + delete: + description: Delete a specific status page by id + operationId: deleteStatusPage + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_response' + description: status_page deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a status page + tags: + - StatusPages + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific status page by id + operationId: getStatusPage + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_response' + description: status_page found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a status page + tags: + - StatusPages + x-accepts: + - application/vnd.api+json + put: + description: Update a specific status page by id + operationId: updateStatusPage + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_status_page' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_page_response' + description: external_domain_names persisted + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid section_order + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a status page + tags: + - StatusPages + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/statuses: + get: + description: List Statuses + operationId: listStatuses + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[enabled]" + required: false + schema: + type: boolean + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_list' + description: success + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: List Statuses + tags: + - Statuses + x-accepts: + - application/vnd.api+json + /v1/statuses/{id}: + get: + description: Retrieves a specific Status by id + operationId: getStatus + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/status_response' + description: status found by slug + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a Status + tags: + - Statuses + x-accepts: + - application/vnd.api+json + /v1/sub_statuses: + get: + description: List Sub-Statuses + operationId: listSubStatuses + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[parent_status]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sub_status_list' + description: success + security: + - bearer_auth: [] + summary: List Sub-Statuses + tags: + - SubStatuses + x-accepts: + - application/vnd.api+json + post: + description: Creates a new Sub-Status from provided data + operationId: createSubStatus + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_sub_status' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sub_status_response' + description: sub_status created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a Sub-Status + tags: + - SubStatuses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/sub_statuses/{id}: + delete: + description: Delete a specific Sub-Status by id + operationId: deleteSubStatus + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sub_status_response' + description: sub_status deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a Sub-Status + tags: + - SubStatuses + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific Sub-Status by id + operationId: getSubStatus + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sub_status_response' + description: sub_status found by slug + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a Sub-Status + tags: + - SubStatuses + x-accepts: + - application/vnd.api+json + put: + description: Update a specific Sub-Status by id + operationId: updateSubStatus + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getAlertField_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_sub_status' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/sub_status_response' + description: sub_status updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a Sub-Status + tags: + - SubStatuses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/teams: + get: + description: List teams + operationId: listTeams + parameters: + - description: "comma separated if needed. eg: users" + explode: true + in: query + name: include + required: false + schema: + enum: + - users + - schedules + - escalation_policies + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[backstage_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[cortex_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[opslevel_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[external_id]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled]" + required: false + schema: + type: boolean + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled]" + required: false + schema: + type: boolean + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[slug][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[color][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[alert_broadcast_enabled][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][not_eq]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[incident_broadcast_enabled][not_in]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/team_list' + description: success + security: + - bearer_auth: [] + summary: List teams + tags: + - Teams + x-accepts: + - application/vnd.api+json + post: + description: Creates a new team from provided data + operationId: createTeam + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_team' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/team_response' + description: team created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid association + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a team + tags: + - Teams + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/teams/{id}: + delete: + description: Delete a specific team by id + operationId: deleteTeam + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getTeam_id_parameter' + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/team_response' + description: team deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete a team + tags: + - Teams + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific team by id + operationId: getTeam + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getTeam_id_parameter' + style: simple + - description: "comma separated if needed. eg: users" + explode: true + in: query + name: include + required: false + schema: + enum: + - users + - schedules + - escalation_policies + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/team_response' + description: team found by slug + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a team + tags: + - Teams + x-accepts: + - application/vnd.api+json + put: + description: Update a specific team by id + operationId: updateTeam + parameters: + - explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/getTeam_id_parameter' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_team' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/team_response' + description: team updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update a team + tags: + - Teams + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/teams/{id}/incidents_chart: + get: + description: Get team incidents chart + operationId: getTeamIncidentsChart + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: period + required: true + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/incidents_chart_response' + description: success + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Get team incidents chart + tags: + - Teams + x-accepts: + - application/vnd.api+json + /v1/teams/properties: + get: + description: List Group Catalog Properties + operationId: listGroupCatalogProperties + parameters: + - description: "comma separated if needed. eg: catalog" + explode: true + in: query + name: include + required: false + schema: + enum: + - catalog + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + - position + - -position + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[kind]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/catalog_property_list' + description: success + security: + - bearer_auth: [] + summary: List Catalog Properties + tags: + - Teams + x-accepts: + - application/vnd.api+json + post: + description: Creates a new Catalog Property from provided data + operationId: createGroupCatalogProperty + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_catalog_property' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/catalog_property_response' + description: catalog_property created ignores wrong catalog_type attribute + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: exceeds max fields per catalog + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a Catalog Property + tags: + - Teams + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/teams/bulk_upsert: + post: + description: "Create or update multiple teams by external_id. Only attributes\ + \ present in the payload are written (managed-fields semantics). Transactional:\ + \ all succeed or all fail. Requires an API key with both create and update\ + \ capability across the resource scope (team/org-scoped); record-scoped principals\ + \ cannot use this endpoint (they receive 404), which also prevents the create-vs-update\ + \ branch from leaking whether an external_id exists." + operationId: bulkUpsertGroups + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_upsert_teams' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_upsert_teams_response' + description: records upserted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkUpsertGroups_422_response' + description: validation or record-level error + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: unauthorized + security: + - bearer_auth: [] + summary: Bulk upsert Teams + tags: + - Teams + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/teams/bulk_delete: + post: + description: "Delete teams by external_id list, or prune by managed_by source.\ + \ Two mutually exclusive modes." + operationId: bulkDeleteGroups + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_destroy_teams' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulk_destroy_teams_response' + description: records deleted successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/bulkDeleteGroups_422_response' + description: validation or partial-failure error + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: unauthorized + security: + - bearer_auth: [] + summary: Bulk delete Teams + tags: + - Teams + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/users/{user_id}/email_addresses: + get: + description: Retrieves all email addresses for the specified user + operationId: getUserEmailAddresses + parameters: + - explode: false + in: path + name: user_id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_email_address_list' + description: user_email_addresses found + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with not found when accessing other user's resources + security: + - bearer_auth: [] + summary: Retrieves user email addresses + tags: + - UserEmailAddresses + x-accepts: + - application/vnd.api+json + post: + description: Creates a new user email address from provided data + operationId: createUserEmailAddress + parameters: + - explode: false + in: path + name: user_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_user_email_address' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_email_address_response' + description: user_email_address created + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with not found when accessing other user's resources + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + security: + - bearer_auth: [] + summary: Creates a user email address + tags: + - UserEmailAddresses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/email_addresses/{id}: + delete: + description: Deletes a user email address + operationId: deleteUserEmailAddress + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_email_address_response' + description: user_email_address deleted + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with not found when accessing other user's resources + security: + - bearer_auth: [] + summary: Delete user email address + tags: + - UserEmailAddresses + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific user email address + operationId: showUserEmailAddress + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_email_address_response' + description: user_email_address found + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with not found when accessing other user's resources + security: + - bearer_auth: [] + summary: Show user email address + tags: + - UserEmailAddresses + x-accepts: + - application/vnd.api+json + put: + description: Updates a user email address + operationId: updateUserEmailAddress + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_user_email_address' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_email_address_response' + description: user_email_address updated + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with not found when accessing other user's resources + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + security: + - bearer_auth: [] + summary: Update user email address + tags: + - UserEmailAddresses + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/email_addresses/{id}/verify: + post: + description: Verifies an email address using a verification token + operationId: verifyUserEmailAddress + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: token + required: true + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_email_address_response' + description: email address verified successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid or expired token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: email address not found + security: + - bearer_auth: [] + summary: Verifies an email address with token + tags: + - UserEmailAddresses + x-accepts: + - application/vnd.api+json + /v1/email_addresses/{id}/resend_verification: + post: + description: Resends verification email for an email address + operationId: resendUserEmailAddressVerification + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_email_address_response' + description: verification email sent successfully + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: email address already verified + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: email address not found + security: + - bearer_auth: [] + summary: Resends verification email + tags: + - UserEmailAddresses + x-accepts: + - application/vnd.api+json + /v1/users/{user_id}/notification_rules: + get: + description: List user notification rules + operationId: listUserNotificationRules + parameters: + - explode: false + in: path + name: user_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: sort + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_notification_rule_list' + description: success + security: + - bearer_auth: [] + summary: List user notification rules + tags: + - UserNotificationRules + x-accepts: + - application/vnd.api+json + post: + description: Creates a new user notification rule from provided data + operationId: createUserNotificationRule + parameters: + - explode: false + in: path + name: user_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_user_notification_rule' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_notification_rule_response' + description: user_notification_rule created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates an user notification rule + tags: + - UserNotificationRules + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/notification_rules/{id}: + delete: + description: Delete a specific user notification rule by id + operationId: deleteUserNotificationRule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_notification_rule_response' + description: user_notification_rule deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete an user notification rule + tags: + - UserNotificationRules + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific user notification rule by id + operationId: getUserNotificationRule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_notification_rule_response' + description: user_notification_rule found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves an user notification rule + tags: + - UserNotificationRules + x-accepts: + - application/vnd.api+json + put: + description: Update a specific user notification rule by id + operationId: updateUserNotificationRule + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_user_notification_rule' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_notification_rule_response' + description: user_notification_rule updated + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update an user notification rule + tags: + - UserNotificationRules + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/users/{user_id}/phone_numbers: + get: + description: Retrieves all phone numbers for the specified user + operationId: getUserPhoneNumbers + parameters: + - explode: false + in: path + name: user_id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_phone_number_list' + description: user_phone_numbers found + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves user phone numbers + tags: + - UserPhoneNumbers + x-accepts: + - application/vnd.api+json + post: + description: Creates a new user phone number from provided data + operationId: createUserPhoneNumber + parameters: + - explode: false + in: path + name: user_id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_user_phone_number' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_phone_number_response' + description: user_phone_number created + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Creates a user phone number + tags: + - UserPhoneNumbers + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/phone_numbers/{id}: + delete: + description: Deletes a user phone number + operationId: deleteUserPhoneNumber + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_phone_number_response' + description: user_phone_number deleted + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: cannot delete phone number used by notification rule + security: + - bearer_auth: [] + summary: Delete user phone number + tags: + - UserPhoneNumbers + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific user phone number + operationId: showUserPhoneNumber + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_phone_number_response' + description: user_phone_number found + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Show user phone number + tags: + - UserPhoneNumbers + x-accepts: + - application/vnd.api+json + put: + description: Updates a user phone number + operationId: updateUserPhoneNumber + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_user_phone_number' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_phone_number_response' + description: user_phone_number updated and verification status reset + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Update user phone number + tags: + - UserPhoneNumbers + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/users: + get: + description: List users + operationId: listUsers + parameters: + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[search]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[email]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + type: string + style: form + - description: "comma separated if needed. eg: created_at,updated_at" + explode: true + in: query + name: sort + required: false + schema: + enum: + - created_at + - -created_at + - updated_at + - -updated_at + type: string + style: form + - description: "comma separated if needed. eg: email_addresses,phone_numbers" + explode: true + in: query + name: include + required: false + schema: + enum: + - email_addresses + - phone_numbers + - devices + - role + - on_call_role + - teams + - schedules + - notification_rules + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_list' + description: user found + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: List users + tags: + - Users + x-accepts: + - application/vnd.api+json + /v1/users/me: + get: + description: Get current user + operationId: getCurrentUser + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_response' + description: user found + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Get current user + tags: + - Users + x-accepts: + - application/vnd.api+json + /v1/users/{id}: + delete: + description: Delete a specific user by id + operationId: deleteUser + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_response' + description: user deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Delete an user + tags: + - Users + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific user by id + operationId: getUser + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + - description: "comma separated if needed. eg: email_addresses,phone_numbers" + explode: true + in: query + name: include + required: false + schema: + enum: + - email_addresses + - phone_numbers + - devices + - role + - on_call_role + - teams + - schedules + - notification_rules + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_response' + description: teams include only returns teams from the current team + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves an user + tags: + - Users + x-accepts: + - application/vnd.api+json + put: + description: Update a specific user by id + operationId: updateUser + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_user' + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/user_response' + description: custom role with roles_permissions can update user role (IR-5606) + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: returns 404 for on_call_role_id belonging to another team + security: + - bearer_auth: [] + summary: Update a user + tags: + - Users + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/verified_domains: + get: + parameters: + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/verified_domain_list' + description: verified domains found + security: + - bearer_auth: [] + summary: List verified domains + tags: + - Verified Domains + x-accepts: + - application/vnd.api+json + post: + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_verified_domain' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/verified_domain_response' + description: verified domain created + security: + - bearer_auth: [] + summary: Create a verified domain + tags: + - Verified Domains + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/verified_domains/{id}: + delete: + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/verified_domain_response' + description: verified domain deleted + security: + - bearer_auth: [] + summary: Delete a verified domain + tags: + - Verified Domains + x-accepts: + - application/vnd.api+json + get: + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/verified_domain_response' + description: verified domain found + security: + - bearer_auth: [] + summary: Show a verified domain + tags: + - Verified Domains + x-accepts: + - application/vnd.api+json + /v1/webhooks/endpoints/{endpoint_id}/deliveries: + get: + description: List webhook deliveries for given endpoint + operationId: listWebhooksDeliveries + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: false + in: path + name: endpoint_id + required: true + schema: + type: string + style: simple + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - description: "Delivery status: pending, success, failed. Comma-separated.\ + \ Unknown values are ignored; if no valid values remain, the result set\ + \ is empty." + explode: true + in: query + name: "filter[status]" + required: false + schema: + type: string + style: form + - description: Created after this timestamp (exclusive). Use ISO 8601 with Z + or a numeric UTC offset. + explode: true + in: query + name: "filter[created_at][gt]" + required: false + schema: + format: date-time + type: string + style: form + - description: Created at or after this timestamp (inclusive). Use ISO 8601 + with Z or a numeric UTC offset. + explode: true + in: query + name: "filter[created_at][gte]" + required: false + schema: + format: date-time + type: string + style: form + - description: Created before this timestamp (exclusive). Use ISO 8601 with + Z or a numeric UTC offset. + explode: true + in: query + name: "filter[created_at][lt]" + required: false + schema: + format: date-time + type: string + style: form + - description: Created at or before this timestamp (inclusive). Use ISO 8601 + with Z or a numeric UTC offset. + explode: true + in: query + name: "filter[created_at][lte]" + required: false + schema: + format: date-time + type: string + style: form + - description: Delivered after this timestamp (exclusive). Use ISO 8601 with + Z or a numeric UTC offset. + explode: true + in: query + name: "filter[delivered_at][gt]" + required: false + schema: + format: date-time + type: string + style: form + - description: Delivered at or after this timestamp (inclusive). Use ISO 8601 + with Z or a numeric UTC offset. + explode: true + in: query + name: "filter[delivered_at][gte]" + required: false + schema: + format: date-time + type: string + style: form + - description: Delivered before this timestamp (exclusive). Use ISO 8601 with + Z or a numeric UTC offset. + explode: true + in: query + name: "filter[delivered_at][lt]" + required: false + schema: + format: date-time + type: string + style: form + - description: Delivered at or before this timestamp (inclusive). Use ISO 8601 + with Z or a numeric UTC offset. + explode: true + in: query + name: "filter[delivered_at][lte]" + required: false + schema: + format: date-time + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_delivery_list' + description: success + "400": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid date filter + security: + - bearer_auth: [] + summary: List webhook deliveries + tags: + - WebhooksDeliveries + x-accepts: + - application/vnd.api+json + /v1/webhooks/deliveries/{id}/deliver: + post: + description: Retries a webhook delivery + operationId: deliverWebhooksDelivery + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_delivery_response' + description: webhooks_delivery delivered + security: + - bearer_auth: [] + summary: Retries a webhook delivery + tags: + - WebhooksDeliveries + x-accepts: + - application/vnd.api+json + /v1/webhooks/deliveries/{id}: + get: + description: Retrieves a specific webhook delivery by id + operationId: getWebhooksDelivery + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_delivery_response' + description: webhooks_delivery found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: resource not found + security: + - bearer_auth: [] + summary: Retrieves a webhook delivery + tags: + - WebhooksDeliveries + x-accepts: + - application/vnd.api+json + /v1/webhooks/endpoints: + get: + description: List webhook endpoints + operationId: listWebhooksEndpoints + parameters: + - explode: true + in: query + name: include + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "page[number]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "page[size]" + required: false + schema: + type: integer + style: form + - explode: true + in: query + name: "filter[slug]" + required: false + schema: + type: string + style: form + - explode: true + in: query + name: "filter[name]" + required: false + schema: + type: string + style: form + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_endpoint_list' + description: excludes hidden endpoints from listing + security: + - bearer_auth: [] + summary: List webhook endpoints + tags: + - WebhooksEndpoints + x-accepts: + - application/vnd.api+json + post: + description: Creates a new webhook endpoint from provided data + operationId: createWebhooksEndpoint + parameters: [] + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/new_webhooks_endpoint' + required: true + responses: + "201": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_endpoint_response' + description: webhooks_endpoint created with custom_headers + "422": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: invalid request + "401": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: responds with unauthorized for invalid token + security: + - bearer_auth: [] + summary: Creates a webhook endpoint + tags: + - WebhooksEndpoints + x-content-type: application/vnd.api+json + x-accepts: + - application/vnd.api+json + /v1/webhooks/endpoints/{id}: + delete: + description: Delete a specific webhook endpoint by id + operationId: deleteWebhooksEndpoint + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_endpoint_response' + description: webhooks_endpoint deleted + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: hidden endpoint not accessible + security: + - bearer_auth: [] + summary: Delete a webhook endpoint + tags: + - WebhooksEndpoints + x-accepts: + - application/vnd.api+json + get: + description: Retrieves a specific webhook endpoint by id + operationId: getWebhooksEndpoint + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_endpoint_response' + description: webhooks_endpoint found + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: hidden endpoint not accessible + security: + - bearer_auth: [] + summary: Retrieves a webhook endpoint + tags: + - WebhooksEndpoints + x-accepts: + - application/vnd.api+json + put: + description: Update a specific webhook endpoint by id + operationId: updateWebhooksEndpoint + parameters: + - explode: false + in: path + name: id + required: true + schema: + type: string + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/update_webhooks_endpoint' + required: true + responses: + "200": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/webhooks_endpoint_response' + description: webhooks_endpoint custom_headers cleared with empty array + "404": + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/errors_list' + description: hidden endpoint not accessible security: - bearer_auth: [] summary: Update a webhook endpoint @@ -45207,6 +30151,53 @@ paths: - application/vnd.api+json components: schemas: + ai_chat_response: + properties: + data: + $ref: '#/components/schemas/ai_chat_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + ai_chat_session_message: + properties: + id: + description: Message UUID + format: uuid + type: string + role: + description: Message author role + enum: + - user + - assistant + type: string + content: + description: Message content + type: string + created_at: + description: When the message was created + format: date-time + type: string + required: + - content + - created_at + - id + - role + type: object + ai_chat_session_message_list: + properties: + messages: + items: + $ref: '#/components/schemas/ai_chat_session_message' + type: array + meta: + type: object + required: + - messages + type: object attach_alert: properties: data: @@ -45242,50 +30233,6 @@ components: type: string source: description: The source of the alert - enum: - - rootly - - manual - - api - - heartbeat - - web - - slack - - email - - workflow - - live_call_routing - - mobile - - pagerduty - - opsgenie - - victorops - - pagertree - - datadog - - nobl9 - - zendesk - - asana - - clickup - - sentry - - rollbar - - jira - - honeycomb - - service_now - - linear - - grafana - - alertmanager - - google_cloud - - generic_webhook - - cloud_watch - - azure - - splunk - - chronosphere - - app_optics - - bug_snag - - monte_carlo - - nagios - - prtg - - catchpoint - - app_dynamics - - checkly - - new_relic - - gitlab type: string status: description: The status of the alert @@ -45294,6 +30241,7 @@ components: - triggered - acknowledged - resolved + - deferred type: string summary: description: The summary of the alert @@ -45316,6 +30264,13 @@ components: - $ref: '#/components/schemas/team' type: object type: array + functionalities: + description: Functionalities attached to the alert + items: + allOf: + - $ref: '#/components/schemas/functionality' + type: object + type: array environments: description: Environments attached to the alert items: @@ -45339,6 +30294,12 @@ components: type: string nullable: true type: array + functionality_ids: + description: The Functionality IDs to attach to the alert + items: + type: string + nullable: true + type: array environment_ids: description: The Environment IDs to attach to the alert items: @@ -45357,6 +30318,11 @@ components: description: The ID of the alert urgency nullable: true type: string + alert_urgency: + allOf: + - $ref: '#/components/schemas/alert_urgency' + nullable: true + type: object group_leader_alert_id: description: The ID of the group leader alert nullable: true @@ -45373,16 +30339,65 @@ components: description: Additional data nullable: true type: object + notification_target_type: + description: "Only available for organizations with Rootly On-Call enabled.\ + \ Can be one of Group, Service, EscalationPolicy, Functionality, User." + enum: + - User + - Group + - EscalationPolicy + - Service + - Functionality + nullable: true + type: string + notification_target_id: + description: Only available for organizations with Rootly On-Call enabled. + The identifier of the notification target object. + nullable: true + type: string deduplication_key: description: Alerts sharing the same deduplication key are treated as a single alert. nullable: true type: string - alert_field_values_attributes: - description: Custom alert field values to create with the alert + alert_field_values: + description: Custom alert field values associated with the alert. Only present + when the enable_alert_fields feature flag is enabled for the team. items: - $ref: '#/components/schemas/new_alert_data_attributes_alert_field_values_attributes_inner' + $ref: '#/components/schemas/alert_alert_field_values_inner' + nullable: true + type: array + responders: + description: "Users who responded to the alert. Included on all non-list\ + \ responses (show, create, update, resolve, etc.); on list responses only\ + \ when `include=responders` is requested." + items: + allOf: + - $ref: '#/components/schemas/user_flat_response' + type: object + nullable: true + type: array + notified_users: + description: "Users who were notified about the alert. Included on all non-list\ + \ responses (show, create, update, resolve, etc.); on list responses only\ + \ when `include=notified_users` is requested." + items: + allOf: + - $ref: '#/components/schemas/user' + type: object + nullable: true + type: array + alerting_targets: + description: Alerting targets associated with the alert. Only present when + advanced routing is enabled for the team. + items: + $ref: '#/components/schemas/alert_alerting_targets_inner' + nullable: true type: array + url: + description: The Rootly dashboard URL for the alert + format: uri + type: string started_at: description: When the alert started format: date-time @@ -45410,6 +30425,10 @@ components: properties: data: $ref: '#/components/schemas/alert_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -45427,6 +30446,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -45437,6 +30460,52 @@ components: data: $ref: '#/components/schemas/resolve_alert_data' type: object + snooze_alert: + properties: + data: + $ref: '#/components/schemas/snooze_alert_data' + required: + - data + type: object + escalate_alert: + properties: + data: + $ref: '#/components/schemas/escalate_alert_data' + type: object + alert_event_user: + properties: + id: + type: integer + name: + type: string + email: + type: string + first_name: + nullable: true + type: string + last_name: + nullable: true + type: string + preferred_name: + nullable: true + type: string + full_name: + nullable: true + type: string + time_zone: + nullable: true + type: string + created_at: + type: string + updated_at: + type: string + required: + - created_at + - email + - id + - name + - updated_at + type: object new_alert_event: properties: data: @@ -45455,6 +30524,9 @@ components: type: object alert_event: properties: + alert_id: + description: ID of the alert this event belongs to. + type: string kind: enum: - informational @@ -45468,20 +30540,26 @@ components: - note - noise - maintenance + - deferral type: string action: enum: - created - escalation_policy_paged - ignored_alert_request + - call_lifecycle + - level_skipped - emailed - slacked + - ms_teams_messaged + - google_chat_messaged - called - texted - notified - skipped - opened - retriggered + - ack_timeout_retriggered - answered - acknowledged - escalated @@ -45489,13 +30567,17 @@ components: - resolved - attached - snoozed + - retrigger_suppressed - triggered + - open - updated - added - removed - marked - not_marked + - cleared - muted + - deferred type: string source: type: string @@ -45507,12 +30589,41 @@ components: description: Note message. nullable: true type: string + user: + allOf: + - $ref: '#/components/schemas/alert_event_user' + nullable: true + type: object + incident: + $ref: '#/components/schemas/alert_event_incident' + schedule: + $ref: '#/components/schemas/alert_event_schedule' + escalation_level: + nullable: true + type: integer + escalation_target_type: + description: "e.g. EscalationPolicy, User." + nullable: true + type: string + escalation_target: + $ref: '#/components/schemas/alert_event_escalation_target' + slack_channel: + allOf: + - $ref: '#/components/schemas/slack_channel' + nullable: true + type: object + incident_ids: + items: + type: string + nullable: true + type: array created_at: type: string updated_at: type: string required: - action + - alert_id - created_at - kind - source @@ -45522,6 +30633,10 @@ components: properties: data: $ref: '#/components/schemas/alert_event_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -45539,11 +30654,64 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + alert_event_feed_meta: + description: Cursor-pagination meta. `total_count` and `total_pages` are nullable + because the feed does not run a COUNT query. + properties: + next_cursor: + description: "Pass as `page[after]` on the next request to fetch the following\ + \ page." + nullable: true + type: string + current_page: + nullable: true + type: integer + next_page: + nullable: true + type: integer + prev_page: + nullable: true + type: integer + total_count: + nullable: true + type: integer + total_pages: + nullable: true + type: integer + required: + - next_cursor + type: object + alert_event_feed_list: + properties: + data: + items: + $ref: '#/components/schemas/alert_event_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/alert_event_feed_meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - meta + type: object new_alerts_source: properties: data: @@ -45563,19 +30731,26 @@ components: name: description: The name of the alert source type: string + enabled: + description: Whether the alert source is enabled. Disabled sources do not + create alerts from incoming events. + type: boolean source_type: description: The alert source type enum: - email - app_dynamics - catchpoint + - cloudflare - datadog + - dynatrace - alertmanager - google_cloud - grafana - sentry - generic_webhook - cloud_watch + - aws_sns - checkly - azure - new_relic @@ -45623,7 +30798,7 @@ components: $ref: '#/components/schemas/new_alerts_source_data_attributes_alert_source_urgency_rules_attributes_inner' type: array sourceable_attributes: - $ref: '#/components/schemas/new_alerts_source_data_attributes_sourceable_attributes' + $ref: '#/components/schemas/alerts_source_sourceable_attributes' resolution_rule_attributes: $ref: '#/components/schemas/new_alerts_source_data_attributes_resolution_rule_attributes' alert_source_fields_attributes: @@ -45669,6 +30844,10 @@ components: properties: data: $ref: '#/components/schemas/alerts_source_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -45686,6 +30865,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -45703,6 +30886,13 @@ components: required: - data type: object + patch_alert_route: + properties: + data: + $ref: '#/components/schemas/patch_alert_route_data' + required: + - data + type: object alert_route: properties: name: @@ -45823,6 +31013,10 @@ components: properties: data: $ref: '#/components/schemas/alert_routing_rule_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -45840,6 +31034,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -45850,10 +31048,12 @@ components: nullable: true properties: target_type: - description: The type of the target + description: The type of the target. Please contact support if you encounter + issues using `Functionality` as a target type. enum: - Service - Group + - Functionality - EscalationPolicy type: string target_id: @@ -45946,6 +31146,85 @@ components: required: - position type: object + new_alert_retrigger_rule: + properties: + data: + $ref: '#/components/schemas/new_alert_retrigger_rule_data' + required: + - data + type: object + update_alert_retrigger_rule: + properties: + data: + $ref: '#/components/schemas/update_alert_retrigger_rule_data' + required: + - data + type: object + alert_retrigger_rule: + properties: + name: + description: A human-readable name for the rule + type: string + match_mode: + description: Whether all or any of the conditions must match + enum: + - match-all-rules + - match-any-rule + type: string + timeout_minutes: + description: Minutes after acknowledgment to re-trigger. Null means never + re-trigger. + nullable: true + type: integer + position: + description: The position of the rule for ordering evaluation + type: integer + conditions: + description: The conditions for the rule + items: + $ref: '#/components/schemas/alert_retrigger_rule_conditions_inner' + type: array + created_at: + format: date-time + type: string + updated_at: + format: date-time + type: string + type: object + alert_retrigger_rule_response: + properties: + data: + $ref: '#/components/schemas/alert_retrigger_rule_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + alert_retrigger_rule_list: + properties: + data: + items: + $ref: '#/components/schemas/alert_retrigger_rule_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object new_alert_field: properties: data: @@ -45964,6 +31243,7 @@ components: properties: slug: description: The slug of the alert field + readOnly: true type: string name: description: The name of the alert field @@ -45987,6 +31267,10 @@ components: properties: data: $ref: '#/components/schemas/alert_field_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46004,6 +31288,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -46025,6 +31313,9 @@ components: type: object alert_urgency: properties: + id: + description: Unique ID of the alert urgency + type: string name: description: The name of the alert urgency type: string @@ -46034,6 +31325,26 @@ components: position: description: Position of the alert urgency type: integer + retrigger_timeout_minutes: + description: "Re-trigger acknowledged alerts of this urgency after N minutes;\ + \ null inherits the workspace default, negative = never." + nullable: true + type: integer + urgency: + description: The urgency level + nullable: true + type: string + color: + description: The color associated with this urgency level + nullable: true + type: string + team_id: + description: The ID of the team this urgency belongs to + type: integer + deleted_at: + description: Date of deletion + nullable: true + type: string created_at: description: Date of creation type: string @@ -46051,6 +31362,10 @@ components: properties: data: $ref: '#/components/schemas/alert_urgency_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46068,6 +31383,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -46098,6 +31417,7 @@ components: type: string slug: description: The slug of the alert group + readOnly: true type: string condition_type: description: Grouping condition for the alert group @@ -46149,7 +31469,6 @@ components: - deleted_at - description - name - - slug - time_window - updated_at type: object @@ -46157,6 +31476,10 @@ components: properties: data: $ref: '#/components/schemas/alert_group_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46166,8 +31489,126 @@ components: items: $ref: '#/components/schemas/alert_group_response_data' type: array + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + new_api_key: + properties: + data: + $ref: '#/components/schemas/new_api_key_data' + required: + - data + type: object + update_api_key: + properties: + data: + $ref: '#/components/schemas/update_api_key_data' + required: + - data + type: object + rotate_api_key: + properties: + data: + $ref: '#/components/schemas/rotate_api_key_data' + required: + - data + type: object + api_key: + properties: + name: + description: The name of the API key + type: string + description: + description: A description of the API key + nullable: true + type: string + kind: + description: The kind of the API key + enum: + - personal + - team + - organization + type: string + role_id: + description: The role ID + nullable: true + type: string + on_call_role_id: + description: The on-call role ID + nullable: true + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + expires_at: + description: Expiration date + nullable: true + type: string + last_used_at: + description: Date of last use + nullable: true + type: string + grace_period_ends_at: + description: Grace period end date + nullable: true + type: string + required: + - created_at + - kind + - name + - updated_at + type: object + api_key_response: + properties: + data: + $ref: '#/components/schemas/api_key_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + api_key_with_token_response: + properties: + data: + $ref: '#/components/schemas/api_key_with_token_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + api_key_list: + properties: + data: + items: + $ref: '#/components/schemas/api_key_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data + - links + - meta type: object audit: properties: @@ -46177,7 +31618,14 @@ components: item_type: description: Describes the object in which the action was taken on enum: + - AlertRoute + - AlertRoutingRule + - Alerts::Source - ApiKey + - Catalog + - CatalogEntity + - CatalogEntityProperty + - CatalogField - Cause - CustomField - CustomFieldOption @@ -46195,29 +31643,51 @@ components: - GeniusWorkflowGroup - GeniusWorkflowRun - Group + - GroupUser - Heartbeat - Incident - IncidentActionItem - IncidentEvent - IncidentFormFieldSelection - IncidentFormFieldSelectionUser + - IncidentPermissionSet - IncidentPostMortem - IncidentRoleAssignment - IncidentRoleTask - IncidentStatusPageEvent - IncidentTask - IncidentType + - Integrations::DatadogAccount + - Integrations::GithubAccount + - Integrations::GoogleMeetAccount + - Integrations::JiraAccount + - Integrations::MicrosoftTeamsAccount + - Integrations::NotionAccount + - Integrations::OpsgenieAccount + - Integrations::PagerdutyAccount + - Integrations::ServiceNowAccount + - Integrations::SlackAccount + - Integrations::StatusPageIoAccount + - Integrations::ZendeskAccount + - Integrations::ZoomAccount - LiveCallRouter + - LoginActivity + - Membership - OnCallRole - Playbook - PlaybookTask - Role - Schedule + - Secret - Service - Severity - StatusPage nullable: true type: string + item_type_display: + description: Human-friendly display name for the item type + nullable: true + type: string object: description: The object in which the action was taken on nullable: true @@ -46231,6 +31701,32 @@ components: can be used to find the user nullable: true type: integer + user_name: + description: Display name of the user who performed the action + nullable: true + type: string + user_email: + description: Email address of the user who performed the action + nullable: true + type: string + ip_address: + description: IP address of the client that performed the action + nullable: true + type: string + user_agent: + description: User-Agent header of the client that performed the action + nullable: true + type: string + request_id: + description: Unique request ID (UUID) for the HTTP request that triggered + the action + nullable: true + type: string + session_id: + description: SHA-256 fingerprint of the web session for correlating multiple + actions within the same browser session + nullable: true + type: string created_at: description: Date of creation type: string @@ -46260,6 +31756,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -46324,6 +31824,10 @@ components: properties: data: $ref: '#/components/schemas/authorization_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46341,6 +31845,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -46364,6 +31872,10 @@ components: properties: name: type: string + slug: + description: The slug of the catalog. Derived from `name`. + readOnly: true + type: string description: nullable: true type: string @@ -46382,6 +31894,22 @@ components: description: Default position of the catalog when displayed in a list. nullable: true type: integer + external_id: + description: An external identifier for this catalog. Must be unique within + the team. + nullable: true + type: string + managed_by: + description: Which source manages this resource (read-only). + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync + type: string created_at: type: string updated_at: @@ -46397,6 +31925,10 @@ components: properties: data: $ref: '#/components/schemas/catalog_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46414,6 +31946,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -46437,10 +31973,12 @@ components: catalog_field: properties: catalog_id: + nullable: true type: string name: type: string slug: + readOnly: true type: string kind: enum: @@ -46458,6 +31996,36 @@ components: description: Default position of the item when displayed in a list. nullable: true type: integer + required: + description: Whether the field is required. + type: boolean + catalog_type: + description: The type of catalog the field belongs to. + enum: + - catalog + - cause + - environment + - functionality + - incident_type + - service + - team + type: string + external_id: + description: An external identifier for this catalog field. Must be unique + within the scope. + nullable: true + type: string + managed_by: + description: Which source manages this resource (read-only). + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync + type: string created_at: type: string updated_at: @@ -46469,13 +32037,16 @@ components: - multiple - name - position - - slug - updated_at type: object catalog_field_response: properties: data: $ref: '#/components/schemas/catalog_field_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46493,6 +32064,128 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object + new_catalog_property: + description: A catalog can have a maximum of 50 properties. + properties: + data: + $ref: '#/components/schemas/new_catalog_property_data' + required: + - data + type: object + update_catalog_property: + properties: + data: + $ref: '#/components/schemas/update_catalog_property_data' + required: + - data + type: object + catalog_property: + properties: + catalog_id: + nullable: true + type: string + name: + type: string + slug: + readOnly: true + type: string + kind: + enum: + - text + - reference + type: string + kind_catalog_id: + description: Restricts values to items of specified catalog. + nullable: true + type: string + multiple: + description: Whether the attribute accepts multiple values. + type: boolean + position: + description: Default position of the item when displayed in a list. + nullable: true + type: integer + required: + description: Whether the property is required. + type: boolean + catalog_type: + description: The type of catalog the property belongs to. + enum: + - catalog + - cause + - environment + - functionality + - incident_type + - service + - team + type: string + external_id: + description: An external identifier for this catalog property. Must be unique + within the scope. + nullable: true + type: string + managed_by: + description: Which source manages this resource (read-only). + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync + type: string + created_at: + type: string + updated_at: + type: string + required: + - catalog_id + - created_at + - kind + - multiple + - name + - position + - updated_at + type: object + catalog_property_response: + properties: + data: + $ref: '#/components/schemas/catalog_property_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + catalog_property_list: + properties: + data: + items: + $ref: '#/components/schemas/catalog_property_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -46516,17 +32209,50 @@ components: properties: name: type: string + slug: + description: The slug of the catalog entity. Derived from `name`. + readOnly: true + type: string description: nullable: true type: string + public_description: + description: The status page description of the catalog entity + nullable: true + type: string position: description: Default position of the item when displayed in a list. nullable: true type: integer + backstage_id: + description: The Backstage entity ID this catalog entity is linked to. + nullable: true + type: string + external_id: + description: An external identifier for this catalog entity. Must be unique + within the catalog. + nullable: true + type: string + managed_by: + description: Which source manages this resource (read-only). + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync + type: string created_at: type: string updated_at: type: string + properties: + description: Array of property values for this catalog entity + items: + $ref: '#/components/schemas/new_catalog_entity_data_attributes_properties_inner' + type: array required: - created_at - name @@ -46537,6 +32263,10 @@ components: properties: data: $ref: '#/components/schemas/catalog_entity_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46554,12 +32284,60 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + bulk_upsert_catalog_entities: + properties: + entities: + description: Array of catalog entities to upsert. Each must have an external_id. + Max 100 per request. external_ids must be unique within a batch. + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_entities_inner' + type: array + required: + - entities + type: object + bulk_upsert_catalog_entities_response: + properties: + data: + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_response_data_inner' + type: array + type: object + bulk_upsert_catalog_entities_error: + properties: + errors: + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_error_errors_inner' + type: array + required: + - errors + type: object + bulk_destroy_catalog_entities: + description: "Two mutually exclusive modes. Pass exactly one of: external_ids\ + \ (delete specific entities) or managed_by (prune all managed entities not\ + \ in keep set)." + oneOf: + - $ref: '#/components/schemas/bulk_destroy_catalog_entities_oneOf' + - $ref: '#/components/schemas/bulk_destroy_catalog_entities_oneOf_1' + bulk_destroy_catalog_entities_response: + properties: + data: + $ref: '#/components/schemas/bulk_destroy_catalog_entities_response_data' + type: object new_catalog_entity_property: + deprecated: true + description: "**Deprecated:** This endpoint is deprecated, please use the `fields`\ + \ attribute on catalog entities or native catalog endpoints (teams, services,\ + \ functionalities, incident_types, causes, environments) to set field values\ + \ instead." properties: data: $ref: '#/components/schemas/new_catalog_entity_property_data' @@ -46567,6 +32345,11 @@ components: - data type: object update_catalog_entity_property: + deprecated: true + description: "**Deprecated:** This endpoint is deprecated, please use the `fields`\ + \ attribute on catalog entities or native catalog endpoints (teams, services,\ + \ functionalities, incident_types, causes, environments) to set field values\ + \ instead." properties: data: $ref: '#/components/schemas/update_catalog_entity_property_data' @@ -46574,6 +32357,10 @@ components: - data type: object catalog_entity_property: + deprecated: true + description: "**Deprecated:** This endpoint is deprecated, please use `include=fields`\ + \ on catalog entities or native catalog endpoints (teams, services, functionalities,\ + \ incident_types, causes, environments) to retrieve field values instead." properties: catalog_entity_id: type: string @@ -46583,6 +32370,7 @@ components: enum: - text - catalog_entity + - slack type: string value: type: string @@ -46599,13 +32387,25 @@ components: - value type: object catalog_entity_property_response: + deprecated: true + description: "**Deprecated:** This endpoint is deprecated, please use `include=fields`\ + \ on catalog entities or native catalog endpoints (teams, services, functionalities,\ + \ incident_types, causes, environments) to retrieve field values instead." properties: data: $ref: '#/components/schemas/catalog_entity_property_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object catalog_entity_property_list: + deprecated: true + description: "**Deprecated:** This endpoint is deprecated, please use `include=fields`\ + \ on catalog entities or native catalog endpoints (teams, services, functionalities,\ + \ incident_types, causes, environments) to retrieve field values instead." properties: data: items: @@ -46619,11 +32419,217 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + new_catalog_checklist_template: + properties: + data: + $ref: '#/components/schemas/new_catalog_checklist_template_data' + required: + - data + type: object + update_catalog_checklist_template: + properties: + data: + $ref: '#/components/schemas/update_catalog_checklist_template_data' + required: + - data + type: object + catalog_checklist_template: + properties: + name: + description: The name of the checklist template + type: string + slug: + description: The slug of the checklist template + readOnly: true + type: string + description: + description: The description of the checklist template + nullable: true + type: string + catalog_type: + description: The catalog type + enum: + - Service + - Functionality + - Environment + - Group + - Cause + - IncidentType + - Catalog + type: string + scope_type: + description: The scope type + enum: + - Team + - Catalog + type: string + scope_id: + description: The scope ID + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + fields: + description: Template fields in position order + items: + $ref: '#/components/schemas/catalog_checklist_template_fields_inner' + nullable: true + type: array + owners: + description: Template owners + items: + $ref: '#/components/schemas/catalog_checklist_template_owners_inner' + nullable: true + type: array + required: + - catalog_type + - created_at + - name + - scope_id + - scope_type + - updated_at + type: object + catalog_checklist_template_response: + properties: + data: + $ref: '#/components/schemas/catalog_checklist_template_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + catalog_checklist_template_list: + properties: + data: + items: + $ref: '#/components/schemas/catalog_checklist_template_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + catalog_entity_checklist: + properties: + catalog_checklist_template_id: + description: The ID of the checklist template + type: string + auditable_type: + description: The type of the auditable entity + enum: + - Service + - Functionality + - Environment + - Group + - Cause + - IncidentType + - CatalogEntity + type: string + auditable_id: + description: The ID of the auditable entity + type: string + status: + description: The status of the checklist + enum: + - triggered + - in_progress + - completed + - cancelled + type: string + started_at: + description: When the checklist was started + nullable: true + type: string + completed_at: + description: When the checklist was completed + nullable: true + type: string + completed_by_user_id: + description: The ID of the user who completed the checklist + nullable: true + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + checklist_fields: + description: Checklist fields + items: + $ref: '#/components/schemas/catalog_entity_checklist_checklist_fields_inner' + nullable: true + type: array + checklist_owners: + description: Checklist owners + items: + $ref: '#/components/schemas/catalog_entity_checklist_checklist_owners_inner' + nullable: true + type: array + required: + - auditable_id + - auditable_type + - catalog_checklist_template_id + - created_at + - status + - updated_at + type: object + catalog_entity_checklist_response: + properties: + data: + $ref: '#/components/schemas/catalog_entity_checklist_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + catalog_entity_checklist_list: + properties: + data: + items: + $ref: '#/components/schemas/catalog_entity_checklist_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object new_cause: properties: data: @@ -46645,15 +32651,25 @@ components: type: string slug: description: The slug of the cause + readOnly: true type: string description: description: The description of the cause nullable: true type: string + public_description: + description: The status page description of the cause + nullable: true + type: string position: description: Position of the cause nullable: true type: integer + properties: + description: Array of property values for this cause. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array created_at: description: Date of creation type: string @@ -46669,6 +32685,10 @@ components: properties: data: $ref: '#/components/schemas/cause_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46686,11 +32706,29 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + incidents_chart_response: + properties: + data: + type: object + required: + - data + type: object + uptime_chart_response: + properties: + data: + type: object + required: + - data + type: object new_communications_stage: properties: data: @@ -46712,6 +32750,7 @@ components: type: string slug: description: The slug of the communications stage + readOnly: true type: string description: description: The description of the communications stage @@ -46731,13 +32770,16 @@ components: - created_at - name - position - - slug - updated_at type: object communications_stage_response: properties: data: $ref: '#/components/schemas/communications_stage_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46755,6 +32797,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46779,6 +32825,7 @@ components: type: string slug: description: The slug of the communications type + readOnly: true type: string description: description: The description of the communications type @@ -46802,13 +32849,16 @@ components: - created_at - name - position - - slug - updated_at type: object communications_type_response: properties: data: $ref: '#/components/schemas/communications_type_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46826,6 +32876,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46850,6 +32904,7 @@ components: type: string slug: description: The slug of the communications template + readOnly: true type: string description: description: The description of the communications template @@ -46880,13 +32935,16 @@ components: - created_at - name - position - - slug - updated_at type: object communications_template_response: properties: data: $ref: '#/components/schemas/communications_template_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46904,6 +32962,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -46928,6 +32990,7 @@ components: type: string slug: description: The slug of the communications group + readOnly: true type: string description: description: The description of the communications group @@ -46988,7 +33051,6 @@ components: - email_channel - is_private - name - - slug - sms_channel - updated_at type: object @@ -46996,6 +33058,10 @@ components: properties: data: $ref: '#/components/schemas/communications_group_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47013,6 +33079,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47063,6 +33133,10 @@ components: properties: data: $ref: '#/components/schemas/custom_field_option_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47080,6 +33154,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -47112,6 +33190,13 @@ components: type: boolean slug: description: The slug of the custom_field + readOnly: true + type: string + resource_type: + description: The resource type this field belongs to + enum: + - incident + - problem type: string description: description: The description of the custom_field @@ -47164,13 +33249,16 @@ components: - position - required - shown - - slug - updated_at type: object custom_field_response: properties: data: $ref: '#/components/schemas/custom_field_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47188,6 +33276,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -47215,6 +33307,7 @@ components: slug: description: The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. + readOnly: true type: string description: nullable: true @@ -47235,13 +33328,16 @@ components: - created_at - enabled - name - - slug - updated_at type: object custom_form_response: properties: data: $ref: '#/components/schemas/custom_form_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47259,6 +33355,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -47302,6 +33402,10 @@ components: properties: data: $ref: '#/components/schemas/dashboard_panel_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47319,6 +33423,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -47402,6 +33510,10 @@ components: properties: data: $ref: '#/components/schemas/dashboard_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47419,6 +33531,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -47441,7 +33557,7 @@ components: update_edge_connector: properties: edge_connector: - $ref: '#/components/schemas/_v1_edge_connectors__id__patch_request_edge_connector' + $ref: '#/components/schemas/update_edge_connector_edge_connector' required: - edge_connector type: object @@ -47462,7 +33578,7 @@ components: update_edge_connector_action: properties: action: - $ref: '#/components/schemas/_v1_edge_connectors__edge_connector_id__actions__id__patch_request_action' + $ref: '#/components/schemas/updateEdgeConnectorAction_request_action' required: - action type: object @@ -47487,11 +33603,32 @@ components: type: string slug: description: The slug of the environment + readOnly: true + type: string + managed_by: + description: "How this environment is managed (provenance): web, api, terraform,\ + \ etc. Read-only." + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync + type: string + external_id: + description: The external id associated to this environment + nullable: true type: string description: description: The description of the environment nullable: true type: string + public_description: + description: The status page description of the environment + nullable: true + type: string notify_emails: description: Emails attached to the environment items: @@ -47518,6 +33655,12 @@ components: $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' nullable: true type: array + properties: + description: Array of property values for this environment. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + nullable: true + type: array created_at: description: Date of creation type: string @@ -47533,6 +33676,10 @@ components: properties: data: $ref: '#/components/schemas/environment_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47550,11 +33697,55 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + bulk_upsert_environments: + properties: + entities: + description: "Environments to upsert, matched by external_id. Max 100 per\ + \ request; external_ids unique within a batch. Only attributes present\ + \ are written (managed-fields semantics)." + items: + $ref: '#/components/schemas/bulk_upsert_environments_entities_inner' + type: array + required: + - entities + type: object + bulk_upsert_environments_response: + properties: + data: + items: + $ref: '#/components/schemas/bulk_upsert_environments_response_data_inner' + type: array + type: object + bulk_upsert_environments_error: + properties: + errors: + items: + $ref: '#/components/schemas/bulk_upsert_environments_error_errors_inner' + type: array + required: + - errors + type: object + bulk_destroy_environments: + description: "Two mutually exclusive modes. Pass exactly one of: external_ids\ + \ (delete specific records) or managed_by (prune all managed records not in\ + \ keep set)." + oneOf: + - $ref: '#/components/schemas/bulk_destroy_catalog_entities_oneOf' + - $ref: '#/components/schemas/bulk_destroy_environments_oneOf' + bulk_destroy_environments_response: + properties: + data: + $ref: '#/components/schemas/bulk_destroy_catalog_entities_response_data' + type: object errors_list: properties: errors: @@ -47624,6 +33815,10 @@ components: properties: data: $ref: '#/components/schemas/escalation_policy_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -47641,6 +33836,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -47671,9 +33870,27 @@ components: notification_type: description: Notification rule type type: string + path_type: + description: The type of escalation path + enum: + - escalation + - deferral + type: string escalation_policy_id: description: The ID of the escalation policy type: string + after_deferral_behavior: + description: What happens after a deferral path finishes + enum: + - re_evaluate + - execute_path + nullable: true + type: string + after_deferral_path_id: + description: The escalation path to execute after this deferral path when + after_deferral_behavior is execute_path + nullable: true + type: string match_mode: description: How path rules are matched. enum: @@ -47697,6 +33914,11 @@ components: description: Initial delay for escalation path in minutes. Maximum 1 week (10080). type: integer + retrigger_timeout_minutes: + description: "Re-trigger acknowledged alerts on this path after N minutes;\ + \ null inherits the urgency/workspace default, negative = never." + nullable: true + type: integer created_at: description: Date of creation type: string @@ -47706,7 +33928,7 @@ components: rules: description: Escalation path rules items: - $ref: '#/components/schemas/escalation_policy_path_rules_inner' + $ref: '#/components/schemas/update_escalation_policy_path_data_attributes_rules_inner' type: array time_restriction_time_zone: description: Time zone used for time restrictions. @@ -47740,7 +33962,6 @@ components: - Guadalajara - America/Mexico_City - Mexico City - - America/Mexico_City - Monterrey - America/Monterrey - Saskatchewan @@ -47754,7 +33975,6 @@ components: - Lima - America/Lima - Quito - - America/Lima - Atlantic Time (Canada) - America/Halifax - Caracas @@ -47785,16 +34005,11 @@ components: - Atlantic/Azores - Cape Verde Is. - Atlantic/Cape_Verde - - Casablanca - - Africa/Casablanca - - Dublin - - Europe/Dublin - Edinburgh - Europe/London - Lisbon - Europe/Lisbon - London - - Europe/London - Monrovia - Africa/Monrovia - UTC @@ -47813,8 +34028,12 @@ components: - Europe/Brussels - Budapest - Europe/Budapest + - Casablanca + - Africa/Casablanca - Copenhagen - Europe/Copenhagen + - Dublin + - Europe/Dublin - Ljubljana - Europe/Ljubljana - Madrid @@ -47840,7 +34059,6 @@ components: - Zagreb - Europe/Zagreb - Zurich - - Europe/Zurich - Athens - Europe/Athens - Bucharest @@ -47882,7 +34100,6 @@ components: - Riyadh - Asia/Riyadh - St. Petersburg - - Europe/Moscow - Volgograd - Europe/Volgograd - Tehran @@ -47892,7 +34109,6 @@ components: - Baku - Asia/Baku - Muscat - - Asia/Muscat - Samara - Europe/Samara - Tbilisi @@ -47904,23 +34120,18 @@ components: - Almaty - Asia/Almaty - Astana - - Asia/Almaty - Ekaterinburg - Asia/Yekaterinburg - Islamabad - Asia/Karachi - Karachi - - Asia/Karachi - Tashkent - Asia/Tashkent - Chennai - Asia/Kolkata - Kolkata - - Asia/Kolkata - Mumbai - - Asia/Kolkata - New Delhi - - Asia/Kolkata - Sri Jayawardenepura - Asia/Colombo - Kathmandu @@ -47934,7 +34145,6 @@ components: - Bangkok - Asia/Bangkok - Hanoi - - Asia/Bangkok - Jakarta - Asia/Jakarta - Krasnoyarsk @@ -47962,11 +34172,9 @@ components: - Osaka - Asia/Tokyo - Sapporo - - Asia/Tokyo - Seoul - Asia/Seoul - Tokyo - - Asia/Tokyo - Yakutsk - Asia/Yakutsk - Adelaide @@ -48006,7 +34214,6 @@ components: - Marshall Is. - Pacific/Majuro - Wellington - - Pacific/Auckland - Chatham Is. - Pacific/Chatham - Nuku'alofa @@ -48015,6 +34222,22 @@ components: - Pacific/Apia - Tokelau Is. - Pacific/Fakaofo + - America/Adak + - America/Atka + - US/Aleutian + - America/Vancouver + - Canada/Pacific + - America/Miquelon + - Australia/Eucla + - Australia/LHI + - Australia/Lord_Howe + - Chile/EasterIsland + - Pacific/Easter + - Pacific/Gambier + - Pacific/Pitcairn + - Pacific/Marquesas + - Pacific/Kiritimati + - Pacific/Norfolk nullable: true type: string time_restrictions: @@ -48035,6 +34258,10 @@ components: properties: data: $ref: '#/components/schemas/escalation_policy_path_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48052,6 +34279,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48083,6 +34314,7 @@ components: nullable: true type: string paging_strategy_configuration_strategy: + default: default enum: - default - random @@ -48091,13 +34323,39 @@ components: nullable: true type: string paging_strategy_configuration_schedule_strategy: + default: on_call_only enum: - on_call_only - everyone nullable: true type: string + paging_strategy_configuration_repeats: + description: Number of times to rotate through the roster (cycle-based round + robin). + nullable: true + type: integer + paging_strategy_configuration_repeats_mode: + description: "Controls how repeats are interpreted: 'users' pages exactly\ + \ N users, 'all' pages everyone once." + enum: + - users + - all + nullable: true + type: string + paging_strategy_configuration_rotation_scope: + description: "Scope of rotation ordering: active rotation members only,\ + \ or entire schedule." + enum: + - active_rotation + - entire_schedule + nullable: true + type: string + paging_strategy_configuration_page_users_count: + description: Number of users to page at a time (cycle-based round robin). + nullable: true + type: integer delay: - description: Delay before notification targets will be alerted. + description: Delay before notifying targets in the next Escalation Level. type: integer position: description: Position of the escalation policy level @@ -48123,6 +34381,10 @@ components: properties: data: $ref: '#/components/schemas/escalation_policy_level_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48140,6 +34402,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48195,6 +34461,10 @@ components: properties: data: $ref: '#/components/schemas/form_field_option_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48212,6 +34482,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48274,6 +34548,10 @@ components: properties: data: $ref: '#/components/schemas/form_field_placement_condition_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48291,6 +34569,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48316,7 +34598,9 @@ components: description: The form field that is placed. type: string form_set_id: - description: The form set this field is placed in. + description: "The form set this field is placed in. The form set must have\ + \ the same `resource_type` as the form field, otherwise the request is\ + \ rejected with 422." type: string form: description: The form this field is placed on. @@ -48355,6 +34639,10 @@ components: properties: data: $ref: '#/components/schemas/form_field_placement_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48372,6 +34660,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48416,6 +34708,10 @@ components: - slack_incident_cancellation_form - slack_scheduled_incident_form - slack_update_scheduled_incident_form + - web_action_item_form + - slack_action_item_form + - web_task_form + - slack_task_form type: string position: description: The position of the form_field_position @@ -48429,6 +34725,10 @@ components: properties: data: $ref: '#/components/schemas/form_field_position_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48446,6 +34746,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48482,6 +34786,7 @@ components: - causes - functionalities - teams + - status - visibility - mark_as_test - mark_as_backfilled @@ -48524,6 +34829,9 @@ components: - functionality - user - catalog_entity + - environment + - cause + - incident_type type: string value_kind_catalog_id: description: The ID of the catalog used when value_kind is `catalog_entity` @@ -48534,6 +34842,13 @@ components: type: string slug: description: The slug of the form field + readOnly: true + type: string + resource_type: + description: The resource type this field belongs to + enum: + - incident + - problem type: string description: description: The description of the form field @@ -48576,6 +34891,11 @@ components: description: The default values. type: string type: array + auto_set_by_catalog_property_id: + description: Catalog property ID to auto-set this form field. Only reference-kind + catalog properties are supported. + nullable: true + type: string created_at: description: Date of creation type: string @@ -48590,7 +34910,6 @@ components: - name - required - shown - - slug - updated_at - value_kind type: object @@ -48598,6 +34917,10 @@ components: properties: data: $ref: '#/components/schemas/form_field_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48615,6 +34938,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48663,6 +34990,10 @@ components: properties: data: $ref: '#/components/schemas/form_set_condition_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48680,6 +35011,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48706,6 +35041,7 @@ components: type: string slug: description: The slug of the form set + readOnly: true type: string is_default: description: Whether the form set is default @@ -48718,7 +35054,9 @@ components: \ `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`,\ \ `slack_update_incident_status_form`, `slack_incident_mitigation_form`,\ \ `slack_incident_resolution_form`, `slack_incident_cancellation_form`,\ - \ `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`" + \ `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`,\ + \ `google_chat_new_incident_form`, `google_chat_update_incident_form`,\ + \ `microsoft_teams_new_incident_form`" items: description: "The form included in the form set. Add custom forms using\ \ the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`,\ @@ -48728,7 +35066,8 @@ components: \ `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`,\ \ `slack_incident_mitigation_form`, `slack_incident_resolution_form`,\ \ `slack_incident_cancellation_form`, `slack_scheduled_incident_form`,\ - \ `slack_update_scheduled_incident_form`" + \ `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`,\ + \ `google_chat_update_incident_form`, `microsoft_teams_new_incident_form`" type: string type: array created_at: @@ -48742,13 +35081,16 @@ components: - forms - is_default - name - - slug - updated_at type: object form_set_response: properties: data: $ref: '#/components/schemas/form_set_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48766,6 +35108,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -48792,13 +35138,26 @@ components: type: string slug: description: The slug of the functionality + readOnly: true + type: string + managed_by: + description: "How this functionality is managed (provenance): web, api,\ + \ terraform, etc. Read-only." + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync type: string description: description: The description of the functionality nullable: true type: string public_description: - description: The public description of the functionality + description: The status page description of the functionality nullable: true type: string notify_emails: @@ -48868,6 +35227,10 @@ components: type: integer nullable: true type: array + escalation_policy_id: + description: The escalation policy id of the functionality + nullable: true + type: string slack_channels: description: Slack Channels associated with this functionality items: @@ -48880,6 +35243,12 @@ components: $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' nullable: true type: array + properties: + description: Array of property values for this functionality. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + nullable: true + type: array created_at: description: Date of creation type: string @@ -48891,18 +35260,14 @@ components: - name - updated_at type: object - incidents_chart_response: - required: - - data - type: object - uptime_chart_response: - required: - - data - type: object functionality_response: properties: data: $ref: '#/components/schemas/functionality_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -48920,11 +35285,55 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + bulk_upsert_functionalities: + properties: + entities: + description: "Functionalities to upsert, matched by external_id. Max 100\ + \ per request; external_ids unique within a batch. Only attributes present\ + \ are written (managed-fields semantics)." + items: + $ref: '#/components/schemas/bulk_upsert_functionalities_entities_inner' + type: array + required: + - entities + type: object + bulk_upsert_functionalities_response: + properties: + data: + items: + $ref: '#/components/schemas/bulk_upsert_functionalities_response_data_inner' + type: array + type: object + bulk_upsert_functionalities_error: + properties: + errors: + items: + $ref: '#/components/schemas/bulk_upsert_environments_error_errors_inner' + type: array + required: + - errors + type: object + bulk_destroy_functionalities: + description: "Two mutually exclusive modes. Pass exactly one of: external_ids\ + \ (delete specific records) or managed_by (prune all managed records not in\ + \ keep set)." + oneOf: + - $ref: '#/components/schemas/bulk_destroy_catalog_entities_oneOf' + - $ref: '#/components/schemas/bulk_destroy_environments_oneOf' + bulk_destroy_functionalities_response: + properties: + data: + $ref: '#/components/schemas/bulk_destroy_catalog_entities_response_data' + type: object add_action_item_task_params: properties: task_type: @@ -49081,8 +35490,9 @@ components: - incident_role_id type: object add_slack_bookmark_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/add_slack_bookmark_task_params_anyOf' + - $ref: '#/components/schemas/add_slack_bookmark_task_params_anyOf_1' properties: task_type: enum: @@ -49191,6 +35601,12 @@ components: - schedule type: object auto_assign_role_rootly_task_params: + oneOf: + - $ref: '#/components/schemas/auto_assign_role_rootly_task_params_oneOf' + - $ref: '#/components/schemas/auto_assign_role_rootly_task_params_oneOf_1' + - $ref: '#/components/schemas/auto_assign_role_rootly_task_params_oneOf_2' + - $ref: '#/components/schemas/auto_assign_role_rootly_task_params_oneOf_3' + - $ref: '#/components/schemas/auto_assign_role_rootly_task_params_oneOf_4' properties: task_type: enum: @@ -49200,21 +35616,47 @@ components: description: The role id type: string escalation_policy_target: - $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + properties: + id: + type: string + name: + type: string + type: object service_target: - $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + properties: + id: + type: string + name: + type: string + type: object user_target: - $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + properties: + id: + type: string + name: + type: string + type: object group_target: - $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + properties: + id: + type: string + name: + type: string + type: object schedule_target: - $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + properties: + id: + type: string + name: + type: string + type: object required: - incident_role_id type: object auto_assign_role_pagerduty_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/auto_assign_role_pagerduty_task_params_anyOf' + - $ref: '#/components/schemas/auto_assign_role_pagerduty_task_params_anyOf_1' properties: task_type: enum: @@ -49563,6 +36005,18 @@ components: mark_post_mortem_as_published: default: true type: boolean + include_overview: + default: true + type: boolean + include_timeline: + default: true + type: boolean + include_follow_ups: + default: true + type: boolean + create_as_live_doc: + default: false + type: boolean required: - space - title @@ -49671,6 +36125,22 @@ components: type: string repository: $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + labels: + description: The issue labels + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + issue_type: + $ref: '#/components/schemas/create_github_issue_task_params_issue_type' + parent_issue_number: + description: The parent issue number for sub-issue linking + nullable: true + type: string + custom_fields_mapping: + description: Custom field mappings. Can contain liquid markup and need to + be valid JSON + nullable: true + type: string required: - repository - title @@ -49704,6 +36174,7 @@ components: description: The due date type: string required: + - issue_type - repository - title type: object @@ -49854,6 +36325,15 @@ components: template_id: description: The Google Doc file ID to use as a template. type: string + include_overview: + default: true + type: boolean + include_timeline: + default: true + type: boolean + include_follow_ups: + default: true + type: boolean required: - file_id type: object @@ -50008,6 +36488,15 @@ components: permissions: description: Page permissions JSON type: string + include_overview: + default: true + type: boolean + include_timeline: + default: true + type: boolean + include_follow_ups: + default: true + type: boolean required: - title type: object @@ -50111,6 +36600,16 @@ components: description: Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting type: boolean + recording_mode: + description: "The video layout for the bot's recording (e.g. speaker_view,\ + \ gallery_view, gallery_view_v2, audio_only)" + enum: + - speaker_view + - gallery_view + - gallery_view_v2 + - audio_only + nullable: true + type: string post_to_incident_timeline: type: boolean post_to_slack_channels: @@ -50281,6 +36780,19 @@ components: JSON nullable: true type: string + retry_count: + default: 0 + description: Number of times to retry on rate-limit (HTTP 429) responses + (0-4). 0 disables retry. + example: 3 + type: integer + retry_wait_time: + default: 1 + description: "Seconds to wait before each retry (1-15). Retry-After header\ + \ is honored when present and <= 90s, taking the larger of retry_wait_time\ + \ and the header value." + example: 2 + type: integer required: - issue_type - project_key @@ -50334,12 +36846,57 @@ components: JSON nullable: true type: string + retry_count: + default: 0 + description: Number of times to retry on rate-limit (HTTP 429) responses + (0-4). 0 disables retry. + example: 3 + type: integer + retry_wait_time: + default: 1 + description: "Seconds to wait before each retry (1-15). Retry-After header\ + \ is honored when present and <= 90s, taking the larger of retry_wait_time\ + \ and the header value." + example: 2 + type: integer required: - parent_issue_id - project_key - subtask_issue_type - title type: object + attach_retrospective_pdf_to_jira_issue_task_params: + properties: + task_type: + enum: + - attach_retrospective_pdf_to_jira_issue + type: string + integration: + $ref: '#/components/schemas/create_jira_issue_task_params_integration' + issue_id: + description: The issue id + type: string + filename: + description: The attachment filename + type: string + required: + - issue_id + type: object + attach_retrospective_pdf_to_freshservice_ticket_task_params: + properties: + task_type: + enum: + - attach_retrospective_pdf_to_freshservice_ticket + type: string + ticket_id: + description: The Freshservice ticket id + type: string + filename: + description: The attachment filename + type: string + required: + - ticket_id + type: object create_linear_issue_task_params: properties: task_type: @@ -50367,6 +36924,11 @@ components: assign_user_email: description: The assigned user's email type: string + custom_fields_mapping: + description: Custom field mappings. Can contain liquid markup and need to + be valid JSON + nullable: true + type: string required: - state - team @@ -50398,6 +36960,11 @@ components: assign_user_email: description: The assigned user's email type: string + custom_fields_mapping: + description: Custom field mappings. Can contain liquid markup and need to + be valid JSON + nullable: true + type: string required: - parent_issue_id - state @@ -50435,6 +37002,16 @@ components: description: Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting type: boolean + recording_mode: + description: "The video layout for the bot's recording (e.g. speaker_view,\ + \ gallery_view, gallery_view_v2, audio_only)" + enum: + - speaker_view + - gallery_view + - gallery_view_v2 + - audio_only + nullable: true + type: string post_to_incident_timeline: type: boolean post_to_slack_channels: @@ -50467,8 +37044,8 @@ components: - "false" type: string required: + - team - title - - workspace type: object create_microsoft_teams_chat_task_params: properties: @@ -50496,8 +37073,9 @@ components: - members type: object add_microsoft_teams_tab_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/add_slack_bookmark_task_params_anyOf' + - $ref: '#/components/schemas/add_slack_bookmark_task_params_anyOf_1' properties: task_type: enum: @@ -50532,6 +37110,152 @@ components: - channel - team type: object + add_microsoft_teams_chat_tab_task_params: + properties: + task_type: + enum: + - add_microsoft_teams_chat_tab + type: string + chat: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + title: + description: The tab title + type: string + link: + description: The tab link + type: string + required: + - chat + - link + - title + type: object + create_google_chat_space_task_params: + properties: + task_type: + enum: + - create_google_chat_space + type: string + title: + type: string + description: + type: string + audience: + description: Target audience resource name (e.g. audiences/default). Leave + blank for private space. + type: string + required: + - title + type: object + send_google_chat_message_task_params: + properties: + task_type: + enum: + - send_google_chat_message + type: string + spaces: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + text: + type: string + thread_key: + description: Thread key to reply within a thread. Messages with the same + thread key are grouped together + nullable: true + type: string + required: + - spaces + - text + type: object + send_google_chat_attachments_task_params: + properties: + task_type: + enum: + - send_google_chat_attachments + type: string + spaces: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + attachments: + type: string + required: + - attachments + - spaces + type: object + invite_to_google_chat_space_task_params: + properties: + task_type: + enum: + - invite_to_google_chat_space + type: string + space: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + emails: + description: Comma separated list of emails to invite + type: string + required: + - emails + - space + type: object + archive_google_chat_spaces_task_params: + properties: + task_type: + enum: + - archive_google_chat_spaces + type: string + spaces: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + required: + - spaces + type: object + rename_google_chat_space_task_params: + properties: + task_type: + enum: + - rename_google_chat_space + type: string + space: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + title: + type: string + required: + - space + - title + type: object + update_google_chat_space_description_task_params: + properties: + task_type: + enum: + - update_google_chat_space_description + type: string + space: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + description: + description: The space description. Supports liquid markup + type: string + required: + - description + - space + type: object + change_google_chat_space_privacy_task_params: + properties: + task_type: + enum: + - change_google_chat_space_privacy + type: string + space: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + audience: + description: Target audience resource name (e.g. audiences/default). Leave + blank to make private. + nullable: true + type: string + required: + - space + type: object archive_microsoft_teams_channels_task_params: properties: task_type: @@ -50613,43 +37337,38 @@ components: - title type: object send_microsoft_teams_message_task_params: - anyOf: [] - nullable: true + properties: + channels: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + required: + - channels + send_microsoft_teams_chat_message_task_params: properties: task_type: enum: - - send_microsoft_teams_message + - send_microsoft_teams_chat_message type: string - channels: + chats: items: - properties: - id: - type: string - name: - type: string - type: object + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' type: array text: description: The message text type: string required: + - chats - text type: object send_microsoft_teams_blocks_task_params: - anyOf: [] - nullable: true properties: - task_type: - enum: - - send_microsoft_teams_blocks - type: string - attachments: - description: Support liquid markup. Needs to be a valid JSON string after - liquid is parsed - type: string + channels: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array required: - - attachments - type: object + - channels update_notion_page_task_params: properties: task_type: @@ -50707,6 +37426,8 @@ components: enum: - update_confluence_page type: string + integration: + $ref: '#/components/schemas/create_confluence_page_task_params_integration' file_id: description: The Confluence page ID type: string @@ -50721,6 +37442,15 @@ components: type: string template: $ref: '#/components/schemas/update_confluence_page_task_params_template' + include_overview: + default: true + type: boolean + include_timeline: + default: true + type: boolean + include_follow_ups: + default: true + type: boolean required: - file_id type: object @@ -50823,8 +37553,9 @@ components: - title type: object create_shortcut_story_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/create_shortcut_story_task_params_anyOf' + - $ref: '#/components/schemas/create_shortcut_story_task_params_anyOf_1' properties: task_type: enum: @@ -50950,6 +37681,16 @@ components: description: Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting type: boolean + recording_mode: + description: "The video layout for the bot's recording (e.g. speaker_view,\ + \ gallery_view, gallery_view_v2, audio_only)" + enum: + - speaker_view + - gallery_view + - gallery_view_v2 + - audio_only + nullable: true + type: string post_to_incident_timeline: type: boolean post_to_slack_channels: @@ -51032,6 +37773,8 @@ components: description: description: The task description type: string + list: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' tags: description: The task tags type: string @@ -51052,6 +37795,7 @@ components: nullable: true type: string required: + - list - title type: object create_motion_task_task_params: @@ -51073,9 +37817,8 @@ components: description: The task description type: string labels: - items: - type: string - type: array + description: The task labels + type: string priority: $ref: '#/components/schemas/create_jira_issue_task_params_priority' duration: @@ -51120,6 +37863,20 @@ components: description: Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting type: boolean + recording_mode: + description: "The video layout for the bot's recording (e.g. speaker_view,\ + \ gallery_view, gallery_view_v2, audio_only)" + enum: + - speaker_view + - gallery_view + - gallery_view_v2 + - audio_only + nullable: true + type: string + enable_zoom_bot_auto_join: + description: Allow the Rootly bot to start recording without waiting for + host approval + type: boolean post_to_incident_timeline: type: boolean post_to_slack_channels: @@ -51130,8 +37887,9 @@ components: - topic type: object get_github_commits_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/get_github_commits_task_params_anyOf' + - $ref: '#/components/schemas/get_github_commits_task_params_anyOf_1' properties: task_type: enum: @@ -51172,8 +37930,9 @@ components: - past_duration type: object get_gitlab_commits_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/get_github_commits_task_params_anyOf' + - $ref: '#/components/schemas/get_gitlab_commits_task_params_anyOf' properties: task_type: enum: @@ -51350,6 +38109,19 @@ components: items: $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' type: array + retry_count: + default: 0 + description: Number of times to retry on HTTP 429 responses (0-4). 0 disables + retry. + example: 3 + type: integer + retry_wait_time: + default: 1 + description: "Seconds to wait before each retry (1-15). Retry-After header\ + \ is honored when present and <= 90s, taking the larger of retry_wait_time\ + \ and the header value." + example: 2 + type: integer required: - succeed_on_status - url @@ -51393,9 +38165,34 @@ components: required: - channels type: object + invite_to_microsoft_teams_channel_rootly_task_params: + properties: + task_type: + enum: + - invite_to_microsoft_teams_channel_rootly + type: string + team: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + channel: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + escalation_policy_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + service_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + user_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + group_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + schedule_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - channel + - team + type: object invite_to_slack_channel_pagerduty_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/auto_assign_role_pagerduty_task_params_anyOf_1' + - $ref: '#/components/schemas/auto_assign_role_pagerduty_task_params_anyOf' properties: task_type: enum: @@ -51435,8 +38232,10 @@ components: - channels type: object invite_to_slack_channel_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/invite_to_slack_channel_task_params_anyOf' + - $ref: '#/components/schemas/invite_to_slack_channel_task_params_anyOf_1' + - $ref: '#/components/schemas/invite_to_slack_channel_task_params_anyOf_2' properties: task_type: enum: @@ -51572,6 +38371,90 @@ components: required: - message type: object + create_jsmops_alert_task_params: + properties: + task_type: + enum: + - create_jsmops_alert + type: string + message: + description: Message of the alert + type: string + description: + description: Description field of the alert that is generally used to provide + a detailed information about the alert + nullable: true + type: string + teams: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + users: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + schedules: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + escalations: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + priority: + default: P3 + enum: + - P3 + - P1 + - P2 + - P4 + - P5 + - auto + type: string + details: + description: Details payload. Can contain liquid markup and need to be valid + JSON + nullable: true + type: string + required: + - message + type: object + page_jsmops_on_call_responders_task_params: + properties: + task_type: + enum: + - page_jsmops_on_call_responders + type: string + title: + description: Incident title. + nullable: true + type: string + message: + description: Message of the incident + type: string + description: + description: Description field of the incident that is generally used to + provide a detailed information about the incident + type: string + teams: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + users: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + priority: + default: P3 + enum: + - P3 + - P1 + - P2 + - P4 + - P5 + - auto + type: string + type: object update_opsgenie_alert_task_params: properties: alert_id: @@ -51636,6 +38519,7 @@ components: - P4 - P5 - auto + - "" nullable: true type: string required: @@ -51655,6 +38539,8 @@ components: $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' group_target: $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + functionality_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' alert_urgency_id: description: Alert urgency ID type: string @@ -51666,7 +38552,13 @@ components: type: string escalation_note: type: string + create_new_alert: + default: false + description: "When true, always create a new alert instead of re-paging\ + \ the alert that triggered the workflow" + type: boolean required: + - alert_urgency_id - summary type: object page_pagerduty_on_call_responders_task_params: @@ -51714,8 +38606,9 @@ components: - service type: object page_victor_ops_on_call_responders_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/page_victor_ops_on_call_responders_task_params_anyOf' + - $ref: '#/components/schemas/page_victor_ops_on_call_responders_task_params_anyOf_1' properties: task_type: enum: @@ -51816,6 +38709,14 @@ components: $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' status_page_id: type: string + status_page_ids: + description: "Publishes the update to every listed status page (requires\ + \ the status-page-v3-limited-bulk-publish feature). When set, it takes\ + \ precedence over status_page_id and the first entry becomes status_page_id." + items: + type: string + maxItems: 50 + type: array integration_payload: description: Additional API Payload you can pass to statuspage.io for example. Can contain liquid markup and need to be valid JSON @@ -51870,7 +38771,7 @@ components: properties: task_type: enum: - - rename_slack_channel + - change_slack_channel_privacy type: string channel: $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' @@ -51880,8 +38781,8 @@ components: - public type: string required: + - channel - privacy - - title type: object run_command_heroku_task_params: properties: @@ -52019,8 +38920,10 @@ components: - workspace type: object send_slack_message_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/send_slack_message_task_params_anyOf' + - $ref: '#/components/schemas/invite_to_slack_channel_task_params_anyOf' + - $ref: '#/components/schemas/invite_to_slack_channel_task_params_anyOf_1' properties: task_type: enum: @@ -52346,14 +39249,36 @@ components: issue_id: description: The issue id type: string + repository: + $ref: '#/components/schemas/update_github_issue_task_params_repository' title: description: The issue title type: string body: description: The issue body type: string + labels: + description: The issue labels + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + labels_mode: + default: replace + description: How to apply labels. 'replace' (default) overwrites all existing + labels. 'append' adds to existing labels without removing them. + enum: + - replace + - append + type: string + issue_type: + $ref: '#/components/schemas/create_github_issue_task_params_issue_type' completion: $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + custom_fields_mapping: + description: Custom field mappings. Can contain liquid markup and need to + be valid JSON + nullable: true + type: string required: - completion - issue_id @@ -52519,6 +39444,8 @@ components: enum: - update_jira_issue type: string + integration: + $ref: '#/components/schemas/create_jira_issue_task_params_integration' issue_id: description: The issue id type: string @@ -52557,6 +39484,19 @@ components: JSON nullable: true type: string + retry_count: + default: 0 + description: Number of times to retry on rate-limit (HTTP 429) responses + (0-4). 0 disables retry. + example: 3 + type: integer + retry_wait_time: + default: 1 + description: "Seconds to wait before each retry (1-15). Retry-After header\ + \ is honored when present and <= 90s, taking the larger of retry_wait_time\ + \ and the header value." + example: 2 + type: integer required: - issue_id - project_key @@ -52589,6 +39529,11 @@ components: assign_user_email: description: The assigned user's email type: string + custom_fields_mapping: + description: Custom field mappings. Can contain liquid markup and need to + be valid JSON + nullable: true + type: string required: - issue_id type: object @@ -52877,8 +39822,8 @@ components: default: incident enum: - incident - - post_mortem - action_item + - post_mortem - pulse - alert type: string @@ -52889,13 +39834,12 @@ components: \ :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id,\ \ :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id,\ \ :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id,\ - \ :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"\ - (action_item) kind can only match [:id, :jira_issue_id, :asana_task_id,\ - \ :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id,\ - \ :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id,\ - \ :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\"\ - , \"(pulse) kind can only match [:id]\", \"(alert) kind can only match\ - \ [:id]\"]" + \ :clickup_task_id]\", \"(action_item) kind can only match [:id, :jira_issue_id,\ + \ :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id,\ + \ :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id,\ + \ :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\"\ + , \"(post_mortem) kind can only match [:id]\", \"(pulse) kind can only\ + \ match [:id]\", \"(alert) kind can only match [:id]\"]" enum: - id - slug @@ -52930,8 +39874,10 @@ components: - workflow type: object send_slack_blocks_task_params: - anyOf: [] - nullable: true + anyOf: + - $ref: '#/components/schemas/send_slack_message_task_params_anyOf' + - $ref: '#/components/schemas/invite_to_slack_channel_task_params_anyOf' + - $ref: '#/components/schemas/invite_to_slack_channel_task_params_anyOf_1' properties: task_type: enum: @@ -53137,6 +40083,11 @@ components: prompt: description: The prompt to send to Anthropic type: string + max_tokens: + description: Maximum number of tokens to generate. Defaults to 4000 when + omitted + minimum: 1 + type: integer required: - model - prompt @@ -53194,6 +40145,10 @@ components: properties: data: $ref: '#/components/schemas/workflow_task_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -53211,6 +40166,140 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object + new_workflow_action_item_form_field_condition: + properties: + data: + $ref: '#/components/schemas/new_workflow_action_item_form_field_condition_data' + required: + - data + type: object + update_workflow_action_item_form_field_condition: + properties: + data: + $ref: '#/components/schemas/update_workflow_action_item_form_field_condition_data' + required: + - data + type: object + workflow_action_item_form_field_condition: + properties: + workflow_id: + description: The workflow for this condition + type: string + form_field_id: + description: The custom field for this condition + type: string + action_item_condition: + default: ANY + description: The trigger condition + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + values: + items: + description: The value to associate with the custom field trigger + type: string + type: array + selected_catalog_entity_ids: + items: + description: The selected catalog entities for select and multi_select + kinds + type: string + type: array + selected_functionality_ids: + items: + description: The selected functionalities for select and multi_select + kinds + type: string + type: array + selected_group_ids: + items: + description: The selected groups (teams) for select and multi_select kinds + type: string + type: array + selected_option_ids: + items: + description: The selected option id for select and multi_select kinds + type: string + type: array + selected_service_ids: + items: + description: The selected services for select and multi_select kinds + type: string + type: array + selected_user_ids: + items: + description: The selected user id for select and multi_select kinds + type: integer + type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array + required: + - action_item_condition + - form_field_id + - selected_catalog_entity_ids + - selected_option_ids + - selected_user_ids + - workflow_id + type: object + workflow_action_item_form_field_condition_response: + properties: + data: + $ref: '#/components/schemas/workflow_action_item_form_field_condition_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + workflow_action_item_form_field_condition_list: + properties: + data: + items: + $ref: '#/components/schemas/workflow_action_item_form_field_condition_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -53272,6 +40361,10 @@ components: properties: data: $ref: '#/components/schemas/workflow_custom_field_selection_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -53289,6 +40382,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -53367,6 +40464,21 @@ components: description: The selected user id for select and multi_select kinds type: integer type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array required: - form_field_id - incident_condition @@ -53379,6 +40491,10 @@ components: properties: data: $ref: '#/components/schemas/workflow_form_field_condition_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -53396,6 +40512,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -53433,6 +40553,7 @@ components: type: string slug: description: The slug of the workflow group. + readOnly: true type: string description: description: A description of the workflow group. @@ -53455,6 +40576,10 @@ components: properties: data: $ref: '#/components/schemas/workflow_group_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -53472,6 +40597,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -53545,6 +40674,10 @@ components: properties: data: $ref: '#/components/schemas/workflow_run_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -53562,6 +40695,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -53592,8 +40729,9 @@ components: \ causes_added, causes_removed, causes_updated, timeline_updated, status_page_timeline_updated,\ \ role_assignments_updated, role_assignments_added, role_assignments_removed,\ \ slack_command, slack_channel_created, slack_channel_converted, microsoft_teams_channel_created,\ - \ subscribers_updated, subscribers_added, subscribers_removed, user_joined_slack_channel,\ - \ user_left_slack_channel" + \ microsoft_teams_chat_created, google_chat_space_created, subscribers_updated,\ + \ subscribers_added, subscribers_removed, user_joined_slack_channel,\ + \ user_left_slack_channel, meeting_summary_created" type: string type: array incident_visibilities: @@ -53797,6 +40935,26 @@ components: - SET - UNSET type: string + incident_condition_label: + default: ANY + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + incident_condition_label_use_regexp: + default: false + type: boolean + incident_labels: + items: + type: string + type: array incident_post_mortem_condition_cause: default: ANY description: "[DEPRECATED] Use incident_condition_cause instead" @@ -54068,6 +41226,26 @@ components: - SET - UNSET type: string + incident_condition_label: + default: ANY + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + incident_condition_label_use_regexp: + default: false + type: boolean + incident_labels: + items: + type: string + type: array incident_post_mortem_condition_cause: default: ANY description: "[DEPRECATED] Use incident_condition_cause instead" @@ -54354,6 +41532,26 @@ components: - SET - UNSET type: string + incident_condition_label: + default: ANY + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + incident_condition_label_use_regexp: + default: false + type: boolean + incident_labels: + items: + type: string + type: array incident_condition_summary: enum: - SET @@ -54564,6 +41762,24 @@ components: items: type: string type: array + alert_condition_urgency: + default: ANY + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + alert_urgency_ids: + items: + format: uuid + type: string + type: array alert_condition_payload: default: ANY enum: @@ -54592,6 +41808,8 @@ components: items: $ref: '#/components/schemas/alert_trigger_params_alert_field_conditions_inner' type: array + alert_payload_conditions: + $ref: '#/components/schemas/alert_trigger_params_alert_payload_conditions' required: - trigger_type type: object @@ -54711,6 +41929,7 @@ components: type: string slug: description: The slug of the workflow + readOnly: true type: string description: description: The description of the workflow @@ -54827,6 +42046,10 @@ components: properties: data: $ref: '#/components/schemas/workflow_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -54844,6 +42067,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -54885,6 +42112,8 @@ components: - DE - NL - NZ + - SE + - CH - GB - US type: string @@ -54905,6 +42134,13 @@ components: caller_greeting: description: The caller greeting message of the live_call_router type: string + unavailable_responder_message: + description: The message played to the caller when a responder doesn't answer + and the call moves on to the next person in the escalation. Leave blank + to use the default message. + maxLength: 300 + nullable: true + type: string waiting_music_url: description: The waiting music URL of the live_call_router enum: @@ -54929,6 +42165,21 @@ components: should_auto_resolve_alert_on_call_end: description: This overrides the delay (seconds) in escalation levels type: boolean + notify_via_sms: + description: Whether responders are also notified via SMS when this router + pages them + type: boolean + notify_via_push_notification: + description: Whether responders are also notified via push notification + when this router pages them + type: boolean + informational_notification_message: + description: "Optional message included in the SMS/push notification. Supports\ + \ variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name\ + \ }}." + maxLength: 160 + nullable: true + type: string alert_urgency_id: description: This is used in escalation paths to determine who to page type: string @@ -54960,6 +42211,10 @@ components: properties: data: $ref: '#/components/schemas/live_call_router_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -54977,6 +42232,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55027,12 +42286,20 @@ components: notification_target_id: type: string notification_target_type: + description: The type of the notification target. Please contact support + if you encounter issues using `Functionality` as a target type. enum: - User - Group - Service - EscalationPolicy + - Functionality type: string + owner_group_ids: + description: List of team IDs that own this heartbeat + items: + type: string + type: array enabled: description: Whether to trigger alerts when heartbeat is expired. type: boolean @@ -55054,11 +42321,13 @@ components: description: Email address to receive heartbeat pings. type: string last_pinged_at: - description: When the heartbeat was last pinged. + description: Last persisted heartbeat ping timestamp. Accepted pings may + be coalesced for up to 30 seconds. nullable: true type: string expires_at: - description: When heartbeat expires + description: "Persisted expiry deadline, including up to 30 seconds of coalescing\ + \ grace." nullable: true type: string created_at: @@ -55084,6 +42353,10 @@ components: properties: data: $ref: '#/components/schemas/heartbeat_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55101,6 +42374,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55178,6 +42455,12 @@ components: description: The Jira issue URL. nullable: true type: string + created_by: + allOf: + - $ref: '#/components/schemas/user_flat_response' + description: User who created this action item + nullable: true + type: object created_at: description: Date of creation type: string @@ -55193,6 +42476,10 @@ components: properties: data: $ref: '#/components/schemas/incident_action_item_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55210,6 +42497,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55252,6 +42543,10 @@ components: properties: data: $ref: '#/components/schemas/incident_custom_field_selection_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55269,6 +42564,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55313,6 +42612,10 @@ components: properties: data: $ref: '#/components/schemas/incident_event_functionality_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55330,6 +42633,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55374,6 +42681,10 @@ components: properties: data: $ref: '#/components/schemas/incident_event_service_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55391,6 +42702,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55440,6 +42755,10 @@ components: properties: data: $ref: '#/components/schemas/incident_event_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55457,6 +42776,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55510,6 +42833,10 @@ components: properties: data: $ref: '#/components/schemas/incident_feedback_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55527,6 +42854,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55589,6 +42920,21 @@ components: description: The selected users for select and multi_select kinds type: integer type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array required: - form_field_id - incident_id @@ -55597,6 +42943,10 @@ components: properties: data: $ref: '#/components/schemas/incident_form_field_selection_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55614,6 +42964,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55669,6 +43023,10 @@ components: properties: data: $ref: '#/components/schemas/incident_permission_set_boolean_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55686,6 +43044,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55736,6 +43098,10 @@ components: properties: data: $ref: '#/components/schemas/incident_permission_set_resource_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55753,6 +43119,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55779,6 +43149,7 @@ components: type: string slug: description: The incident permission set slug. + readOnly: true type: string description: description: The incident permission set description. @@ -55809,13 +43180,16 @@ components: required: - created_at - name - - slug - updated_at type: object incident_permission_set_response: properties: data: $ref: '#/components/schemas/incident_permission_set_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55833,6 +43207,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -55924,6 +43302,10 @@ components: properties: data: $ref: '#/components/schemas/incident_post_mortem_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -55941,6 +43323,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -56006,6 +43392,10 @@ components: properties: data: $ref: '#/components/schemas/incident_retrospective_step_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -56056,6 +43446,10 @@ components: properties: data: $ref: '#/components/schemas/incident_role_task_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -56073,6 +43467,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -56099,6 +43497,7 @@ components: type: string slug: description: The slug of the incident role + readOnly: true type: string summary: description: The summary of the incident role @@ -56133,6 +43532,10 @@ components: properties: data: $ref: '#/components/schemas/incident_role_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -56150,6 +43553,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -56195,6 +43602,12 @@ components: description: For Statuspage.io integrated pages auto publishes a tweet for your update type: boolean + status_page_components: + description: Affected status page components recorded on the event and their + statuses + items: + $ref: '#/components/schemas/incident_status_page_event_status_page_components_inner' + type: array started_at: description: Date of start type: string @@ -56214,6 +43627,10 @@ components: properties: data: $ref: '#/components/schemas/incident_status_page_event_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -56231,6 +43648,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -56257,11 +43678,16 @@ components: type: string slug: description: The slug of the incident type + readOnly: true type: string description: description: The description of the incident type nullable: true type: string + public_description: + description: The status page description of the incident type + nullable: true + type: string color: description: The hex color of the incident type nullable: true @@ -56288,6 +43714,11 @@ components: $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' nullable: true type: array + properties: + description: Array of property values for this incident type. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array created_at: description: Date of creation type: string @@ -56303,6 +43734,10 @@ components: properties: data: $ref: '#/components/schemas/incident_type_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -56320,6 +43755,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -56425,6 +43864,7 @@ components: type: string slug: description: The slug of the incident + readOnly: true type: string parent_incident_id: description: ID of parent incident @@ -56572,7 +44012,7 @@ components: zoom_meeting_global_dial_in_numbers: description: Zoom meeting global dial-in numbers items: - type: string + $ref: '#/components/schemas/incident_zoom_meeting_global_dial_in_numbers_inner' nullable: true type: array google_drive_id: @@ -56595,6 +44035,74 @@ components: description: Google meeting URL nullable: true type: string + microsoft_teams_meeting_id: + description: Microsoft Teams meeting ID + nullable: true + type: string + microsoft_teams_meeting_url: + description: Microsoft Teams meeting URL + nullable: true + type: string + microsoft_teams_channel_id: + description: Microsoft Teams channel ID + nullable: true + type: string + microsoft_teams_channel_name: + description: Microsoft Teams channel name + nullable: true + type: string + microsoft_teams_channel_url: + description: Microsoft Teams channel URL + nullable: true + type: string + microsoft_teams_channel_short_url: + description: Microsoft Teams channel short URL + nullable: true + type: string + microsoft_teams_chat_id: + description: Microsoft Teams chat ID + nullable: true + type: string + microsoft_teams_chat_url: + description: Microsoft Teams chat URL + nullable: true + type: string + microsoft_teams_team_id: + description: Microsoft Teams team ID + nullable: true + type: string + google_chat_space_id: + description: Google Chat space ID + nullable: true + type: string + google_chat_space_name: + description: Google Chat space name + nullable: true + type: string + google_chat_space_url: + description: Google Chat space URL + nullable: true + type: string + google_chat_space_short_url: + description: Google Chat space short URL + nullable: true + type: string + google_chat_space_archived: + description: Whether the Google Chat space is archived + nullable: true + type: boolean + google_chat_space_domain_id: + description: Google Chat space domain ID + nullable: true + type: string + webex_meeting_id: + description: Webex meeting ID + nullable: true + type: string + webex_meeting_url: + description: Webex meeting URL + nullable: true + type: string jira_issue_key: description: Jira issue key nullable: true @@ -56912,7 +44420,6 @@ components: type: string required: - created_at - - slug - title - updated_at type: object @@ -56920,6 +44427,10 @@ components: properties: data: $ref: '#/components/schemas/incident_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -56937,6 +44448,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -56990,6 +44505,7 @@ components: nullable: true type: string last: + nullable: true type: string required: - first @@ -56998,9 +44514,227 @@ components: - prev - self type: object + import_meeting_recording: + properties: + source: + description: Import source (currently only "recall_desktop_sdk") + enum: + - recall_desktop_sdk + type: string + recall_recording_id: + description: External recording UUID (required when source is recall_desktop_sdk) + format: uuid + type: string + platform: + description: Meeting platform + enum: + - zoom + - google_meet + - microsoft_teams + - webex + type: string + started_at: + description: When the recording started + format: date-time + nullable: true + type: string + ended_at: + description: When the recording ended + format: date-time + nullable: true + type: string + meeting_url: + description: Original meeting URL + nullable: true + type: string + required: + - platform + - recall_recording_id + - source + type: object + start_session_request: + properties: + platform: + description: Meeting platform + enum: + - zoom + - google_meet + - microsoft_teams + - webex + type: string + title: + description: Human-readable label for the recording session + nullable: true + type: string + type: object + start_session_response: + properties: + data: + $ref: '#/components/schemas/start_session_response_data' + type: object + meeting_recording_transcript_word: + properties: + text: + description: Transcribed word + type: string + start_timestamp: + description: Start time in seconds from recording start + type: number + end_timestamp: + description: End time in seconds from recording start + type: number + required: + - text + type: object + meeting_recording_transcript_segment: + properties: + speaker: + description: Speaker label (e.g. Speaker 1) + type: string + words: + description: Timestamped words spoken by this speaker + items: + $ref: '#/components/schemas/meeting_recording_transcript_word' + type: array + required: + - speaker + - words + type: object + meeting_recording: + properties: + platform: + description: Meeting platform + enum: + - zoom + - google_meet + - microsoft_teams + - webex + type: string + session_number: + description: "Session number within the incident for this platform (starts\ + \ at 1, increments on re-invite)" + type: integer + status: + description: Current recording lifecycle status + enum: + - pending + - recording + - paused + - call_ended + - analyzing + - completed + - failed + type: string + started_at: + description: When the bot started recording (null if bot never joined) + format: date-time + nullable: true + type: string + ended_at: + description: When the recording ended + format: date-time + nullable: true + type: string + duration_minutes: + description: Recording duration in minutes (null if not started) + nullable: true + type: number + speaker_count: + description: Number of unique speakers detected in the transcript + type: integer + word_count: + description: Total word count across all transcript segments + type: integer + transcript_summary: + description: AI-generated summary of the meeting transcript (null if no + transcript or not yet analyzed) + nullable: true + type: string + title: + description: Human-readable label for the recording session + nullable: true + type: string + meeting_url: + description: Original meeting URL + nullable: true + type: string + video_url: + description: Signed URL to stream/download the video recording + nullable: true + type: string + created_by: + description: "Source that created the recording (e.g. desktop_sdk, recall_bot)" + nullable: true + type: string + created_at: + description: When the recording session was created + format: date-time + type: string + updated_at: + description: When the recording session was last updated + format: date-time + type: string + required: + - created_at + - platform + - session_number + - status + - updated_at + type: object + meeting_recording_detail: + allOf: + - $ref: '#/components/schemas/meeting_recording' + - properties: + transcript: + $ref: '#/components/schemas/meeting_recording_detail_allOf_transcript' + recall_upload_id: + description: Recall upload identifier + nullable: true + type: string + recordable_id: + description: UUID of the associated recordable (e.g. incident) + nullable: true + type: string + recordable_type: + description: Type of the associated recordable (e.g. Incident) + nullable: true + type: string + type: object + type: object + meeting_recording_detail_response: + properties: + data: + $ref: '#/components/schemas/meeting_recording_detail_response_data' + required: + - data + type: object + meeting_recording_response: + properties: + data: + $ref: '#/components/schemas/meeting_recording_response_data' + required: + - data + type: object + meeting_recording_list: + properties: + data: + items: + $ref: '#/components/schemas/meeting_recording_response_data' + type: array + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + required: + - data + type: object meta: properties: + next_cursor: + nullable: true + type: string current_page: + nullable: true type: integer next_page: nullable: true @@ -57019,6 +44753,224 @@ components: - total_count - total_pages type: object + oncall: + properties: + escalation_policy_id: + description: ID of the escalation policy + type: string + escalation_policy_name: + description: Name of the escalation policy + type: string + escalation_policy_path_id: + description: ID of the escalation policy path + nullable: true + type: string + escalation_policy_path_name: + description: Name of the escalation policy path + nullable: true + type: string + notification_type: + description: Notification type of the escalation path (audible or quiet) + enum: + - audible + - quiet + nullable: true + type: string + is_default_path: + description: Whether this is the default escalation path + nullable: true + type: boolean + escalation_level: + description: Level within the escalation policy + type: integer + schedule_id: + description: ID of the schedule + nullable: true + type: string + schedule_name: + description: Name of the schedule + nullable: true + type: string + user_id: + description: ID of the on-call user + type: integer + starts_at: + description: Start datetime of the on-call shift + format: date-time + type: string + ends_at: + description: End datetime of the on-call shift + format: date-time + type: string + required: + - ends_at + - escalation_policy_id + - escalation_policy_name + - starts_at + - user_id + type: object + oncall_list: + properties: + data: + items: + $ref: '#/components/schemas/oncall_list_data_inner' + type: array + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + oncall_relationships: + properties: + user: + $ref: '#/components/schemas/oncall_relationships_user' + schedule: + $ref: '#/components/schemas/oncall_relationships_schedule' + escalation_policy: + $ref: '#/components/schemas/oncall_relationships_escalation_policy' + type: object + new_on_call_pay_report: + properties: + data: + $ref: '#/components/schemas/new_on_call_pay_report_data' + required: + - data + type: object + update_on_call_pay_report: + properties: + data: + $ref: '#/components/schemas/update_on_call_pay_report_data' + required: + - data + type: object + on_call_pay_report: + properties: + status: + description: The current status of the report. + enum: + - processing + - generated + - downloaded + type: string + start_date: + description: The start date of the report period. + format: date + type: string + end_date: + description: The end date of the report period. + format: date + type: string + total_duration: + description: Total on-call duration in seconds. + type: integer + users_count: + description: Number of users included in the report. + type: integer + currency: + description: The currency code for monetary values. + type: string + pay_type: + description: The pay calculation type. + enum: + - hourly + - daily + type: string + hourly_rate_cents: + description: Hourly pay rate in cents. + type: integer + daily_rate_cents: + description: Daily pay rate in cents. + type: integer + total_pay_cents: + description: Total pay amount in cents. + type: integer + include_shadow: + description: Whether shadow shifts are included. + type: boolean + show_individual_shift_data: + description: Whether individual shift data is shown. + type: boolean + has_single_rate: + description: Whether a single rate is applied to all users. + type: boolean + enabled_granular_time_breakdown: + description: Whether granular time breakdown is enabled. + type: boolean + last_generated_at: + description: When the report was last generated. + format: date-time + nullable: true + type: string + time_zone: + description: The IANA timezone used to compute day and weekend boundaries + for this report. Defaults to the team's timezone. + nullable: true + type: string + use_responders_time_zone: + description: "When true, each responder's personal timezone is used for\ + \ their pay calculation; otherwise the report-wide time_zone is used." + type: boolean + csv_file_url: + description: Download URL for the generated CSV report. Null until the report + is generated. + format: uri + nullable: true + type: string + xlsx_file_url: + description: Download URL for the generated XLSX report. Null until the + report is generated. + format: uri + nullable: true + type: string + created_at: + format: date-time + type: string + updated_at: + format: date-time + type: string + required: + - created_at + - end_date + - start_date + - status + - updated_at + type: object + on_call_pay_report_response: + properties: + data: + $ref: '#/components/schemas/on_call_pay_report_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + on_call_pay_report_list: + properties: + data: + items: + $ref: '#/components/schemas/on_call_pay_report_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object new_on_call_shadow: properties: data: @@ -57080,6 +45032,10 @@ components: properties: data: $ref: '#/components/schemas/on_call_shadow_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57097,6 +45053,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -57123,6 +45083,7 @@ components: type: string slug: description: The role slug. + readOnly: true type: string system_role: description: The kind of role @@ -57201,6 +45162,7 @@ components: - create - update - read + - delete type: string type: array api_keys_permissions: @@ -57306,6 +45268,15 @@ components: - delete type: string type: array + functionalities_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array webhooks_permissions: items: enum: @@ -57324,6 +45295,15 @@ components: - delete type: string type: array + catalogs_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array created_at: type: string updated_at: @@ -57331,13 +45311,16 @@ components: required: - created_at - name - - slug - updated_at type: object on_call_role_response: properties: data: $ref: '#/components/schemas/on_call_role_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57355,6 +45338,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -57428,6 +45415,10 @@ components: properties: data: $ref: '#/components/schemas/override_shift_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57445,6 +45436,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -57474,6 +45469,10 @@ components: properties: data: $ref: '#/components/schemas/shift_override_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57521,6 +45520,10 @@ components: properties: data: $ref: '#/components/schemas/playbook_task_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57538,6 +45541,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -57621,6 +45628,10 @@ components: properties: data: $ref: '#/components/schemas/playbook_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57638,6 +45649,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -57664,6 +45679,7 @@ components: type: string slug: description: The slugified name of the postmortem template + readOnly: true type: string default: description: Default selected template when editing a postmortem @@ -57710,6 +45726,10 @@ components: properties: data: $ref: '#/components/schemas/post_mortem_template_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57727,6 +45747,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -57800,6 +45824,10 @@ components: properties: data: $ref: '#/components/schemas/pulse_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57817,11 +45845,46 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + receipt: + example: + reason: no_route_matched + resource_type: resource_type + resource_id: resource_id + state: pending + properties: + state: + description: Delivery state of the receipt. + enum: + - pending + - done + - failed + type: string + reason: + description: Reason a receipt failed. Present when state is failed. + enum: + - no_route_matched + - deduplicated + - suppressed + - validation_error + type: string + resource_type: + description: Type of the referenced resource (present when set). + type: string + resource_id: + description: ID of the referenced resource (present when set). + type: string + required: + - state + type: object update_retrospective_configuration: properties: data: @@ -57866,6 +45929,10 @@ components: properties: data: $ref: '#/components/schemas/retrospective_configuration_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57875,6 +45942,10 @@ components: items: $ref: '#/components/schemas/retrospective_configuration_list_data_inner' type: array + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57920,6 +45991,10 @@ components: properties: data: $ref: '#/components/schemas/retrospective_process_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -57937,6 +46012,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -57965,6 +46044,7 @@ components: type: string slug: description: The slug of the step + readOnly: true type: string description: description: The description of the step @@ -58001,6 +46081,10 @@ components: properties: data: $ref: '#/components/schemas/retrospective_step_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -58018,6 +46102,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -58044,6 +46132,7 @@ components: type: string slug: description: The role slug. + readOnly: true type: string incident_permission_set_id: description: Associated incident permissions set. @@ -58286,6 +46375,70 @@ components: - delete type: string type: array + catalogs_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + sub_statuses_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + edge_connector_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + slas_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + paging_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + incident_communication_permissions: + items: + enum: + - create + - read + - update + - delete + - send + type: string + type: array + communication_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array created_at: type: string updated_at: @@ -58293,13 +46446,16 @@ components: required: - created_at - name - - slug - updated_at type: object role_response: properties: data: $ref: '#/components/schemas/role_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -58317,6 +46473,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -58372,6 +46532,10 @@ components: properties: data: $ref: '#/components/schemas/schedule_rotation_active_day_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array type: object schedule_rotation_active_day_list: properties: @@ -58387,6 +46551,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -58441,6 +46609,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -58450,6 +46622,10 @@ components: properties: data: $ref: '#/components/schemas/schedule_rotation_user_list_data_inner' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -58526,15 +46702,15 @@ components: schedule_rotationable_attributes: $ref: '#/components/schemas/new_schedule_rotation_data_attributes_schedule_rotationable_attributes' start_time: - description: ISO8601 date and time when rotation starts. Shifts will only - be created after this time. - format: date + description: RFC3339 date-time when rotation starts. Shifts will only be + created after this time. + format: date-time nullable: true type: string end_time: - description: ISO8601 date and time when rotation ends. Shifts will only - be created before this time. - format: date + description: RFC3339 date-time when rotation ends. Shifts will only be created + before this time. + format: date-time nullable: true type: string required: @@ -58547,6 +46723,10 @@ components: properties: data: $ref: '#/components/schemas/schedule_rotation_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -58564,6 +46744,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -58608,6 +46792,45 @@ components: owner_user_id: description: ID of user assigned as owner of the schedule type: integer + sync_linear_enabled: + description: Whether the schedule is synced with Linear + type: boolean + include_shadows_in_slack_notifications: + description: Whether shadow users are included in Slack notifications and + user group syncing. Requires `slack_channel` to be set; otherwise this + value is forced to false on save. + type: boolean + shift_start_notifications_enabled: + description: Whether shift-start notifications are enabled. Requires `slack_channel` + to be set; otherwise this value is forced to false on save. + type: boolean + shift_update_notifications_enabled: + description: Whether shift-update notifications are enabled. Requires `slack_channel` + to be set; otherwise this value is forced to false on save. + type: boolean + shift_report_enabled: + description: Whether the weekly shift summary report is enabled. Requires + `slack_channel` to be set; otherwise this value is forced to false on + save. + type: boolean + shift_report_day_of_week: + description: Day of week the weekly shift summary is sent + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + type: string + shift_report_time_of_day: + description: "Time of day the weekly shift summary is sent, in HH:MM 24-hour\ + \ format" + type: string + shift_report_time_zone: + description: IANA time zone used for the weekly shift summary + type: string created_at: description: Date of creation type: string @@ -58624,6 +46847,10 @@ components: properties: data: $ref: '#/components/schemas/schedule_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -58641,6 +46868,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -58734,13 +46965,26 @@ components: type: string slug: description: The slug of the service + readOnly: true + type: string + managed_by: + description: "How this service is managed (provenance): web, api, terraform,\ + \ etc. Read-only." + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync type: string description: description: The description of the service nullable: true type: string public_description: - description: The public description of the service + description: The status page description of the service nullable: true type: string notify_emails: @@ -58870,6 +47114,12 @@ components: type: boolean incident_broadcast_channel: $ref: '#/components/schemas/service_incident_broadcast_channel' + properties: + description: Array of property values for this service. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + nullable: true + type: array created_at: description: Date of creation type: string @@ -58885,6 +47135,10 @@ components: properties: data: $ref: '#/components/schemas/service_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -58902,11 +47156,55 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + bulk_upsert_services: + properties: + entities: + description: "Services to upsert, matched by external_id. Max 100 per request;\ + \ external_ids unique within a batch. Only attributes present are written\ + \ (managed-fields semantics)." + items: + $ref: '#/components/schemas/bulk_upsert_services_entities_inner' + type: array + required: + - entities + type: object + bulk_upsert_services_response: + properties: + data: + items: + $ref: '#/components/schemas/bulk_upsert_services_response_data_inner' + type: array + type: object + bulk_upsert_services_error: + properties: + errors: + items: + $ref: '#/components/schemas/bulk_upsert_environments_error_errors_inner' + type: array + required: + - errors + type: object + bulk_destroy_services: + description: "Two mutually exclusive modes. Pass exactly one of: external_ids\ + \ (delete specific records) or managed_by (prune all managed records not in\ + \ keep set)." + oneOf: + - $ref: '#/components/schemas/bulk_destroy_catalog_entities_oneOf' + - $ref: '#/components/schemas/bulk_destroy_environments_oneOf' + bulk_destroy_services_response: + properties: + data: + $ref: '#/components/schemas/bulk_destroy_catalog_entities_response_data' + type: object new_severity: properties: data: @@ -58928,6 +47226,7 @@ components: type: string slug: description: The slug of the severity + readOnly: true type: string description: description: The description of the severity @@ -58982,6 +47281,10 @@ components: properties: data: $ref: '#/components/schemas/severity_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -58999,6 +47302,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -59025,6 +47332,9 @@ components: is_override: description: Denotes shift is an override shift type: boolean + is_shadow: + description: Denotes shift is a shadow shift + type: boolean user_id: description: ID of user on shift nullable: true @@ -59032,6 +47342,7 @@ components: required: - ends_at - is_override + - is_shadow - rotation_id - schedule_id - starts_at @@ -59042,6 +47353,14 @@ components: items: $ref: '#/components/schemas/shift_list_data_inner' type: array + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59050,10 +47369,401 @@ components: shift_override: $ref: '#/components/schemas/shift_relationships_shift_override' user: - $ref: '#/components/schemas/shift_relationships_user' + $ref: '#/components/schemas/oncall_relationships_user' assignee: $ref: '#/components/schemas/shift_relationships_assignee' type: object + new_shift_coverage_request: + properties: + data: + $ref: '#/components/schemas/new_shift_coverage_request_data' + required: + - data + type: object + shift_coverage_request: + properties: + schedule_id: + description: ID of schedule + nullable: false + type: string + shift_id: + description: ID of the shift being covered + nullable: false + type: string + original_shift_user_id: + description: ID of the user whose shift is being covered + nullable: false + type: integer + created_by_user_id: + description: ID of the user who created the coverage request + nullable: false + type: integer + starts_at: + description: Start datetime of the coverage request + nullable: false + type: string + ends_at: + description: End datetime of the coverage request + nullable: false + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + schedule: + allOf: + - $ref: '#/components/schemas/schedule_response' + description: Schedule metadata + nullable: false + type: object + shift: + allOf: + - $ref: '#/components/schemas/shift' + description: Shift metadata + nullable: false + type: object + original_shift_user: + allOf: + - $ref: '#/components/schemas/user_response' + description: User whose shift is being covered + nullable: false + type: object + created_by_user: + allOf: + - $ref: '#/components/schemas/user_response' + description: User who created the coverage request + nullable: false + type: object + required: + - created_by_user_id + - ends_at + - original_shift_user_id + - schedule_id + - shift_id + - starts_at + type: object + shift_coverage_request_response: + properties: + data: + $ref: '#/components/schemas/shift_coverage_request_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + shift_coverage_request_list: + properties: + data: + items: + $ref: '#/components/schemas/shift_coverage_request_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + slack_channel: + properties: + id: + type: string + slack_channel_name: + type: string + slack_channel_id: + type: string + slack_team_id: + type: string + created_at: + type: string + updated_at: + type: string + required: + - created_at + - id + - slack_channel_id + - slack_channel_name + - slack_team_id + - updated_at + type: object + new_status_page_announcement: + properties: + data: + $ref: '#/components/schemas/new_status_page_announcement_data' + required: + - data + type: object + update_status_page_announcement: + properties: + data: + $ref: '#/components/schemas/update_status_page_announcement_data' + required: + - data + type: object + status_page_announcement: + properties: + status_page_id: + description: ID of the status page the announcement was posted to + type: string + title: + description: Title of the announcement + type: string + body: + description: Body of the announcement + type: string + user_id: + description: ID of the user who posted the announcement + nullable: true + type: integer + published_at: + description: Date the announcement was published + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + required: + - body + - created_at + - published_at + - status_page_id + - title + - updated_at + type: object + status_page_announcement_response: + properties: + data: + $ref: '#/components/schemas/status_page_announcement_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + status_page_announcement_list: + properties: + data: + items: + $ref: '#/components/schemas/status_page_announcement_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object + new_status_page_component_group: + properties: + data: + $ref: '#/components/schemas/new_status_page_component_group_data' + required: + - data + type: object + update_status_page_component_group: + properties: + data: + $ref: '#/components/schemas/update_status_page_component_group_data' + required: + - data + type: object + status_page_component_group: + properties: + status_page_id: + type: string + name: + description: Name of the component group + type: string + description: + description: Description of the component group + nullable: true + type: string + position: + description: Position of the group on the status page's top-level list + minimum: 1 + type: integer + collapsed_by_default: + description: Whether the group renders collapsed on the public page + type: boolean + created_at: + description: Date of creation + format: date-time + type: string + updated_at: + description: Date of last update + format: date-time + type: string + required: + - created_at + - name + - position + - status_page_id + - updated_at + type: object + status_page_component_group_response: + properties: + data: + $ref: '#/components/schemas/status_page_component_group_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + status_page_component_group_list: + properties: + data: + items: + $ref: '#/components/schemas/status_page_component_group_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object + new_status_page_component: + properties: + data: + $ref: '#/components/schemas/new_status_page_component_data' + required: + - data + type: object + update_status_page_component: + properties: + data: + $ref: '#/components/schemas/update_status_page_component_data' + required: + - data + type: object + status_page_component: + properties: + status_page_id: + type: string + status_page_component_group_id: + description: ID of the component group the component belongs to + nullable: true + type: string + name: + description: Name of the component (derived from the source for catalog-backed + components) + nullable: true + type: string + description: + description: Description of the component (derived from the source for catalog-backed + components) + nullable: true + type: string + position: + description: Position of the component + minimum: 1 + type: integer + source_type: + description: Catalog source type backing the component (null for ad-hoc + components) + nullable: true + type: string + source_id: + description: ID of the catalog source backing the component (null for ad-hoc + components) + nullable: true + type: string + status: + description: Latest recorded status of the component + enum: + - operational + - degraded_performance + - partial_outage + - major_outage + - maintenance + - impacted + nullable: true + type: string + created_at: + description: Date of creation + format: date-time + type: string + updated_at: + description: Date of last update + format: date-time + type: string + required: + - created_at + - position + - status_page_id + - updated_at + type: object + status_page_component_response: + properties: + data: + $ref: '#/components/schemas/status_page_component_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + status_page_component_list: + properties: + data: + items: + $ref: '#/components/schemas/status_page_component_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object new_status_page_template: properties: data: @@ -59075,6 +47785,10 @@ components: title: description: Title of the template type: string + update_title: + description: Title that will be used for the status page update + nullable: true + type: string body: description: Description of the event the template will populate type: string @@ -59117,6 +47831,10 @@ components: properties: data: $ref: '#/components/schemas/status_page_template_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59134,6 +47852,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -59160,6 +47882,7 @@ components: type: string slug: description: The slug of the status page + readOnly: true type: string public_title: description: The public title of the status page @@ -59251,6 +47974,16 @@ components: - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified nullable: true type: string + section_order: + description: Order of sections on the status page + items: + enum: + - maintenance + - system_status + - incidents + type: string + nullable: true + type: array website_url: description: Website URL nullable: true @@ -59291,6 +48024,14 @@ components: items: type: string type: array + cname_records: + additionalProperties: + type: string + description: CNAME records mapping external domain names to their DNS target + values. These are populated asynchronously after setting external_domain_names. + nullable: true + readOnly: true + type: object enabled: description: Enabled / Disable the status page nullable: true @@ -59310,6 +48051,10 @@ components: properties: data: $ref: '#/components/schemas/status_page_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59327,6 +48072,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -59352,11 +48101,28 @@ components: description: The name of the team type: string slug: + readOnly: true + type: string + managed_by: + description: "How this team is managed (provenance): web, api, terraform,\ + \ etc. Read-only." + enum: + - web + - admin_web + - api + - terraform + - pulumi + - backstage + - catalog_sync type: string description: description: The description of the team nullable: true type: string + public_description: + description: The status page description of the team + nullable: true + type: string notify_emails: description: Emails to attach to the team items: @@ -59460,6 +48226,23 @@ components: description: Auto add members to incident channel when team is attached nullable: true type: boolean + auto_add_members_scope: + description: "Visibility-scoped auto-add behavior. Only present when the\ + \ `enable_scoped_incident_channel_auto_add` feature flag is on for the\ + \ organization. When set, it overrides `auto_add_members_when_attached`." + enum: + - "off" + - public_only + - public_and_test + - all + nullable: true + type: string + properties: + description: Array of property values for this team. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + nullable: true + type: array created_at: description: Date of creation type: string @@ -59475,6 +48258,10 @@ components: properties: data: $ref: '#/components/schemas/team_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59492,11 +48279,55 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + bulk_upsert_teams: + properties: + entities: + description: "Teams to upsert, matched by external_id. Max 100 per request;\ + \ external_ids unique within a batch. Only attributes present are written\ + \ (managed-fields semantics)." + items: + $ref: '#/components/schemas/bulk_upsert_teams_entities_inner' + type: array + required: + - entities + type: object + bulk_upsert_teams_response: + properties: + data: + items: + $ref: '#/components/schemas/bulk_upsert_teams_response_data_inner' + type: array + type: object + bulk_upsert_teams_error: + properties: + errors: + items: + $ref: '#/components/schemas/bulk_upsert_environments_error_errors_inner' + type: array + required: + - errors + type: object + bulk_destroy_teams: + description: "Two mutually exclusive modes. Pass exactly one of: external_ids\ + \ (delete specific records) or managed_by (prune all managed records not in\ + \ keep set)." + oneOf: + - $ref: '#/components/schemas/bulk_destroy_catalog_entities_oneOf' + - $ref: '#/components/schemas/bulk_destroy_environments_oneOf' + bulk_destroy_teams_response: + properties: + data: + $ref: '#/components/schemas/bulk_destroy_catalog_entities_response_data' + type: object new_user_notification_rule: properties: data: @@ -59549,9 +48380,19 @@ components: - device - non_critical_device - slack + - google_chat + - microsoft_teams type: string nullable: false type: array + notification_type: + description: "Type of notification rule (audible or quiet). Audible notifications\ + \ use sound/vibration to alert users, while quiet notifications are silent." + enum: + - audible + - quiet + nullable: false + type: string created_at: description: Date of creation type: string @@ -59563,6 +48404,10 @@ components: properties: data: $ref: '#/components/schemas/user_notification_rule_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59580,6 +48425,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -59628,6 +48477,10 @@ components: properties: data: $ref: '#/components/schemas/user_phone_number_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59645,6 +48498,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -59703,6 +48560,10 @@ components: properties: data: $ref: '#/components/schemas/user_email_address_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59720,6 +48581,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -59762,39 +48627,59 @@ components: - updated_at type: object user_flat_response: - description: Flat user object as returned by serializer + description: Flat user attributes as returned by UserFlatSerializer (no nested + associations) properties: id: description: User ID type: integer + name: + description: Display name + type: string email: - description: User email + description: Email address + type: string + phone: + description: Primary phone number + nullable: true + type: string + phone_2: + description: Secondary phone number + nullable: true type: string first_name: - description: User first name + description: First name nullable: true type: string last_name: - description: User last name + description: Last name + nullable: true + type: string + preferred_name: + description: Preferred name nullable: true type: string full_name: - description: User full name + description: Full name nullable: true type: string full_name_with_team: - description: User full name with team + description: Full name with team context + nullable: true + type: string + slack_id: + description: Slack user ID nullable: true type: string time_zone: - description: User time zone + description: IANA time zone nullable: true type: string created_at: - description: User creation timestamp + description: Date of creation type: string updated_at: - description: User last update timestamp + description: Date of last update type: string required: - created_at @@ -59830,6 +48715,10 @@ components: properties: data: $ref: '#/components/schemas/user_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59847,6 +48736,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -59858,6 +48751,19 @@ components: type: string payload: type: string + status: + description: Delivery status + enum: + - pending + - success + - failed + type: string + response_status: + description: "HTTP status code recorded for the delivery attempt. It is\ + \ null before the first attempt. For SSRF and transport failures, Rootly\ + \ generates this code because no destination response was received." + nullable: true + type: integer delivered_at: nullable: true type: string @@ -59872,12 +48778,18 @@ components: - delivered_at - endpoint_id - payload + - response_status + - status - updated_at type: object webhooks_delivery_response: properties: data: $ref: '#/components/schemas/webhooks_delivery_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59895,6 +48807,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59919,6 +48835,7 @@ components: type: string slug: description: The slug of the endpoint + readOnly: true type: string url: description: The URL of the endpoint. @@ -59949,12 +48866,15 @@ components: - incident_event.updated - incident_event.deleted - alert.created + - alert.updated - pulse.created + - shift.started - genius_workflow_run.queued - genius_workflow_run.started - genius_workflow_run.completed - genius_workflow_run.failed - genius_workflow_run.canceled + - audit_log.created type: string type: array secret: @@ -59962,6 +48882,13 @@ components: type: string enabled: type: boolean + custom_headers: + description: "Custom HTTP headers sent with each delivery. Max 10. Reserved\ + \ names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected." + items: + $ref: '#/components/schemas/new_webhooks_endpoint_data_attributes_custom_headers_inner' + maxItems: 10 + type: array created_at: description: Date of creation type: string @@ -59974,7 +48901,6 @@ components: - event_types - name - secret - - slug - updated_at - url type: object @@ -59982,6 +48908,10 @@ components: properties: data: $ref: '#/components/schemas/webhooks_endpoint_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -59999,6 +48929,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -60007,6 +48941,7 @@ components: name: type: string slug: + readOnly: true type: string description: nullable: true @@ -60024,13 +48959,16 @@ components: - created_at - enabled - name - - slug - updated_at type: object status_response: properties: data: $ref: '#/components/schemas/status_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -60048,6 +48986,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -60072,6 +49014,7 @@ components: name: type: string slug: + readOnly: true type: string description: nullable: true @@ -60106,6 +49049,10 @@ components: properties: data: $ref: '#/components/schemas/sub_status_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -60123,6 +49070,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -60165,6 +49116,10 @@ components: properties: data: $ref: '#/components/schemas/incident_sub_status_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -60182,6 +49137,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -60218,6 +49177,10 @@ components: properties: data: $ref: '#/components/schemas/retrospective_process_group_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -60235,6 +49198,10 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links @@ -60271,6 +49238,10 @@ components: properties: data: $ref: '#/components/schemas/retrospective_process_group_step_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data type: object @@ -60288,11 +49259,275 @@ components: allOf: - $ref: '#/components/schemas/meta' type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array required: - data - links - meta type: object + new_sla: + properties: + data: + $ref: '#/components/schemas/new_sla_data' + required: + - data + type: object + update_sla: + properties: + data: + $ref: '#/components/schemas/update_sla_data' + required: + - data + type: object + sla: + properties: + slug: + description: The slug of the SLA + type: string + name: + description: The name of the SLA + type: string + description: + description: A description of the SLA + nullable: true + type: string + position: + description: Position of the SLA for ordering + type: integer + entity_type: + description: The entity type this SLA applies to + enum: + - follow_up + type: string + condition_match_type: + description: Whether all or any conditions must match + enum: + - ALL + - ANY + type: string + manager_role_id: + description: The ID of the manager incident role. Exactly one of `manager_role_id` + or `manager_user_id` must be provided. + format: uuid + nullable: true + type: string + manager_user_id: + description: The ID of the manager user. Exactly one of `manager_role_id` + or `manager_user_id` must be provided. + nullable: true + type: integer + assignment_deadline_days: + description: Number of days for the assignment deadline + type: integer + assignment_deadline_parent_status: + description: The incident parent status that triggers the assignment deadline + type: string + assignment_deadline_sub_status_id: + description: Sub-status for the assignment deadline. Required when custom + lifecycle statuses are enabled on the team. + format: uuid + nullable: true + type: string + assignment_skip_weekends: + description: Whether to skip weekends when calculating the assignment deadline + type: boolean + completion_deadline_days: + description: Number of days for the completion deadline + type: integer + completion_deadline_parent_status: + description: The incident parent status that triggers the completion deadline + type: string + completion_deadline_sub_status_id: + description: Sub-status for the completion deadline. Required when custom + lifecycle statuses are enabled on the team. + format: uuid + nullable: true + type: string + completion_skip_weekends: + description: Whether to skip weekends when calculating the completion deadline + type: boolean + conditions: + description: Conditions that determine which incidents this SLA applies + to + items: + $ref: '#/components/schemas/sla_conditions_inner' + type: array + notification_configurations: + description: Notification timing configurations + items: + $ref: '#/components/schemas/sla_notification_configurations_inner' + type: array + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + required: + - assignment_deadline_days + - assignment_deadline_parent_status + - completion_deadline_days + - completion_deadline_parent_status + - condition_match_type + - created_at + - name + - updated_at + type: object + sla_response: + properties: + data: + $ref: '#/components/schemas/sla_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + sla_list: + properties: + data: + items: + $ref: '#/components/schemas/sla_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object + new_verified_domain: + properties: + data: + $ref: '#/components/schemas/new_verified_domain_data' + required: + - data + type: object + verified_domain: + properties: + domain: + description: The domain name + type: string + verification_status: + description: Verification status + enum: + - pending + - verified + - failing + - expired + type: string + verification_token: + description: The verification token + type: string + txt_host: + description: The TXT record hostname to add + readOnly: true + type: string + txt_value: + description: The TXT record value to add + readOnly: true + type: string + verified_at: + description: When the domain was first verified + nullable: true + type: string + last_checked_at: + description: When the domain was last checked + nullable: true + type: string + last_check_passed_at: + description: When the TXT record was last found + nullable: true + type: string + check_failures_count: + description: Number of consecutive check failures + type: integer + source: + description: How the domain was added + enum: + - manual + - migration + - oauth_auto + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + required: + - created_at + - domain + - txt_host + - txt_value + - updated_at + - verification_status + - verification_token + type: object + verified_domain_response: + properties: + data: + $ref: '#/components/schemas/verified_domain_response_data' + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + type: object + verified_domain_list: + properties: + data: + items: + $ref: '#/components/schemas/verified_domain_response_data' + type: array + links: + allOf: + - $ref: '#/components/schemas/links' + type: object + meta: + allOf: + - $ref: '#/components/schemas/meta' + type: object + included: + items: + $ref: '#/components/schemas/jsonapi_included_resource' + type: array + required: + - data + - links + - meta + type: object + jsonapi_included_resource: + properties: + id: + type: string + type: + type: string + attributes: + additionalProperties: true + type: object + relationships: + additionalProperties: true + type: object + required: + - id + - type + type: object getAlertField_id_parameter: anyOf: - description: Resource UUID @@ -60320,7 +49555,15 @@ components: data: $ref: '#/components/schemas/deleteAlertRoute_200_response_data' type: object - _v1_edge_connectors__edge_connector_id__actions_post_request_action_metadata_parameters_inner: + bulkUpsertCatalogEntities_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_upsert_catalog_entities_error' + bulkDeleteCatalogEntities_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_destroy_catalog_entities_response' + createEdgeConnectorAction_request_action_metadata_parameters_inner: properties: name: type: string @@ -60339,7 +49582,7 @@ components: type: string type: array type: object - _v1_edge_connectors__edge_connector_id__actions_post_request_action_metadata: + createEdgeConnectorAction_request_action_metadata: properties: description: type: string @@ -60347,10 +49590,10 @@ components: type: integer parameters: items: - $ref: '#/components/schemas/_v1_edge_connectors__edge_connector_id__actions_post_request_action_metadata_parameters_inner' + $ref: '#/components/schemas/createEdgeConnectorAction_request_action_metadata_parameters_inner' type: array type: object - _v1_edge_connectors__edge_connector_id__actions_post_request_action: + createEdgeConnectorAction_request_action: properties: name: description: Action name @@ -60362,17 +49605,17 @@ components: - http type: string metadata: - $ref: '#/components/schemas/_v1_edge_connectors__edge_connector_id__actions_post_request_action_metadata' + $ref: '#/components/schemas/createEdgeConnectorAction_request_action_metadata' required: - action_type - name type: object - _v1_edge_connectors__edge_connector_id__actions_post_request: + createEdgeConnectorAction_request: properties: action: - $ref: '#/components/schemas/_v1_edge_connectors__edge_connector_id__actions_post_request_action' + $ref: '#/components/schemas/createEdgeConnectorAction_request_action' type: object - _v1_edge_connectors__edge_connector_id__actions__id__patch_request_action: + updateEdgeConnectorAction_request_action: properties: name: type: string @@ -60384,12 +49627,37 @@ components: metadata: type: object type: object - _v1_edge_connectors__edge_connector_id__actions__id__patch_request: + updateEdgeConnectorAction_request: properties: action: - $ref: '#/components/schemas/_v1_edge_connectors__edge_connector_id__actions__id__patch_request_action' + $ref: '#/components/schemas/updateEdgeConnectorAction_request_action' type: object - _v1_edge_connectors_post_request_edge_connector: + createEdgeConnector_request_data_attributes_filters: + additionalProperties: false + description: "Event filters. OR within dimension, AND across dimensions." + properties: + group_ids: + description: Filter by group UUIDs + items: + type: string + type: array + service_ids: + description: Filter by service UUIDs + items: + type: string + type: array + environment_ids: + description: Filter by environment UUIDs + items: + type: string + type: array + functionality_ids: + description: Filter by functionality UUIDs + items: + type: string + type: array + type: object + createEdgeConnector_request_data_attributes: properties: name: description: Connector name @@ -60408,15 +49676,31 @@ components: items: type: string type: array + filters: + $ref: '#/components/schemas/createEdgeConnector_request_data_attributes_filters' required: - name type: object - _v1_edge_connectors_post_request: + createEdgeConnector_request_data: properties: - edge_connector: - $ref: '#/components/schemas/_v1_edge_connectors_post_request_edge_connector' + type: + enum: + - edge_connectors + type: string + attributes: + $ref: '#/components/schemas/createEdgeConnector_request_data_attributes' + required: + - attributes + - type + type: object + createEdgeConnector_request: + properties: + data: + $ref: '#/components/schemas/createEdgeConnector_request_data' + required: + - data type: object - _v1_edge_connectors__id__patch_request_edge_connector: + updateEdgeConnector_request_data_attributes: properties: name: type: string @@ -60431,12 +49715,50 @@ components: items: type: string type: array + filters: + description: Event filters + type: object type: object - _v1_edge_connectors__id__patch_request: + updateEdgeConnector_request_data: properties: - edge_connector: - $ref: '#/components/schemas/_v1_edge_connectors__id__patch_request_edge_connector' + type: + enum: + - edge_connectors + type: string + id: + type: string + attributes: + $ref: '#/components/schemas/updateEdgeConnector_request_data_attributes' + type: object + updateEdgeConnector_request: + properties: + data: + $ref: '#/components/schemas/updateEdgeConnector_request_data' type: object + bulkUpsertEnvironments_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_upsert_environments_error' + bulkDeleteEnvironments_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_destroy_environments_response' + bulkUpsertFunctionalities_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_upsert_functionalities_error' + bulkDeleteFunctionalities_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_destroy_functionalities_response' + bulkUpsertServices_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_upsert_services_error' + bulkDeleteServices_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_destroy_services_response' getTeam_id_parameter: anyOf: - description: Team UUID @@ -60445,6 +49767,50 @@ components: - description: Team slug pattern: "^[a-z0-9_-]+$" type: string + bulkUpsertGroups_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_upsert_teams_error' + bulkDeleteGroups_422_response: + anyOf: + - $ref: '#/components/schemas/errors_list' + - $ref: '#/components/schemas/bulk_destroy_teams_response' + ai_chat_response_data_attributes: + properties: + session_id: + description: AI chat session UUID + format: uuid + type: string + reply: + description: Assistant reply text + nullable: true + type: string + status: + description: Response status (present when user input is required) + enum: + - user_input_required + nullable: true + type: string + required: + - session_id + type: object + ai_chat_response_data: + properties: + id: + description: Session UUID + format: uuid + type: string + type: + enum: + - ai_chat_responses + type: string + attributes: + $ref: '#/components/schemas/ai_chat_response_data_attributes' + required: + - attributes + - id + - type + type: object attach_alert_data_attributes: additionalProperties: false properties: @@ -60469,6 +49835,26 @@ components: - attributes - type type: object + new_alert_data_attributes_notification_targets_inner: + additionalProperties: false + properties: + type: + description: "The type of the notification target. Can be one of Group,\ + \ Service, EscalationPolicy, Functionality, User." + enum: + - User + - Group + - EscalationPolicy + - Service + - Functionality + type: string + id: + description: The identifier of the notification target object. + type: string + required: + - id + - type + type: object new_alert_data_attributes_labels_inner_value: description: Value of the tag oneOf: @@ -60511,51 +49897,9 @@ components: nullable: true type: string source: - description: The source of the alert - enum: - - rootly - - manual - - api - - heartbeat - - web - - slack - - email - - workflow - - live_call_routing - - mobile - - pagerduty - - opsgenie - - victorops - - pagertree - - datadog - - nobl9 - - zendesk - - asana - - clickup - - sentry - - rollbar - - jira - - honeycomb - - service_now - - linear - - grafana - - alertmanager - - google_cloud - - generic_webhook - - cloud_watch - - azure - - splunk - - chronosphere - - app_optics - - bug_snag - - monte_carlo - - nagios - - prtg - - catchpoint - - app_dynamics - - checkly - - new_relic - - gitlab + deprecated: true + description: Deprecated. Accepted for backwards compatibility; new clients + should omit. Defaults to `api`. type: string status: description: "Only available for organizations with Rootly On-Call enabled.\ @@ -60587,6 +49931,12 @@ components: type: string nullable: true type: array + functionality_ids: + description: The Functionality IDs to attach to the alert + items: + type: string + nullable: true + type: array environment_ids: description: The Environment IDs to attach to the alert items: @@ -60617,12 +49967,15 @@ components: type: string notification_target_type: description: "Only available for organizations with Rootly On-Call enabled.\ - \ Can be one of Group, Service, EscalationPolicy, User." + \ Can be one of Group, Service, EscalationPolicy, Functionality, User.\ + \ Please contact support if you encounter issues using `Functionality`\ + \ as a notification target type." enum: - User - Group - EscalationPolicy - Service + - Functionality nullable: true type: string notification_target_id: @@ -60630,6 +49983,19 @@ components: The _identifier_ of the notification target object. nullable: true type: string + notification_targets: + description: "Only available for organizations with Rootly On-Call enabled.\ + \ Page multiple destinations (any combination of Group, Service, EscalationPolicy,\ + \ Functionality, or User) in a single request. `Functionality` targets\ + \ require the `enable_paging_functionalities` feature; a request that\ + \ includes one while it is disabled is rejected. Applies to alert creation\ + \ only. When provided, this takes precedence over the singular `notification_target_type`\ + \ / `notification_target_id` fields." + items: + $ref: '#/components/schemas/new_alert_data_attributes_notification_targets_inner' + minItems: 1 + nullable: true + type: array labels: items: $ref: '#/components/schemas/new_alert_data_attributes_labels_inner' @@ -60649,7 +50015,6 @@ components: $ref: '#/components/schemas/new_alert_data_attributes_alert_field_values_attributes_inner' type: array required: - - source - summary type: object new_alert_data: @@ -60675,51 +50040,9 @@ components: nullable: true type: string source: - description: The source of the alert - enum: - - rootly - - manual - - api - - heartbeat - - web - - slack - - email - - workflow - - live_call_routing - - mobile - - pagerduty - - opsgenie - - victorops - - pagertree - - datadog - - nobl9 - - zendesk - - asana - - clickup - - sentry - - rollbar - - jira - - honeycomb - - service_now - - linear - - grafana - - alertmanager - - google_cloud - - generic_webhook - - cloud_watch - - azure - - splunk - - chronosphere - - app_optics - - bug_snag - - monte_carlo - - nagios - - prtg - - catchpoint - - app_dynamics - - checkly - - new_relic - - gitlab + deprecated: true + description: Deprecated. Accepted for backwards compatibility; new clients + should omit. Defaults to `api`. type: string summary: description: The summary of the alert @@ -60740,6 +50063,12 @@ components: type: string nullable: true type: array + functionality_ids: + description: The Functionality IDs to attach to the alert + items: + type: string + nullable: true + type: array environment_ids: description: The Environment IDs to attach to the alert items: @@ -60797,8 +50126,48 @@ components: $ref: '#/components/schemas/update_alert_data_attributes' required: - attributes - - source - - summary + - type + type: object + alert_alert_field_values_inner: + properties: + id: + description: Unique ID of the alert field value + type: string + value: + description: Value for the alert field + type: string + alert_field_id: + description: ID of the custom alert field + type: string + alert_id: + description: ID of the alert + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + required: + - alert_field_id + - alert_id + - created_at + - id + - updated_at + - value + type: object + alert_alerting_targets_inner: + properties: + id: + description: ID of the alerting target + type: string + type: + description: "Type of the alerting target (e.g. team, user, escalation_policy,\ + \ service, functionality, slack_channel)" + type: string + required: + - id + - type type: object alert_response_data: properties: @@ -60807,50 +50176,6 @@ components: type: string source: description: The source of the alert - enum: - - rootly - - manual - - api - - heartbeat - - web - - slack - - email - - workflow - - live_call_routing - - mobile - - pagerduty - - opsgenie - - victorops - - pagertree - - datadog - - nobl9 - - zendesk - - asana - - clickup - - sentry - - rollbar - - jira - - honeycomb - - service_now - - linear - - grafana - - alertmanager - - google_cloud - - generic_webhook - - cloud_watch - - azure - - splunk - - chronosphere - - app_optics - - bug_snag - - monte_carlo - - nagios - - prtg - - catchpoint - - app_dynamics - - checkly - - new_relic - - gitlab type: string type: enum: @@ -60886,6 +50211,52 @@ components: attributes: $ref: '#/components/schemas/resolve_alert_data_attributes' type: object + snooze_alert_data_attributes: + additionalProperties: false + properties: + delay_minutes: + description: Number of minutes to snooze the alert for + maximum: 10080 + minimum: 1 + type: integer + required: + - delay_minutes + type: object + snooze_alert_data: + properties: + type: + enum: + - alerts + type: string + attributes: + $ref: '#/components/schemas/snooze_alert_data_attributes' + required: + - attributes + - type + type: object + escalate_alert_data_attributes: + additionalProperties: false + properties: + escalation_policy_id: + description: "The ID of the escalation policy to escalate to. If omitted,\ + \ uses the alert's current escalation policy from metadata. Required for\ + \ resolved alerts whose metadata may have been cleared." + type: string + escalation_policy_level: + description: "The escalation policy level to escalate to. If omitted, defaults\ + \ to the next level (same EP) or level 1 (different EP)." + minimum: 1 + type: integer + type: object + escalate_alert_data: + properties: + type: + enum: + - alerts + type: string + attributes: + $ref: '#/components/schemas/escalate_alert_data_attributes' + type: object new_alert_event_data_attributes: additionalProperties: false properties: @@ -60939,6 +50310,88 @@ components: - attributes - type type: object + alert_event_incident: + nullable: true + properties: + id: + type: string + sequential_id: + nullable: true + type: integer + title: + type: string + slug: + type: string + kind: + type: string + status: + type: string + private: + type: boolean + description: + nullable: true + type: string + started_at: + nullable: true + type: string + duration: + description: Duration in seconds. + nullable: true + type: integer + url: + type: string + created_at: + type: string + updated_at: + type: string + type: object + alert_event_schedule_escalation_policies_inner: + properties: + id: + type: string + name: + type: string + created_at: + type: string + updated_at: + type: string + type: object + alert_event_schedule: + nullable: true + properties: + id: + type: string + name: + type: string + description: + nullable: true + type: string + escalation_policies: + items: + $ref: '#/components/schemas/alert_event_schedule_escalation_policies_inner' + type: array + created_at: + type: string + updated_at: + type: string + type: object + alert_event_escalation_target_data: + properties: + id: + type: string + type: + description: "e.g. users, escalation_policies." + type: string + attributes: + type: object + type: object + alert_event_escalation_target: + description: JSON:API-wrapped escalation target (User or EscalationPolicy). + nullable: true + properties: + data: + $ref: '#/components/schemas/alert_event_escalation_target_data' + type: object alert_event_response_data: properties: id: @@ -61028,12 +50481,17 @@ components: - notification_target_id type: string json_path: - description: JSON path expression to extract a specific value from the alert's - payload for evaluation + description: "JSON path expression to extract a specific value from the\ + \ alert's payload for evaluation. For `notification_target_id` only: if\ + \ your account has opted in to Dynamic Notification Targets, this may\ + \ also be a Liquid template that resolves to a notification target id\ + \ at routing time." type: string type: object new_alerts_source_data_attributes_sourceable_attributes: - description: Provide additional attributes for generic_webhook alerts source + description: "Provide additional attributes for the underlying source. `auto_resolve`,\ + \ `resolve_state` and `field_mappings_attributes` apply to generic_webhook\ + \ sources; `accept_threaded_emails` applies to email sources." nullable: true properties: auto_resolve: @@ -61158,19 +50616,26 @@ components: name: description: The name of the alert source type: string + enabled: + description: Whether the alert source is enabled. Disabled sources do not + create alerts from incoming events. + type: boolean source_type: description: The alert source type enum: - email - app_dynamics - catchpoint + - cloudflare - datadog + - dynatrace - alertmanager - google_cloud - grafana - sentry - generic_webhook - cloud_watch + - aws_sns - checkly - azure - new_relic @@ -61250,19 +50715,26 @@ components: name: description: The name of the alert source type: string + enabled: + description: Whether the alert source is enabled. Disabled sources do not + create alerts from incoming events. + type: boolean source_type: description: The alert source type enum: - email - app_dynamics - catchpoint + - cloudflare - datadog + - dynatrace - alertmanager - google_cloud - grafana - sentry - generic_webhook - cloud_watch + - aws_sns - checkly - azure - new_relic @@ -61334,6 +50806,35 @@ components: - attributes - type type: object + alerts_source_sourceable_attributes: + description: "Provide additional attributes for the underlying source. `auto_resolve`,\ + \ `resolve_state` and `field_mappings_attributes` apply to generic_webhook\ + \ sources; `accept_threaded_emails` applies to email sources." + nullable: true + properties: + id: + description: Unique ID of the underlying source. Read-only; it is resolved + from the alert source itself on update. + format: uuid + type: string + auto_resolve: + description: Set this to true to auto-resolve alerts based on field_mappings_attributes + conditions + type: boolean + resolve_state: + description: This value is matched with the value extracted from alerts + payload using JSON path in field_mappings_attributes + nullable: true + type: string + accept_threaded_emails: + description: Set this to false to reject threaded emails + type: boolean + field_mappings_attributes: + description: Specify rules to auto resolve alerts + items: + $ref: '#/components/schemas/new_alerts_source_data_attributes_sourceable_attributes_field_mappings_attributes_inner' + type: array + type: object alerts_source_response_data: properties: id: @@ -61355,10 +50856,12 @@ components: new_alert_route_data_attributes_rules_inner_destinations_inner: properties: target_type: - description: The type of the target + description: The type of the target. Please contact support if you encounter + issues using `Functionality` as a target type. enum: - Service - Group + - Functionality - EscalationPolicy type: string target_id: @@ -61442,6 +50945,7 @@ components: description: The position of the alert routing rule for ordering evaluation type: integer fallback_rule: + default: false description: Whether this is a fallback rule type: boolean destinations: @@ -61494,33 +50998,78 @@ components: attributes: $ref: '#/components/schemas/new_alert_route_data_attributes' type: object - update_alert_route_data_attributes_rules_inner_destinations_inner: + update_alert_route_data_attributes: + additionalProperties: false + properties: + name: + description: The name of the alert route + type: string + enabled: + description: Whether the alert route is enabled + type: boolean + alerts_source_ids: + items: + description: The ID of the alerts source + format: uuid + type: string + type: array + owning_team_ids: + items: + description: The ID of the owning team + format: uuid + type: string + type: array + rules: + items: + $ref: '#/components/schemas/new_alert_route_data_attributes_rules_inner' + type: array + type: object + update_alert_route_data: + properties: + type: + enum: + - alert_routes + type: string + attributes: + $ref: '#/components/schemas/update_alert_route_data_attributes' + required: + - attributes + - type + type: object + patch_alert_route_data_attributes_rules_inner_destinations_inner: properties: id: - description: The ID of the target (for updates) + description: The ID of the destination. Required for updating or deleting + existing destinations. format: uuid type: string + _destroy: + description: Set to true to delete this destination + type: boolean target_type: - description: The type of the target + description: The type of the target. Please contact support if you encounter + issues using `Functionality` as a target type. enum: - Service - Group + - Functionality - EscalationPolicy type: string target_id: description: The ID of the target format: uuid type: string - required: - - target_id - - target_type type: object - update_alert_route_data_attributes_rules_inner_condition_groups_inner_conditions_inner: + patch_alert_route_data_attributes_rules_inner_condition_groups_inner_conditions_inner: properties: id: - description: The ID of the condition (for updates) + description: The ID of the condition. Required for updating or deleting + existing conditions. format: uuid type: string + _destroy: + description: Set to true to delete this condition + type: boolean property_field_condition_type: enum: - is_one_of @@ -61567,32 +51116,36 @@ components: format: uuid nullable: true type: string - required: - - property_field_condition_type - - property_field_type type: object - update_alert_route_data_attributes_rules_inner_condition_groups_inner: + patch_alert_route_data_attributes_rules_inner_condition_groups_inner: properties: id: - description: The ID of the condition group (for updates) + description: The ID of the condition group. Required for updating or deleting + existing condition groups. format: uuid type: string + _destroy: + description: Set to true to delete this condition group + type: boolean position: description: The position of the condition group type: integer conditions: items: - $ref: '#/components/schemas/update_alert_route_data_attributes_rules_inner_condition_groups_inner_conditions_inner' + $ref: '#/components/schemas/patch_alert_route_data_attributes_rules_inner_condition_groups_inner_conditions_inner' type: array - required: - - conditions type: object - update_alert_route_data_attributes_rules_inner: + patch_alert_route_data_attributes_rules_inner: properties: id: - description: The ID of the alert routing rule (for updates) + description: The ID of the alert routing rule. Required for updating or + deleting existing rules. format: uuid type: string + _destroy: + description: "Set to true to delete this rule. When true, only the id field\ + \ is required." + type: boolean name: description: The name of the alert routing rule type: string @@ -61600,22 +51153,19 @@ components: description: The position of the alert routing rule for ordering evaluation type: integer fallback_rule: + default: false description: Whether this is a fallback rule type: boolean destinations: items: - $ref: '#/components/schemas/update_alert_route_data_attributes_rules_inner_destinations_inner' + $ref: '#/components/schemas/patch_alert_route_data_attributes_rules_inner_destinations_inner' type: array condition_groups: items: - $ref: '#/components/schemas/update_alert_route_data_attributes_rules_inner_condition_groups_inner' + $ref: '#/components/schemas/patch_alert_route_data_attributes_rules_inner_condition_groups_inner' type: array - required: - - condition_groups - - destinations - - name type: object - update_alert_route_data_attributes: + patch_alert_route_data_attributes: additionalProperties: false properties: name: @@ -61638,17 +51188,17 @@ components: type: array rules: items: - $ref: '#/components/schemas/update_alert_route_data_attributes_rules_inner' + $ref: '#/components/schemas/patch_alert_route_data_attributes_rules_inner' type: array type: object - update_alert_route_data: + patch_alert_route_data: properties: type: enum: - alert_routes type: string attributes: - $ref: '#/components/schemas/update_alert_route_data_attributes' + $ref: '#/components/schemas/patch_alert_route_data_attributes' required: - attributes - type @@ -61815,10 +51365,12 @@ components: update_alert_routing_rule_data_attributes_destination: properties: target_type: - description: The type of the target + description: The type of the target. Please contact support if you encounter + issues using `Functionality` as a target type. enum: - Service - Group + - Functionality - EscalationPolicy type: string target_id: @@ -61922,10 +51474,12 @@ components: nullable: true properties: target_type: - description: The type of the target + description: The type of the target. Please contact support if you encounter + issues using `Functionality` as a target type. enum: - Service - Group + - Functionality - EscalationPolicy type: string target_id: @@ -62034,9 +51588,250 @@ components: - id - type type: object + new_alert_retrigger_rule_data_attributes_conditions_inner: + properties: + kind: + description: "The operand the condition matches on. Native operands (urgency,\ + \ source, service, group) match by record; alert_field/payload match a\ + \ field value." + enum: + - urgency + - source + - service + - group + - alert_field + - payload + type: string + operator: + description: How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; + alert_field/payload additionally support the string/regex operators. + enum: + - is_one_of + - is_not_one_of + - is_set + - is_not_set + - contains + - does_not_contain + - starts_with + - ends_with + - matches_regex + type: string + record_ids: + description: "For urgency/service/group/source conditions: the IDs of the\ + \ matched records (AlertUrgency, Service, Group, or Alerts::Source)." + items: + format: uuid + type: string + type: array + values: + description: "For source conditions: non-integration source aliases (e.g.\ + \ manual, api). For alert_field/payload conditions: the values to compare\ + \ against." + items: + type: string + type: array + property_field_name: + description: "For alert_field conditions: the alert field id. For payload\ + \ conditions: a JSON Path (e.g. $.priority)." + type: string + required: + - kind + - operator + type: object + new_alert_retrigger_rule_data_attributes: + additionalProperties: false + properties: + name: + description: A human-readable name for the rule + type: string + match_mode: + description: Whether all or any of the conditions must match + enum: + - match-all-rules + - match-any-rule + type: string + timeout_minutes: + description: Re-trigger the alert this many minutes after acknowledgment. + Null means never re-trigger. + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + - 60 + - 90 + - 120 + - 180 + - 240 + - 300 + - 360 + - 720 + - 1440 + nullable: true + type: integer + position: + description: The position of the rule; the first matching rule (by position) + decides the outcome + type: integer + conditions: + description: The conditions that determine which alerts this rule applies + to. An empty array applies to every alert. + items: + $ref: '#/components/schemas/new_alert_retrigger_rule_data_attributes_conditions_inner' + type: array + required: + - name + type: object + new_alert_retrigger_rule_data: + properties: + type: + enum: + - alert_retrigger_rules + type: string + attributes: + $ref: '#/components/schemas/new_alert_retrigger_rule_data_attributes' + required: + - attributes + - type + type: object + update_alert_retrigger_rule_data_attributes: + additionalProperties: false + properties: + name: + description: A human-readable name for the rule + type: string + match_mode: + description: Whether all or any of the conditions must match + enum: + - match-all-rules + - match-any-rule + type: string + timeout_minutes: + description: Re-trigger the alert this many minutes after acknowledgment. + Null means never re-trigger. + enum: + - 10 + - 20 + - 30 + - 40 + - 50 + - 60 + - 90 + - 120 + - 180 + - 240 + - 300 + - 360 + - 720 + - 1440 + nullable: true + type: integer + position: + description: The position of the rule for ordering evaluation + type: integer + conditions: + description: The full desired set of conditions; replaces the rule's existing + conditions. An empty array applies to every alert. + items: + $ref: '#/components/schemas/new_alert_retrigger_rule_data_attributes_conditions_inner' + type: array + type: object + update_alert_retrigger_rule_data: + properties: + type: + enum: + - alert_retrigger_rules + type: string + attributes: + $ref: '#/components/schemas/update_alert_retrigger_rule_data_attributes' + required: + - attributes + - type + type: object + alert_retrigger_rule_conditions_inner: + properties: + id: + description: Unique ID of the condition + format: uuid + type: string + kind: + description: "The operand the condition matches on. Native operands (urgency,\ + \ source, service, group) match by record; alert_field/payload match a\ + \ field value." + enum: + - urgency + - source + - service + - group + - alert_field + - payload + type: string + operator: + description: How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; + alert_field/payload additionally support the string/regex operators. + enum: + - is_one_of + - is_not_one_of + - is_set + - is_not_set + - contains + - does_not_contain + - starts_with + - ends_with + - matches_regex + type: string + record_ids: + description: "For urgency/service/group/source conditions: the IDs of the\ + \ matched records (AlertUrgency, Service, Group, or Alerts::Source)." + items: + format: uuid + type: string + type: array + values: + description: "For source conditions: non-integration source aliases (e.g.\ + \ manual, api). For alert_field/payload conditions: the values to compare\ + \ against." + items: + type: string + type: array + property_field_name: + description: "For alert_field conditions: the alert field id. For payload\ + \ conditions: a JSON Path (e.g. $.priority)." + type: string + required: + - id + - kind + - operator + type: object + alert_retrigger_rule_response_data: + properties: + id: + description: Unique ID of the alert_retrigger_rule + type: string + type: + enum: + - alert_retrigger_rules + type: string + attributes: + allOf: + - $ref: '#/components/schemas/alert_retrigger_rule' + type: object + required: + - attributes + - id + - type + type: object new_alert_field_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the alert field type: string @@ -62058,6 +51853,13 @@ components: update_alert_field_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the alert field type: string @@ -62122,6 +51924,11 @@ components: description: Position of the alert urgency nullable: true type: integer + retrigger_timeout_minutes: + description: "Re-trigger acknowledged alerts of this urgency after N minutes;\ + \ null inherits the workspace default, negative = never." + nullable: true + type: integer required: - description - name @@ -62151,6 +51958,11 @@ components: description: Position of the alert urgency nullable: true type: integer + retrigger_timeout_minutes: + description: "Re-trigger acknowledged alerts of this urgency after N minutes;\ + \ null inherits the workspace default, negative = never." + nullable: true + type: integer type: object update_alert_urgency_data: properties: @@ -62185,14 +51997,16 @@ components: new_alert_group_data_attributes_targets_inner: properties: target_type: - description: The type of the target. + description: The type of the target. Please contact support if you encounter + issues using `Functionality` as a target type. enum: - Group - Service - EscalationPolicy + - Functionality type: string target_id: - description: "id for the Group, Service or EscalationPolicy" + description: "id for the Group, Service, EscalationPolicy or Functionality" format: uuid type: string required: @@ -62270,6 +52084,13 @@ components: new_alert_group_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the alert group type: string @@ -62338,6 +52159,13 @@ components: update_alert_group_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the alert group type: string @@ -62502,6 +52330,158 @@ components: - id - type type: object + new_api_key_data_attributes: + additionalProperties: false + properties: + name: + description: The name of the API key + type: string + description: + description: A description of the API key + nullable: true + type: string + kind: + description: The kind of the API key + enum: + - personal + - team + - organization + type: string + expires_at: + description: The expiration date of the API key (ISO 8601) + format: date-time + type: string + group_id: + description: The group (team) ID. Required when kind is 'team'. + nullable: true + type: string + role_id: + description: The role ID for organization API keys + nullable: true + type: string + on_call_role_id: + description: The on-call role ID for organization API keys + nullable: true + type: string + required: + - expires_at + - kind + - name + type: object + new_api_key_data: + properties: + type: + enum: + - api_keys + type: string + attributes: + $ref: '#/components/schemas/new_api_key_data_attributes' + required: + - attributes + - type + type: object + update_api_key_data_attributes: + additionalProperties: false + properties: + name: + description: The name of the API key + type: string + description: + description: A description of the API key + nullable: true + type: string + expires_at: + description: The expiration date of the API key (ISO 8601) + format: date-time + nullable: true + type: string + type: object + update_api_key_data: + properties: + type: + enum: + - api_keys + type: string + attributes: + $ref: '#/components/schemas/update_api_key_data_attributes' + required: + - attributes + - type + type: object + rotate_api_key_data_attributes: + additionalProperties: false + properties: + expires_at: + description: The new expiration date after rotation (ISO 8601) + format: date-time + nullable: true + type: string + grace_period_minutes: + default: 30 + description: How many minutes to keep the old token valid. Only applies + when the grace period feature is enabled for your organization. Defaults + to 30. + maximum: 1440 + minimum: 0 + type: integer + type: object + rotate_api_key_data: + properties: + type: + enum: + - api_keys + type: string + attributes: + $ref: '#/components/schemas/rotate_api_key_data_attributes' + required: + - attributes + - type + type: object + api_key_response_data: + properties: + id: + description: Unique ID of the API key + type: string + type: + enum: + - api_keys + type: string + attributes: + allOf: + - $ref: '#/components/schemas/api_key' + type: object + required: + - attributes + - id + - type + type: object + api_key_with_token_response_data_attributes: + allOf: + - $ref: '#/components/schemas/api_key' + - properties: + token: + description: The API key token (only shown once) + type: string + required: + - token + type: object + type: object + api_key_with_token_response_data: + properties: + id: + description: Unique ID of the API key + type: string + type: + enum: + - api_keys + type: string + attributes: + $ref: '#/components/schemas/api_key_with_token_response_data_attributes' + required: + - attributes + - id + - type + type: object audits_list_data_inner: properties: id: @@ -62614,6 +52594,13 @@ components: new_catalog_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: type: string description: @@ -62634,6 +52621,11 @@ components: description: Default position of the catalog when displayed in a list. nullable: true type: integer + external_id: + description: An external identifier for this catalog. Must be unique within + the team. + nullable: true + type: string required: - name type: object @@ -62652,6 +52644,13 @@ components: update_catalog_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: type: string description: @@ -62672,6 +52671,11 @@ components: description: Default position of the catalog when displayed in a list. nullable: true type: integer + external_id: + description: An external identifier for this catalog. Must be unique within + the team. + nullable: true + type: string type: object update_catalog_data: properties: @@ -62706,12 +52710,27 @@ components: new_catalog_field_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: type: string kind: enum: - text - reference + - boolean + - service + - functionality + - environment + - group + - cause + - incident_type + - user type: string kind_catalog_id: description: Restricts values to items of specified catalog. @@ -62724,6 +52743,25 @@ components: description: Default position of the item when displayed in a list. nullable: true type: integer + required: + description: Whether the field is required. + type: boolean + catalog_type: + description: The type of catalog the field belongs to. + enum: + - catalog + - cause + - environment + - functionality + - incident_type + - service + - team + type: string + external_id: + description: An external identifier for this catalog field. Must be unique + within the scope. + nullable: true + type: string required: - kind - name @@ -62732,7 +52770,7 @@ components: properties: type: enum: - - catalog_fields + - catalog_properties type: string attributes: $ref: '#/components/schemas/new_catalog_field_data_attributes' @@ -62743,14 +52781,27 @@ components: update_catalog_field_data_attributes: additionalProperties: false properties: - name: - type: string slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: type: string kind: enum: - text - reference + - boolean + - service + - functionality + - environment + - group + - cause + - incident_type + - user type: string kind_catalog_id: description: Restricts values to items of specified catalog. @@ -62760,12 +52811,31 @@ components: description: Default position of the item when displayed in a list. nullable: true type: integer + required: + description: Whether the field is required. + type: boolean + catalog_type: + description: The type of catalog the field belongs to. + enum: + - catalog + - cause + - environment + - functionality + - incident_type + - service + - team + type: string + external_id: + description: An external identifier for this catalog field. Must be unique + within the scope. + nullable: true + type: string type: object update_catalog_field_data: properties: type: enum: - - catalog_fields + - catalog_properties type: string attributes: $ref: '#/components/schemas/update_catalog_field_data_attributes' @@ -62780,7 +52850,7 @@ components: type: string type: enum: - - catalog_fields + - catalog_properties type: string attributes: allOf: @@ -62791,18 +52861,209 @@ components: - id - type type: object + new_catalog_property_data_attributes: + additionalProperties: false + properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + type: string + kind: + enum: + - text + - reference + - boolean + - service + - functionality + - environment + - group + - cause + - incident_type + - user + type: string + kind_catalog_id: + description: Restricts values to items of specified catalog. + nullable: true + type: string + multiple: + description: Whether the attribute accepts multiple values. + type: boolean + position: + description: Default position of the item when displayed in a list. + nullable: true + type: integer + required: + description: Whether the property is required. + type: boolean + catalog_type: + description: The type of catalog the property belongs to. + enum: + - catalog + - cause + - environment + - functionality + - incident_type + - service + - team + type: string + external_id: + description: An external identifier for this catalog property. Must be unique + within the scope. + nullable: true + type: string + required: + - kind + - name + type: object + new_catalog_property_data: + properties: + type: + enum: + - catalog_properties + type: string + attributes: + $ref: '#/components/schemas/new_catalog_property_data_attributes' + required: + - attributes + - type + type: object + update_catalog_property_data_attributes: + additionalProperties: false + properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + type: string + kind: + enum: + - text + - reference + - boolean + - service + - functionality + - environment + - group + - cause + - incident_type + - user + type: string + kind_catalog_id: + description: Restricts values to items of specified catalog. + nullable: true + type: string + position: + description: Default position of the item when displayed in a list. + nullable: true + type: integer + required: + description: Whether the property is required. + type: boolean + catalog_type: + description: The type of catalog the property belongs to. + enum: + - catalog + - cause + - environment + - functionality + - incident_type + - service + - team + type: string + external_id: + description: An external identifier for this catalog property. Must be unique + within the scope. + nullable: true + type: string + type: object + update_catalog_property_data: + properties: + type: + enum: + - catalog_properties + type: string + attributes: + $ref: '#/components/schemas/update_catalog_property_data_attributes' + required: + - attributes + - type + type: object + catalog_property_response_data: + properties: + id: + description: Unique ID of the catalog_property + type: string + type: + enum: + - catalog_properties + type: string + attributes: + allOf: + - $ref: '#/components/schemas/catalog_property' + type: object + required: + - attributes + - id + - type + type: object + new_catalog_entity_data_attributes_properties_inner: + properties: + catalog_property_id: + description: Unique ID of the catalog property + type: string + value: + description: The value for this property + type: string + required: + - catalog_property_id + - value + type: object new_catalog_entity_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: type: string description: nullable: true type: string + public_description: + description: The status page description of the catalog entity + nullable: true + type: string position: description: Default position of the item when displayed in a list. nullable: true type: integer + backstage_id: + description: The Backstage entity ID this catalog entity is linked to. + nullable: true + type: string + external_id: + description: An external identifier for this catalog entity. Must be unique + within the catalog. + nullable: true + type: string + properties: + description: Array of property values for this catalog entity + items: + $ref: '#/components/schemas/new_catalog_entity_data_attributes_properties_inner' + type: array required: - name type: object @@ -62821,15 +53082,40 @@ components: update_catalog_entity_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: type: string description: nullable: true type: string + public_description: + description: The status page description of the catalog entity + nullable: true + type: string position: description: Default position of the item when displayed in a list. nullable: true type: integer + backstage_id: + description: The Backstage entity ID this catalog entity is linked to. + nullable: true + type: string + external_id: + description: An external identifier for this catalog entity. Must be unique + within the catalog. + nullable: true + type: string + properties: + description: Array of property values for this catalog entity + items: + $ref: '#/components/schemas/new_catalog_entity_data_attributes_properties_inner' + type: array type: object update_catalog_entity_data: properties: @@ -62861,8 +53147,138 @@ components: - id - type type: object + bulk_upsert_catalog_entities_entities_inner_fields_inner: + description: Each field entry must include either catalog_field_id or catalog_property_id. + properties: + catalog_field_id: + description: "UUID, slug, or external_id of the catalog field (required\ + \ if catalog_property_id is absent)" + type: string + catalog_property_id: + description: Alias for catalog_field_id (required if catalog_field_id is + absent) + type: string + value: + description: The value for this field + type: string + required: + - value + type: object + bulk_upsert_catalog_entities_entities_inner: + properties: + external_id: + description: External identifier used as the upsert key. Must be unique + within the catalog. + type: string + name: + description: "Required for new entities. Optional for updates (managed-fields:\ + \ omitted attributes are preserved)." + type: string + description: + nullable: true + type: string + public_description: + nullable: true + type: string + backstage_id: + nullable: true + type: string + fields: + description: Property values for this entity. Only mentioned fields are + written; unmentioned fields are preserved. + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_entities_inner_fields_inner' + type: array + required: + - external_id + type: object + bulk_upsert_catalog_entities_response_data_inner: + properties: + id: + type: string + type: + enum: + - catalog_entities + type: string + attributes: + allOf: + - $ref: '#/components/schemas/catalog_entity' + type: object + type: object + bulk_upsert_catalog_entities_error_errors_inner: + properties: + index: + description: Position of the failed entity in the batch + type: integer + external_id: + type: string + errors: + items: + type: string + type: array + required: + - errors + - external_id + - index + type: object + bulk_destroy_catalog_entities_oneOf: + additionalProperties: false + properties: + external_ids: + description: Array of external_ids to delete. Max 100 per request. + items: + minLength: 1 + type: string + minItems: 1 + type: array + required: + - external_ids + type: object + bulk_destroy_catalog_entities_oneOf_1: + additionalProperties: false + properties: + managed_by: + description: Delete all entities with this managed_by value (web/admin_web + not allowed). + enum: + - api + - terraform + - pulumi + - backstage + - catalog_sync + type: string + keep_external_ids: + description: Entities with these external_ids are preserved. + items: + type: string + type: array + required: + - managed_by + type: object + bulk_destroy_catalog_entities_response_data: + properties: + deleted_external_ids: + description: External IDs that were successfully deleted + items: + type: string + type: array + failed_external_ids: + description: "External IDs whose deletion the record itself blocked (e.g.\ + \ minimum-one guard, restrict associations). Records the caller is not\ + \ authorized to destroy are NOT listed here." + items: + type: string + type: array + not_found_external_ids: + description: External IDs that were not found or not accessible to the caller + (external_ids mode only) + items: + type: string + type: array + type: object new_catalog_entity_property_data_attributes: additionalProperties: false + description: Maximum of 50 values allowed per catalog field. properties: catalog_entity_id: type: string @@ -62872,6 +53288,7 @@ components: enum: - text - catalog_entity + - slack type: string value: type: string @@ -62899,6 +53316,7 @@ components: enum: - text - catalog_entity + - slack type: string value: type: string @@ -62933,9 +53351,334 @@ components: - id - type type: object + Builtin_field: + properties: + field_source: + enum: + - builtin + type: string + field_key: + description: Key identifying the builtin field + type: string + required: + - field_key + - field_source + title: Builtin field + Custom_field: + properties: + field_source: + enum: + - custom + type: string + catalog_property_id: + description: ID of the catalog property + type: string + field_key: + description: Ignored for custom fields (auto-derived from catalog property) + type: string + required: + - catalog_property_id + - field_source + title: Custom field + new_catalog_checklist_template_data_attributes_fields_inner: + oneOf: + - $ref: '#/components/schemas/Builtin_field' + - $ref: '#/components/schemas/Custom_field' + type: object + new_catalog_checklist_template_data_attributes_owners_inner: + properties: + id: + description: "User ID for user owners, or field key for field owners" + type: string + type: + description: Type of owner + enum: + - field + - user + type: string + required: + - id + - type + type: object + new_catalog_checklist_template_data_attributes: + additionalProperties: false + properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + description: The name of the checklist template + type: string + description: + description: The description of the checklist template + nullable: true + type: string + catalog_type: + description: The catalog type + enum: + - Service + - Functionality + - Environment + - Group + - Cause + - IncidentType + - Catalog + type: string + scope_type: + description: The scope type + enum: + - Team + - Catalog + type: string + scope_id: + description: The scope ID (team or catalog UUID) + type: string + fields: + description: Template fields. Position is determined by array order. + items: + $ref: '#/components/schemas/new_catalog_checklist_template_data_attributes_fields_inner' + nullable: true + type: array + owners: + description: Template owners + items: + $ref: '#/components/schemas/new_catalog_checklist_template_data_attributes_owners_inner' + nullable: true + type: array + required: + - catalog_type + - name + - scope_type + type: object + new_catalog_checklist_template_data: + properties: + type: + enum: + - catalog_checklist_templates + type: string + attributes: + $ref: '#/components/schemas/new_catalog_checklist_template_data_attributes' + required: + - attributes + - type + type: object + update_catalog_checklist_template_data_attributes: + additionalProperties: false + properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + description: The name of the checklist template + type: string + description: + description: The description of the checklist template + nullable: true + type: string + fields: + description: Template fields. Position is determined by array order. Replaces + all existing fields. + items: + $ref: '#/components/schemas/new_catalog_checklist_template_data_attributes_fields_inner' + nullable: true + type: array + owners: + description: Template owners. Replaces all existing owners. + items: + $ref: '#/components/schemas/new_catalog_checklist_template_data_attributes_owners_inner' + nullable: true + type: array + type: object + update_catalog_checklist_template_data: + properties: + type: + enum: + - catalog_checklist_templates + type: string + attributes: + $ref: '#/components/schemas/update_catalog_checklist_template_data_attributes' + required: + - attributes + - type + type: object + catalog_checklist_template_fields_inner: + properties: + field_source: + description: Source of the field + enum: + - builtin + - custom + type: string + field_key: + description: Key identifying the field + type: string + catalog_property_id: + description: ID of the catalog property for custom fields + nullable: true + type: string + type: object + catalog_checklist_template_owners_inner: + properties: + id: + description: "User ID for user owners, or field key for field owners" + type: string + type: + description: Type of owner + enum: + - field + - user + type: string + type: object + catalog_checklist_template_response_data: + properties: + id: + description: Unique ID of the checklist template + type: string + type: + enum: + - catalog_checklist_templates + type: string + attributes: + allOf: + - $ref: '#/components/schemas/catalog_checklist_template' + type: object + required: + - attributes + - id + - type + type: object + catalog_entity_checklist_checklist_fields_inner_data_attributes: + properties: + catalog_entity_checklist_id: + description: The ID of the parent checklist + type: string + catalog_checklist_template_field_id: + description: The ID of the template field + nullable: true + type: string + field_key: + description: The field key + type: string + checked: + description: Whether the field is checked + type: boolean + value_snapshot: + description: The value snapshot at time of checking + nullable: true + type: object + completed_by_user_id: + description: The ID of the user who checked the field + nullable: true + type: string + completed_at: + description: When the field was checked + nullable: true + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + type: object + catalog_entity_checklist_checklist_fields_inner_data: + properties: + id: + description: ID of the checklist field + type: string + type: + enum: + - catalog_entity_checklist_fields + type: string + attributes: + $ref: '#/components/schemas/catalog_entity_checklist_checklist_fields_inner_data_attributes' + type: object + catalog_entity_checklist_checklist_fields_inner: + properties: + data: + $ref: '#/components/schemas/catalog_entity_checklist_checklist_fields_inner_data' + type: object + catalog_entity_checklist_checklist_owners_inner_data_attributes: + properties: + catalog_entity_checklist_id: + description: The ID of the parent checklist + type: string + owner_user_id: + description: The ID of the owner user + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + type: object + catalog_entity_checklist_checklist_owners_inner_data: + properties: + id: + description: ID of the checklist owner + type: string + type: + enum: + - catalog_entity_checklist_owners + type: string + attributes: + $ref: '#/components/schemas/catalog_entity_checklist_checklist_owners_inner_data_attributes' + type: object + catalog_entity_checklist_checklist_owners_inner: + properties: + data: + $ref: '#/components/schemas/catalog_entity_checklist_checklist_owners_inner_data' + type: object + catalog_entity_checklist_response_data: + properties: + id: + description: Unique ID of the entity checklist + type: string + type: + enum: + - catalog_entity_checklists + type: string + attributes: + allOf: + - $ref: '#/components/schemas/catalog_entity_checklist' + type: object + required: + - attributes + - id + - type + type: object + new_cause_data_attributes_properties_inner: + description: Set a value for a catalog property + properties: + catalog_property_id: + description: Catalog property ID + type: string + value: + description: The property value + type: string + required: + - catalog_property_id + - value + type: object new_cause_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the cause type: string @@ -62943,10 +53686,19 @@ components: description: The description of the cause nullable: true type: string + public_description: + description: The status page description of the cause + nullable: true + type: string position: description: Position of the cause nullable: true type: integer + properties: + description: Array of property values for this cause. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array required: - name type: object @@ -62965,6 +53717,13 @@ components: update_cause_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the cause type: string @@ -62972,10 +53731,19 @@ components: description: The description of the cause nullable: true type: string + public_description: + description: The status page description of the cause + nullable: true + type: string position: description: Position of the cause nullable: true type: integer + properties: + description: Array of property values for this cause. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array type: object update_cause_data: properties: @@ -63010,6 +53778,13 @@ components: new_communications_stage_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the communications stage type: string @@ -63039,6 +53814,13 @@ components: update_communications_stage_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the communications stage type: string @@ -63084,6 +53866,13 @@ components: new_communications_type_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the communications type type: string @@ -63118,6 +53907,13 @@ components: update_communications_type_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the communications type type: string @@ -63284,30 +54080,69 @@ components: - attributes - type type: object - communications_template_communication_template_stages_inner: + communications_template_communication_template_stages_inner_data_attributes_communication_stage: properties: id: - description: ID of the communication template stage - type: string - communication_stage_id: description: The communication stage ID type: string - sms_content: - description: SMS content for the stage - nullable: true + name: + description: The communication stage name type: string - email_subject: - description: Email subject for the stage - nullable: true + type: object + communications_template_communication_template_stages_inner_data_attributes_communication_template: + properties: + id: + description: The communication template ID + type: string + name: + description: The communication template name type: string + type: object + communications_template_communication_template_stages_inner_data_attributes: + properties: email_body: description: Email body for the stage nullable: true type: string + email_subject: + description: Email subject for the stage + nullable: true + type: string slack_content: description: Slack content for the stage nullable: true type: string + sms_content: + description: SMS content for the stage + nullable: true + type: string + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + communication_stage: + $ref: '#/components/schemas/communications_template_communication_template_stages_inner_data_attributes_communication_stage' + communication_template: + $ref: '#/components/schemas/communications_template_communication_template_stages_inner_data_attributes_communication_template' + type: object + communications_template_communication_template_stages_inner_data: + properties: + id: + description: ID of the communication template stage + type: string + type: + enum: + - communications_template_stages + type: string + attributes: + $ref: '#/components/schemas/communications_template_communication_template_stages_inner_data_attributes' + type: object + communications_template_communication_template_stages_inner: + properties: + data: + $ref: '#/components/schemas/communications_template_communication_template_stages_inner_data' type: object communications_template_communication_type: properties: @@ -63766,9 +54601,6 @@ components: label: description: The name of the custom_field type: string - slug: - description: The slug of the custom_field - type: string description: description: The description of the custom_field nullable: true @@ -63842,13 +54674,16 @@ components: new_custom_form_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the custom form. type: string - slug: - description: The custom form slug. Add this to form_field.shown or form_field.required - to associate form fields with custom forms. - type: string description: nullable: true type: string @@ -63876,13 +54711,16 @@ components: update_custom_form_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the custom form. type: string - slug: - description: The custom form slug. Add this to form_field.shown or form_field.required - to associate form fields with custom forms. - type: string description: nullable: true type: string @@ -63974,11 +54812,13 @@ components: type: array type: object new_dashboard_panel_data_attributes_params_datasets_inner_group_by_oneOf: + nullable: true properties: key: enum: - custom_field - incident_role + - alert_field type: string value: type: string @@ -63987,9 +54827,9 @@ components: - value type: object new_dashboard_panel_data_attributes_params_datasets_inner_group_by: - nullable: true oneOf: - - type: string + - nullable: true + type: string - $ref: '#/components/schemas/new_dashboard_panel_data_attributes_params_datasets_inner_group_by_oneOf' new_dashboard_panel_data_attributes_params_datasets_inner_aggregate: nullable: true @@ -64081,603 +54921,1347 @@ components: description: The name of the dashboard_panel nullable: true type: string - params: - $ref: '#/components/schemas/new_dashboard_panel_data_attributes_params' + params: + $ref: '#/components/schemas/new_dashboard_panel_data_attributes_params' + position: + $ref: '#/components/schemas/new_dashboard_panel_data_attributes_position' + required: + - params + type: object + new_dashboard_panel_data: + properties: + type: + enum: + - dashboard_panels + type: string + attributes: + $ref: '#/components/schemas/new_dashboard_panel_data_attributes' + required: + - attributes + - type + type: object + update_dashboard_panel_data_attributes: + additionalProperties: false + properties: + name: + description: The name of the dashboard_panel + nullable: true + type: string + params: + $ref: '#/components/schemas/new_dashboard_panel_data_attributes_params' + position: + $ref: '#/components/schemas/new_dashboard_panel_data_attributes_position' + type: object + update_dashboard_panel_data: + properties: + type: + enum: + - dashboard_panels + type: string + attributes: + $ref: '#/components/schemas/update_dashboard_panel_data_attributes' + type: object + dashboard_panel_response_data: + properties: + id: + description: Unique ID of the dashboard_panel + type: string + type: + enum: + - dashboard_panels + type: string + attributes: + allOf: + - $ref: '#/components/schemas/dashboard_panel' + type: object + required: + - attributes + - id + - type + type: object + new_dashboard_data_attributes: + additionalProperties: false + properties: + name: + description: The name of the dashboard + type: string + description: + description: The description of the dashboard + nullable: true + type: string + owner: + description: The owner type of the dashboard + enum: + - user + - team + type: string + public: + description: Whether the dashboard is public + type: boolean + range: + description: The date range for dashboard panel data + nullable: true + type: string + auto_refresh: + description: Whether the dashboard auto-updates the UI with new data. + type: boolean + color: + description: The hex color of the dashboard + enum: + - '#FCF2CF' + - '#D7F5E1' + - '#E9E2FF' + - '#FAE6E8' + - '#FAEEE6' + nullable: true + type: string + icon: + description: The emoji icon of the dashboard + type: string + period: + description: The grouping period for dashboard panel data + enum: + - day + - week + - month + nullable: true + type: string + required: + - name + - owner + type: object + new_dashboard_data: + properties: + type: + enum: + - dashboards + type: string + attributes: + $ref: '#/components/schemas/new_dashboard_data_attributes' + required: + - attributes + - type + type: object + update_dashboard_data_attributes: + additionalProperties: false + properties: + name: + description: The name of the dashboard + type: string + description: + description: The description of the dashboard + nullable: true + type: string + owner: + description: The owner type of the dashboard + enum: + - user + - team + type: string + public: + description: Whether the dashboard is public + type: boolean + range: + description: The date range for dashboard panel data + nullable: true + type: string + auto_refresh: + description: Whether the dashboard auto-updates the UI with new data. + type: boolean + color: + description: The hex color of the dashboard + enum: + - '#FCF2CF' + - '#D7F5E1' + - '#E9E2FF' + - '#FAE6E8' + - '#FAEEE6' + nullable: true + type: string + icon: + description: The emoji icon of the dashboard + type: string + period: + description: The grouping period for dashboard panel data + enum: + - day + - week + - month + nullable: true + type: string + type: object + update_dashboard_data: + properties: + type: + enum: + - dashboards + type: string + attributes: + $ref: '#/components/schemas/update_dashboard_data_attributes' + type: object + dashboard_response_data: + properties: + id: + description: Unique ID of the dashboard + type: string + type: + enum: + - dashboards + type: string + attributes: + allOf: + - $ref: '#/components/schemas/dashboard' + type: object + required: + - attributes + - id + - type + type: object + edge_connector_data_attributes: + properties: + name: + description: Connector name + type: string + description: + description: Connector description + nullable: true + type: string + status: + description: Connector status + enum: + - active + - paused + type: string + subscriptions: + description: Array of event types to subscribe to + items: + type: string + type: array + last_poll_at: + description: Last time connector polled + format: date-time + nullable: true + type: string + online: + description: Whether connector is currently online + type: boolean + deliveries_count: + description: Total number of deliveries + type: integer + deliveries_queued_count: + description: Number of queued deliveries + type: integer + deliveries_running_count: + description: Number of running deliveries + type: integer + deliveries_completed_count: + description: Number of completed deliveries + type: integer + deliveries_failed_count: + description: Number of failed deliveries + type: integer + created_at: + format: date-time + type: string + updated_at: + format: date-time + type: string + required: + - name + - status + type: object + edge_connector_data: + properties: + type: + enum: + - edge_connectors + type: string + id: + format: uuid + type: string + attributes: + $ref: '#/components/schemas/edge_connector_data_attributes' + required: + - attributes + - id + - type + type: object + new_edge_connector_edge_connector: + properties: + name: + description: Connector name + type: string + description: + description: Connector description + nullable: true + type: string + status: + description: Connector status + enum: + - active + - paused + type: string + subscriptions: + description: Array of event types to subscribe to + items: + type: string + type: array + required: + - name + type: object + update_edge_connector_edge_connector: + properties: + name: + type: string + description: + type: string + status: + enum: + - active + - paused + type: string + subscriptions: + items: + type: string + type: array + type: object + edge_connector_action_data_attributes_parameters_inner: + properties: + name: + type: string + type: + enum: + - string + - number + - boolean + type: string + required: + type: boolean + description: + nullable: true + type: string + default: + description: Default value (any type) + nullable: true + type: string + options: + items: + type: string + nullable: true + type: array + type: object + edge_connector_action_data_attributes: + properties: + name: + description: Action name + type: string + slug: + description: Action slug + type: string + action_type: + description: Action type + enum: + - script + - http + type: string + icon: + description: Action icon + enum: + - bolt + - bolt-slash + - cog + - command-line + - code-bracket + - server + - server-stack + - play + - arrow-path + - wrench-screwdriver + - cube + - rocket-launch + nullable: true + type: string + description: + description: Action description + nullable: true + type: string + timeout: + description: Timeout in seconds + nullable: true + type: integer + parameters: + description: Parameter definitions + items: + $ref: '#/components/schemas/edge_connector_action_data_attributes_parameters_inner' + nullable: true + type: array + last_executed_at: + format: date-time + nullable: true + type: string + created_at: + format: date-time + type: string + updated_at: + format: date-time + type: string + required: + - action_type + - name + type: object + edge_connector_action_data: + properties: + type: + enum: + - edge_connector_actions + type: string + id: + format: uuid + type: string + attributes: + $ref: '#/components/schemas/edge_connector_action_data_attributes' + required: + - attributes + - id + - type + type: object + new_edge_connector_action_action_metadata: + properties: + description: + nullable: true + type: string + timeout: + nullable: true + type: integer + icon: + enum: + - bolt + - bolt-slash + - cog + - command-line + - code-bracket + - server + - server-stack + - play + - arrow-path + - wrench-screwdriver + - cube + - rocket-launch + nullable: true + type: string + parameters: + items: + $ref: '#/components/schemas/edge_connector_action_data_attributes_parameters_inner' + nullable: true + type: array + type: object + new_edge_connector_action_action: + properties: + name: + description: Action name + type: string + action_type: + description: Action type + enum: + - script + - http + type: string + metadata: + $ref: '#/components/schemas/new_edge_connector_action_action_metadata' + required: + - action_type + - name + type: object + new_environment_data_attributes_slack_channels_inner: + properties: + id: + description: Slack channel ID + type: string + name: + description: Slack channel name + type: string + required: + - id + - name + type: object + new_environment_data_attributes_slack_aliases_inner: + properties: + id: + description: Slack alias ID + type: string + name: + description: Slack alias name + type: string + required: + - id + - name + type: object + new_environment_data_attributes: + additionalProperties: false + properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + description: The name of the environment + type: string + description: + description: The description of the environment + nullable: true + type: string + public_description: + description: The status page description of the environment + nullable: true + type: string + color: + description: The hex color of the environment + nullable: true + type: string position: - $ref: '#/components/schemas/new_dashboard_panel_data_attributes_position' + description: Position of the environment + nullable: true + type: integer + external_id: + description: The external id associated to this environment + nullable: true + type: string + notify_emails: + description: Emails to attach to the environment + items: + type: string + nullable: true + type: array + slack_channels: + description: Slack Channels associated with this environment + items: + $ref: '#/components/schemas/new_environment_data_attributes_slack_channels_inner' + nullable: true + type: array + slack_aliases: + description: Slack Aliases associated with this environment + items: + $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' + nullable: true + type: array + properties: + description: Array of property values for this environment. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array required: - - params + - name type: object - new_dashboard_panel_data: + new_environment_data: properties: type: enum: - - dashboard_panels + - environments type: string attributes: - $ref: '#/components/schemas/new_dashboard_panel_data_attributes' + $ref: '#/components/schemas/new_environment_data_attributes' required: - attributes - type type: object - update_dashboard_panel_data_attributes: + update_environment_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: - description: The name of the dashboard_panel + description: The name of the environment + type: string + description: + description: The description of the environment + nullable: true + type: string + public_description: + description: The status page description of the environment + nullable: true + type: string + color: + description: The hex color of the environment nullable: true type: string - params: - $ref: '#/components/schemas/new_dashboard_panel_data_attributes_params' position: - $ref: '#/components/schemas/new_dashboard_panel_data_attributes_position' + description: Position of the environment + nullable: true + type: integer + external_id: + description: The external id associated to this environment + nullable: true + type: string + notify_emails: + description: Emails to attach to the environment + items: + type: string + nullable: true + type: array + slack_channels: + description: Slack Channels associated with this environment + items: + $ref: '#/components/schemas/new_environment_data_attributes_slack_channels_inner' + nullable: true + type: array + slack_aliases: + description: Slack Aliases associated with this environment + items: + $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' + nullable: true + type: array + properties: + description: Array of property values for this environment. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array type: object - update_dashboard_panel_data: + update_environment_data: properties: type: enum: - - dashboard_panels + - environments type: string attributes: - $ref: '#/components/schemas/update_dashboard_panel_data_attributes' + $ref: '#/components/schemas/update_environment_data_attributes' + required: + - attributes + - type type: object - dashboard_panel_response_data: + environment_response_data: properties: id: - description: Unique ID of the dashboard_panel + description: Unique ID of the environment type: string type: enum: - - dashboard_panels + - environments type: string attributes: allOf: - - $ref: '#/components/schemas/dashboard_panel' + - $ref: '#/components/schemas/environment' type: object required: - attributes - id - type type: object - new_dashboard_data_attributes: - additionalProperties: false + bulk_upsert_environments_entities_inner: properties: + external_id: + description: External identifier used as the upsert key. Unique per team. + type: string name: - description: The name of the dashboard + description: Required for new records. Optional for updates. type: string description: - description: The description of the dashboard nullable: true type: string - owner: - description: The owner type of the dashboard - enum: - - user - - team - type: string - public: - description: Whether the dashboard is public - type: boolean - range: - description: The date range for dashboard panel data + public_description: nullable: true type: string - auto_refresh: - description: Whether the dashboard auto-updates the UI with new data. - type: boolean color: - description: The hex color of the dashboard - enum: - - '#FCF2CF' - - '#D7F5E1' - - '#E9E2FF' - - '#FAE6E8' - - '#FAEEE6' nullable: true type: string - icon: - description: The emoji icon of the dashboard - type: string - period: - description: The grouping period for dashboard panel data - enum: - - day - - week - - month + position: nullable: true - type: string + type: integer + notify_emails: + items: + type: string + nullable: true + type: array + fields: + description: "Catalog property values (merge semantics: only mentioned fields\ + \ written)." + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_entities_inner_fields_inner' + type: array required: - - name - - owner + - external_id type: object - new_dashboard_data: + bulk_upsert_environments_response_data_inner: properties: + id: + type: string type: enum: - - dashboards + - environments type: string attributes: - $ref: '#/components/schemas/new_dashboard_data_attributes' + $ref: '#/components/schemas/environment' + type: object + bulk_upsert_environments_error_errors_inner: + properties: + index: + description: Position of the failed record in the batch + type: integer + external_id: + type: string + errors: + items: + type: string + type: array required: - - attributes - - type + - errors + - external_id + - index type: object - update_dashboard_data_attributes: + bulk_destroy_environments_oneOf: additionalProperties: false properties: - name: - description: The name of the dashboard + managed_by: + description: Delete all records with this managed_by value (web/admin_web + not allowed). + enum: + - api + - terraform + - pulumi + - backstage + - catalog_sync type: string - description: - description: The description of the dashboard + keep_external_ids: + description: Records with these external_ids are preserved. + items: + type: string + type: array + required: + - managed_by + type: object + errors_list_errors_inner: + properties: + title: + type: string + status: + type: string + code: nullable: true type: string - owner: - description: The owner type of the dashboard + detail: + nullable: true + type: string + required: + - status + - title + type: object + new_escalation_policy_data_attributes_business_hours: + deprecated: true + nullable: true + properties: + time_zone: + description: Time zone for business hours enum: - - user - - team + - International Date Line West + - Etc/GMT+12 + - American Samoa + - Pacific/Pago_Pago + - Midway Island + - Pacific/Midway + - Hawaii + - Pacific/Honolulu + - Alaska + - America/Juneau + - Pacific Time (US & Canada) + - America/Los_Angeles + - Tijuana + - America/Tijuana + - Arizona + - America/Phoenix + - Mazatlan + - America/Mazatlan + - Mountain Time (US & Canada) + - America/Denver + - Central America + - America/Guatemala + - Central Time (US & Canada) + - America/Chicago + - Chihuahua + - America/Chihuahua + - Guadalajara + - America/Mexico_City + - Mexico City + - Monterrey + - America/Monterrey + - Saskatchewan + - America/Regina + - Bogota + - America/Bogota + - Eastern Time (US & Canada) + - America/New_York + - Indiana (East) + - America/Indiana/Indianapolis + - Lima + - America/Lima + - Quito + - Atlantic Time (Canada) + - America/Halifax + - Caracas + - America/Caracas + - Georgetown + - America/Guyana + - La Paz + - America/La_Paz + - Puerto Rico + - America/Puerto_Rico + - Santiago + - America/Santiago + - Newfoundland + - America/St_Johns + - Asuncion + - America/Asuncion + - Brasilia + - America/Sao_Paulo + - Buenos Aires + - America/Argentina/Buenos_Aires + - Montevideo + - America/Montevideo + - Greenland + - America/Nuuk + - Mid-Atlantic + - Atlantic/South_Georgia + - Azores + - Atlantic/Azores + - Cape Verde Is. + - Atlantic/Cape_Verde + - Edinburgh + - Europe/London + - Lisbon + - Europe/Lisbon + - London + - Monrovia + - Africa/Monrovia + - UTC + - Etc/UTC + - Amsterdam + - Europe/Amsterdam + - Belgrade + - Europe/Belgrade + - Berlin + - Europe/Berlin + - Bern + - Europe/Zurich + - Bratislava + - Europe/Bratislava + - Brussels + - Europe/Brussels + - Budapest + - Europe/Budapest + - Casablanca + - Africa/Casablanca + - Copenhagen + - Europe/Copenhagen + - Dublin + - Europe/Dublin + - Ljubljana + - Europe/Ljubljana + - Madrid + - Europe/Madrid + - Paris + - Europe/Paris + - Prague + - Europe/Prague + - Rome + - Europe/Rome + - Sarajevo + - Europe/Sarajevo + - Skopje + - Europe/Skopje + - Stockholm + - Europe/Stockholm + - Vienna + - Europe/Vienna + - Warsaw + - Europe/Warsaw + - West Central Africa + - Africa/Algiers + - Zagreb + - Europe/Zagreb + - Zurich + - Athens + - Europe/Athens + - Bucharest + - Europe/Bucharest + - Cairo + - Africa/Cairo + - Harare + - Africa/Harare + - Helsinki + - Europe/Helsinki + - Jerusalem + - Asia/Jerusalem + - Kaliningrad + - Europe/Kaliningrad + - Kyiv + - Europe/Kiev + - Pretoria + - Africa/Johannesburg + - Riga + - Europe/Riga + - Sofia + - Europe/Sofia + - Tallinn + - Europe/Tallinn + - Vilnius + - Europe/Vilnius + - Baghdad + - Asia/Baghdad + - Istanbul + - Europe/Istanbul + - Kuwait + - Asia/Kuwait + - Minsk + - Europe/Minsk + - Moscow + - Europe/Moscow + - Nairobi + - Africa/Nairobi + - Riyadh + - Asia/Riyadh + - St. Petersburg + - Volgograd + - Europe/Volgograd + - Tehran + - Asia/Tehran + - Abu Dhabi + - Asia/Muscat + - Baku + - Asia/Baku + - Muscat + - Samara + - Europe/Samara + - Tbilisi + - Asia/Tbilisi + - Yerevan + - Asia/Yerevan + - Kabul + - Asia/Kabul + - Almaty + - Asia/Almaty + - Astana + - Ekaterinburg + - Asia/Yekaterinburg + - Islamabad + - Asia/Karachi + - Karachi + - Tashkent + - Asia/Tashkent + - Chennai + - Asia/Kolkata + - Kolkata + - Mumbai + - New Delhi + - Sri Jayawardenepura + - Asia/Colombo + - Kathmandu + - Asia/Kathmandu + - Dhaka + - Asia/Dhaka + - Urumqi + - Asia/Urumqi + - Rangoon + - Asia/Rangoon + - Bangkok + - Asia/Bangkok + - Hanoi + - Jakarta + - Asia/Jakarta + - Krasnoyarsk + - Asia/Krasnoyarsk + - Novosibirsk + - Asia/Novosibirsk + - Beijing + - Asia/Shanghai + - Chongqing + - Asia/Chongqing + - Hong Kong + - Asia/Hong_Kong + - Irkutsk + - Asia/Irkutsk + - Kuala Lumpur + - Asia/Kuala_Lumpur + - Perth + - Australia/Perth + - Singapore + - Asia/Singapore + - Taipei + - Asia/Taipei + - Ulaanbaatar + - Asia/Ulaanbaatar + - Osaka + - Asia/Tokyo + - Sapporo + - Seoul + - Asia/Seoul + - Tokyo + - Yakutsk + - Asia/Yakutsk + - Adelaide + - Australia/Adelaide + - Darwin + - Australia/Darwin + - Brisbane + - Australia/Brisbane + - Canberra + - Australia/Canberra + - Guam + - Pacific/Guam + - Hobart + - Australia/Hobart + - Melbourne + - Australia/Melbourne + - Port Moresby + - Pacific/Port_Moresby + - Sydney + - Australia/Sydney + - Vladivostok + - Asia/Vladivostok + - Magadan + - Asia/Magadan + - New Caledonia + - Pacific/Noumea + - Solomon Is. + - Pacific/Guadalcanal + - Srednekolymsk + - Asia/Srednekolymsk + - Auckland + - Pacific/Auckland + - Fiji + - Pacific/Fiji + - Kamchatka + - Asia/Kamchatka + - Marshall Is. + - Pacific/Majuro + - Wellington + - Chatham Is. + - Pacific/Chatham + - Nuku'alofa + - Pacific/Tongatapu + - Samoa + - Pacific/Apia + - Tokelau Is. + - Pacific/Fakaofo + - America/Adak + - America/Atka + - US/Aleutian + - America/Vancouver + - Canada/Pacific + - America/Miquelon + - Australia/Eucla + - Australia/LHI + - Australia/Lord_Howe + - Chile/EasterIsland + - Pacific/Easter + - Pacific/Gambier + - Pacific/Pitcairn + - Pacific/Marquesas + - Pacific/Kiritimati + - Pacific/Norfolk + nullable: true type: string - public: - description: Whether the dashboard is public - type: boolean - range: - description: The date range for dashboard panel data + days: + description: Business days + items: + enum: + - M + - T + - W + - R + - F + - U + - S + type: string nullable: true - type: string - auto_refresh: - description: Whether the dashboard auto-updates the UI with new data. - type: boolean - color: - description: The hex color of the dashboard - enum: - - '#FCF2CF' - - '#D7F5E1' - - '#E9E2FF' - - '#FAE6E8' - - '#FAEEE6' + type: array + start_time: + description: Start time for business hours (HH:MM) nullable: true type: string - icon: - description: The emoji icon of the dashboard - type: string - period: - description: The grouping period for dashboard panel data - enum: - - day - - week - - month + end_time: + description: End time for business hours (HH:MM) nullable: true type: string type: object - update_dashboard_data: - properties: - type: - enum: - - dashboards - type: string - attributes: - $ref: '#/components/schemas/update_dashboard_data_attributes' - type: object - dashboard_response_data: - properties: - id: - description: Unique ID of the dashboard - type: string - type: - enum: - - dashboards - type: string - attributes: - allOf: - - $ref: '#/components/schemas/dashboard' - type: object - required: - - attributes - - id - - type - type: object - edge_connector_data_attributes: + new_escalation_policy_data_attributes: + additionalProperties: false properties: name: - description: Connector name + description: The name of the escalation policy type: string description: - description: Connector description + description: The description of the escalation policy nullable: true type: string - status: - description: Connector status - enum: - - active - - paused - type: string - subscriptions: - description: Array of event types to subscribe to + repeat_count: + description: The number of times this policy will be executed until someone + acknowledges the alert + type: integer + group_ids: + description: Associated groups (alerting the group will trigger escalation + policy) items: type: string type: array - last_poll_at: - description: Last time connector polled - format: date-time - nullable: true - type: string - online: - description: Whether connector is currently online - type: boolean - deliveries_count: - description: Total number of deliveries - type: integer - deliveries_queued_count: - description: Number of queued deliveries - type: integer - deliveries_running_count: - description: Number of running deliveries - type: integer - deliveries_completed_count: - description: Number of completed deliveries - type: integer - deliveries_failed_count: - description: Number of failed deliveries - type: integer - created_at: - format: date-time - type: string - updated_at: - format: date-time - type: string + service_ids: + description: Associated services (alerting the service will trigger escalation + policy) + items: + type: string + type: array + business_hours: + $ref: '#/components/schemas/new_escalation_policy_data_attributes_business_hours' required: - name - - status type: object - edge_connector_data: + new_escalation_policy_data: properties: type: enum: - - edge_connectors - type: string - id: - format: uuid + - escalation_policies type: string attributes: - $ref: '#/components/schemas/edge_connector_data_attributes' + $ref: '#/components/schemas/new_escalation_policy_data_attributes' required: - attributes - - id - type type: object - new_edge_connector_edge_connector: + update_escalation_policy_data_attributes: + additionalProperties: false properties: name: - description: Connector name + description: The name of the escalation policy type: string description: - description: Connector description + description: The description of the escalation policy nullable: true type: string - status: - description: Connector status - enum: - - active - - paused - type: string - subscriptions: - description: Array of event types to subscribe to + repeat_count: + description: The number of times this policy will be executed until someone + acknowledges the alert + type: integer + group_ids: + description: Associated groups (alerting the group will trigger escalation + policy) items: type: string type: array - required: - - name - type: object - edge_connector_action_data_attributes_parameters_inner: - properties: - name: - type: string - type: - enum: - - string - - number - - boolean - type: string - required: - type: boolean - description: - nullable: true - type: string - default: - description: Default value (any type) - nullable: true - options: + service_ids: + description: Associated services (alerting the service will trigger escalation + policy) items: type: string - nullable: true type: array + business_hours: + $ref: '#/components/schemas/new_escalation_policy_data_attributes_business_hours' type: object - edge_connector_action_data_attributes: + update_escalation_policy_data: properties: - name: - description: Action name - type: string - slug: - description: Action slug - type: string - action_type: - description: Action type - enum: - - script - - http - type: string - icon: - description: Action icon + type: enum: - - bolt - - bolt-slash - - cog - - command-line - - code-bracket - - server - - server-stack - - play - - arrow-path - - wrench-screwdriver - - cube - - rocket-launch - nullable: true - type: string - description: - description: Action description - nullable: true - type: string - timeout: - description: Timeout in seconds - nullable: true - type: integer - parameters: - description: Parameter definitions - items: - $ref: '#/components/schemas/edge_connector_action_data_attributes_parameters_inner' - nullable: true - type: array - last_executed_at: - format: date-time - nullable: true - type: string - created_at: - format: date-time - type: string - updated_at: - format: date-time + - escalation_policies type: string + attributes: + $ref: '#/components/schemas/update_escalation_policy_data_attributes' required: - - action_type - - name + - attributes + - type type: object - edge_connector_action_data: + escalation_policy_response_data: properties: + id: + description: Unique ID of the escalation policy + type: string type: enum: - - edge_connector_actions - type: string - id: - format: uuid + - escalation_policies type: string attributes: - $ref: '#/components/schemas/edge_connector_action_data_attributes' + allOf: + - $ref: '#/components/schemas/escalation_policy' + type: object required: - attributes - id - type type: object - new_edge_connector_action_action_metadata: + new_escalation_policy_path_data_attributes_rules_inner_oneOf: properties: - description: - nullable: true - type: string - timeout: - nullable: true - type: integer - icon: + rule_type: + description: The type of the escalation path rule enum: - - bolt - - bolt-slash - - cog - - command-line - - code-bracket - - server - - server-stack - - play - - arrow-path - - wrench-screwdriver - - cube - - rocket-launch - nullable: true + - alert_urgency type: string - parameters: + urgency_ids: + description: Alert urgency ids for which this escalation path should be + used items: - $ref: '#/components/schemas/edge_connector_action_data_attributes_parameters_inner' - nullable: true + type: string type: array - type: object - new_edge_connector_action_action: - properties: - name: - description: Action name - type: string - action_type: - description: Action type - enum: - - script - - http - type: string - metadata: - $ref: '#/components/schemas/new_edge_connector_action_action_metadata' required: - - action_type - - name - type: object - new_environment_data_attributes_slack_channels_inner: + - rule_type + - urgency_ids + new_escalation_policy_path_data_attributes_rules_inner_oneOf_1: properties: - id: - description: Slack channel ID - type: string - name: - description: Slack channel name + rule_type: + description: The type of the escalation path rule + enum: + - working_hour type: string + within_working_hour: + description: Whether the escalation path should be used within working hours + type: boolean required: - - id - - name - type: object - new_environment_data_attributes_slack_aliases_inner: + - rule_type + - within_working_hour + new_escalation_policy_path_data_attributes_rules_inner_oneOf_2: properties: - id: - description: Slack alias ID - type: string - name: - description: Slack alias name + rule_type: + description: The type of the escalation path rule + enum: + - json_path type: string - required: - - id - - name - type: object - new_environment_data_attributes: - additionalProperties: false - properties: - name: - description: The name of the environment + json_path: + description: JSON path to extract value from payload type: string - description: - description: The description of the environment - nullable: true + operator: + description: How JSON path value should be matched + enum: + - is + - is_not + - contains + - does_not_contain + - contains_key + - does_not_contain_key + - starts_with + - does_not_start_with + - matches + - does_not_match + - is_one_of + - is_not_one_of + - is_set + - is_not_set type: string - color: - description: The hex color of the environment + value: + description: Value with which JSON path value should be matched nullable: true type: string - position: - description: Position of the environment - nullable: true - type: integer - notify_emails: - description: Emails to attach to the environment + values: + description: Values to match against (for is_one_of / is_not_one_of operators) items: type: string - nullable: true - type: array - slack_channels: - description: Slack Channels associated with this environment - items: - $ref: '#/components/schemas/new_environment_data_attributes_slack_channels_inner' - nullable: true - type: array - slack_aliases: - description: Slack Aliases associated with this environment - items: - $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' - nullable: true type: array required: - - name - type: object - new_environment_data: + - json_path + - operator + - rule_type + new_escalation_policy_path_data_attributes_rules_inner_oneOf_3: properties: - type: + rule_type: + description: The type of the escalation path rule enum: - - environments + - field type: string - attributes: - $ref: '#/components/schemas/new_environment_data_attributes' - required: - - attributes - - type - type: object - update_environment_data_attributes: - additionalProperties: false - properties: - name: - description: The name of the environment + fieldable_type: + description: "The type of the fieldable (e.g., AlertField)" type: string - description: - description: The description of the environment - nullable: true + fieldable_id: + description: The ID of the alert field type: string - color: - description: The hex color of the environment - nullable: true + operator: + description: How the alert field value should be matched + enum: + - is + - is_not + - is_one_of + - is_not_one_of + - contains + - does_not_contain + - is_empty + - is_not_empty + - contains_key + - does_not_contain_key + - starts_with + - does_not_start_with + - matches + - does_not_match type: string - position: - description: Position of the environment - nullable: true - type: integer - notify_emails: - description: Emails to attach to the environment + values: + description: Values to match against items: type: string - nullable: true - type: array - slack_channels: - description: Slack Channels associated with this environment - items: - $ref: '#/components/schemas/new_environment_data_attributes_slack_channels_inner' - nullable: true - type: array - slack_aliases: - description: Slack Aliases associated with this environment - items: - $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' - nullable: true type: array - type: object - update_environment_data: - properties: - type: - enum: - - environments - type: string - attributes: - $ref: '#/components/schemas/update_environment_data_attributes' required: - - attributes - - type - type: object - environment_response_data: + - fieldable_id + - fieldable_type + - operator + - rule_type + new_escalation_policy_path_data_attributes_rules_inner_oneOf_4: properties: - id: - description: Unique ID of the environment - type: string - type: + rule_type: + description: The type of the escalation path rule enum: - - environments + - service type: string - attributes: - allOf: - - $ref: '#/components/schemas/environment' - type: object + service_ids: + description: Service ids for which this escalation path should be used + items: + type: string + type: array required: - - attributes - - id - - type - type: object - errors_list_errors_inner: + - rule_type + - service_ids + new_escalation_policy_path_data_attributes_rules_inner_oneOf_5_time_blocks_inner: properties: - title: - type: string - status: + monday: + default: false + type: boolean + tuesday: + default: false + type: boolean + wednesday: + default: false + type: boolean + thursday: + default: false + type: boolean + friday: + default: false + type: boolean + saturday: + default: false + type: boolean + sunday: + default: false + type: boolean + start_time: + description: Formatted as HH:MM type: string - code: - nullable: true + end_time: + description: Formatted as HH:MM type: string - detail: + all_day: + default: false + type: boolean + position: nullable: true - type: string - required: - - status - - title + type: integer type: object - new_escalation_policy_data_attributes_business_hours: - nullable: true + new_escalation_policy_path_data_attributes_rules_inner_oneOf_5: properties: + rule_type: + description: The type of the escalation path rule + enum: + - deferral_window + type: string time_zone: - description: Time zone for business hours + description: Time zone for the deferral window enum: - International Date Line West - Etc/GMT+12 @@ -64708,7 +56292,6 @@ components: - Guadalajara - America/Mexico_City - Mexico City - - America/Mexico_City - Monterrey - America/Monterrey - Saskatchewan @@ -64722,7 +56305,6 @@ components: - Lima - America/Lima - Quito - - America/Lima - Atlantic Time (Canada) - America/Halifax - Caracas @@ -64753,16 +56335,11 @@ components: - Atlantic/Azores - Cape Verde Is. - Atlantic/Cape_Verde - - Casablanca - - Africa/Casablanca - - Dublin - - Europe/Dublin - Edinburgh - Europe/London - Lisbon - Europe/Lisbon - London - - Europe/London - Monrovia - Africa/Monrovia - UTC @@ -64781,8 +56358,12 @@ components: - Europe/Brussels - Budapest - Europe/Budapest + - Casablanca + - Africa/Casablanca - Copenhagen - Europe/Copenhagen + - Dublin + - Europe/Dublin - Ljubljana - Europe/Ljubljana - Madrid @@ -64808,7 +56389,6 @@ components: - Zagreb - Europe/Zagreb - Zurich - - Europe/Zurich - Athens - Europe/Athens - Bucharest @@ -64850,7 +56430,6 @@ components: - Riyadh - Asia/Riyadh - St. Petersburg - - Europe/Moscow - Volgograd - Europe/Volgograd - Tehran @@ -64860,7 +56439,6 @@ components: - Baku - Asia/Baku - Muscat - - Asia/Muscat - Samara - Europe/Samara - Tbilisi @@ -64872,23 +56450,18 @@ components: - Almaty - Asia/Almaty - Astana - - Asia/Almaty - Ekaterinburg - Asia/Yekaterinburg - Islamabad - Asia/Karachi - Karachi - - Asia/Karachi - Tashkent - Asia/Tashkent - Chennai - Asia/Kolkata - Kolkata - - Asia/Kolkata - Mumbai - - Asia/Kolkata - New Delhi - - Asia/Kolkata - Sri Jayawardenepura - Asia/Colombo - Kathmandu @@ -64902,7 +56475,6 @@ components: - Bangkok - Asia/Bangkok - Hanoi - - Asia/Bangkok - Jakarta - Asia/Jakarta - Krasnoyarsk @@ -64930,11 +56502,9 @@ components: - Osaka - Asia/Tokyo - Sapporo - - Asia/Tokyo - Seoul - Asia/Seoul - Tokyo - - Asia/Tokyo - Yakutsk - Asia/Yakutsk - Adelaide @@ -64974,7 +56544,6 @@ components: - Marshall Is. - Pacific/Majuro - Wellington - - Pacific/Auckland - Chatham Is. - Pacific/Chatham - Nuku'alofa @@ -64983,194 +56552,82 @@ components: - Pacific/Apia - Tokelau Is. - Pacific/Fakaofo - nullable: true - type: string - days: - description: Business days - items: - enum: - - M - - T - - W - - R - - F - - U - - S - type: string - nullable: true - type: array - start_time: - description: Start time for business hours (HH:MM) - nullable: true - type: string - end_time: - description: End time for business hours (HH:MM) - nullable: true - type: string - type: object - new_escalation_policy_data_attributes: - additionalProperties: false - properties: - name: - description: The name of the escalation policy - type: string - description: - description: The description of the escalation policy - nullable: true - type: string - repeat_count: - description: The number of times this policy will be executed until someone - acknowledges the alert - type: integer - group_ids: - description: Associated groups (alerting the group will trigger escalation - policy) - items: - type: string + - America/Adak + - America/Atka + - US/Aleutian + - America/Vancouver + - Canada/Pacific + - America/Miquelon + - Australia/Eucla + - Australia/LHI + - Australia/Lord_Howe + - Chile/EasterIsland + - Pacific/Easter + - Pacific/Gambier + - Pacific/Pitcairn + - Pacific/Marquesas + - Pacific/Kiritimati + - Pacific/Norfolk + type: string + time_blocks: + description: Time windows during which alerts are deferred + items: + $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_5_time_blocks_inner' type: array - service_ids: - description: Associated services (alerting the service will trigger escalation - policy) - items: - type: string - type: array - business_hours: - $ref: '#/components/schemas/new_escalation_policy_data_attributes_business_hours' - required: - - name - type: object - new_escalation_policy_data: - properties: - type: - enum: - - escalation_policies - type: string - attributes: - $ref: '#/components/schemas/new_escalation_policy_data_attributes' - required: - - attributes - - type - type: object - update_escalation_policy_data_attributes: - additionalProperties: false - properties: - name: - description: The name of the escalation policy - type: string - description: - description: The description of the escalation policy - nullable: true - type: string - repeat_count: - description: The number of times this policy will be executed until someone - acknowledges the alert - type: integer - group_ids: - description: Associated groups (alerting the group will trigger escalation - policy) - items: - type: string - type: array - service_ids: - description: Associated services (alerting the service will trigger escalation - policy) - items: - type: string - type: array - business_hours: - $ref: '#/components/schemas/new_escalation_policy_data_attributes_business_hours' - type: object - update_escalation_policy_data: - properties: - type: - enum: - - escalation_policies - type: string - attributes: - $ref: '#/components/schemas/update_escalation_policy_data_attributes' - required: - - attributes - - type - type: object - escalation_policy_response_data: - properties: - id: - description: Unique ID of the escalation policy - type: string - type: - enum: - - escalation_policies - type: string - attributes: - allOf: - - $ref: '#/components/schemas/escalation_policy' - type: object required: - - attributes - - id - - type - type: object - new_escalation_policy_path_data_attributes_rules_inner_anyOf: + - rule_type + - time_blocks + - time_zone + new_escalation_policy_path_data_attributes_rules_inner_oneOf_6: properties: rule_type: description: The type of the escalation path rule enum: - - alert_urgency + - source type: string - urgency_ids: - description: Alert urgency ids for which this escalation path should be - used + operator: + description: How the alert source should be matched + enum: + - is + - is_not + - is_one_of + - is_not_one_of + type: string + values: + description: "Alert source values to match against (e.g., manual, datadog)" items: - description: TODO default missing array inner type to string type: string type: array required: + - operator - rule_type - - urgency_ids - new_escalation_policy_path_data_attributes_rules_inner_anyOf_1: - properties: - rule_type: - description: The type of the escalation path rule - enum: - - working_hour - type: string - within_working_hour: - description: Whether the escalation path should be used within working hours - type: boolean - required: - - rule_type - - within_working_hour - new_escalation_policy_path_data_attributes_rules_inner_anyOf_2: + - values + new_escalation_policy_path_data_attributes_rules_inner_oneOf_7: properties: rule_type: description: The type of the escalation path rule enum: - - json_path - type: string - json_path: - description: JSON path to extract value from payload + - related_incidents type: string operator: - description: How JSON path value should be matched + description: Whether the alert must (or must not) have related incidents enum: - - is - - is_not - - contains - - does_not_contain - type: string - value: - description: Value with which JSON path value should be matched + - is_set + - is_not_set type: string required: - - json_path - operator - rule_type - - value new_escalation_policy_path_data_attributes_rules_inner: - anyOf: - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf' - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf_1' - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf_2' + oneOf: + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_1' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_2' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_3' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_4' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_5' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_6' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_7' type: object new_escalation_policy_path_data_attributes_time_restrictions_inner: properties: @@ -65219,6 +56676,26 @@ components: - audible - quiet type: string + path_type: + default: escalation + description: The type of escalation path to create + enum: + - escalation + - deferral + type: string + after_deferral_behavior: + description: What happens after a deferral path finishes. Required for deferral + paths. + enum: + - re_evaluate + - execute_path + nullable: true + type: string + after_deferral_path_id: + description: The escalation path to execute after this deferral path when + after_deferral_behavior is execute_path. + nullable: true + type: string default: description: Whether this escalation path is the default path nullable: true @@ -65247,6 +56724,11 @@ components: description: Initial delay for escalation path in minutes. Maximum 1 week (10080). type: integer + retrigger_timeout_minutes: + description: "Re-trigger acknowledged alerts on this path after N minutes;\ + \ null inherits the urgency/workspace default, negative = never." + nullable: true + type: integer rules: description: Escalation path conditions items: @@ -65284,7 +56766,6 @@ components: - Guadalajara - America/Mexico_City - Mexico City - - America/Mexico_City - Monterrey - America/Monterrey - Saskatchewan @@ -65298,7 +56779,6 @@ components: - Lima - America/Lima - Quito - - America/Lima - Atlantic Time (Canada) - America/Halifax - Caracas @@ -65329,16 +56809,11 @@ components: - Atlantic/Azores - Cape Verde Is. - Atlantic/Cape_Verde - - Casablanca - - Africa/Casablanca - - Dublin - - Europe/Dublin - Edinburgh - Europe/London - Lisbon - Europe/Lisbon - London - - Europe/London - Monrovia - Africa/Monrovia - UTC @@ -65357,8 +56832,12 @@ components: - Europe/Brussels - Budapest - Europe/Budapest + - Casablanca + - Africa/Casablanca - Copenhagen - Europe/Copenhagen + - Dublin + - Europe/Dublin - Ljubljana - Europe/Ljubljana - Madrid @@ -65384,7 +56863,6 @@ components: - Zagreb - Europe/Zagreb - Zurich - - Europe/Zurich - Athens - Europe/Athens - Bucharest @@ -65426,7 +56904,6 @@ components: - Riyadh - Asia/Riyadh - St. Petersburg - - Europe/Moscow - Volgograd - Europe/Volgograd - Tehran @@ -65436,7 +56913,6 @@ components: - Baku - Asia/Baku - Muscat - - Asia/Muscat - Samara - Europe/Samara - Tbilisi @@ -65448,23 +56924,18 @@ components: - Almaty - Asia/Almaty - Astana - - Asia/Almaty - Ekaterinburg - Asia/Yekaterinburg - Islamabad - Asia/Karachi - Karachi - - Asia/Karachi - Tashkent - Asia/Tashkent - Chennai - Asia/Kolkata - Kolkata - - Asia/Kolkata - Mumbai - - Asia/Kolkata - New Delhi - - Asia/Kolkata - Sri Jayawardenepura - Asia/Colombo - Kathmandu @@ -65478,7 +56949,6 @@ components: - Bangkok - Asia/Bangkok - Hanoi - - Asia/Bangkok - Jakarta - Asia/Jakarta - Krasnoyarsk @@ -65506,11 +56976,9 @@ components: - Osaka - Asia/Tokyo - Sapporo - - Asia/Tokyo - Seoul - Asia/Seoul - Tokyo - - Asia/Tokyo - Yakutsk - Asia/Yakutsk - Adelaide @@ -65550,7 +57018,6 @@ components: - Marshall Is. - Pacific/Majuro - Wellington - - Pacific/Auckland - Chatham Is. - Pacific/Chatham - Nuku'alofa @@ -65559,6 +57026,22 @@ components: - Pacific/Apia - Tokelau Is. - Pacific/Fakaofo + - America/Adak + - America/Atka + - US/Aleutian + - America/Vancouver + - Canada/Pacific + - America/Miquelon + - Australia/Eucla + - Australia/LHI + - Australia/Lord_Howe + - Chile/EasterIsland + - Pacific/Easter + - Pacific/Gambier + - Pacific/Pitcairn + - Pacific/Marquesas + - Pacific/Kiritimati + - Pacific/Norfolk nullable: true type: string time_restrictions: @@ -65583,11 +57066,16 @@ components: - type type: object update_escalation_policy_path_data_attributes_rules_inner: - anyOf: - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf' - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf_1' - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf_2' nullable: true + oneOf: + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_1' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_2' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_3' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_4' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_5' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_6' + - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_oneOf_7' type: object update_escalation_policy_path_data_attributes_time_restrictions_inner: properties: @@ -65631,6 +57119,24 @@ components: - audible - quiet type: string + path_type: + description: The type of escalation path. Cannot be changed after creation. + enum: + - escalation + - deferral + type: string + after_deferral_behavior: + description: What happens after a deferral path finishes. + enum: + - re_evaluate + - execute_path + nullable: true + type: string + after_deferral_path_id: + description: The escalation path to execute after this deferral path when + after_deferral_behavior is execute_path. + nullable: true + type: string default: description: Whether this escalation path is the default path nullable: true @@ -65659,6 +57165,11 @@ components: description: Initial delay for escalation path in minutes. Maximum 1 week (10080). type: integer + retrigger_timeout_minutes: + description: "Re-trigger acknowledged alerts on this path after N minutes;\ + \ null inherits the urgency/workspace default, negative = never." + nullable: true + type: integer rules: description: Escalation path conditions items: @@ -65696,7 +57207,6 @@ components: - Guadalajara - America/Mexico_City - Mexico City - - America/Mexico_City - Monterrey - America/Monterrey - Saskatchewan @@ -65710,7 +57220,6 @@ components: - Lima - America/Lima - Quito - - America/Lima - Atlantic Time (Canada) - America/Halifax - Caracas @@ -65741,16 +57250,11 @@ components: - Atlantic/Azores - Cape Verde Is. - Atlantic/Cape_Verde - - Casablanca - - Africa/Casablanca - - Dublin - - Europe/Dublin - Edinburgh - Europe/London - Lisbon - Europe/Lisbon - London - - Europe/London - Monrovia - Africa/Monrovia - UTC @@ -65769,8 +57273,12 @@ components: - Europe/Brussels - Budapest - Europe/Budapest + - Casablanca + - Africa/Casablanca - Copenhagen - Europe/Copenhagen + - Dublin + - Europe/Dublin - Ljubljana - Europe/Ljubljana - Madrid @@ -65796,7 +57304,6 @@ components: - Zagreb - Europe/Zagreb - Zurich - - Europe/Zurich - Athens - Europe/Athens - Bucharest @@ -65838,7 +57345,6 @@ components: - Riyadh - Asia/Riyadh - St. Petersburg - - Europe/Moscow - Volgograd - Europe/Volgograd - Tehran @@ -65848,7 +57354,6 @@ components: - Baku - Asia/Baku - Muscat - - Asia/Muscat - Samara - Europe/Samara - Tbilisi @@ -65860,23 +57365,18 @@ components: - Almaty - Asia/Almaty - Astana - - Asia/Almaty - Ekaterinburg - Asia/Yekaterinburg - Islamabad - Asia/Karachi - Karachi - - Asia/Karachi - Tashkent - Asia/Tashkent - Chennai - Asia/Kolkata - Kolkata - - Asia/Kolkata - Mumbai - - Asia/Kolkata - New Delhi - - Asia/Kolkata - Sri Jayawardenepura - Asia/Colombo - Kathmandu @@ -65890,7 +57390,6 @@ components: - Bangkok - Asia/Bangkok - Hanoi - - Asia/Bangkok - Jakarta - Asia/Jakarta - Krasnoyarsk @@ -65918,11 +57417,9 @@ components: - Osaka - Asia/Tokyo - Sapporo - - Asia/Tokyo - Seoul - Asia/Seoul - Tokyo - - Asia/Tokyo - Yakutsk - Asia/Yakutsk - Adelaide @@ -65962,7 +57459,6 @@ components: - Marshall Is. - Pacific/Majuro - Wellington - - Pacific/Auckland - Chatham Is. - Pacific/Chatham - Nuku'alofa @@ -65971,6 +57467,22 @@ components: - Pacific/Apia - Tokelau Is. - Pacific/Fakaofo + - America/Adak + - America/Atka + - US/Aleutian + - America/Vancouver + - Canada/Pacific + - America/Miquelon + - Australia/Eucla + - Australia/LHI + - Australia/Lord_Howe + - Chile/EasterIsland + - Pacific/Easter + - Pacific/Gambier + - Pacific/Pitcairn + - Pacific/Marquesas + - Pacific/Kiritimati + - Pacific/Norfolk nullable: true type: string time_restrictions: @@ -65992,29 +57504,6 @@ components: - attributes - type type: object - escalation_policy_path_rules_inner_anyOf: - properties: - rule_type: - description: The type of the escalation path rule - enum: - - alert_urgency - type: string - urgency_ids: - description: Alert urgency ids for which this escalation path should be - used - items: - type: string - type: array - required: - - rule_type - - urgency_ids - escalation_policy_path_rules_inner: - anyOf: - - $ref: '#/components/schemas/escalation_policy_path_rules_inner_anyOf' - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf_1' - - $ref: '#/components/schemas/new_escalation_policy_path_data_attributes_rules_inner_anyOf_2' - nullable: true - type: object escalation_policy_path_response_data: properties: id: @@ -66050,7 +57539,8 @@ components: properties: id: description: "The ID of notification target. If Slack channel, then id of\ - \ the slack channel (eg. C06Q2JK7RQW)" + \ the slack channel (eg. C06Q2JK7RQW). If Microsoft Teams channel, then\ + \ the Rootly channel UUID." type: string type: description: The type of the notification target @@ -66059,6 +57549,7 @@ components: - user - schedule - slack_channel + - microsoft_teams_channel - service type: string team_members: @@ -66078,12 +57569,13 @@ components: additionalProperties: false properties: delay: - description: Delay before notification targets will be alerted. + description: Delay before notifying targets in the next Escalation Level. type: integer position: description: Position of the escalation policy level type: integer paging_strategy_configuration_strategy: + default: default enum: - default - random @@ -66092,11 +57584,37 @@ components: nullable: true type: string paging_strategy_configuration_schedule_strategy: + default: on_call_only enum: - on_call_only - everyone nullable: true type: string + paging_strategy_configuration_repeats: + description: Number of times to rotate through the roster (cycle-based round + robin). + nullable: true + type: integer + paging_strategy_configuration_repeats_mode: + description: "Controls how repeats are interpreted: 'users' pages exactly\ + \ N users, 'all' pages everyone once." + enum: + - users + - all + nullable: true + type: string + paging_strategy_configuration_rotation_scope: + description: "Scope of rotation ordering: active rotation members only,\ + \ or entire schedule." + enum: + - active_rotation + - entire_schedule + nullable: true + type: string + paging_strategy_configuration_page_users_count: + description: Number of users to page at a time (cycle-based round robin). + nullable: true + type: integer escalation_policy_path_id: description: The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default @@ -66137,6 +57655,7 @@ components: - user - schedule - slack_channel + - microsoft_teams_channel - service type: string team_members: @@ -66156,7 +57675,7 @@ components: additionalProperties: false properties: delay: - description: Delay before notification targets will be alerted. + description: Delay before notifying targets in the next Escalation Level. type: integer position: description: Position of the escalation policy level @@ -66168,6 +57687,7 @@ components: nullable: true type: string paging_strategy_configuration_strategy: + default: default enum: - default - random @@ -66176,11 +57696,37 @@ components: nullable: true type: string paging_strategy_configuration_schedule_strategy: + default: on_call_only enum: - on_call_only - everyone nullable: true type: string + paging_strategy_configuration_repeats: + description: Number of times to rotate through the roster (cycle-based round + robin). + nullable: true + type: integer + paging_strategy_configuration_repeats_mode: + description: "Controls how repeats are interpreted: 'users' pages exactly\ + \ N users, 'all' pages everyone once." + enum: + - users + - all + nullable: true + type: string + paging_strategy_configuration_rotation_scope: + description: "Scope of rotation ordering: active rotation members only,\ + \ or entire schedule." + enum: + - active_rotation + - entire_schedule + nullable: true + type: string + paging_strategy_configuration_page_users_count: + description: Number of users to page at a time (cycle-based round robin). + nullable: true + type: integer notification_target_params: description: Escalation level's notification targets items: @@ -66416,7 +57962,9 @@ components: new_form_field_placement_data_attributes: properties: form_set_id: - description: The form set this field is placed in. + description: "The form set this field is placed in. The form set must have\ + \ the same `resource_type` as the form field, otherwise the request is\ + \ rejected with 422." type: string form: description: The form this field is placed on. @@ -66464,7 +58012,9 @@ components: additionalProperties: false properties: form_set_id: - description: The form set this field is placed in. + description: "The form set this field is placed in. The form set must have\ + \ the same `resource_type` as the form field, otherwise the request is\ + \ rejected with 422." type: string form: description: The form this field is placed on. @@ -66549,6 +58099,10 @@ components: - slack_incident_cancellation_form - slack_scheduled_incident_form - slack_update_scheduled_incident_form + - web_action_item_form + - slack_action_item_form + - web_task_form + - slack_task_form type: string position: description: The position of the form_field_position @@ -66596,6 +58150,10 @@ components: - slack_incident_cancellation_form - slack_scheduled_incident_form - slack_update_scheduled_incident_form + - web_action_item_form + - slack_action_item_form + - web_task_form + - slack_task_form type: string position: description: The position of the form_field_position @@ -66634,6 +58192,13 @@ components: new_form_field_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string kind: description: The kind of the form field enum: @@ -66649,6 +58214,7 @@ components: - causes - functionalities - teams + - status - visibility - mark_as_test - mark_as_backfilled @@ -66691,6 +58257,9 @@ components: - functionality - user - catalog_entity + - environment + - cause + - incident_type type: string value_kind_catalog_id: description: The ID of the catalog used when value_kind is `catalog_entity` @@ -66740,6 +58309,11 @@ components: description: The default values. type: string type: array + auto_set_by_catalog_property_id: + description: Catalog property ID to auto-set this form field. Only reference-kind + catalog properties are supported. + nullable: true + type: string required: - kind - name @@ -66759,6 +58333,13 @@ components: update_form_field_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string kind: description: The kind of the form field enum: @@ -66774,6 +58355,7 @@ components: - causes - functionalities - teams + - status - visibility - mark_as_test - mark_as_backfilled @@ -66816,6 +58398,9 @@ components: - functionality - user - catalog_entity + - environment + - cause + - incident_type type: string value_kind_catalog_id: description: The ID of the catalog used when value_kind is `catalog_entity` @@ -66865,6 +58450,11 @@ components: description: The default values. type: string type: array + auto_set_by_catalog_property_id: + description: Catalog property ID to auto-set this form field. Only reference-kind + catalog properties are supported. + nullable: true + type: string type: object update_form_field_data: properties: @@ -66980,6 +58570,13 @@ components: new_form_set_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the form set type: string @@ -66991,7 +58588,9 @@ components: \ `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`,\ \ `slack_update_incident_status_form`, `slack_incident_mitigation_form`,\ \ `slack_incident_resolution_form`, `slack_incident_cancellation_form`,\ - \ `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`" + \ `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`,\ + \ `google_chat_new_incident_form`, `google_chat_update_incident_form`,\ + \ `microsoft_teams_new_incident_form`" items: description: "The form included in the form set. Add custom forms using\ \ the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`,\ @@ -67001,7 +58600,8 @@ components: \ `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`,\ \ `slack_incident_mitigation_form`, `slack_incident_resolution_form`,\ \ `slack_incident_cancellation_form`, `slack_scheduled_incident_form`,\ - \ `slack_update_scheduled_incident_form`" + \ `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`,\ + \ `google_chat_update_incident_form`, `microsoft_teams_new_incident_form`" type: string type: array required: @@ -67023,6 +58623,13 @@ components: update_form_set_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the form set type: string @@ -67034,7 +58641,9 @@ components: \ `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`,\ \ `slack_update_incident_status_form`, `slack_incident_mitigation_form`,\ \ `slack_incident_resolution_form`, `slack_incident_cancellation_form`,\ - \ `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`" + \ `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`,\ + \ `google_chat_new_incident_form`, `google_chat_update_incident_form`,\ + \ `microsoft_teams_new_incident_form`" items: description: "The form included in the form set. Add custom forms using\ \ the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`,\ @@ -67044,7 +58653,8 @@ components: \ `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`,\ \ `slack_incident_mitigation_form`, `slack_incident_resolution_form`,\ \ `slack_incident_cancellation_form`, `slack_scheduled_incident_form`,\ - \ `slack_update_scheduled_incident_form`" + \ `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`,\ + \ `google_chat_update_incident_form`, `microsoft_teams_new_incident_form`" type: string type: array type: object @@ -67081,6 +58691,13 @@ components: new_functionality_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the functionality type: string @@ -67089,7 +58706,7 @@ components: nullable: true type: string public_description: - description: The public description of the functionality + description: The status page description of the functionality nullable: true type: string notify_emails: @@ -67172,6 +58789,10 @@ components: type: integer nullable: true type: array + escalation_policy_id: + description: The escalation policy id of the functionality + nullable: true + type: string slack_channels: description: Slack Channels associated with this functionality items: @@ -67184,6 +58805,11 @@ components: $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' nullable: true type: array + properties: + description: Array of property values for this functionality. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array required: - name type: object @@ -67202,6 +58828,13 @@ components: update_functionality_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the functionality type: string @@ -67210,7 +58843,7 @@ components: nullable: true type: string public_description: - description: The public description of the functionality + description: The status page description of the functionality nullable: true type: string notify_emails: @@ -67269,17 +58902,23 @@ components: nullable: true type: array owner_group_ids: - description: Owner Teams associated with this functionality + description: Owner Teams associated with this functionality. Empty array + removes all; omitting or null leaves unchanged. items: type: string nullable: true type: array owner_user_ids: - description: Owner Users associated with this functionality + description: Owner Users associated with this functionality. Empty array + removes all; omitting or null leaves unchanged. items: type: integer nullable: true type: array + escalation_policy_id: + description: The escalation policy id of the functionality + nullable: true + type: string slack_channels: description: Slack Channels associated with this functionality items: @@ -67292,6 +58931,11 @@ components: $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' nullable: true type: array + properties: + description: Array of property values for this functionality. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array type: object update_functionality_data: properties: @@ -67323,6 +58967,78 @@ components: - id - type type: object + bulk_upsert_functionalities_entities_inner: + properties: + external_id: + description: External identifier used as the upsert key. Unique per team. + type: string + name: + description: Required for new records. Optional for updates. + type: string + description: + nullable: true + type: string + public_description: + nullable: true + type: string + color: + nullable: true + type: string + position: + nullable: true + type: integer + show_uptime: + nullable: true + type: boolean + show_uptime_last_days: + nullable: true + type: integer + notify_emails: + items: + type: string + nullable: true + type: array + pagerduty_id: + nullable: true + type: string + opsgenie_id: + nullable: true + type: string + opsgenie_team_id: + nullable: true + type: string + backstage_id: + nullable: true + type: string + cortex_id: + nullable: true + type: string + opslevel_id: + nullable: true + type: string + service_now_ci_sys_id: + nullable: true + type: string + fields: + description: "Catalog property values (merge semantics: only mentioned fields\ + \ written)." + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_entities_inner_fields_inner' + type: array + required: + - external_id + type: object + bulk_upsert_functionalities_response_data_inner: + properties: + id: + type: string + type: + enum: + - functionalities + type: string + attributes: + $ref: '#/components/schemas/functionality' + type: object add_action_item_task_params_assigned_to_user: description: ' The user this action item is assigned to' properties: @@ -67346,6 +59062,63 @@ components: name: type: string type: object + add_slack_bookmark_task_params_anyOf: + properties: + title: + type: string + link: + type: string + required: + - link + - title + add_slack_bookmark_task_params_anyOf_1: + properties: + playbook_id: + type: string + required: + - playbook_id + auto_assign_role_rootly_task_params_oneOf: + properties: + escalation_policy_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - escalation_policy_target + auto_assign_role_rootly_task_params_oneOf_1: + properties: + service_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - service_target + auto_assign_role_rootly_task_params_oneOf_2: + properties: + user_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - user_target + auto_assign_role_rootly_task_params_oneOf_3: + properties: + group_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - group_target + auto_assign_role_rootly_task_params_oneOf_4: + properties: + schedule_target: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - schedule_target + auto_assign_role_pagerduty_task_params_anyOf: + properties: + schedule: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - schedule + auto_assign_role_pagerduty_task_params_anyOf_1: + properties: + escalation_policy: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - escalation_policy create_confluence_page_task_params_integration: description: Specify integration id if you have more than one Confluence instance properties: @@ -67370,6 +59143,14 @@ components: name: type: string type: object + create_github_issue_task_params_issue_type: + description: The issue type + properties: + id: + type: string + name: + type: string + type: object create_incident_postmortem_task_params_template: description: Retrospective template to use nullable: true @@ -67474,6 +59255,18 @@ components: name: type: string type: object + create_shortcut_story_task_params_anyOf: + properties: + project: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - project + create_shortcut_story_task_params_anyOf_1: + properties: + workflow_state: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + required: + - workflow_state create_trello_card_task_params_board: description: The board id and display name properties: @@ -67498,6 +59291,30 @@ components: name: type: string type: object + get_github_commits_task_params_anyOf: + properties: + service_ids: + items: + type: string + type: array + required: + - service_ids + get_github_commits_task_params_anyOf_1: + properties: + github_repository_names: + items: + type: string + type: array + required: + - github_repository_names + get_gitlab_commits_task_params_anyOf: + properties: + gitlab_repository_names: + items: + type: string + type: array + required: + - gitlab_repository_names get_pulses_task_params_parent_message_thread_task: description: "A hash where [id] is the task id of the parent task that sent\ \ a message, and [name] is the name of the parent task" @@ -67507,6 +59324,60 @@ components: name: type: string type: object + invite_to_slack_channel_task_params_anyOf: + properties: + slack_users: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + required: + - slack_users + invite_to_slack_channel_task_params_anyOf_1: + properties: + slack_user_groups: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + required: + - slack_user_groups + invite_to_slack_channel_task_params_anyOf_2: + properties: + slack_emails: + type: string + required: + - slack_emails + page_victor_ops_on_call_responders_task_params_anyOf: + properties: + users: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + required: + - users + page_victor_ops_on_call_responders_task_params_anyOf_1: + properties: + escalation_policies: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + required: + - escalation_policies + send_slack_message_task_params_anyOf: + properties: + channels: + items: + $ref: '#/components/schemas/add_action_item_task_params_post_to_slack_channels_inner' + type: array + required: + - channels + update_github_issue_task_params_repository: + description: The repository (used for loading labels and issue types) + properties: + id: + type: string + name: + type: string + type: object update_linear_issue_task_params_state: description: The state id and display name nullable: true @@ -67517,7 +59388,7 @@ components: type: string type: object create_openai_chat_completion_task_params_model: - description: "The OpenAI model. eg: gpt-4o-mini" + description: "The OpenAI model. eg: gpt-5-nano" properties: id: type: string @@ -67601,6 +59472,8 @@ components: - $ref: '#/components/schemas/create_incident_postmortem_task_params' - $ref: '#/components/schemas/create_jira_issue_task_params' - $ref: '#/components/schemas/create_jira_subtask_task_params' + - $ref: '#/components/schemas/attach_retrospective_pdf_to_jira_issue_task_params' + - $ref: '#/components/schemas/attach_retrospective_pdf_to_freshservice_ticket_task_params' - $ref: '#/components/schemas/create_linear_issue_task_params' - $ref: '#/components/schemas/create_linear_subtask_issue_task_params' - $ref: '#/components/schemas/create_linear_issue_comment_task_params' @@ -67608,11 +59481,21 @@ components: - $ref: '#/components/schemas/create_microsoft_teams_channel_task_params' - $ref: '#/components/schemas/create_microsoft_teams_chat_task_params' - $ref: '#/components/schemas/add_microsoft_teams_tab_task_params' + - $ref: '#/components/schemas/add_microsoft_teams_chat_tab_task_params' + - $ref: '#/components/schemas/create_google_chat_space_task_params' + - $ref: '#/components/schemas/send_google_chat_message_task_params' + - $ref: '#/components/schemas/send_google_chat_attachments_task_params' + - $ref: '#/components/schemas/invite_to_google_chat_space_task_params' + - $ref: '#/components/schemas/archive_google_chat_spaces_task_params' + - $ref: '#/components/schemas/rename_google_chat_space_task_params' + - $ref: '#/components/schemas/update_google_chat_space_description_task_params' + - $ref: '#/components/schemas/change_google_chat_space_privacy_task_params' - $ref: '#/components/schemas/archive_microsoft_teams_channels_task_params' - $ref: '#/components/schemas/rename_microsoft_teams_channel_task_params' - $ref: '#/components/schemas/invite_to_microsoft_teams_channel_task_params' - $ref: '#/components/schemas/create_notion_page_task_params' - $ref: '#/components/schemas/send_microsoft_teams_message_task_params' + - $ref: '#/components/schemas/send_microsoft_teams_chat_message_task_params' - $ref: '#/components/schemas/send_microsoft_teams_blocks_task_params' - $ref: '#/components/schemas/update_notion_page_task_params' - $ref: '#/components/schemas/update_quip_page_task_params' @@ -67637,11 +59520,14 @@ components: - $ref: '#/components/schemas/http_client_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_opsgenie_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_rootly_task_params' + - $ref: '#/components/schemas/invite_to_microsoft_teams_channel_rootly_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_pagerduty_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_victor_ops_task_params' - $ref: '#/components/schemas/page_opsgenie_on_call_responders_task_params' - $ref: '#/components/schemas/create_opsgenie_alert_task_params' + - $ref: '#/components/schemas/create_jsmops_alert_task_params' + - $ref: '#/components/schemas/page_jsmops_on_call_responders_task_params' - $ref: '#/components/schemas/update_opsgenie_alert_task_params' - $ref: '#/components/schemas/update_opsgenie_incident_task_params' - $ref: '#/components/schemas/page_rootly_on_call_responders_task_params' @@ -67769,6 +59655,8 @@ components: - $ref: '#/components/schemas/create_incident_postmortem_task_params' - $ref: '#/components/schemas/create_jira_issue_task_params' - $ref: '#/components/schemas/create_jira_subtask_task_params' + - $ref: '#/components/schemas/attach_retrospective_pdf_to_jira_issue_task_params' + - $ref: '#/components/schemas/attach_retrospective_pdf_to_freshservice_ticket_task_params' - $ref: '#/components/schemas/create_linear_issue_task_params' - $ref: '#/components/schemas/create_linear_subtask_issue_task_params' - $ref: '#/components/schemas/create_linear_issue_comment_task_params' @@ -67776,11 +59664,21 @@ components: - $ref: '#/components/schemas/create_microsoft_teams_channel_task_params' - $ref: '#/components/schemas/create_microsoft_teams_chat_task_params' - $ref: '#/components/schemas/add_microsoft_teams_tab_task_params' + - $ref: '#/components/schemas/add_microsoft_teams_chat_tab_task_params' + - $ref: '#/components/schemas/create_google_chat_space_task_params' + - $ref: '#/components/schemas/send_google_chat_message_task_params' + - $ref: '#/components/schemas/send_google_chat_attachments_task_params' + - $ref: '#/components/schemas/invite_to_google_chat_space_task_params' + - $ref: '#/components/schemas/archive_google_chat_spaces_task_params' + - $ref: '#/components/schemas/rename_google_chat_space_task_params' + - $ref: '#/components/schemas/update_google_chat_space_description_task_params' + - $ref: '#/components/schemas/change_google_chat_space_privacy_task_params' - $ref: '#/components/schemas/archive_microsoft_teams_channels_task_params' - $ref: '#/components/schemas/rename_microsoft_teams_channel_task_params' - $ref: '#/components/schemas/invite_to_microsoft_teams_channel_task_params' - $ref: '#/components/schemas/create_notion_page_task_params' - $ref: '#/components/schemas/send_microsoft_teams_message_task_params' + - $ref: '#/components/schemas/send_microsoft_teams_chat_message_task_params' - $ref: '#/components/schemas/send_microsoft_teams_blocks_task_params' - $ref: '#/components/schemas/update_notion_page_task_params' - $ref: '#/components/schemas/update_quip_page_task_params' @@ -67805,11 +59703,14 @@ components: - $ref: '#/components/schemas/http_client_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_opsgenie_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_rootly_task_params' + - $ref: '#/components/schemas/invite_to_microsoft_teams_channel_rootly_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_pagerduty_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_task_params' - $ref: '#/components/schemas/invite_to_slack_channel_victor_ops_task_params' - $ref: '#/components/schemas/page_opsgenie_on_call_responders_task_params' - $ref: '#/components/schemas/create_opsgenie_alert_task_params' + - $ref: '#/components/schemas/create_jsmops_alert_task_params' + - $ref: '#/components/schemas/page_jsmops_on_call_responders_task_params' - $ref: '#/components/schemas/update_opsgenie_alert_task_params' - $ref: '#/components/schemas/update_opsgenie_incident_task_params' - $ref: '#/components/schemas/page_rootly_on_call_responders_task_params' @@ -67908,6 +59809,194 @@ components: - id - type type: object + new_workflow_action_item_form_field_condition_data_attributes: + additionalProperties: false + properties: + form_field_id: + description: The custom field for this condition + type: string + action_item_condition: + default: ANY + description: The trigger condition + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + values: + items: + description: The value to associate with the custom field trigger + type: string + type: array + selected_catalog_entity_ids: + items: + description: The selected catalog entities for select and multi_select + kinds + type: string + type: array + selected_functionality_ids: + items: + description: The selected functionalities for select and multi_select + kinds + type: string + type: array + selected_group_ids: + items: + description: The selected groups (teams) for select and multi_select kinds + type: string + type: array + selected_option_ids: + items: + description: The selected option id for select and multi_select kinds + type: string + type: array + selected_service_ids: + items: + description: The selected services for select and multi_select kinds + type: string + type: array + selected_user_ids: + items: + description: The selected user id for select and multi_select kinds + type: integer + type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array + required: + - action_item_condition + - form_field_id + type: object + new_workflow_action_item_form_field_condition_data: + properties: + type: + enum: + - workflow_action_item_form_field_conditions + type: string + attributes: + $ref: '#/components/schemas/new_workflow_action_item_form_field_condition_data_attributes' + required: + - attributes + - type + type: object + update_workflow_action_item_form_field_condition_data_attributes: + additionalProperties: false + properties: + action_item_condition: + default: ANY + description: The trigger condition + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + values: + items: + description: The value to associate with the custom field trigger + type: string + type: array + selected_catalog_entity_ids: + items: + description: The selected catalog entities for select and multi_select + kinds + type: string + type: array + selected_functionality_ids: + items: + description: The selected functionalities for select and multi_select + kinds + type: string + type: array + selected_group_ids: + items: + description: The selected groups (teams) for select and multi_select kinds + type: string + type: array + selected_option_ids: + items: + description: The selected option id for select and multi_select kinds + type: string + type: array + selected_service_ids: + items: + description: The selected services for select and multi_select kinds + type: string + type: array + selected_user_ids: + items: + description: The selected user id for select and multi_select kinds + type: integer + type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array + type: object + update_workflow_action_item_form_field_condition_data: + properties: + type: + enum: + - workflow_action_item_form_field_conditions + type: string + attributes: + $ref: '#/components/schemas/update_workflow_action_item_form_field_condition_data_attributes' + required: + - attributes + - type + type: object + workflow_action_item_form_field_condition_response_data: + properties: + id: + description: Unique ID of the workflow_action_item_form_field_condition + type: string + type: + enum: + - workflow_action_item_form_field_conditions + type: string + attributes: + allOf: + - $ref: '#/components/schemas/workflow_action_item_form_field_condition' + type: object + required: + - attributes + - id + - type + type: object new_workflow_custom_field_selection_data_attributes: additionalProperties: false properties: @@ -68075,6 +60164,21 @@ components: description: The selected user id for select and multi_select kinds type: integer type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array required: - form_field_id - incident_condition @@ -68145,6 +60249,21 @@ components: description: The selected user id for select and multi_select kinds type: integer type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array type: object update_workflow_form_field_condition_data: properties: @@ -68178,6 +60297,13 @@ components: type: object new_workflow_group_data_attributes: properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name` and `kind`; any submitted + value is ignored. This property will be removed from the request schema + in a future version. + nullable: true + type: string kind: description: The kind of the workflow group enum: @@ -68222,6 +60348,13 @@ components: type: object update_workflow_group_data_attributes: properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name` and `kind`; any submitted + value is ignored. This property will be removed from the request schema + in a future version. + nullable: true + type: string kind: description: The kind of the workflow group enum: @@ -68445,12 +60578,16 @@ components: new_workflow_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The title of the workflow type: string - slug: - description: The slug of the workflow - type: string description: description: The description of the workflow nullable: true @@ -68562,6 +60699,7 @@ components: - name type: object new_workflow_data: + additionalProperties: false properties: type: enum: @@ -68597,15 +60735,58 @@ components: - alert_field_id - condition_type type: object + alert_trigger_params_alert_payload_conditions_conditions_inner: + properties: + query: + type: string + operator: + enum: + - IS + - IS NOT + - ANY + - CONTAINS + - CONTAINS_ALL + - CONTAINS_NONE + - NONE + - SET + - UNSET + type: string + values: + items: + type: string + type: array + use_regexp: + type: boolean + required: + - operator + - query + type: object + alert_trigger_params_alert_payload_conditions: + properties: + logic: + enum: + - ALL + - ANY + - NONE + type: string + conditions: + items: + $ref: '#/components/schemas/alert_trigger_params_alert_payload_conditions_conditions_inner' + type: array + type: object update_workflow_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The title of the workflow type: string - slug: - description: The slug of the workflow - type: string description: description: The description of the workflow nullable: true @@ -68694,7 +60875,12 @@ components: type: array type: object update_workflow_data: + additionalProperties: false properties: + id: + description: "Accepted for JSON:API client compatibility, but ignored. The\ + \ workflow to update is identified by the id in the path." + type: string type: enum: - workflows @@ -68730,11 +60916,13 @@ components: description: The ID of paging target type: string type: - description: The type of the paging target + description: The type of the paging target. Please contact support if you + encounter issues using `functionality` as a target type. enum: - service - team - escalation_policy + - functionality type: string alert_urgency_id: description: This is used in escalation paths to determine who to page @@ -68750,11 +60938,13 @@ components: description: The ID of notification target type: string type: - description: The type of the notification target + description: The type of the notification target. Please contact support + if you encounter issues using `functionality` as a target type. enum: - service - group - escalation_policy + - functionality type: string required: - id @@ -68783,6 +60973,8 @@ components: - DE - NL - NZ + - SE + - CH - GB - US type: string @@ -68803,6 +60995,159 @@ components: caller_greeting: description: The caller greeting message of the live_call_router type: string + unavailable_responder_message: + description: The message played to the caller when a responder doesn't answer + and the call moves on to the next person in the escalation. Leave blank + to use the default message. + maxLength: 300 + nullable: true + type: string + waiting_music_url: + description: The waiting music URL of the live_call_router + enum: + - https://storage.rootly.com/twilio/voicemail/ClockworkWaltz.mp3 + - https://storage.rootly.com/twilio/voicemail/ith_brahms-116-4.mp3 + - https://storage.rootly.com/twilio/voicemail/Mellotroniac_-_Flight_Of_Young_Hearts_Flute.mp3 + - https://storage.rootly.com/twilio/voicemail/BusyStrings.mp3 + - https://storage.rootly.com/twilio/voicemail/oldDog_-_endless_goodbye_%28instr.%29.mp3 + - https://storage.rootly.com/twilio/voicemail/MARKOVICHAMP-Borghestral.mp3 + - https://storage.rootly.com/twilio/voicemail/ith_chopin-15-2.mp3 + type: string + sent_to_voicemail_delay: + description: The delay (seconds) after which the caller in redirected to + voicemail + type: integer + should_redirect_to_voicemail_on_no_answer: + description: This prompts the caller to choose voicemail or connect live + type: boolean + escalation_level_delay_in_seconds: + description: This overrides the delay (seconds) in escalation levels + type: integer + should_auto_resolve_alert_on_call_end: + description: This overrides the delay (seconds) in escalation levels + type: boolean + notify_via_sms: + description: Whether responders are also notified via SMS when this router + pages them + type: boolean + notify_via_push_notification: + description: Whether responders are also notified via push notification + when this router pages them + type: boolean + informational_notification_message: + description: "Optional message included in the SMS/push notification. Supports\ + \ variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name\ + \ }}." + maxLength: 160 + nullable: true + type: string + alert_urgency_id: + description: This is used in escalation paths to determine who to page + type: string + calling_tree_enabled: + description: "Whether the live call router is configured as a phone tree,\ + \ requiring callers to press a key before being connected" + type: boolean + calling_tree_prompt: + description: "The audio instructions callers will hear when they call this\ + \ number, prompting them to select from available options to route their\ + \ call" + type: string + paging_targets: + description: Paging targets that callers can select from when this live + call router is configured as a phone tree. + items: + $ref: '#/components/schemas/new_live_call_router_data_attributes_paging_targets_inner' + type: array + escalation_policy_trigger_params: + $ref: '#/components/schemas/new_live_call_router_data_attributes_escalation_policy_trigger_params' + required: + - country_code + - kind + - name + - paging_targets + - phone_number + - phone_type + - voicemail_greeting + type: object + new_live_call_router_data: + properties: + type: + enum: + - live_call_routers + type: string + attributes: + $ref: '#/components/schemas/new_live_call_router_data_attributes' + required: + - attributes + - type + type: object + update_live_call_router_data_attributes_escalation_policy_trigger_params: + properties: + id: + description: The ID of notification target + type: string + type: + description: The type of the notification target. Please contact support + if you encounter issues using `Functionality` as a target type. + enum: + - Service + - Group + - EscalationPolicy + - Functionality + type: string + required: + - id + - type + type: object + update_live_call_router_data_attributes: + additionalProperties: false + properties: + kind: + description: The kind of the live_call_router + enum: + - voicemail + - live + type: string + enabled: + description: Whether the live_call_router is enabled + type: boolean + name: + description: The name of the live_call_router + type: string + country_code: + description: The country code of the live_call_router + enum: + - AU + - CA + - DE + - NL + - NZ + - SE + - CH + - GB + - US + type: string + phone_type: + description: The phone type of the live_call_router + enum: + - local + - toll_free + - mobile + type: string + voicemail_greeting: + description: The voicemail greeting of the live_call_router + type: string + caller_greeting: + description: The caller greeting message of the live_call_router + type: string + unavailable_responder_message: + description: The message played to the caller when a responder doesn't answer + and the call moves on to the next person in the escalation. Leave blank + to use the default message. + maxLength: 300 + nullable: true + type: string waiting_music_url: description: The waiting music URL of the live_call_router enum: @@ -68827,125 +61172,28 @@ components: should_auto_resolve_alert_on_call_end: description: This overrides the delay (seconds) in escalation levels type: boolean - alert_urgency_id: - description: This is used in escalation paths to determine who to page - type: string - calling_tree_prompt: - description: "The audio instructions callers will hear when they call this\ - \ number, prompting them to select from available options to route their\ - \ call" - type: string - paging_targets: - description: Paging targets that callers can select from when this live - call router is configured as a phone tree. - items: - $ref: '#/components/schemas/new_live_call_router_data_attributes_paging_targets_inner' - type: array - escalation_policy_trigger_params: - $ref: '#/components/schemas/new_live_call_router_data_attributes_escalation_policy_trigger_params' - required: - - country_code - - kind - - name - - paging_targets - - phone_number - - phone_type - - voicemail_greeting - type: object - new_live_call_router_data: - properties: - type: - enum: - - live_call_routers - type: string - attributes: - $ref: '#/components/schemas/new_live_call_router_data_attributes' - required: - - attributes - - type - type: object - update_live_call_router_data_attributes_escalation_policy_trigger_params: - properties: - id: - description: The ID of notification target - type: string - type: - description: The type of the notification target - enum: - - Service - - Group - - EscalationPolicy - type: string - required: - - id - - type - type: object - update_live_call_router_data_attributes: - additionalProperties: false - properties: - kind: - description: The kind of the live_call_router - enum: - - voicemail - - live - type: string - enabled: - description: Whether the live_call_router is enabled + notify_via_sms: + description: Whether responders are also notified via SMS when this router + pages them type: boolean - name: - description: The name of the live_call_router - type: string - country_code: - description: The country code of the live_call_router - enum: - - AU - - CA - - DE - - NL - - NZ - - GB - - US - type: string - phone_type: - description: The phone type of the live_call_router - enum: - - local - - toll_free - - mobile - type: string - voicemail_greeting: - description: The voicemail greeting of the live_call_router - type: string - caller_greeting: - description: The caller greeting message of the live_call_router - type: string - waiting_music_url: - description: The waiting music URL of the live_call_router - enum: - - https://storage.rootly.com/twilio/voicemail/ClockworkWaltz.mp3 - - https://storage.rootly.com/twilio/voicemail/ith_brahms-116-4.mp3 - - https://storage.rootly.com/twilio/voicemail/Mellotroniac_-_Flight_Of_Young_Hearts_Flute.mp3 - - https://storage.rootly.com/twilio/voicemail/BusyStrings.mp3 - - https://storage.rootly.com/twilio/voicemail/oldDog_-_endless_goodbye_%28instr.%29.mp3 - - https://storage.rootly.com/twilio/voicemail/MARKOVICHAMP-Borghestral.mp3 - - https://storage.rootly.com/twilio/voicemail/ith_chopin-15-2.mp3 - type: string - sent_to_voicemail_delay: - description: The delay (seconds) after which the caller in redirected to - voicemail - type: integer - should_redirect_to_voicemail_on_no_answer: - description: This prompts the caller to choose voicemail or connect live - type: boolean - escalation_level_delay_in_seconds: - description: This overrides the delay (seconds) in escalation levels - type: integer - should_auto_resolve_alert_on_call_end: - description: This overrides the delay (seconds) in escalation levels + notify_via_push_notification: + description: Whether responders are also notified via push notification + when this router pages them type: boolean + informational_notification_message: + description: "Optional message included in the SMS/push notification. Supports\ + \ variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name\ + \ }}." + maxLength: 160 + nullable: true + type: string alert_urgency_id: description: This is used in escalation paths to determine who to page type: string + calling_tree_enabled: + description: "Whether the live call router is configured as a phone tree,\ + \ requiring callers to press a key before being connected" + type: boolean calling_tree_prompt: description: "The audio instructions callers will hear when they call this\ \ number, prompting them to select from available options to route their\ @@ -69022,12 +61270,20 @@ components: notification_target_id: type: string notification_target_type: + description: The type of the notification target. Please contact support + if you encounter issues using `Functionality` as a target type. enum: - User - Group - Service - EscalationPolicy + - Functionality type: string + owner_group_ids: + description: List of team IDs that own this heartbeat + items: + type: string + type: array enabled: description: Whether to trigger alerts when heartbeat is expired. type: boolean @@ -69083,12 +61339,20 @@ components: notification_target_id: type: string notification_target_type: + description: The type of the notification target. Please contact support + if you encounter issues using `Functionality` as a target type. enum: - User - Group - Service - EscalationPolicy + - Functionality type: string + owner_group_ids: + description: List of team IDs that own this heartbeat + items: + type: string + type: array enabled: description: Whether to trigger alerts when heartbeat is expired. type: boolean @@ -69123,6 +61387,79 @@ components: - id - type type: object + new_incident_action_item_data_attributes_form_field_selections_inner_value: + description: "Value for text, textarea, rich text, date, datetime, number, checkbox,\ + \ or tag fields" + oneOf: + - nullable: true + type: string + - items: + type: string + type: array + new_incident_action_item_data_attributes_form_field_selections_inner: + additionalProperties: false + properties: + id: + description: ID of an existing selection. Required when updating or removing + a field's existing value. + type: string + form_field_id: + description: ID of the custom field + type: string + value: + $ref: '#/components/schemas/new_incident_action_item_data_attributes_form_field_selections_inner_value' + selected_option_ids: + description: IDs of the selected custom field options + items: + type: string + type: array + selected_user_ids: + description: IDs of the selected users + items: + type: integer + type: array + selected_group_ids: + description: IDs of the selected teams + items: + type: string + type: array + selected_service_ids: + description: IDs of the selected services + items: + type: string + type: array + selected_functionality_ids: + description: IDs of the selected functionalities + items: + type: string + type: array + selected_catalog_entity_ids: + description: IDs of the selected catalog entities + items: + type: string + type: array + selected_environment_ids: + description: IDs of the selected environments + items: + type: string + type: array + selected_cause_ids: + description: IDs of the selected causes + items: + type: string + type: array + selected_incident_type_ids: + description: IDs of the selected incident types + items: + type: string + type: array + _destroy: + description: Set to true to remove the field's value from the action item + nullable: true + type: boolean + required: + - form_field_id + type: object new_incident_action_item_data_attributes: additionalProperties: false properties: @@ -69179,6 +61516,13 @@ components: description: The Jira issue URL. nullable: true type: string + form_field_selections: + description: Custom field values to set on the action item. Ignored unless + custom fields for action items are enabled for the organization. + items: + $ref: '#/components/schemas/new_incident_action_item_data_attributes_form_field_selections_inner' + nullable: true + type: array required: - summary type: object @@ -69251,6 +61595,13 @@ components: description: The Jira issue URL. nullable: true type: string + form_field_selections: + description: Custom field values to set on the action item. Ignored unless + custom fields for action items are enabled for the organization. + items: + $ref: '#/components/schemas/new_incident_action_item_data_attributes_form_field_selections_inner' + nullable: true + type: array type: object update_incident_action_item_data: properties: @@ -69705,6 +62056,21 @@ components: description: The selected users for select and multi_select kinds type: integer type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array required: - form_field_id - incident_id @@ -69760,6 +62126,21 @@ components: description: The selected users for select and multi_select kinds type: integer type: array + selected_environment_ids: + items: + description: The selected environments for select and multi_select kinds + type: string + type: array + selected_cause_ids: + items: + description: The selected causes for select and multi_select kinds + type: string + type: array + selected_incident_type_ids: + items: + description: The selected incident types for select and multi_select kinds + type: string + type: array type: object update_incident_form_field_selection_data: properties: @@ -70020,12 +62401,16 @@ components: new_incident_permission_set_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The incident permission set name. type: string - slug: - description: The incident permission set slug. - type: string description: description: The incident permission set description. nullable: true @@ -70066,12 +62451,16 @@ components: update_incident_permission_set_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The incident permission set name. type: string - slug: - description: The incident permission set slug. - type: string description: description: The incident permission set description. nullable: true @@ -70363,6 +62752,13 @@ components: new_incident_role_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the incident role type: string @@ -70402,6 +62798,13 @@ components: update_incident_role_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the incident role type: string @@ -70454,6 +62857,24 @@ components: - id - type type: object + new_incident_status_page_event_data_attributes_status_page_components_inner: + additionalProperties: false + properties: + status_page_component_id: + description: Unique ID of a component on the event's status page + type: string + status: + description: The status to record for the component + enum: + - operational + - degraded_performance + - partial_outage + - major_outage + nullable: true + type: string + required: + - status_page_component_id + type: object new_incident_status_page_event_data_attributes: additionalProperties: false properties: @@ -70485,6 +62906,20 @@ components: your update nullable: true type: boolean + started_at: + description: When the event started. Defaults to the time of creation. + format: date-time + nullable: true + type: string + status_page_components: + description: "Affected status page components and their statuses. Requires\ + \ the status-page-v3-phase-1 feature. Ignored for terminal event statuses\ + \ (resolved, completed), which clear component impact. A status is required\ + \ per component except for scheduled maintenance incidents." + items: + $ref: '#/components/schemas/new_incident_status_page_event_data_attributes_status_page_components_inner' + nullable: true + type: array required: - event type: object @@ -70531,6 +62966,11 @@ components: your update nullable: true type: boolean + started_at: + description: When the event started. + format: date-time + nullable: true + type: string type: object update_incident_status_page_event_data: properties: @@ -70544,6 +62984,23 @@ components: - attributes - type type: object + incident_status_page_event_status_page_components_inner: + properties: + status_page_component_id: + description: Unique ID of a component on the event's status page + type: string + status: + description: The status recorded for the component + enum: + - operational + - degraded_performance + - partial_outage + - major_outage + nullable: true + type: string + required: + - status_page_component_id + type: object incident_status_page_event_response_data: properties: id: @@ -70565,6 +63022,13 @@ components: new_incident_type_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the incident type type: string @@ -70572,6 +63036,10 @@ components: description: The description of the incident type nullable: true type: string + public_description: + description: The status page description of the incident type + nullable: true + type: string color: description: The hex color of the incident type nullable: true @@ -70598,6 +63066,11 @@ components: $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' nullable: true type: array + properties: + description: Array of property values for this incident type. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array required: - name type: object @@ -70616,6 +63089,13 @@ components: update_incident_type_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the incident type type: string @@ -70623,6 +63103,10 @@ components: description: The description of the incident type nullable: true type: string + public_description: + description: The status page description of the incident type + nullable: true + type: string color: description: The hex color of the incident type nullable: true @@ -70649,6 +63133,11 @@ components: $ref: '#/components/schemas/new_environment_data_attributes_slack_aliases_inner' nullable: true type: array + properties: + description: Array of property values for this incident type. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array type: object update_incident_type_data: properties: @@ -71335,6 +63824,19 @@ components: - attributes - type type: object + incident_zoom_meeting_global_dial_in_numbers_inner: + properties: + country: + type: string + country_name: + type: string + city: + type: string + number: + type: string + type: + type: string + type: object incident_response_data: properties: id: @@ -71371,6 +63873,228 @@ components: - id - type type: object + start_session_response_data: + properties: + session_id: + description: Meeting recording UUID + format: uuid + type: string + stream_token: + description: Token for the desktop client to stream audio + type: string + meeting_recording_id: + description: Meeting recording UUID + format: uuid + type: string + required: + - meeting_recording_id + - session_id + - stream_token + type: object + meeting_recording_detail_allOf_transcript: + description: "Array of speaker segments when populated, empty object when no\ + \ transcript exists." + oneOf: + - items: + $ref: '#/components/schemas/meeting_recording_transcript_segment' + type: array + - maxProperties: 0 + type: object + meeting_recording_detail_response_data: + properties: + id: + description: Unique UUID of the meeting recording + type: string + type: + enum: + - meeting_recordings + type: string + attributes: + allOf: + - $ref: '#/components/schemas/meeting_recording_detail' + type: object + required: + - attributes + - id + - type + type: object + meeting_recording_response_data: + properties: + id: + description: Unique UUID of the meeting recording + type: string + type: + enum: + - meeting_recordings + type: string + attributes: + allOf: + - $ref: '#/components/schemas/meeting_recording' + type: object + required: + - attributes + - id + - type + type: object + oncall_list_data_inner: + properties: + id: + description: Unique ID of the on-call entry + type: string + type: + enum: + - on_call_resources + type: string + attributes: + allOf: + - $ref: '#/components/schemas/oncall' + type: object + relationships: + $ref: '#/components/schemas/oncall_relationships' + required: + - attributes + - id + - type + type: object + oncall_relationships_user_data: + nullable: true + properties: + id: + type: string + type: + enum: + - users + type: string + type: object + oncall_relationships_user: + properties: + data: + $ref: '#/components/schemas/oncall_relationships_user_data' + type: object + oncall_relationships_schedule_data: + nullable: true + properties: + id: + type: string + type: + enum: + - schedules + type: string + type: object + oncall_relationships_schedule: + properties: + data: + $ref: '#/components/schemas/oncall_relationships_schedule_data' + type: object + oncall_relationships_escalation_policy_data: + nullable: true + properties: + id: + type: string + type: + enum: + - escalation_policies + type: string + type: object + oncall_relationships_escalation_policy: + properties: + data: + $ref: '#/components/schemas/oncall_relationships_escalation_policy_data' + type: object + new_on_call_pay_report_data_attributes: + additionalProperties: false + properties: + start_date: + description: The start date for the report period. + format: date + type: string + end_date: + description: The end date for the report period. + format: date + type: string + schedule_ids: + description: List of schedule UUIDs to scope the report. + items: + type: string + type: array + time_zone: + description: IANA timezone used to compute day and weekend boundaries. Defaults + to the team's timezone. + type: string + use_responders_time_zone: + description: "When true, day and weekend boundaries are computed in each\ + \ responder's personal timezone instead of the report-wide timezone." + type: boolean + required: + - end_date + - start_date + type: object + new_on_call_pay_report_data: + properties: + type: + enum: + - on_call_pay_reports + type: string + attributes: + $ref: '#/components/schemas/new_on_call_pay_report_data_attributes' + required: + - attributes + - type + type: object + update_on_call_pay_report_data_attributes: + additionalProperties: false + properties: + start_date: + description: The start date for the report period. + format: date + type: string + end_date: + description: The end date for the report period. + format: date + type: string + schedule_ids: + description: List of schedule UUIDs to scope the report. + items: + type: string + type: array + time_zone: + description: IANA timezone used to compute day and weekend boundaries. + type: string + use_responders_time_zone: + description: "When true, day and weekend boundaries are computed in each\ + \ responder's personal timezone instead of the report-wide timezone." + type: boolean + type: object + update_on_call_pay_report_data: + properties: + type: + enum: + - on_call_pay_reports + type: string + attributes: + $ref: '#/components/schemas/update_on_call_pay_report_data_attributes' + required: + - attributes + - type + type: object + on_call_pay_report_response_data: + properties: + id: + description: Unique ID of the on_call_pay_report + type: string + type: + enum: + - on_call_pay_reports + type: string + attributes: + allOf: + - $ref: '#/components/schemas/on_call_pay_report' + type: object + required: + - attributes + - id + - type + type: object new_on_call_shadow_data_attributes: additionalProperties: false properties: @@ -71498,11 +64222,262 @@ components: new_on_call_role_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The role name. type: string + system_role: + description: The kind of role (user and custom type roles are only editable) + items: + enum: + - admin + - user + - custom + - observer + - no_access + type: string + type: array + alert_fields_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + alert_groups_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + alert_routing_rules_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + on_call_readiness_report_permissions: + items: + enum: + - read + type: string + type: array + on_call_roles_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + alert_sources_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + alert_urgency_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + alerts_permissions: + items: + enum: + - create + - update + - read + - delete + type: string + type: array + api_keys_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + audits_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + contacts_permissions: + items: + enum: + - read + type: string + type: array + escalation_policies_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + groups_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + heartbeats_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + integrations_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + invitations_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + live_call_routing_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + schedule_override_permissions: + items: + enum: + - create + - update + type: string + type: array + schedules_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + services_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + functionalities_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + webhooks_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + workflows_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + catalogs_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + required: + - name + type: object + new_on_call_role_data: + properties: + type: + enum: + - on_call_roles + type: string + attributes: + $ref: '#/components/schemas/new_on_call_role_data_attributes' + required: + - attributes + - type + type: object + update_on_call_role_data_attributes: + additionalProperties: false + properties: slug: - description: The role slug. + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + description: The role name. type: string system_role: description: The kind of role (user and custom type roles are only editable) @@ -71515,6 +64490,24 @@ components: - no_access type: string type: array + alert_sources_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + alert_urgency_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array alert_fields_permissions: items: enum: @@ -71557,30 +64550,13 @@ components: - delete type: string type: array - alert_sources_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - alert_urgency_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array alerts_permissions: items: enum: - create - update - read + - delete type: string type: array api_keys_permissions: @@ -71686,213 +64662,7 @@ components: - delete type: string type: array - webhooks_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - workflows_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - required: - - name - type: object - new_on_call_role_data: - properties: - type: - enum: - - on_call_roles - type: string - attributes: - $ref: '#/components/schemas/new_on_call_role_data_attributes' - required: - - attributes - - type - type: object - update_on_call_role_data_attributes: - additionalProperties: false - properties: - name: - description: The role name. - type: string - slug: - description: The role slug. - type: string - system_role: - description: The kind of role (user and custom type roles are only editable) - items: - enum: - - admin - - user - - custom - - observer - - no_access - type: string - type: array - alert_sources_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - alert_urgency_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - alert_fields_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - alert_groups_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - alert_routing_rules_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - on_call_readiness_report_permissions: - items: - enum: - - read - type: string - type: array - on_call_roles_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - alerts_permissions: - items: - enum: - - create - - update - - read - type: string - type: array - api_keys_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - audits_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - contacts_permissions: - items: - enum: - - read - type: string - type: array - escalation_policies_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - groups_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - heartbeats_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - integrations_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - invitations_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - live_call_routing_permissions: - items: - enum: - - create - - read - - update - - delete - type: string - type: array - schedule_override_permissions: - items: - enum: - - create - - update - type: string - type: array - schedules_permissions: + functionalities_permissions: items: enum: - create @@ -71901,7 +64671,7 @@ components: - delete type: string type: array - services_permissions: + webhooks_permissions: items: enum: - create @@ -71910,7 +64680,7 @@ components: - delete type: string type: array - webhooks_permissions: + workflows_permissions: items: enum: - create @@ -71919,7 +64689,7 @@ components: - delete type: string type: array - workflows_permissions: + catalogs_permissions: items: enum: - create @@ -72274,6 +65044,13 @@ components: new_post_mortem_template_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the postmortem template type: string @@ -72312,6 +65089,13 @@ components: update_post_mortem_template_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the postmortem template type: string @@ -72542,7 +65326,7 @@ components: $ref: '#/components/schemas/update_pulse_data_attributes' required: - attributes - - summary + - type type: object pulse_response_data: properties: @@ -72768,6 +65552,13 @@ components: new_retrospective_step_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `title`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string title: description: The name of the step type: string @@ -72810,6 +65601,13 @@ components: update_retrospective_step_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `title`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string title: description: The name of the step type: string @@ -72868,12 +65666,16 @@ components: new_role_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. Custom role slugs remain accepted temporarily. + Stop setting `slug`; it will become read-only and be derived from `name` + when this property is removed from the request schema in a future version. + nullable: true + type: string name: description: The role name. type: string - slug: - description: The role slug. - type: string incident_permission_set_id: description: Associated incident permissions set. nullable: true @@ -73109,6 +65911,70 @@ components: - delete type: string type: array + catalogs_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + sub_statuses_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + edge_connector_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + slas_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + paging_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + incident_communication_permissions: + items: + enum: + - create + - read + - update + - delete + - send + type: string + type: array + communication_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array required: - name type: object @@ -73127,16 +65993,26 @@ components: update_role_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. Custom role slugs remain accepted temporarily. + Stop setting `slug`; it will become read-only and be derived from `name` + when this property is removed from the request schema in a future version. + nullable: true + type: string name: description: The role name. type: string - slug: - description: The role slug. - type: string incident_permission_set_id: description: Associated incident permissions set. nullable: true type: string + is_deletable: + description: Whether the role can be deleted. + type: boolean + is_editable: + description: Whether the role can be edited. + type: boolean api_keys_permissions: items: enum: @@ -73353,6 +66229,70 @@ components: - delete type: string type: array + catalogs_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + sub_statuses_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + edge_connector_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + slas_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + paging_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array + incident_communication_permissions: + items: + enum: + - create + - read + - update + - delete + - send + type: string + type: array + communication_permissions: + items: + enum: + - create + - read + - update + - delete + type: string + type: array type: object update_role_data: properties: @@ -73722,15 +66662,15 @@ components: schedule_rotationable_attributes: $ref: '#/components/schemas/new_schedule_rotation_data_attributes_schedule_rotationable_attributes' start_time: - description: ISO8601 date and time when rotation starts. Shifts will only - be created after this time. - format: date + description: RFC3339 date-time when rotation starts. Shifts will only be + created after this time. + format: date-time nullable: true type: string end_time: - description: ISO8601 date and time when rotation ends. Shifts will only - be created before this time. - format: date + description: RFC3339 date-time when rotation ends. Shifts will only be created + before this time. + format: date-time nullable: true type: string schedule_rotation_members: @@ -73814,15 +66754,15 @@ components: schedule_rotationable_attributes: $ref: '#/components/schemas/new_schedule_rotation_data_attributes_schedule_rotationable_attributes' start_time: - description: ISO8601 date and time when rotation starts. Shifts will only - be created after this time. - format: time + description: RFC3339 date-time when rotation starts. Shifts will only be + created after this time. + format: date-time nullable: true type: string end_time: - description: ISO8601 date and time when rotation ends. Shifts will only - be created before this time. - format: time + description: RFC3339 date-time when rotation ends. Shifts will only be created + before this time. + format: date-time nullable: true type: string schedule_rotation_members: @@ -73910,6 +66850,53 @@ components: owner_user_id: description: ID of the owner of the schedule type: integer + sync_linear_enabled: + description: Whether the schedule is synced with Linear + nullable: true + type: boolean + include_shadows_in_slack_notifications: + description: Whether shadow users are included in Slack notifications and + user group syncing. Requires `slack_channel` to be set; otherwise this + value is forced to false on save. + nullable: true + type: boolean + shift_start_notifications_enabled: + description: Whether shift-start notifications are enabled. Requires `slack_channel` + to be set; otherwise this value is forced to false on save. + nullable: true + type: boolean + shift_update_notifications_enabled: + description: Whether shift-update notifications are enabled. Requires `slack_channel` + to be set; otherwise this value is forced to false on save. + nullable: true + type: boolean + shift_report_enabled: + description: Whether the weekly shift summary report is enabled. Requires + `slack_channel` to be set; otherwise this value is forced to false on + save. + nullable: true + type: boolean + shift_report_day_of_week: + description: Day of week the weekly shift summary is sent + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + nullable: true + type: string + shift_report_time_of_day: + description: "Time of day the weekly shift summary is sent, in HH:MM 24-hour\ + \ format" + nullable: true + type: string + shift_report_time_zone: + description: IANA time zone used for the weekly shift summary + nullable: true + type: string required: - name - owner_user_id @@ -73953,6 +66940,53 @@ components: description: ID of the owner of the schedule nullable: true type: integer + sync_linear_enabled: + description: Whether the schedule is synced with Linear + nullable: true + type: boolean + include_shadows_in_slack_notifications: + description: Whether shadow users are included in Slack notifications and + user group syncing. Requires `slack_channel` to be set; otherwise this + value is forced to false on save. + nullable: true + type: boolean + shift_start_notifications_enabled: + description: Whether shift-start notifications are enabled. Requires `slack_channel` + to be set; otherwise this value is forced to false on save. + nullable: true + type: boolean + shift_update_notifications_enabled: + description: Whether shift-update notifications are enabled. Requires `slack_channel` + to be set; otherwise this value is forced to false on save. + nullable: true + type: boolean + shift_report_enabled: + description: Whether the weekly shift summary report is enabled. Requires + `slack_channel` to be set; otherwise this value is forced to false on + save. + nullable: true + type: boolean + shift_report_day_of_week: + description: Day of week the weekly shift summary is sent + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + nullable: true + type: string + shift_report_time_of_day: + description: "Time of day the weekly shift summary is sent, in HH:MM 24-hour\ + \ format" + nullable: true + type: string + shift_report_time_zone: + description: IANA time zone used for the weekly shift summary + nullable: true + type: string type: object update_schedule_data: properties: @@ -74137,7 +67171,6 @@ components: type: string required: - id - - name type: object new_service_data_attributes_incident_broadcast_channel: description: Slack channel to broadcast incidents to @@ -74151,11 +67184,17 @@ components: type: string required: - id - - name type: object new_service_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the service type: string @@ -74164,7 +67203,7 @@ components: nullable: true type: string public_description: - description: The public description of the service + description: The status page description of the service nullable: true type: string notify_emails: @@ -74307,6 +67346,11 @@ components: type: boolean incident_broadcast_channel: $ref: '#/components/schemas/new_service_data_attributes_incident_broadcast_channel' + properties: + description: Array of property values for this service. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array required: - name type: object @@ -74325,6 +67369,13 @@ components: update_service_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the service type: string @@ -74333,7 +67384,7 @@ components: nullable: true type: string public_description: - description: The public description of the service + description: The status page description of the service nullable: true type: string notify_emails: @@ -74407,13 +67458,15 @@ components: nullable: true type: array owner_group_ids: - description: Owner Teams associated with this service + description: Owner Teams associated with this service. Empty array removes + all; omitting or null leaves unchanged. items: type: string nullable: true type: array owner_user_ids: - description: Owner Users associated with this service + description: Owner Users associated with this service. Empty array removes + all; omitting or null leaves unchanged. items: type: integer nullable: true @@ -74459,6 +67512,11 @@ components: type: boolean incident_broadcast_channel: $ref: '#/components/schemas/new_service_data_attributes_incident_broadcast_channel' + properties: + description: Array of property values for this service. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array type: object update_service_data: properties: @@ -74512,9 +67570,106 @@ components: - id - type type: object + bulk_upsert_services_entities_inner: + properties: + external_id: + description: External identifier used as the upsert key. Unique per team. + type: string + name: + description: Required for new records. Optional for updates. + type: string + description: + nullable: true + type: string + public_description: + nullable: true + type: string + color: + nullable: true + type: string + position: + nullable: true + type: integer + show_uptime: + nullable: true + type: boolean + show_uptime_last_days: + nullable: true + type: integer + github_repository_name: + nullable: true + type: string + github_repository_branch: + nullable: true + type: string + gitlab_repository_name: + nullable: true + type: string + gitlab_repository_branch: + nullable: true + type: string + kubernetes_deployment_name: + nullable: true + type: string + pagerduty_id: + nullable: true + type: string + opsgenie_id: + nullable: true + type: string + opsgenie_team_id: + nullable: true + type: string + cortex_id: + nullable: true + type: string + opslevel_id: + nullable: true + type: string + backstage_id: + nullable: true + type: string + service_now_ci_sys_id: + nullable: true + type: string + notify_emails: + items: + type: string + nullable: true + type: array + alerts_email_enabled: + nullable: true + type: boolean + fields: + description: "Catalog property values (merge semantics: only mentioned fields\ + \ written)." + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_entities_inner_fields_inner' + type: array + required: + - external_id + type: object + bulk_upsert_services_response_data_inner: + properties: + id: + type: string + type: + enum: + - services + type: string + attributes: + $ref: '#/components/schemas/service' + type: object new_severity_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the severity type: string @@ -74574,6 +67729,13 @@ components: update_severity_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the severity type: string @@ -74681,34 +67843,325 @@ components: data: $ref: '#/components/schemas/shift_relationships_shift_override_data' type: object - shift_relationships_user_data: + shift_relationships_assignee_data: nullable: true properties: id: type: string type: - enum: - - users type: string type: object - shift_relationships_user: + shift_relationships_assignee: + description: Assignee can be either a User or Schedule properties: data: - $ref: '#/components/schemas/shift_relationships_user_data' + $ref: '#/components/schemas/shift_relationships_assignee_data' type: object - shift_relationships_assignee_data: - nullable: true + new_shift_coverage_request_data_attributes: + additionalProperties: false + properties: + starts_at: + description: Start datetime of the time range to request coverage for + format: date-time + nullable: false + type: string + ends_at: + description: End datetime of the time range to request coverage for + format: date-time + nullable: false + type: string + user_id: + description: "Optional. Restrict coverage to shifts assigned to this user.\ + \ When omitted, every shift overlapping the time range is covered." + nullable: false + type: integer + required: + - ends_at + - starts_at + type: object + new_shift_coverage_request_data: + properties: + type: + enum: + - shift_coverage_requests + type: string + attributes: + $ref: '#/components/schemas/new_shift_coverage_request_data_attributes' + required: + - attributes + - type + type: object + shift_coverage_request_response_data: properties: id: + description: Unique ID of the coverage request type: string type: + enum: + - shift_coverage_requests type: string + attributes: + allOf: + - $ref: '#/components/schemas/shift_coverage_request' + type: object + required: + - attributes + - id + - type type: object - shift_relationships_assignee: - description: Assignee can be either a User or Schedule + new_status_page_announcement_data_attributes: + additionalProperties: false properties: - data: - $ref: '#/components/schemas/shift_relationships_assignee_data' + title: + description: Title of the announcement + maxLength: 200 + type: string + body: + description: Body of the announcement + maxLength: 5000 + type: string + notify_subscribers: + description: Controls if status page subscribers should be notified. Defaults + to true + type: boolean + required: + - body + - title + type: object + new_status_page_announcement_data: + properties: + type: + enum: + - status_page_announcements + type: string + attributes: + $ref: '#/components/schemas/new_status_page_announcement_data_attributes' + required: + - attributes + - type + type: object + update_status_page_announcement_data_attributes: + additionalProperties: false + properties: + title: + description: Title of the announcement + maxLength: 200 + type: string + body: + description: Body of the announcement + maxLength: 5000 + type: string + type: object + update_status_page_announcement_data: + properties: + type: + enum: + - status_page_announcements + type: string + attributes: + $ref: '#/components/schemas/update_status_page_announcement_data_attributes' + required: + - attributes + - type + type: object + status_page_announcement_response_data: + properties: + id: + description: Unique ID of the status page announcement + type: string + type: + enum: + - status_page_announcements + type: string + attributes: + allOf: + - $ref: '#/components/schemas/status_page_announcement' + type: object + required: + - attributes + - id + - type + type: object + new_status_page_component_group_data_attributes: + additionalProperties: false + properties: + name: + description: Name of the component group + type: string + description: + description: Description of the component group + nullable: true + type: string + position: + description: Position of the group on the status page's top-level list (shared + with ungrouped components) + minimum: 1 + type: integer + collapsed_by_default: + description: Whether the group renders collapsed on the public page + nullable: true + type: boolean + required: + - name + type: object + new_status_page_component_group_data: + properties: + type: + enum: + - status_page_component_groups + type: string + attributes: + $ref: '#/components/schemas/new_status_page_component_group_data_attributes' + required: + - attributes + - type + type: object + update_status_page_component_group_data_attributes: + additionalProperties: false + properties: + name: + description: Name of the component group + type: string + description: + description: Description of the component group + nullable: true + type: string + position: + description: Position of the group on the status page's top-level list (shared + with ungrouped components) + minimum: 1 + type: integer + collapsed_by_default: + description: Whether the group renders collapsed on the public page + nullable: true + type: boolean + type: object + update_status_page_component_group_data: + properties: + type: + enum: + - status_page_component_groups + type: string + attributes: + $ref: '#/components/schemas/update_status_page_component_group_data_attributes' + required: + - attributes + - type + type: object + status_page_component_group_response_data: + properties: + id: + description: Unique ID of the status page component group + type: string + type: + enum: + - status_page_component_groups + type: string + attributes: + allOf: + - $ref: '#/components/schemas/status_page_component_group' + type: object + required: + - attributes + - id + - type + type: object + new_status_page_component_data_attributes: + additionalProperties: false + properties: + name: + description: Name of the component (required for ad-hoc components; derived + from the source for catalog-backed ones) + nullable: true + type: string + description: + description: Description of the component (ad-hoc components only) + nullable: true + type: string + status_page_component_group_id: + description: ID of the component group on the same status page + nullable: true + type: string + position: + description: "Position of the component (within its group, or on the page's\ + \ top-level list when ungrouped)" + minimum: 1 + type: integer + source_type: + description: Catalog source type backing the component + enum: + - Service + - Functionality + nullable: true + type: string + source_id: + description: ID of the catalog source backing the component + nullable: true + type: string + type: object + new_status_page_component_data: + properties: + type: + enum: + - status_page_components + type: string + attributes: + $ref: '#/components/schemas/new_status_page_component_data_attributes' + required: + - attributes + - type + type: object + update_status_page_component_data_attributes: + additionalProperties: false + properties: + name: + description: Name of the component (ad-hoc components only) + nullable: true + type: string + description: + description: Description of the component (ad-hoc components only) + nullable: true + type: string + status_page_component_group_id: + description: ID of the component group on the same status page (null moves + the component to the top level) + nullable: true + type: string + position: + description: "Position of the component (within its group, or on the page's\ + \ top-level list when ungrouped)" + minimum: 1 + type: integer + type: object + update_status_page_component_data: + properties: + type: + enum: + - status_page_components + type: string + attributes: + $ref: '#/components/schemas/update_status_page_component_data_attributes' + required: + - attributes + - type + type: object + status_page_component_response_data: + properties: + id: + description: Unique ID of the status page component + type: string + type: + enum: + - status_page_components + type: string + attributes: + allOf: + - $ref: '#/components/schemas/status_page_component' + type: object + required: + - attributes + - id + - type type: object new_status_page_template_data_attributes: additionalProperties: false @@ -74718,6 +68171,10 @@ components: title: description: Title of the template type: string + update_title: + description: Title that will be used for the status page update + nullable: true + type: string body: description: Description of the event the template will populate type: string @@ -74773,6 +68230,10 @@ components: title: description: Title of the template type: string + update_title: + description: Title that will be used for the status page update + nullable: true + type: string body: description: Description of the event the template will populate type: string @@ -74861,6 +68322,13 @@ components: new_status_page_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `title`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string title: description: The title of the status page type: string @@ -74950,6 +68418,26 @@ components: - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified nullable: true type: string + section_order: + default: + - maintenance + - system_status + - incidents + description: Order of sections on the status page + items: + enum: + - maintenance + - system_status + - incidents + type: string + nullable: true + type: array + external_domain_names: + description: External domain names attached to the status page + items: + type: string + nullable: true + type: array website_url: description: Website URL nullable: true @@ -75007,6 +68495,13 @@ components: update_status_page_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `title`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string title: description: The title of the status page type: string @@ -75096,6 +68591,22 @@ components: - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified nullable: true type: string + section_order: + description: Order of sections on the status page + items: + enum: + - maintenance + - system_status + - incidents + type: string + nullable: true + type: array + external_domain_names: + description: External domain names attached to the status page + items: + type: string + nullable: true + type: array website_url: description: Website URL nullable: true @@ -75169,6 +68680,13 @@ components: new_team_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the team type: string @@ -75176,6 +68694,10 @@ components: description: The description of the team nullable: true type: string + public_description: + description: The status page description of the team + nullable: true + type: string notify_emails: description: Emails to attach to the team items: @@ -75279,6 +68801,22 @@ components: description: Auto add members to incident channel when team is attached nullable: true type: boolean + auto_add_members_scope: + description: "Visibility-scoped auto-add behavior. Only present when the\ + \ `enable_scoped_incident_channel_auto_add` feature flag is on for the\ + \ organization. When set, it overrides `auto_add_members_when_attached`." + enum: + - "off" + - public_only + - public_and_test + - all + nullable: true + type: string + properties: + description: Array of property values for this team. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array required: - name type: object @@ -75297,6 +68835,13 @@ components: update_team_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the team type: string @@ -75304,6 +68849,10 @@ components: description: The description of the team nullable: true type: string + public_description: + description: The status page description of the team + nullable: true + type: string notify_emails: description: Emails to attach to the team items: @@ -75403,6 +68952,22 @@ components: description: Auto add members to incident channel when team is attached nullable: true type: boolean + auto_add_members_scope: + description: "Visibility-scoped auto-add behavior. Only present when the\ + \ `enable_scoped_incident_channel_auto_add` feature flag is on for the\ + \ organization. When set, it overrides `auto_add_members_when_attached`." + enum: + - "off" + - public_only + - public_and_test + - all + nullable: true + type: string + properties: + description: Array of property values for this team. + items: + $ref: '#/components/schemas/new_cause_data_attributes_properties_inner' + type: array type: object update_team_data: properties: @@ -75434,6 +68999,81 @@ components: - id - type type: object + bulk_upsert_teams_entities_inner: + properties: + external_id: + description: External identifier used as the upsert key. Unique per team. + type: string + name: + description: Required for new records. Optional for updates. + type: string + description: + nullable: true + type: string + public_description: + nullable: true + type: string + color: + nullable: true + type: string + position: + nullable: true + type: integer + notify_emails: + items: + type: string + nullable: true + type: array + pagerduty_id: + nullable: true + type: string + pagerduty_service_id: + nullable: true + type: string + opsgenie_id: + nullable: true + type: string + victor_ops_id: + nullable: true + type: string + pagertree_id: + nullable: true + type: string + backstage_id: + nullable: true + type: string + cortex_id: + nullable: true + type: string + opslevel_id: + nullable: true + type: string + service_now_ci_sys_id: + nullable: true + type: string + alerts_email_enabled: + nullable: true + type: boolean + fields: + description: "Catalog property values (merge semantics: only mentioned fields\ + \ written)." + items: + $ref: '#/components/schemas/bulk_upsert_catalog_entities_entities_inner_fields_inner' + type: array + required: + - external_id + type: object + bulk_upsert_teams_response_data_inner: + properties: + id: + type: string + type: + enum: + - groups + type: string + attributes: + $ref: '#/components/schemas/team' + type: object new_user_notification_rule_data_attributes: additionalProperties: false properties: @@ -75471,6 +69111,8 @@ components: - device - non_critical_device - slack + - google_chat + - microsoft_teams type: string nullable: false type: array @@ -75526,6 +69168,8 @@ components: - device - non_critical_device - slack + - google_chat + - microsoft_teams type: string nullable: false type: array @@ -75766,9 +69410,29 @@ components: - id - type type: object + new_webhooks_endpoint_data_attributes_custom_headers_inner: + additionalProperties: false + properties: + name: + maxLength: 256 + type: string + value: + maxLength: 8192 + type: string + required: + - name + - value + type: object new_webhooks_endpoint_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the endpoint type: string @@ -75804,16 +69468,26 @@ components: - incident_event.updated - incident_event.deleted - alert.created + - alert.updated - pulse.created + - shift.started - genius_workflow_run.queued - genius_workflow_run.started - genius_workflow_run.completed - genius_workflow_run.failed - genius_workflow_run.canceled + - audit_log.created type: string type: array enabled: type: boolean + custom_headers: + description: "Custom HTTP headers sent with each delivery. Max 10. Reserved\ + \ names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected." + items: + $ref: '#/components/schemas/new_webhooks_endpoint_data_attributes_custom_headers_inner' + maxItems: 10 + type: array required: - name - url @@ -75833,6 +69507,13 @@ components: update_webhooks_endpoint_data_attributes: additionalProperties: false properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string name: description: The name of the endpoint type: string @@ -75862,16 +69543,26 @@ components: - incident_event.updated - incident_event.deleted - alert.created + - alert.updated - pulse.created + - shift.started - genius_workflow_run.queued - genius_workflow_run.started - genius_workflow_run.completed - genius_workflow_run.failed - genius_workflow_run.canceled + - audit_log.created type: string type: array enabled: type: boolean + custom_headers: + description: "Custom HTTP headers sent with each delivery. Max 10. Reserved\ + \ names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected." + items: + $ref: '#/components/schemas/new_webhooks_endpoint_data_attributes_custom_headers_inner' + maxItems: 10 + type: array type: object update_webhooks_endpoint_data: properties: @@ -75924,9 +69615,14 @@ components: new_sub_status_data_attributes: additionalProperties: false properties: - name: - type: string slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: type: string description: nullable: true @@ -75958,9 +69654,14 @@ components: update_sub_status_data_attributes: additionalProperties: false properties: - name: - type: string slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: type: string description: nullable: true @@ -76190,6 +69891,454 @@ components: - id - type type: object + new_sla_data_attributes_conditions_inner: + properties: + conditionable_type: + description: The type of condition + enum: + - SLAs::BuiltInFieldCondition + - SLAs::CustomFieldCondition + type: string + property: + description: "The property to evaluate (for built-in field conditions).\ + \ When the team has custom lifecycle statuses enabled, use 'sub_status'\ + \ (with sub-status IDs as values); otherwise use 'status' (with parent\ + \ status names). Sending the wrong one will return a validation error." + enum: + - severity + - environment + - service + - functionality + - incident_type + - group + - cause + - sub_status + - incident_role + - status + - kind + - visibility + - summary + - started_at + - detected_at + - acknowledged_at + - mitigated_at + - resolved_at + nullable: true + type: string + operator: + description: The comparison operator + type: string + values: + description: The values to compare against + items: + type: string + nullable: true + type: array + form_field_id: + description: The ID of the form field (for custom field conditions) + format: uuid + nullable: true + type: string + position: + description: The position of the condition for ordering + type: integer + required: + - conditionable_type + - operator + type: object + new_sla_data_attributes_notification_configurations_inner: + properties: + offset_type: + description: When to send the notification relative to the deadline + enum: + - before_due + - when_due + - after_due + type: string + offset_days: + description: Number of days before or after the deadline. Must be 0 for + when_due. + type: integer + required: + - offset_days + - offset_type + type: object + new_sla_data_attributes: + additionalProperties: false + properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + description: The name of the SLA + type: string + description: + description: A description of the SLA + nullable: true + type: string + position: + description: Position of the SLA for ordering + nullable: true + type: integer + condition_match_type: + description: Whether all or any conditions must match + enum: + - ALL + - ANY + type: string + manager_role_id: + description: The ID of the incident role responsible for this SLA. Must + provide either manager_role_id or manager_user_id. + format: uuid + nullable: true + type: string + manager_user_id: + description: The ID of the user responsible for this SLA. Must provide either + manager_role_id or manager_user_id. + nullable: true + type: integer + assignment_deadline_days: + description: Number of days for the assignment deadline + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 14 + - 21 + - 30 + type: integer + assignment_deadline_parent_status: + description: The incident parent status that triggers the assignment deadline + enum: + - in_triage + - started + - mitigated + - resolved + - closed + - cancelled + type: string + assignment_deadline_sub_status_id: + description: Sub-status for the assignment deadline. Required when custom + lifecycle statuses are enabled on the team. + format: uuid + nullable: true + type: string + assignment_skip_weekends: + description: Whether to skip weekends when calculating the assignment deadline + type: boolean + completion_deadline_days: + description: Number of days for the completion deadline + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 14 + - 21 + - 30 + type: integer + completion_deadline_parent_status: + description: The incident parent status that triggers the completion deadline + enum: + - in_triage + - started + - mitigated + - resolved + - closed + - cancelled + type: string + completion_deadline_sub_status_id: + description: Sub-status for the completion deadline. Required when custom + lifecycle statuses are enabled on the team. + format: uuid + nullable: true + type: string + completion_skip_weekends: + description: Whether to skip weekends when calculating the completion deadline + type: boolean + conditions: + description: Conditions that determine which incidents this SLA applies + to. Maximum 20. + items: + $ref: '#/components/schemas/new_sla_data_attributes_conditions_inner' + type: array + notification_configurations: + description: Notification timing configurations. Maximum 20. + items: + $ref: '#/components/schemas/new_sla_data_attributes_notification_configurations_inner' + type: array + required: + - assignment_deadline_days + - assignment_deadline_parent_status + - completion_deadline_days + - completion_deadline_parent_status + - name + type: object + new_sla_data: + properties: + type: + enum: + - slas + type: string + attributes: + $ref: '#/components/schemas/new_sla_data_attributes' + required: + - attributes + - type + type: object + update_sla_data_attributes: + additionalProperties: false + properties: + slug: + deprecated: true + description: Deprecated. `slug` is derived from `name`; any submitted value + is ignored. This property will be removed from the request schema in a + future version. + nullable: true + type: string + name: + description: The name of the SLA + type: string + description: + description: A description of the SLA + nullable: true + type: string + position: + description: Position of the SLA for ordering + nullable: true + type: integer + condition_match_type: + description: Whether all or any conditions must match + enum: + - ALL + - ANY + type: string + manager_role_id: + description: The ID of the incident role responsible for this SLA. Exactly + one of `manager_role_id` or `manager_user_id` must be provided. + format: uuid + nullable: true + type: string + manager_user_id: + description: The ID of the user responsible for this SLA. Exactly one of + `manager_role_id` or `manager_user_id` must be provided. + nullable: true + type: integer + assignment_deadline_days: + description: Number of days for the assignment deadline + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 14 + - 21 + - 30 + type: integer + assignment_deadline_parent_status: + description: The incident parent status that triggers the assignment deadline + enum: + - in_triage + - started + - mitigated + - resolved + - closed + - cancelled + type: string + assignment_deadline_sub_status_id: + description: Sub-status for the assignment deadline. Required when custom + lifecycle statuses are enabled on the team. + format: uuid + nullable: true + type: string + assignment_skip_weekends: + description: Whether to skip weekends when calculating the assignment deadline + type: boolean + completion_deadline_days: + description: Number of days for the completion deadline + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 14 + - 21 + - 30 + type: integer + completion_deadline_parent_status: + description: The incident parent status that triggers the completion deadline + enum: + - in_triage + - started + - mitigated + - resolved + - closed + - cancelled + type: string + completion_deadline_sub_status_id: + description: Sub-status for the completion deadline. Required when custom + lifecycle statuses are enabled on the team. + format: uuid + nullable: true + type: string + completion_skip_weekends: + description: Whether to skip weekends when calculating the completion deadline + type: boolean + conditions: + description: Conditions that determine which incidents this SLA applies + to. Replaces all existing conditions. + items: + $ref: '#/components/schemas/new_sla_data_attributes_conditions_inner' + type: array + notification_configurations: + description: Notification timing configurations. Replaces all existing configurations. + items: + $ref: '#/components/schemas/new_sla_data_attributes_notification_configurations_inner' + type: array + type: object + update_sla_data: + properties: + type: + enum: + - slas + type: string + attributes: + $ref: '#/components/schemas/update_sla_data_attributes' + required: + - attributes + - type + type: object + sla_conditions_inner: + properties: + id: + description: Unique ID of the condition + format: uuid + type: string + position: + description: The position of the condition + type: integer + conditionable_type: + description: The type of condition + enum: + - SLAs::BuiltInFieldCondition + - SLAs::CustomFieldCondition + type: string + property: + description: The property to evaluate (for built-in field conditions) + nullable: true + type: string + operator: + description: The comparison operator + type: string + values: + description: The values to compare against + items: + type: string + nullable: true + type: array + form_field_id: + description: The ID of the form field (for custom field conditions) + format: uuid + nullable: true + type: string + type: object + sla_notification_configurations_inner: + properties: + id: + description: Unique ID of the notification configuration + format: uuid + type: string + offset_type: + description: When to send the notification relative to the deadline + enum: + - before_due + - when_due + - after_due + type: string + offset_days: + description: Number of days offset from the deadline + type: integer + created_at: + description: Date of creation + type: string + updated_at: + description: Date of last update + type: string + type: object + sla_response_data: + properties: + id: + description: Unique ID of the SLA + type: string + type: + enum: + - slas + type: string + attributes: + allOf: + - $ref: '#/components/schemas/sla' + type: object + required: + - attributes + - id + - type + type: object + new_verified_domain_data_attributes: + additionalProperties: false + properties: + domain: + description: The domain to verify (e.g. acme.com) + type: string + required: + - domain + type: object + new_verified_domain_data: + properties: + type: + enum: + - verified_domains + type: string + attributes: + $ref: '#/components/schemas/new_verified_domain_data_attributes' + required: + - attributes + - type + type: object + verified_domain_response_data: + properties: + id: + description: Unique ID of the verified domain + type: string + type: + enum: + - verified_domains + type: string + attributes: + allOf: + - $ref: '#/components/schemas/verified_domain' + type: object + required: + - attributes + - id + - type + type: object securitySchemes: bearer_auth: scheme: bearer diff --git a/build.gradle b/build.gradle index 631bb655..c7d8289f 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'java' apply plugin: 'com.diffplug.spotless' group = 'com.rootly.client' -version = '0.1.0' +version = '2.0.0' buildscript { repositories { diff --git a/build.sbt b/build.sbt index a0370a59..93e9a205 100644 --- a/build.sbt +++ b/build.sbt @@ -15,7 +15,7 @@ lazy val root = (project in file(".")). "com.google.code.gson" % "gson" % "2.9.1", "org.apache.commons" % "commons-lang3" % "3.17.0", "jakarta.ws.rs" % "jakarta.ws.rs-api" % "2.1.6", - "org.openapitools" % "jackson-databind-nullable" % "0.2.10", + "org.openapitools" % "jackson-databind-nullable" % "0.2.6", "io.gsonfire" % "gson-fire" % "1.9.0" % "compile", "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile", "com.google.code.findbugs" % "jsr305" % "3.0.2" % "compile", diff --git a/docs/ActionItemTriggerParams.md b/docs/ActionItemTriggerParams.md index a1c04f7c..920afae0 100644 --- a/docs/ActionItemTriggerParams.md +++ b/docs/ActionItemTriggerParams.md @@ -25,6 +25,9 @@ |**incidentConditionService** | [**IncidentConditionServiceEnum**](#IncidentConditionServiceEnum) | | [optional] | |**incidentConditionFunctionality** | [**IncidentConditionFunctionalityEnum**](#IncidentConditionFunctionalityEnum) | | [optional] | |**incidentConditionGroup** | [**IncidentConditionGroupEnum**](#IncidentConditionGroupEnum) | | [optional] | +|**incidentConditionLabel** | [**IncidentConditionLabelEnum**](#IncidentConditionLabelEnum) | | [optional] | +|**incidentConditionLabelUseRegexp** | **Boolean** | | [optional] | +|**incidentLabels** | **List<String>** | | [optional] | |**incidentConditionSummary** | [**IncidentConditionSummaryEnum**](#IncidentConditionSummaryEnum) | | [optional] | |**incidentConditionStartedAt** | [**IncidentConditionStartedAtEnum**](#IncidentConditionStartedAtEnum) | | [optional] | |**incidentConditionDetectedAt** | [**IncidentConditionDetectedAtEnum**](#IncidentConditionDetectedAtEnum) | | [optional] | @@ -272,6 +275,22 @@ +## Enum: IncidentConditionLabelEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + ## Enum: IncidentConditionSummaryEnum | Name | Value | diff --git a/docs/AddSlackBookmarkTaskParamsAnyOf.md b/docs/AddSlackBookmarkTaskParamsAnyOf.md new file mode 100644 index 00000000..f0c23438 --- /dev/null +++ b/docs/AddSlackBookmarkTaskParamsAnyOf.md @@ -0,0 +1,14 @@ + + +# AddSlackBookmarkTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**title** | **String** | | | +|**link** | **String** | | | + + + diff --git a/docs/AddSlackBookmarkTaskParamsAnyOf1.md b/docs/AddSlackBookmarkTaskParamsAnyOf1.md new file mode 100644 index 00000000..fe385c51 --- /dev/null +++ b/docs/AddSlackBookmarkTaskParamsAnyOf1.md @@ -0,0 +1,13 @@ + + +# AddSlackBookmarkTaskParamsAnyOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playbookId** | **String** | | | + + + diff --git a/docs/AiChatApi.md b/docs/AiChatApi.md new file mode 100644 index 00000000..87206d3d --- /dev/null +++ b/docs/AiChatApi.md @@ -0,0 +1,299 @@ +# AiChatApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createAiChat**](AiChatApi.md#createAiChat) | **POST** /v1/ai/chat | Send AI chat message | +| [**deleteAiChatSession**](AiChatApi.md#deleteAiChatSession) | **DELETE** /v1/ai/chat/sessions/{id} | Delete AI chat session | +| [**listAiChatSessionMessages**](AiChatApi.md#listAiChatSessionMessages) | **GET** /v1/ai/chat/sessions/{session_id}/messages | List AI chat session messages | +| [**streamAiChat**](AiChatApi.md#streamAiChat) | **POST** /v1/ai/chat/stream | Stream AI chat response (SSE) | + + + +# **createAiChat** +> AiChatResponse createAiChat(message, sessionId, incidentId, alertId) + +Send AI chat message + +Send a message to the AI assistant and receive a synchronous reply. Optionally bind the conversation to an incident or alert for context-aware responses. Requires `ai.chat:write` OAuth scope or an API key. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AiChatApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AiChatApi apiInstance = new AiChatApi(defaultClient); + String message = "message_example"; // String | Message to send to the AI assistant + UUID sessionId = UUID.randomUUID(); // UUID | Resume an existing session + UUID incidentId = UUID.randomUUID(); // UUID | Bind session to an incident for context (mutually exclusive with alert_id) + UUID alertId = UUID.randomUUID(); // UUID | Bind session to an alert for context (mutually exclusive with incident_id) + try { + AiChatResponse result = apiInstance.createAiChat(message, sessionId, incidentId, alertId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AiChatApi#createAiChat"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **message** | **String**| Message to send to the AI assistant | | +| **sessionId** | **UUID**| Resume an existing session | [optional] | +| **incidentId** | **UUID**| Bind session to an incident for context (mutually exclusive with alert_id) | [optional] | +| **alertId** | **UUID**| Bind session to an alert for context (mutually exclusive with incident_id) | [optional] | + +### Return type + +[**AiChatResponse**](AiChatResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | AI chat response | - | +| **403** | AI chat not enabled or insufficient scope | - | +| **422** | invalid request | - | + + +# **deleteAiChatSession** +> deleteAiChatSession(id) + +Delete AI chat session + +Permanently deletes an AI chat session and all its messages. Requires `ai.chat:write` OAuth scope or an API key. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AiChatApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AiChatApi apiInstance = new AiChatApi(defaultClient); + UUID id = UUID.randomUUID(); // UUID | Session UUID + try { + apiInstance.deleteAiChatSession(id); + } catch (ApiException e) { + System.err.println("Exception when calling AiChatApi#deleteAiChatSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **UUID**| Session UUID | | + +### Return type + +null (empty response body) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | session deleted | - | +| **404** | session not found | - | + + +# **listAiChatSessionMessages** +> AiChatSessionMessageList listAiChatSessionMessages(sessionId, pageNumber, pageSize) + +List AI chat session messages + +Returns the user and assistant message history for a session, paginated and chronologically ordered. Internal tool messages are filtered out. Requires `ai.chat:read` OAuth scope or an API key. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AiChatApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AiChatApi apiInstance = new AiChatApi(defaultClient); + UUID sessionId = UUID.randomUUID(); // UUID | Session UUID + Integer pageNumber = 56; // Integer | Page number (default 1) + Integer pageSize = 56; // Integer | Messages per page (max 100, default 50) + try { + AiChatSessionMessageList result = apiInstance.listAiChatSessionMessages(sessionId, pageNumber, pageSize); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AiChatApi#listAiChatSessionMessages"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **sessionId** | **UUID**| Session UUID | | +| **pageNumber** | **Integer**| Page number (default 1) | [optional] | +| **pageSize** | **Integer**| Messages per page (max 100, default 50) | [optional] | + +### Return type + +[**AiChatSessionMessageList**](AiChatSessionMessageList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | session messages | - | +| **404** | session not found | - | + + +# **streamAiChat** +> streamAiChat(message, sessionId, incidentId, alertId) + +Stream AI chat response (SSE) + +Send a message and receive the AI response as a Server-Sent Events stream. Optionally bind to an incident or alert for context. Events: `session_id` (initial), `text` (content chunks), `task_update` (tool progress), `error`, `done` (terminal with status). Requires `ai.chat:write` OAuth scope or an API key. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AiChatApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AiChatApi apiInstance = new AiChatApi(defaultClient); + String message = "message_example"; // String | Message to send + UUID sessionId = UUID.randomUUID(); // UUID | Resume an existing session + UUID incidentId = UUID.randomUUID(); // UUID | Bind session to an incident (mutually exclusive with alert_id) + UUID alertId = UUID.randomUUID(); // UUID | Bind session to an alert (mutually exclusive with incident_id) + try { + apiInstance.streamAiChat(message, sessionId, incidentId, alertId); + } catch (ApiException e) { + System.err.println("Exception when calling AiChatApi#streamAiChat"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **message** | **String**| Message to send | | +| **sessionId** | **UUID**| Resume an existing session | [optional] | +| **incidentId** | **UUID**| Bind session to an incident (mutually exclusive with alert_id) | [optional] | +| **alertId** | **UUID**| Bind session to an alert (mutually exclusive with incident_id) | [optional] | + +### Return type + +null (empty response body) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | SSE event stream | - | +| **403** | AI chat not enabled | - | + diff --git a/docs/AiChatResponse.md b/docs/AiChatResponse.md new file mode 100644 index 00000000..e0f720a2 --- /dev/null +++ b/docs/AiChatResponse.md @@ -0,0 +1,14 @@ + + +# AiChatResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**AiChatResponseData**](AiChatResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/AiChatResponseData.md b/docs/AiChatResponseData.md new file mode 100644 index 00000000..383d5979 --- /dev/null +++ b/docs/AiChatResponseData.md @@ -0,0 +1,23 @@ + + +# AiChatResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Session UUID | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**AiChatResponseDataAttributes**](AiChatResponseDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| AI_CHAT_RESPONSES | "ai_chat_responses" | + + + diff --git a/docs/AiChatResponseDataAttributes.md b/docs/AiChatResponseDataAttributes.md new file mode 100644 index 00000000..ba557cf9 --- /dev/null +++ b/docs/AiChatResponseDataAttributes.md @@ -0,0 +1,23 @@ + + +# AiChatResponseDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**sessionId** | **UUID** | AI chat session UUID | | +|**reply** | **String** | Assistant reply text | [optional] | +|**status** | [**StatusEnum**](#StatusEnum) | Response status (present when user input is required) | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| USER_INPUT_REQUIRED | "user_input_required" | + + + diff --git a/docs/AiChatSessionMessage.md b/docs/AiChatSessionMessage.md new file mode 100644 index 00000000..84772d03 --- /dev/null +++ b/docs/AiChatSessionMessage.md @@ -0,0 +1,25 @@ + + +# AiChatSessionMessage + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Message UUID | | +|**role** | [**RoleEnum**](#RoleEnum) | Message author role | | +|**content** | **String** | Message content | | +|**createdAt** | **OffsetDateTime** | When the message was created | | + + + +## Enum: RoleEnum + +| Name | Value | +|---- | -----| +| USER | "user" | +| ASSISTANT | "assistant" | + + + diff --git a/docs/AiChatSessionMessageList.md b/docs/AiChatSessionMessageList.md new file mode 100644 index 00000000..545c66b4 --- /dev/null +++ b/docs/AiChatSessionMessageList.md @@ -0,0 +1,14 @@ + + +# AiChatSessionMessageList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messages** | [**List<AiChatSessionMessage>**](AiChatSessionMessage.md) | | | +|**meta** | **Object** | | [optional] | + + + diff --git a/docs/Alert.md b/docs/Alert.md index cae3fba7..fd862fbe 100644 --- a/docs/Alert.md +++ b/docs/Alert.md @@ -9,25 +9,34 @@ |------------ | ------------- | ------------- | -------------| |**shortId** | **String** | Human-readable short identifier for the alert | | |**noise** | [**NoiseEnum**](#NoiseEnum) | Whether the alert is marked as noise | [optional] | -|**source** | [**SourceEnum**](#SourceEnum) | The source of the alert | | +|**source** | **String** | The source of the alert | | |**status** | [**StatusEnum**](#StatusEnum) | The status of the alert | [optional] | |**summary** | **String** | The summary of the alert | | |**description** | **String** | The description of the alert | [optional] | |**services** | [**List<Service>**](Service.md) | Services attached to the alert | [optional] | |**groups** | [**List<Team>**](Team.md) | Groups attached to the alert | [optional] | +|**functionalities** | [**List<Functionality>**](Functionality.md) | Functionalities attached to the alert | [optional] | |**environments** | [**List<Environment>**](Environment.md) | Environments attached to the alert | [optional] | |**serviceIds** | **List<String>** | The Service IDs to attach to the alert. If your organization has On-Call enabled and your notification target is a Service. This field will be automatically set for you. | [optional] | |**groupIds** | **List<String>** | The Group IDs to attach to the alert. If your organization has On-Call enabled and your notification target is a Group. This field will be automatically set for you. | [optional] | +|**functionalityIds** | **List<String>** | The Functionality IDs to attach to the alert | [optional] | |**environmentIds** | **List<String>** | The Environment IDs to attach to the alert | [optional] | |**externalId** | **String** | External ID | [optional] | |**externalUrl** | **String** | External Url | [optional] | |**alertUrgencyId** | **String** | The ID of the alert urgency | [optional] | +|**alertUrgency** | [**AlertUrgency**](AlertUrgency.md) | | [optional] | |**groupLeaderAlertId** | **String** | The ID of the group leader alert | [optional] | |**isGroupLeaderAlert** | **Boolean** | Whether the alert is a group leader alert | [optional] | |**labels** | [**List<NewAlertDataAttributesLabelsInner>**](NewAlertDataAttributesLabelsInner.md) | | [optional] | |**data** | **Object** | Additional data | [optional] | +|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, Functionality, User. | [optional] | +|**notificationTargetId** | **String** | Only available for organizations with Rootly On-Call enabled. The identifier of the notification target object. | [optional] | |**deduplicationKey** | **String** | Alerts sharing the same deduplication key are treated as a single alert. | [optional] | -|**alertFieldValuesAttributes** | [**List<NewAlertDataAttributesAlertFieldValuesAttributesInner>**](NewAlertDataAttributesAlertFieldValuesAttributesInner.md) | Custom alert field values to create with the alert | [optional] | +|**alertFieldValues** | [**List<AlertAlertFieldValuesInner>**](AlertAlertFieldValuesInner.md) | Custom alert field values associated with the alert. Only present when the enable_alert_fields feature flag is enabled for the team. | [optional] | +|**responders** | [**List<UserFlatResponse>**](UserFlatResponse.md) | Users who responded to the alert. Included on all non-list responses (show, create, update, resolve, etc.); on list responses only when `include=responders` is requested. | [optional] | +|**notifiedUsers** | [**List<User>**](User.md) | Users who were notified about the alert. Included on all non-list responses (show, create, update, resolve, etc.); on list responses only when `include=notified_users` is requested. | [optional] | +|**alertingTargets** | [**List<AlertAlertingTargetsInner>**](AlertAlertingTargetsInner.md) | Alerting targets associated with the alert. Only present when advanced routing is enabled for the team. | [optional] | +|**url** | **URI** | The Rootly dashboard URL for the alert | [optional] | |**startedAt** | **OffsetDateTime** | When the alert started | [optional] | |**endedAt** | **OffsetDateTime** | When the alert ended | [optional] | |**createdAt** | **String** | Date of creation | | @@ -44,64 +53,27 @@ -## Enum: SourceEnum +## Enum: StatusEnum | Name | Value | |---- | -----| -| ROOTLY | "rootly" | -| MANUAL | "manual" | -| API | "api" | -| HEARTBEAT | "heartbeat" | -| WEB | "web" | -| SLACK | "slack" | -| EMAIL | "email" | -| WORKFLOW | "workflow" | -| LIVE_CALL_ROUTING | "live_call_routing" | -| MOBILE | "mobile" | -| PAGERDUTY | "pagerduty" | -| OPSGENIE | "opsgenie" | -| VICTOROPS | "victorops" | -| PAGERTREE | "pagertree" | -| DATADOG | "datadog" | -| NOBL9 | "nobl9" | -| ZENDESK | "zendesk" | -| ASANA | "asana" | -| CLICKUP | "clickup" | -| SENTRY | "sentry" | -| ROLLBAR | "rollbar" | -| JIRA | "jira" | -| HONEYCOMB | "honeycomb" | -| SERVICE_NOW | "service_now" | -| LINEAR | "linear" | -| GRAFANA | "grafana" | -| ALERTMANAGER | "alertmanager" | -| GOOGLE_CLOUD | "google_cloud" | -| GENERIC_WEBHOOK | "generic_webhook" | -| CLOUD_WATCH | "cloud_watch" | -| AZURE | "azure" | -| SPLUNK | "splunk" | -| CHRONOSPHERE | "chronosphere" | -| APP_OPTICS | "app_optics" | -| BUG_SNAG | "bug_snag" | -| MONTE_CARLO | "monte_carlo" | -| NAGIOS | "nagios" | -| PRTG | "prtg" | -| CATCHPOINT | "catchpoint" | -| APP_DYNAMICS | "app_dynamics" | -| CHECKLY | "checkly" | -| NEW_RELIC | "new_relic" | -| GITLAB | "gitlab" | +| OPEN | "open" | +| TRIGGERED | "triggered" | +| ACKNOWLEDGED | "acknowledged" | +| RESOLVED | "resolved" | +| DEFERRED | "deferred" | -## Enum: StatusEnum +## Enum: NotificationTargetTypeEnum | Name | Value | |---- | -----| -| OPEN | "open" | -| TRIGGERED | "triggered" | -| ACKNOWLEDGED | "acknowledged" | -| RESOLVED | "resolved" | +| USER | "User" | +| GROUP | "Group" | +| ESCALATION_POLICY | "EscalationPolicy" | +| SERVICE | "Service" | +| FUNCTIONALITY | "Functionality" | diff --git a/docs/AlertAlertFieldValuesInner.md b/docs/AlertAlertFieldValuesInner.md new file mode 100644 index 00000000..feeec381 --- /dev/null +++ b/docs/AlertAlertFieldValuesInner.md @@ -0,0 +1,18 @@ + + +# AlertAlertFieldValuesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the alert field value | | +|**value** | **String** | Value for the alert field | | +|**alertFieldId** | **String** | ID of the custom alert field | | +|**alertId** | **String** | ID of the alert | | +|**createdAt** | **String** | Date of creation | | +|**updatedAt** | **String** | Date of last update | | + + + diff --git a/docs/AlertAlertingTargetsInner.md b/docs/AlertAlertingTargetsInner.md new file mode 100644 index 00000000..b22a9139 --- /dev/null +++ b/docs/AlertAlertingTargetsInner.md @@ -0,0 +1,14 @@ + + +# AlertAlertingTargetsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | ID of the alerting target | | +|**type** | **String** | Type of the alerting target (e.g. team, user, escalation_policy, service, functionality, slack_channel) | | + + + diff --git a/docs/AlertEvent.md b/docs/AlertEvent.md index 73a96bb7..1da22445 100644 --- a/docs/AlertEvent.md +++ b/docs/AlertEvent.md @@ -7,11 +7,20 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**alertId** | **String** | ID of the alert this event belongs to. | | |**kind** | [**KindEnum**](#KindEnum) | | | |**action** | [**ActionEnum**](#ActionEnum) | | | |**source** | **String** | | | |**userId** | **Integer** | Author of the note. | [optional] | |**details** | **String** | Note message. | [optional] | +|**user** | [**AlertEventUser**](AlertEventUser.md) | | [optional] | +|**incident** | [**AlertEventIncident**](AlertEventIncident.md) | | [optional] | +|**schedule** | [**AlertEventSchedule**](AlertEventSchedule.md) | | [optional] | +|**escalationLevel** | **Integer** | | [optional] | +|**escalationTargetType** | **String** | e.g. EscalationPolicy, User. | [optional] | +|**escalationTarget** | [**AlertEventEscalationTarget**](AlertEventEscalationTarget.md) | | [optional] | +|**slackChannel** | [**SlackChannel**](SlackChannel.md) | | [optional] | +|**incidentIds** | **List<String>** | | [optional] | |**createdAt** | **String** | | | |**updatedAt** | **String** | | | @@ -32,6 +41,7 @@ | NOTE | "note" | | NOISE | "noise" | | MAINTENANCE | "maintenance" | +| DEFERRAL | "deferral" | @@ -42,14 +52,19 @@ | CREATED | "created" | | ESCALATION_POLICY_PAGED | "escalation_policy_paged" | | IGNORED_ALERT_REQUEST | "ignored_alert_request" | +| CALL_LIFECYCLE | "call_lifecycle" | +| LEVEL_SKIPPED | "level_skipped" | | EMAILED | "emailed" | | SLACKED | "slacked" | +| MS_TEAMS_MESSAGED | "ms_teams_messaged" | +| GOOGLE_CHAT_MESSAGED | "google_chat_messaged" | | CALLED | "called" | | TEXTED | "texted" | | NOTIFIED | "notified" | | SKIPPED | "skipped" | | OPENED | "opened" | | RETRIGGERED | "retriggered" | +| ACK_TIMEOUT_RETRIGGERED | "ack_timeout_retriggered" | | ANSWERED | "answered" | | ACKNOWLEDGED | "acknowledged" | | ESCALATED | "escalated" | @@ -57,13 +72,17 @@ | RESOLVED | "resolved" | | ATTACHED | "attached" | | SNOOZED | "snoozed" | +| RETRIGGER_SUPPRESSED | "retrigger_suppressed" | | TRIGGERED | "triggered" | +| OPEN | "open" | | UPDATED | "updated" | | ADDED | "added" | | REMOVED | "removed" | | MARKED | "marked" | | NOT_MARKED | "not_marked" | +| CLEARED | "cleared" | | MUTED | "muted" | +| DEFERRED | "deferred" | diff --git a/docs/AlertEventEscalationTarget.md b/docs/AlertEventEscalationTarget.md new file mode 100644 index 00000000..4a8ab1e6 --- /dev/null +++ b/docs/AlertEventEscalationTarget.md @@ -0,0 +1,14 @@ + + +# AlertEventEscalationTarget + +JSON:API-wrapped escalation target (User or EscalationPolicy). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**AlertEventEscalationTargetData**](AlertEventEscalationTargetData.md) | | [optional] | + + + diff --git a/docs/AlertEventEscalationTargetData.md b/docs/AlertEventEscalationTargetData.md new file mode 100644 index 00000000..0b159931 --- /dev/null +++ b/docs/AlertEventEscalationTargetData.md @@ -0,0 +1,15 @@ + + +# AlertEventEscalationTargetData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | **String** | e.g. users, escalation_policies. | [optional] | +|**attributes** | **Object** | | [optional] | + + + diff --git a/docs/AlertEventFeedList.md b/docs/AlertEventFeedList.md new file mode 100644 index 00000000..ff189fc2 --- /dev/null +++ b/docs/AlertEventFeedList.md @@ -0,0 +1,16 @@ + + +# AlertEventFeedList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<AlertEventResponseData>**](AlertEventResponseData.md) | | | +|**links** | [**Links**](Links.md) | | [optional] | +|**meta** | [**AlertEventFeedMeta**](AlertEventFeedMeta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/AlertEventFeedMeta.md b/docs/AlertEventFeedMeta.md new file mode 100644 index 00000000..c85f6d35 --- /dev/null +++ b/docs/AlertEventFeedMeta.md @@ -0,0 +1,19 @@ + + +# AlertEventFeedMeta + +Cursor-pagination meta. `total_count` and `total_pages` are nullable because the feed does not run a COUNT query. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**nextCursor** | **String** | Pass as `page[after]` on the next request to fetch the following page. | | +|**currentPage** | **Integer** | | [optional] | +|**nextPage** | **Integer** | | [optional] | +|**prevPage** | **Integer** | | [optional] | +|**totalCount** | **Integer** | | [optional] | +|**totalPages** | **Integer** | | [optional] | + + + diff --git a/docs/AlertEventIncident.md b/docs/AlertEventIncident.md new file mode 100644 index 00000000..82f67606 --- /dev/null +++ b/docs/AlertEventIncident.md @@ -0,0 +1,25 @@ + + +# AlertEventIncident + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**sequentialId** | **Integer** | | [optional] | +|**title** | **String** | | [optional] | +|**slug** | **String** | | [optional] | +|**kind** | **String** | | [optional] | +|**status** | **String** | | [optional] | +|**_private** | **Boolean** | | [optional] | +|**description** | **String** | | [optional] | +|**startedAt** | **String** | | [optional] | +|**duration** | **Integer** | Duration in seconds. | [optional] | +|**url** | **String** | | [optional] | +|**createdAt** | **String** | | [optional] | +|**updatedAt** | **String** | | [optional] | + + + diff --git a/docs/AlertEventList.md b/docs/AlertEventList.md index c79317b1..6fe6143c 100644 --- a/docs/AlertEventList.md +++ b/docs/AlertEventList.md @@ -10,6 +10,7 @@ |**data** | [**List<AlertEventResponseData>**](AlertEventResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertEventResponse.md b/docs/AlertEventResponse.md index 5c774abf..4ad041f5 100644 --- a/docs/AlertEventResponse.md +++ b/docs/AlertEventResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AlertEventResponseData**](AlertEventResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertEventSchedule.md b/docs/AlertEventSchedule.md new file mode 100644 index 00000000..2563d3b0 --- /dev/null +++ b/docs/AlertEventSchedule.md @@ -0,0 +1,18 @@ + + +# AlertEventSchedule + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**name** | **String** | | [optional] | +|**description** | **String** | | [optional] | +|**escalationPolicies** | [**List<AlertEventScheduleEscalationPoliciesInner>**](AlertEventScheduleEscalationPoliciesInner.md) | | [optional] | +|**createdAt** | **String** | | [optional] | +|**updatedAt** | **String** | | [optional] | + + + diff --git a/docs/AlertEventScheduleEscalationPoliciesInner.md b/docs/AlertEventScheduleEscalationPoliciesInner.md new file mode 100644 index 00000000..c61af0c5 --- /dev/null +++ b/docs/AlertEventScheduleEscalationPoliciesInner.md @@ -0,0 +1,16 @@ + + +# AlertEventScheduleEscalationPoliciesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**name** | **String** | | [optional] | +|**createdAt** | **String** | | [optional] | +|**updatedAt** | **String** | | [optional] | + + + diff --git a/docs/AlertEventUser.md b/docs/AlertEventUser.md new file mode 100644 index 00000000..d923fca0 --- /dev/null +++ b/docs/AlertEventUser.md @@ -0,0 +1,22 @@ + + +# AlertEventUser + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **Integer** | | | +|**name** | **String** | | | +|**email** | **String** | | | +|**firstName** | **String** | | [optional] | +|**lastName** | **String** | | [optional] | +|**preferredName** | **String** | | [optional] | +|**fullName** | **String** | | [optional] | +|**timeZone** | **String** | | [optional] | +|**createdAt** | **String** | | | +|**updatedAt** | **String** | | | + + + diff --git a/docs/AlertEventsApi.md b/docs/AlertEventsApi.md index d0f619a8..bb3c57ed 100644 --- a/docs/AlertEventsApi.md +++ b/docs/AlertEventsApi.md @@ -8,6 +8,7 @@ All URIs are relative to *https://api.rootly.com* | [**deleteAlertEvent**](AlertEventsApi.md#deleteAlertEvent) | **DELETE** /v1/alert_events/{id} | Delete alert event | | [**getAlertEvent**](AlertEventsApi.md#getAlertEvent) | **GET** /v1/alert_events/{id} | Retrieve alert event | | [**listAlertEvents**](AlertEventsApi.md#listAlertEvents) | **GET** /v1/alerts/{alert_id}/events | List alert events | +| [**listAlertEventsFeed**](AlertEventsApi.md#listAlertEventsFeed) | **GET** /v1/alert_events | List alert events across alerts | | [**updateAlertEvent**](AlertEventsApi.md#updateAlertEvent) | **PATCH** /v1/alert_events/{id} | Update alert event | @@ -293,6 +294,93 @@ public class Example { |-------------|-------------|------------------| | **200** | success | - | + +# **listAlertEventsFeed** +> AlertEventFeedList listAlertEventsFeed(include, pageSize, pageAfter, sort, filterKind, filterAction, filterAlertId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) + +List alert events across alerts + +Returns a flat list of alert events across all alerts the requester can access. Designed for periodic polling: use `page[after]` with the `next_cursor` returned in the previous response to stream forward. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertEventsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertEventsApi apiInstance = new AlertEventsApi(defaultClient); + String include = "include_example"; // String | + Integer pageSize = 56; // Integer | Page size (max 50). + String pageAfter = "pageAfter_example"; // String | Cursor token from the previous response's `meta.next_cursor`. Pass the same `sort` value used to obtain the cursor. + String sort = "created_at"; // String | Sort by `created_at`. Defaults to `created_at` (oldest-first). Use `-created_at` for newest-first. + String filterKind = "informational"; // String | + String filterAction = "created"; // String | + String filterAlertId = "filterAlertId_example"; // String | + String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | + String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | + String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | + String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + try { + AlertEventFeedList result = apiInstance.listAlertEventsFeed(include, pageSize, pageAfter, sort, filterKind, filterAction, filterAlertId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertEventsApi#listAlertEventsFeed"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include** | **String**| | [optional] | +| **pageSize** | **Integer**| Page size (max 50). | [optional] | +| **pageAfter** | **String**| Cursor token from the previous response's `meta.next_cursor`. Pass the same `sort` value used to obtain the cursor. | [optional] | +| **sort** | **String**| Sort by `created_at`. Defaults to `created_at` (oldest-first). Use `-created_at` for newest-first. | [optional] [enum: created_at, -created_at] | +| **filterKind** | **String**| | [optional] [enum: informational, notification, action, status_update, recording, alert_grouping, alert_urgency, alert_routing, note, noise, maintenance, deferral] | +| **filterAction** | **String**| | [optional] [enum: created, escalation_policy_paged, ignored_alert_request, call_lifecycle, level_skipped, emailed, slacked, ms_teams_messaged, google_chat_messaged, called, texted, notified, skipped, opened, retriggered, ack_timeout_retriggered, answered, acknowledged, escalated, paged, resolved, attached, snoozed, retrigger_suppressed, triggered, open, updated, added, removed, marked, not_marked, cleared, muted, deferred] | +| **filterAlertId** | **String**| | [optional] | +| **filterCreatedAtGt** | **String**| | [optional] | +| **filterCreatedAtGte** | **String**| | [optional] | +| **filterCreatedAtLt** | **String**| | [optional] | +| **filterCreatedAtLte** | **String**| | [optional] | + +### Return type + +[**AlertEventFeedList**](AlertEventFeedList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + # **updateAlertEvent** > AlertEventResponse updateAlertEvent(id, updateAlertEvent) diff --git a/docs/AlertField.md b/docs/AlertField.md index 1d0d3bc2..9d61f0af 100644 --- a/docs/AlertField.md +++ b/docs/AlertField.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**slug** | **String** | The slug of the alert field | [optional] | +|**slug** | **String** | The slug of the alert field | [optional] [readonly] | |**name** | **String** | The name of the alert field | | |**kind** | **String** | The kind of alert field | | |**createdAt** | **String** | Date of creation | | diff --git a/docs/AlertFieldList.md b/docs/AlertFieldList.md index 92ffc36b..7927fbe1 100644 --- a/docs/AlertFieldList.md +++ b/docs/AlertFieldList.md @@ -10,6 +10,7 @@ |**data** | [**List<AlertFieldListDataInner>**](AlertFieldListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertFieldResponse.md b/docs/AlertFieldResponse.md index 344efc8c..472db9bf 100644 --- a/docs/AlertFieldResponse.md +++ b/docs/AlertFieldResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AlertFieldResponseData**](AlertFieldResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertFieldsApi.md b/docs/AlertFieldsApi.md index 5b6248ad..f26590f7 100644 --- a/docs/AlertFieldsApi.md +++ b/docs/AlertFieldsApi.md @@ -146,7 +146,7 @@ public class Example { | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | custom alert field deleted successfully | - | -| **422** | cannot delete alert field with associated records | - | +| **422** | cannot delete alert field referenced by escalation path field rules | - | | **404** | resource not found | - | @@ -219,7 +219,7 @@ public class Example { # **listAlertFields** -> AlertFieldList listAlertFields(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> AlertFieldList listAlertFields(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, sort) List alert fields @@ -255,9 +255,17 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterKindEq = "filterKindEq_example"; // String | + String filterKindNotEq = "filterKindNotEq_example"; // String | + String filterKindIn = "filterKindIn_example"; // String | + String filterKindNotIn = "filterKindNotIn_example"; // String | String sort = "sort_example"; // String | try { - AlertFieldList result = apiInstance.listAlertFields(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + AlertFieldList result = apiInstance.listAlertFields(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AlertFieldsApi#listAlertFields"); @@ -284,6 +292,14 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterKindEq** | **String**| | [optional] | +| **filterKindNotEq** | **String**| | [optional] | +| **filterKindIn** | **String**| | [optional] | +| **filterKindNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/AlertGroup.md b/docs/AlertGroup.md index 44ae2919..37b836b7 100644 --- a/docs/AlertGroup.md +++ b/docs/AlertGroup.md @@ -9,7 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the alert group | | |**description** | **String** | The description of the alert group | | -|**slug** | **String** | The slug of the alert group | | +|**slug** | **String** | The slug of the alert group | [optional] [readonly] | |**conditionType** | **String** | Grouping condition for the alert group | | |**timeWindow** | **Integer** | Time window for the alert grouping | | |**groupByAlertTitle** | **Boolean** | [DEPRECATED] Whether the alerts are grouped by title or not. This field is deprecated. Please use the `conditions` field with advanced alert grouping instead. | [optional] | diff --git a/docs/AlertGroupList.md b/docs/AlertGroupList.md index bbc4bbdd..362c3c42 100644 --- a/docs/AlertGroupList.md +++ b/docs/AlertGroupList.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**List<AlertGroupResponseData>**](AlertGroupResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertGroupResponse.md b/docs/AlertGroupResponse.md index fb48d073..a2ceeb5a 100644 --- a/docs/AlertGroupResponse.md +++ b/docs/AlertGroupResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AlertGroupResponseData**](AlertGroupResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertGroupsApi.md b/docs/AlertGroupsApi.md index e67b75b0..c17c23fe 100644 --- a/docs/AlertGroupsApi.md +++ b/docs/AlertGroupsApi.md @@ -218,7 +218,7 @@ public class Example { # **listAlertGroups** -> AlertGroupList listAlertGroups(include) +> AlertGroupList listAlertGroups(include, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn) List alert groups @@ -245,8 +245,16 @@ public class Example { AlertGroupsApi apiInstance = new AlertGroupsApi(defaultClient); String include = "include_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | try { - AlertGroupList result = apiInstance.listAlertGroups(include); + AlertGroupList result = apiInstance.listAlertGroups(include, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AlertGroupsApi#listAlertGroups"); @@ -264,6 +272,14 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **include** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | ### Return type diff --git a/docs/AlertList.md b/docs/AlertList.md index 479bbad2..b4552765 100644 --- a/docs/AlertList.md +++ b/docs/AlertList.md @@ -10,6 +10,7 @@ |**data** | [**List<AlertResponseData>**](AlertResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertResponse.md b/docs/AlertResponse.md index 5f26b2f6..daccd4bf 100644 --- a/docs/AlertResponse.md +++ b/docs/AlertResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AlertResponseData**](AlertResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertResponseData.md b/docs/AlertResponseData.md index 4bcf5cc9..b2eae2bf 100644 --- a/docs/AlertResponseData.md +++ b/docs/AlertResponseData.md @@ -8,62 +8,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **String** | Unique ID of the alert | | -|**source** | [**SourceEnum**](#SourceEnum) | The source of the alert | [optional] | +|**source** | **String** | The source of the alert | [optional] | |**type** | [**TypeEnum**](#TypeEnum) | | | |**attributes** | [**Alert**](Alert.md) | | | -## Enum: SourceEnum - -| Name | Value | -|---- | -----| -| ROOTLY | "rootly" | -| MANUAL | "manual" | -| API | "api" | -| HEARTBEAT | "heartbeat" | -| WEB | "web" | -| SLACK | "slack" | -| EMAIL | "email" | -| WORKFLOW | "workflow" | -| LIVE_CALL_ROUTING | "live_call_routing" | -| MOBILE | "mobile" | -| PAGERDUTY | "pagerduty" | -| OPSGENIE | "opsgenie" | -| VICTOROPS | "victorops" | -| PAGERTREE | "pagertree" | -| DATADOG | "datadog" | -| NOBL9 | "nobl9" | -| ZENDESK | "zendesk" | -| ASANA | "asana" | -| CLICKUP | "clickup" | -| SENTRY | "sentry" | -| ROLLBAR | "rollbar" | -| JIRA | "jira" | -| HONEYCOMB | "honeycomb" | -| SERVICE_NOW | "service_now" | -| LINEAR | "linear" | -| GRAFANA | "grafana" | -| ALERTMANAGER | "alertmanager" | -| GOOGLE_CLOUD | "google_cloud" | -| GENERIC_WEBHOOK | "generic_webhook" | -| CLOUD_WATCH | "cloud_watch" | -| AZURE | "azure" | -| SPLUNK | "splunk" | -| CHRONOSPHERE | "chronosphere" | -| APP_OPTICS | "app_optics" | -| BUG_SNAG | "bug_snag" | -| MONTE_CARLO | "monte_carlo" | -| NAGIOS | "nagios" | -| PRTG | "prtg" | -| CATCHPOINT | "catchpoint" | -| APP_DYNAMICS | "app_dynamics" | -| CHECKLY | "checkly" | -| NEW_RELIC | "new_relic" | -| GITLAB | "gitlab" | - - - ## Enum: TypeEnum | Name | Value | diff --git a/docs/AlertRetriggerRule.md b/docs/AlertRetriggerRule.md new file mode 100644 index 00000000..a95196a7 --- /dev/null +++ b/docs/AlertRetriggerRule.md @@ -0,0 +1,28 @@ + + +# AlertRetriggerRule + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | A human-readable name for the rule | [optional] | +|**matchMode** | [**MatchModeEnum**](#MatchModeEnum) | Whether all or any of the conditions must match | [optional] | +|**timeoutMinutes** | **Integer** | Minutes after acknowledgment to re-trigger. Null means never re-trigger. | [optional] | +|**position** | **Integer** | The position of the rule for ordering evaluation | [optional] | +|**conditions** | [**List<AlertRetriggerRuleConditionsInner>**](AlertRetriggerRuleConditionsInner.md) | The conditions for the rule | [optional] | +|**createdAt** | **OffsetDateTime** | | [optional] | +|**updatedAt** | **OffsetDateTime** | | [optional] | + + + +## Enum: MatchModeEnum + +| Name | Value | +|---- | -----| +| MATCH_ALL_RULES | "match-all-rules" | +| MATCH_ANY_RULE | "match-any-rule" | + + + diff --git a/docs/AlertRetriggerRuleConditionsInner.md b/docs/AlertRetriggerRuleConditionsInner.md new file mode 100644 index 00000000..30a86e33 --- /dev/null +++ b/docs/AlertRetriggerRuleConditionsInner.md @@ -0,0 +1,47 @@ + + +# AlertRetriggerRuleConditionsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Unique ID of the condition | | +|**kind** | [**KindEnum**](#KindEnum) | The operand the condition matches on. Native operands (urgency, source, service, group) match by record; alert_field/payload match a field value. | | +|**operator** | [**OperatorEnum**](#OperatorEnum) | How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; alert_field/payload additionally support the string/regex operators. | | +|**recordIds** | **List<UUID>** | For urgency/service/group/source conditions: the IDs of the matched records (AlertUrgency, Service, Group, or Alerts::Source). | [optional] | +|**values** | **List<String>** | For source conditions: non-integration source aliases (e.g. manual, api). For alert_field/payload conditions: the values to compare against. | [optional] | +|**propertyFieldName** | **String** | For alert_field conditions: the alert field id. For payload conditions: a JSON Path (e.g. $.priority). | [optional] | + + + +## Enum: KindEnum + +| Name | Value | +|---- | -----| +| URGENCY | "urgency" | +| SOURCE | "source" | +| SERVICE | "service" | +| GROUP | "group" | +| ALERT_FIELD | "alert_field" | +| PAYLOAD | "payload" | + + + +## Enum: OperatorEnum + +| Name | Value | +|---- | -----| +| IS_ONE_OF | "is_one_of" | +| IS_NOT_ONE_OF | "is_not_one_of" | +| IS_SET | "is_set" | +| IS_NOT_SET | "is_not_set" | +| CONTAINS | "contains" | +| DOES_NOT_CONTAIN | "does_not_contain" | +| STARTS_WITH | "starts_with" | +| ENDS_WITH | "ends_with" | +| MATCHES_REGEX | "matches_regex" | + + + diff --git a/docs/AlertRetriggerRuleList.md b/docs/AlertRetriggerRuleList.md new file mode 100644 index 00000000..ce86671e --- /dev/null +++ b/docs/AlertRetriggerRuleList.md @@ -0,0 +1,16 @@ + + +# AlertRetriggerRuleList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<AlertRetriggerRuleResponseData>**](AlertRetriggerRuleResponseData.md) | | | +|**links** | [**Links**](Links.md) | | | +|**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/AlertRetriggerRuleResponse.md b/docs/AlertRetriggerRuleResponse.md new file mode 100644 index 00000000..1591c5cf --- /dev/null +++ b/docs/AlertRetriggerRuleResponse.md @@ -0,0 +1,14 @@ + + +# AlertRetriggerRuleResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**AlertRetriggerRuleResponseData**](AlertRetriggerRuleResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/AlertRetriggerRuleResponseData.md b/docs/AlertRetriggerRuleResponseData.md new file mode 100644 index 00000000..9c48cc32 --- /dev/null +++ b/docs/AlertRetriggerRuleResponseData.md @@ -0,0 +1,23 @@ + + +# AlertRetriggerRuleResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the alert_retrigger_rule | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**AlertRetriggerRule**](AlertRetriggerRule.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| ALERT_RETRIGGER_RULES | "alert_retrigger_rules" | + + + diff --git a/docs/AlertRetriggerRulesApi.md b/docs/AlertRetriggerRulesApi.md new file mode 100644 index 00000000..c6d70db0 --- /dev/null +++ b/docs/AlertRetriggerRulesApi.md @@ -0,0 +1,336 @@ +# AlertRetriggerRulesApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createAlertRetriggerRule**](AlertRetriggerRulesApi.md#createAlertRetriggerRule) | **POST** /v1/alert_retrigger_rules | Creates an alert re-trigger rule | +| [**deleteAlertRetriggerRule**](AlertRetriggerRulesApi.md#deleteAlertRetriggerRule) | **DELETE** /v1/alert_retrigger_rules/{id} | Deletes an alert re-trigger rule | +| [**getAlertRetriggerRule**](AlertRetriggerRulesApi.md#getAlertRetriggerRule) | **GET** /v1/alert_retrigger_rules/{id} | Retrieves an alert re-trigger rule | +| [**listAlertRetriggerRules**](AlertRetriggerRulesApi.md#listAlertRetriggerRules) | **GET** /v1/alert_retrigger_rules | List alert re-trigger rules | +| [**updateAlertRetriggerRule**](AlertRetriggerRulesApi.md#updateAlertRetriggerRule) | **PUT** /v1/alert_retrigger_rules/{id} | Updates an alert re-trigger rule | + + + +# **createAlertRetriggerRule** +> AlertRetriggerRuleResponse createAlertRetriggerRule(newAlertRetriggerRule) + +Creates an alert re-trigger rule + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertRetriggerRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertRetriggerRulesApi apiInstance = new AlertRetriggerRulesApi(defaultClient); + NewAlertRetriggerRule newAlertRetriggerRule = new NewAlertRetriggerRule(); // NewAlertRetriggerRule | + try { + AlertRetriggerRuleResponse result = apiInstance.createAlertRetriggerRule(newAlertRetriggerRule); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertRetriggerRulesApi#createAlertRetriggerRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newAlertRetriggerRule** | [**NewAlertRetriggerRule**](NewAlertRetriggerRule.md)| | | + +### Return type + +[**AlertRetriggerRuleResponse**](AlertRetriggerRuleResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | alert re-trigger rule created | - | +| **422** | invalid request | - | + + +# **deleteAlertRetriggerRule** +> deleteAlertRetriggerRule(id) + +Deletes an alert re-trigger rule + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertRetriggerRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertRetriggerRulesApi apiInstance = new AlertRetriggerRulesApi(defaultClient); + String id = "id_example"; // String | + try { + apiInstance.deleteAlertRetriggerRule(id); + } catch (ApiException e) { + System.err.println("Exception when calling AlertRetriggerRulesApi#deleteAlertRetriggerRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +null (empty response body) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | alert re-trigger rule deleted | - | + + +# **getAlertRetriggerRule** +> AlertRetriggerRuleResponse getAlertRetriggerRule(id) + +Retrieves an alert re-trigger rule + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertRetriggerRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertRetriggerRulesApi apiInstance = new AlertRetriggerRulesApi(defaultClient); + String id = "id_example"; // String | + try { + AlertRetriggerRuleResponse result = apiInstance.getAlertRetriggerRule(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertRetriggerRulesApi#getAlertRetriggerRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**AlertRetriggerRuleResponse**](AlertRetriggerRuleResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | alert re-trigger rule found | - | + + +# **listAlertRetriggerRules** +> AlertRetriggerRuleList listAlertRetriggerRules() + +List alert re-trigger rules + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertRetriggerRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertRetriggerRulesApi apiInstance = new AlertRetriggerRulesApi(defaultClient); + try { + AlertRetriggerRuleList result = apiInstance.listAlertRetriggerRules(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertRetriggerRulesApi#listAlertRetriggerRules"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**AlertRetriggerRuleList**](AlertRetriggerRuleList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | alert re-trigger rules listed | - | + + +# **updateAlertRetriggerRule** +> AlertRetriggerRuleResponse updateAlertRetriggerRule(id, updateAlertRetriggerRule) + +Updates an alert re-trigger rule + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertRetriggerRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertRetriggerRulesApi apiInstance = new AlertRetriggerRulesApi(defaultClient); + String id = "id_example"; // String | + UpdateAlertRetriggerRule updateAlertRetriggerRule = new UpdateAlertRetriggerRule(); // UpdateAlertRetriggerRule | + try { + AlertRetriggerRuleResponse result = apiInstance.updateAlertRetriggerRule(id, updateAlertRetriggerRule); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertRetriggerRulesApi#updateAlertRetriggerRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **updateAlertRetriggerRule** | [**UpdateAlertRetriggerRule**](UpdateAlertRetriggerRule.md)| | | + +### Return type + +[**AlertRetriggerRuleResponse**](AlertRetriggerRuleResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | alert re-trigger rule updated | - | + diff --git a/docs/AlertRoutesApi.md b/docs/AlertRoutesApi.md index e2fffa07..23dc6291 100644 --- a/docs/AlertRoutesApi.md +++ b/docs/AlertRoutesApi.md @@ -8,6 +8,7 @@ All URIs are relative to *https://api.rootly.com* | [**deleteAlertRoute**](AlertRoutesApi.md#deleteAlertRoute) | **DELETE** /v1/alert_routes/{id} | Delete an alert route | | [**getAlertRoute**](AlertRoutesApi.md#getAlertRoute) | **GET** /v1/alert_routes/{id} | Get an alert route | | [**listAlertRoutes**](AlertRoutesApi.md#listAlertRoutes) | **GET** /v1/alert_routes | List alert routes | +| [**patchAlertRoute**](AlertRoutesApi.md#patchAlertRoute) | **PATCH** /v1/alert_routes/{id} | Update an alert route | | [**updateAlertRoute**](AlertRoutesApi.md#updateAlertRoute) | **PUT** /v1/alert_routes/{id} | Update an alert route | @@ -156,7 +157,7 @@ public class Example { Get an alert route -Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** +Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Optional Parameters - **show_nested_ids** (query parameter): When set to `true`, the response will include IDs for all nested resources (destinations, condition_groups, conditions). This is useful when you need to reference these nested resources for updates or deletions via PATCH requests. Example: `GET /v1/alert_routes/{id}?show_nested_ids=true` ### Example ```java @@ -221,7 +222,7 @@ public class Example { # **listAlertRoutes** -> AlertRouteList listAlertRoutes(pageNumber, pageSize, filterSearch, filterName, sort) +> AlertRouteList listAlertRoutes(pageNumber, pageSize, filterSearch, filterName, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort) List alert routes @@ -251,9 +252,17 @@ public class Example { Integer pageSize = 56; // Integer | String filterSearch = "filterSearch_example"; // String | String filterName = "filterName_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | String sort = "sort_example"; // String | try { - AlertRouteList result = apiInstance.listAlertRoutes(pageNumber, pageSize, filterSearch, filterName, sort); + AlertRouteList result = apiInstance.listAlertRoutes(pageNumber, pageSize, filterSearch, filterName, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AlertRoutesApi#listAlertRoutes"); @@ -274,6 +283,14 @@ public class Example { | **pageSize** | **Integer**| | [optional] | | **filterSearch** | **String**| | [optional] | | **filterName** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type @@ -295,13 +312,85 @@ public class Example { | **200** | alert routes filtered by search | - | | **401** | unauthorized | - | + +# **patchAlertRoute** +> AlertRouteResponse patchAlertRoute(id, patchAlertRoute) + +Update an alert route + +Updates an alert route. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertRoutesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertRoutesApi apiInstance = new AlertRoutesApi(defaultClient); + String id = "id_example"; // String | + PatchAlertRoute patchAlertRoute = new PatchAlertRoute(); // PatchAlertRoute | + try { + AlertRouteResponse result = apiInstance.patchAlertRoute(id, patchAlertRoute); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertRoutesApi#patchAlertRoute"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **patchAlertRoute** | [**PatchAlertRoute**](PatchAlertRoute.md)| | | + +### Return type + +[**AlertRouteResponse**](AlertRouteResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | delete existing rule by id with _destroy | - | +| **422** | invalid request | - | +| **401** | unauthorized | - | +| **404** | cross-team access denied | - | + # **updateAlertRoute** > AlertRouteResponse updateAlertRoute(id, updateAlertRoute) Update an alert route -Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. +Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ### Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. ### Example ```java diff --git a/docs/AlertRoutingRuleDestination.md b/docs/AlertRoutingRuleDestination.md index 604eb7d9..ec71287d 100644 --- a/docs/AlertRoutingRuleDestination.md +++ b/docs/AlertRoutingRuleDestination.md @@ -8,7 +8,7 @@ The destinations for the alert routing rule | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target | | +|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. | | |**targetId** | **UUID** | The ID of the target | | @@ -19,6 +19,7 @@ The destinations for the alert routing rule |---- | -----| | SERVICE | "Service" | | GROUP | "Group" | +| FUNCTIONALITY | "Functionality" | | ESCALATION_POLICY | "EscalationPolicy" | diff --git a/docs/AlertRoutingRuleList.md b/docs/AlertRoutingRuleList.md index 4436cf68..292969da 100644 --- a/docs/AlertRoutingRuleList.md +++ b/docs/AlertRoutingRuleList.md @@ -10,6 +10,7 @@ |**data** | [**List<AlertRoutingRuleResponseData>**](AlertRoutingRuleResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertRoutingRuleResponse.md b/docs/AlertRoutingRuleResponse.md index 63834da2..ff8269e0 100644 --- a/docs/AlertRoutingRuleResponse.md +++ b/docs/AlertRoutingRuleResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AlertRoutingRuleResponseData**](AlertRoutingRuleResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertRoutingRuleTarget.md b/docs/AlertRoutingRuleTarget.md index 8c67c557..a45f5db2 100644 --- a/docs/AlertRoutingRuleTarget.md +++ b/docs/AlertRoutingRuleTarget.md @@ -8,7 +8,7 @@ The destination target for the alert routing rule | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target | | +|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. | | |**targetId** | **UUID** | The ID of the target | | @@ -19,6 +19,7 @@ The destination target for the alert routing rule |---- | -----| | SERVICE | "Service" | | GROUP | "Group" | +| FUNCTIONALITY | "Functionality" | | ESCALATION_POLICY | "EscalationPolicy" | diff --git a/docs/AlertRoutingRulesApi.md b/docs/AlertRoutingRulesApi.md index 36c61fe0..00767851 100644 --- a/docs/AlertRoutingRulesApi.md +++ b/docs/AlertRoutingRulesApi.md @@ -218,7 +218,7 @@ public class Example { # **listAlertRoutingRules** -> AlertRoutingRuleList listAlertRoutingRules(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> AlertRoutingRuleList listAlertRoutingRules(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort) List alert routing rules @@ -253,9 +253,17 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | String sort = "sort_example"; // String | try { - AlertRoutingRuleList result = apiInstance.listAlertRoutingRules(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + AlertRoutingRuleList result = apiInstance.listAlertRoutingRules(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AlertRoutingRulesApi#listAlertRoutingRules"); @@ -281,6 +289,14 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/AlertSourcesApi.md b/docs/AlertSourcesApi.md index a7748b06..783ac5d1 100644 --- a/docs/AlertSourcesApi.md +++ b/docs/AlertSourcesApi.md @@ -77,7 +77,6 @@ public class Example { | Status code | Description | Response headers | |-------------|-------------|------------------| | **201** | alert source created with resolution rule | - | -| **400** | alert template attribute when alert fields are enabled | - | | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | @@ -219,7 +218,7 @@ public class Example { # **listAlertsSources** -> AlertsSourceList listAlertsSources(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, sort) +> AlertsSourceList listAlertsSources(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, filterName, filterEnabled, sort) List alert sources @@ -251,9 +250,11 @@ public class Example { String filterSearch = "filterSearch_example"; // String | String filterStatuses = "filterStatuses_example"; // String | String filterSourceTypes = "filterSourceTypes_example"; // String | + String filterName = "filterName_example"; // String | + Boolean filterEnabled = true; // Boolean | String sort = "sort_example"; // String | try { - AlertsSourceList result = apiInstance.listAlertsSources(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, sort); + AlertsSourceList result = apiInstance.listAlertsSources(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, filterName, filterEnabled, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AlertSourcesApi#listAlertsSources"); @@ -276,6 +277,8 @@ public class Example { | **filterSearch** | **String**| | [optional] | | **filterStatuses** | **String**| | [optional] | | **filterSourceTypes** | **String**| | [optional] | +| **filterName** | **String**| | [optional] | +| **filterEnabled** | **Boolean**| | [optional] | | **sort** | **String**| | [optional] | ### Return type @@ -363,6 +366,6 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | alert source updated | - | +| **200** | preserves existing alert source field ids | - | | **404** | resource not found | - | diff --git a/docs/AlertTriggerParams.md b/docs/AlertTriggerParams.md index fbb99685..93263622 100644 --- a/docs/AlertTriggerParams.md +++ b/docs/AlertTriggerParams.md @@ -19,11 +19,14 @@ |**alertConditionStatusUseRegexp** | **Boolean** | | [optional] | |**alertStatuses** | **List<String>** | | [optional] | |**alertLabels** | **List<String>** | | [optional] | +|**alertConditionUrgency** | [**AlertConditionUrgencyEnum**](#AlertConditionUrgencyEnum) | | [optional] | +|**alertUrgencyIds** | **List<UUID>** | | [optional] | |**alertConditionPayload** | [**AlertConditionPayloadEnum**](#AlertConditionPayloadEnum) | | [optional] | |**alertConditionPayloadUseRegexp** | **Boolean** | | [optional] | |**alertPayload** | **List<String>** | | [optional] | |**alertQueryPayload** | **String** | You can use jsonpath syntax. eg: $.incident.teams[*] | [optional] | |**alertFieldConditions** | [**List<AlertTriggerParamsAlertFieldConditionsInner>**](AlertTriggerParamsAlertFieldConditionsInner.md) | | [optional] | +|**alertPayloadConditions** | [**AlertTriggerParamsAlertPayloadConditions**](AlertTriggerParamsAlertPayloadConditions.md) | | [optional] | @@ -102,6 +105,22 @@ +## Enum: AlertConditionUrgencyEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + ## Enum: AlertConditionPayloadEnum | Name | Value | diff --git a/docs/AlertUrgenciesApi.md b/docs/AlertUrgenciesApi.md index 034abfb9..6b397991 100644 --- a/docs/AlertUrgenciesApi.md +++ b/docs/AlertUrgenciesApi.md @@ -218,7 +218,7 @@ public class Example { # **listAlertUrgencies** -> AlertUrgencyList listAlertUrgencies(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> AlertUrgencyList listAlertUrgencies(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort) List alert urgencies @@ -253,9 +253,13 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | String sort = "sort_example"; // String | try { - AlertUrgencyList result = apiInstance.listAlertUrgencies(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + AlertUrgencyList result = apiInstance.listAlertUrgencies(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AlertUrgenciesApi#listAlertUrgencies"); @@ -281,6 +285,10 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/AlertUrgency.md b/docs/AlertUrgency.md index aeac9d1c..99d11961 100644 --- a/docs/AlertUrgency.md +++ b/docs/AlertUrgency.md @@ -7,9 +7,15 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the alert urgency | [optional] | |**name** | **String** | The name of the alert urgency | | |**description** | **String** | The description of the alert urgency | | |**position** | **Integer** | Position of the alert urgency | | +|**retriggerTimeoutMinutes** | **Integer** | Re-trigger acknowledged alerts of this urgency after N minutes; null inherits the workspace default, negative = never. | [optional] | +|**urgency** | **String** | The urgency level | [optional] | +|**color** | **String** | The color associated with this urgency level | [optional] | +|**teamId** | **Integer** | The ID of the team this urgency belongs to | [optional] | +|**deletedAt** | **String** | Date of deletion | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | diff --git a/docs/AlertUrgencyList.md b/docs/AlertUrgencyList.md index 287647da..7e83795a 100644 --- a/docs/AlertUrgencyList.md +++ b/docs/AlertUrgencyList.md @@ -10,6 +10,7 @@ |**data** | [**List<AlertUrgencyResponseData>**](AlertUrgencyResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertUrgencyResponse.md b/docs/AlertUrgencyResponse.md index 2912a3b9..9f3da9a8 100644 --- a/docs/AlertUrgencyResponse.md +++ b/docs/AlertUrgencyResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AlertUrgencyResponseData**](AlertUrgencyResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertsApi.md b/docs/AlertsApi.md index 8f492be2..c7ca0d0e 100644 --- a/docs/AlertsApi.md +++ b/docs/AlertsApi.md @@ -7,10 +7,13 @@ All URIs are relative to *https://api.rootly.com* | [**acknowledgeAlert**](AlertsApi.md#acknowledgeAlert) | **POST** /v1/alerts/{id}/acknowledge | Acknowledges an alert | | [**attachAlert**](AlertsApi.md#attachAlert) | **POST** /v1/incidents/{incident_id}/alerts | Attach alerts to an incident | | [**createAlert**](AlertsApi.md#createAlert) | **POST** /v1/alerts | Creates an alert | +| [**escalateAlert**](AlertsApi.md#escalateAlert) | **POST** /v1/alerts/{id}/escalate | Escalates an alert | | [**getAlert**](AlertsApi.md#getAlert) | **GET** /v1/alerts/{id} | Retrieves an alert | +| [**getReceipt**](AlertsApi.md#getReceipt) | **GET** /v1/alerts/receipts/{id} | Get a receipt | | [**listAlerts**](AlertsApi.md#listAlerts) | **GET** /v1/alerts | List alerts | | [**listIncidentAlerts**](AlertsApi.md#listIncidentAlerts) | **GET** /v1/incidents/{incident_id}/alerts | List Incident alerts | | [**resolveAlert**](AlertsApi.md#resolveAlert) | **POST** /v1/alerts/{id}/resolve | Resolves an alert | +| [**snoozeAlert**](AlertsApi.md#snoozeAlert) | **POST** /v1/alerts/{id}/snooze | Snoozes an alert | | [**updateAlert**](AlertsApi.md#updateAlert) | **PATCH** /v1/alerts/{id} | Update alert | @@ -222,6 +225,78 @@ public class Example { | **422** | invalid request | - | | **401** | resource not found | - | + +# **escalateAlert** +> AlertResponse escalateAlert(id, escalateAlert) + +Escalates an alert + +Escalates a specific alert to the next or specified level in its escalation policy + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertsApi apiInstance = new AlertsApi(defaultClient); + String id = "id_example"; // String | + EscalateAlert escalateAlert = new EscalateAlert(); // EscalateAlert | + try { + AlertResponse result = apiInstance.escalateAlert(id, escalateAlert); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertsApi#escalateAlert"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **escalateAlert** | [**EscalateAlert**](EscalateAlert.md)| | [optional] | + +### Return type + +[**AlertResponse**](AlertResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | escalates to different EP defaults to level 1 | - | +| **422** | escalation_policy_level exceeds max | - | +| **404** | cannot escalate grouped member alert | - | +| **400** | malformed escalation_policy_id | - | + # **getAlert** > AlertResponse getAlert(id, include) @@ -271,7 +346,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **id** | **String**| | | -| **include** | **String**| comma separated if needed. eg: environments,services,groups | [optional] [enum: environments, services, groups, responders, incidents, events, alert_urgency, heartbeat, live_call_router, alert_group, group_leader_alert, group_member_alerts, alert_field_values, alerting_targets, escalation_policies, alert_call_recording, alert_urgency] | +| **include** | **String**| comma separated if needed. eg: environments,services,groups | [optional] [enum: environments, services, groups, functionalities, responders, incidents, notified_users, events, alert_urgency, heartbeat, live_call_router, alert_group, group_leader_alert, group_member_alerts, alert_field_values, alerting_targets, escalation_policies, alert_call_recording] | ### Return type @@ -292,9 +367,77 @@ public class Example { | **200** | alert found with group_member_alerts included | - | | **404** | resource not found | - | + +# **getReceipt** +> Receipt getReceipt(id) + +Get a receipt + +Retrieve the delivery receipt for a notification by ID, including its state and (when applicable) failure reason and referenced resource. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertsApi apiInstance = new AlertsApi(defaultClient); + String id = "id_example"; // String | Receipt ID + try { + Receipt result = apiInstance.getReceipt(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertsApi#getReceipt"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Receipt ID | | + +### Return type + +[**Receipt**](Receipt.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | receipt found | - | +| **404** | receipt not found | - | + # **listAlerts** -> AlertList listAlerts(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize) +> AlertList listAlerts(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterGroupsEq, filterGroupsNotEq, filterGroupsIn, filterGroupsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, pageAfter, pageNumber, pageSize) List alerts @@ -339,10 +482,39 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterUpdatedAtGt = "filterUpdatedAtGt_example"; // String | + String filterUpdatedAtGte = "filterUpdatedAtGte_example"; // String | + String filterUpdatedAtLt = "filterUpdatedAtLt_example"; // String | + String filterUpdatedAtLte = "filterUpdatedAtLte_example"; // String | + String filterStatusEq = "filterStatusEq_example"; // String | + String filterStatusNotEq = "filterStatusNotEq_example"; // String | + String filterStatusIn = "filterStatusIn_example"; // String | + String filterStatusNotIn = "filterStatusNotIn_example"; // String | + String filterSourceEq = "filterSourceEq_example"; // String | + String filterSourceNotEq = "filterSourceNotEq_example"; // String | + String filterSourceIn = "filterSourceIn_example"; // String | + String filterSourceNotIn = "filterSourceNotIn_example"; // String | + String filterServicesEq = "filterServicesEq_example"; // String | + String filterServicesNotEq = "filterServicesNotEq_example"; // String | + String filterServicesIn = "filterServicesIn_example"; // String | + String filterServicesNotIn = "filterServicesNotIn_example"; // String | + String filterGroupsEq = "filterGroupsEq_example"; // String | + String filterGroupsNotEq = "filterGroupsNotEq_example"; // String | + String filterGroupsIn = "filterGroupsIn_example"; // String | + String filterGroupsNotIn = "filterGroupsNotIn_example"; // String | + String filterEnvironmentsEq = "filterEnvironmentsEq_example"; // String | + String filterEnvironmentsNotEq = "filterEnvironmentsNotEq_example"; // String | + String filterEnvironmentsIn = "filterEnvironmentsIn_example"; // String | + String filterEnvironmentsNotIn = "filterEnvironmentsNotIn_example"; // String | + String filterLabelsEq = "filterLabelsEq_example"; // String | + String filterLabelsNotEq = "filterLabelsNotEq_example"; // String | + String filterLabelsIn = "filterLabelsIn_example"; // String | + String filterLabelsNotIn = "filterLabelsNotIn_example"; // String | + String pageAfter = "pageAfter_example"; // String | The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | try { - AlertList result = apiInstance.listAlerts(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + AlertList result = apiInstance.listAlerts(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterGroupsEq, filterGroupsNotEq, filterGroupsIn, filterGroupsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, pageAfter, pageNumber, pageSize); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AlertsApi#listAlerts"); @@ -359,7 +531,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **include** | **String**| comma separated if needed. eg: environments,services,groups | [optional] [enum: environments, services, groups, responders, incidents, events, alert_urgency, heartbeat, live_call_router, alert_group, group_leader_alert, group_member_alerts, alert_field_values, alerting_targets, escalation_policies, alert_call_recording, alert_urgency] | +| **include** | **String**| comma separated if needed. eg: environments,services,groups | [optional] [enum: environments, services, groups, functionalities, responders, incidents, notified_users, events, alert_urgency, heartbeat, live_call_router, alert_group, group_leader_alert, group_member_alerts, alert_field_values, alerting_targets, escalation_policies, alert_call_recording] | | **filterStatus** | **String**| | [optional] | | **filterSource** | **String**| | [optional] | | **filterServices** | **String**| | [optional] | @@ -378,6 +550,35 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterUpdatedAtGt** | **String**| | [optional] | +| **filterUpdatedAtGte** | **String**| | [optional] | +| **filterUpdatedAtLt** | **String**| | [optional] | +| **filterUpdatedAtLte** | **String**| | [optional] | +| **filterStatusEq** | **String**| | [optional] | +| **filterStatusNotEq** | **String**| | [optional] | +| **filterStatusIn** | **String**| | [optional] | +| **filterStatusNotIn** | **String**| | [optional] | +| **filterSourceEq** | **String**| | [optional] | +| **filterSourceNotEq** | **String**| | [optional] | +| **filterSourceIn** | **String**| | [optional] | +| **filterSourceNotIn** | **String**| | [optional] | +| **filterServicesEq** | **String**| | [optional] | +| **filterServicesNotEq** | **String**| | [optional] | +| **filterServicesIn** | **String**| | [optional] | +| **filterServicesNotIn** | **String**| | [optional] | +| **filterGroupsEq** | **String**| | [optional] | +| **filterGroupsNotEq** | **String**| | [optional] | +| **filterGroupsIn** | **String**| | [optional] | +| **filterGroupsNotIn** | **String**| | [optional] | +| **filterEnvironmentsEq** | **String**| | [optional] | +| **filterEnvironmentsNotEq** | **String**| | [optional] | +| **filterEnvironmentsIn** | **String**| | [optional] | +| **filterEnvironmentsNotIn** | **String**| | [optional] | +| **filterLabelsEq** | **String**| | [optional] | +| **filterLabelsNotEq** | **String**| | [optional] | +| **filterLabelsIn** | **String**| | [optional] | +| **filterLabelsNotIn** | **String**| | [optional] | +| **pageAfter** | **String**| The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. | [optional] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | @@ -448,7 +649,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **incidentId** | **String**| | | -| **include** | **String**| comma separated if needed. eg: environments,services,groups | [optional] [enum: environments, services, groups, responders, incidents, events, alert_urgency, heartbeat, live_call_router, alert_group, group_leader_alert, group_member_alerts, alert_field_values, alerting_targets, escalation_policies, alert_call_recording, alert_urgency] | +| **include** | **String**| comma separated if needed. eg: environments,services,groups | [optional] [enum: environments, services, groups, functionalities, responders, incidents, notified_users, events, alert_urgency, heartbeat, live_call_router, alert_group, group_leader_alert, group_member_alerts, alert_field_values, alerting_targets, escalation_policies, alert_call_recording] | ### Return type @@ -535,9 +736,80 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | resolve acknowledged | - | +| **200** | resolves open alert | - | +| **404** | resource not found | - | + + +# **snoozeAlert** +> AlertResponse snoozeAlert(id, snoozeAlert) + +Snoozes an alert + +Snoozes a specific alert by id, extending the acknowledgment timeout + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.AlertsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + AlertsApi apiInstance = new AlertsApi(defaultClient); + String id = "id_example"; // String | + SnoozeAlert snoozeAlert = new SnoozeAlert(); // SnoozeAlert | + try { + AlertResponse result = apiInstance.snoozeAlert(id, snoozeAlert); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AlertsApi#snoozeAlert"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **snoozeAlert** | [**SnoozeAlert**](SnoozeAlert.md)| | | + +### Return type + +[**AlertResponse**](AlertResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | alert snoozed | - | | **404** | resource not found | - | -| **400** | cannot resolve open alert | - | +| **400** | invalid delay_minutes | - | +| **422** | snooze service failure | - | # **updateAlert** @@ -606,6 +878,6 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | removes existing alert field values and adds new ones | - | +| **200** | updates one field value and preserves others | - | | **422** | invalid request | - | diff --git a/docs/AlertsSource.md b/docs/AlertsSource.md index 5517cf1b..33b9621d 100644 --- a/docs/AlertsSource.md +++ b/docs/AlertsSource.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the alert source | | +|**enabled** | **Boolean** | Whether the alert source is enabled. Disabled sources do not create alerts from incoming events. | [optional] | |**sourceType** | [**SourceTypeEnum**](#SourceTypeEnum) | The alert source type | [optional] | |**alertUrgencyId** | **String** | ID for the default alert urgency assigned to this alert source | [optional] | |**deduplicateAlertsByKey** | **Boolean** | Toggle alert deduplication using deduplication key. If enabled, deduplication_key_kind and deduplication_key_path are required. | [optional] | @@ -17,7 +18,7 @@ |**ownerGroupIds** | **List<String>** | List of team IDs that will own the alert source | [optional] | |**alertTemplateAttributes** | [**NewAlertsSourceDataAttributesAlertTemplateAttributes**](NewAlertsSourceDataAttributesAlertTemplateAttributes.md) | | [optional] | |**alertSourceUrgencyRulesAttributes** | [**List<NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner>**](NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner.md) | List of rules that define the conditions under which the alert urgency will be set automatically based on the alert payload | [optional] | -|**sourceableAttributes** | [**NewAlertsSourceDataAttributesSourceableAttributes**](NewAlertsSourceDataAttributesSourceableAttributes.md) | | [optional] | +|**sourceableAttributes** | [**AlertsSourceSourceableAttributes**](AlertsSourceSourceableAttributes.md) | | [optional] | |**resolutionRuleAttributes** | [**NewAlertsSourceDataAttributesResolutionRuleAttributes**](NewAlertsSourceDataAttributesResolutionRuleAttributes.md) | | [optional] | |**alertSourceFieldsAttributes** | [**List<NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner>**](NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner.md) | List of alert fields to be added to the alert source. Note: This attribute requires the alert field feature to be enabled on your account. Contact Rootly customer support if you need assistance with this feature. | [optional] | |**status** | [**StatusEnum**](#StatusEnum) | The status of the alert source | | @@ -36,13 +37,16 @@ | EMAIL | "email" | | APP_DYNAMICS | "app_dynamics" | | CATCHPOINT | "catchpoint" | +| CLOUDFLARE | "cloudflare" | | DATADOG | "datadog" | +| DYNATRACE | "dynatrace" | | ALERTMANAGER | "alertmanager" | | GOOGLE_CLOUD | "google_cloud" | | GRAFANA | "grafana" | | SENTRY | "sentry" | | GENERIC_WEBHOOK | "generic_webhook" | | CLOUD_WATCH | "cloud_watch" | +| AWS_SNS | "aws_sns" | | CHECKLY | "checkly" | | AZURE | "azure" | | NEW_RELIC | "new_relic" | diff --git a/docs/AlertsSourceList.md b/docs/AlertsSourceList.md index 978a9af7..97276112 100644 --- a/docs/AlertsSourceList.md +++ b/docs/AlertsSourceList.md @@ -10,6 +10,7 @@ |**data** | [**List<AlertsSourceResponseData>**](AlertsSourceResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertsSourceResponse.md b/docs/AlertsSourceResponse.md index 30a51fcc..4df3e09a 100644 --- a/docs/AlertsSourceResponse.md +++ b/docs/AlertsSourceResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AlertsSourceResponseData**](AlertsSourceResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AlertsSourceSourceableAttributes.md b/docs/AlertsSourceSourceableAttributes.md new file mode 100644 index 00000000..4e640bad --- /dev/null +++ b/docs/AlertsSourceSourceableAttributes.md @@ -0,0 +1,18 @@ + + +# AlertsSourceSourceableAttributes + +Provide additional attributes for the underlying source. `auto_resolve`, `resolve_state` and `field_mappings_attributes` apply to generic_webhook sources; `accept_threaded_emails` applies to email sources. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **UUID** | Unique ID of the underlying source. Read-only; it is resolved from the alert source itself on update. | [optional] | +|**autoResolve** | **Boolean** | Set this to true to auto-resolve alerts based on field_mappings_attributes conditions | [optional] | +|**resolveState** | **String** | This value is matched with the value extracted from alerts payload using JSON path in field_mappings_attributes | [optional] | +|**acceptThreadedEmails** | **Boolean** | Set this to false to reject threaded emails | [optional] | +|**fieldMappingsAttributes** | [**List<NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner>**](NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.md) | Specify rules to auto resolve alerts | [optional] | + + + diff --git a/docs/ApiKeyList.md b/docs/ApiKeyList.md index 3847164d..38c8df1d 100644 --- a/docs/ApiKeyList.md +++ b/docs/ApiKeyList.md @@ -10,6 +10,7 @@ |**data** | [**List<ApiKeyResponseData>**](ApiKeyResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ApiKeyResponse.md b/docs/ApiKeyResponse.md index 3c9e8412..225bc271 100644 --- a/docs/ApiKeyResponse.md +++ b/docs/ApiKeyResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ApiKeyResponseData**](ApiKeyResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ApiKeyWithTokenResponse.md b/docs/ApiKeyWithTokenResponse.md index a5be96d4..19bd11ea 100644 --- a/docs/ApiKeyWithTokenResponse.md +++ b/docs/ApiKeyWithTokenResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ApiKeyWithTokenResponseData**](ApiKeyWithTokenResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ArchiveGoogleChatSpacesTaskParams.md b/docs/ArchiveGoogleChatSpacesTaskParams.md new file mode 100644 index 00000000..6cb2a310 --- /dev/null +++ b/docs/ArchiveGoogleChatSpacesTaskParams.md @@ -0,0 +1,22 @@ + + +# ArchiveGoogleChatSpacesTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**spaces** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| ARCHIVE_GOOGLE_CHAT_SPACES | "archive_google_chat_spaces" | + + + diff --git a/docs/AttachRetrospectivePdfToFreshserviceTicketTaskParams.md b/docs/AttachRetrospectivePdfToFreshserviceTicketTaskParams.md new file mode 100644 index 00000000..f6f47a91 --- /dev/null +++ b/docs/AttachRetrospectivePdfToFreshserviceTicketTaskParams.md @@ -0,0 +1,23 @@ + + +# AttachRetrospectivePdfToFreshserviceTicketTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**ticketId** | **String** | The Freshservice ticket id | | +|**filename** | **String** | The attachment filename | [optional] | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| ATTACH_RETROSPECTIVE_PDF_TO_FRESHSERVICE_TICKET | "attach_retrospective_pdf_to_freshservice_ticket" | + + + diff --git a/docs/AttachRetrospectivePdfToJiraIssueTaskParams.md b/docs/AttachRetrospectivePdfToJiraIssueTaskParams.md new file mode 100644 index 00000000..8ac70b38 --- /dev/null +++ b/docs/AttachRetrospectivePdfToJiraIssueTaskParams.md @@ -0,0 +1,24 @@ + + +# AttachRetrospectivePdfToJiraIssueTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**integration** | [**CreateJiraIssueTaskParamsIntegration**](CreateJiraIssueTaskParamsIntegration.md) | | [optional] | +|**issueId** | **String** | The issue id | | +|**filename** | **String** | The attachment filename | [optional] | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| ATTACH_RETROSPECTIVE_PDF_TO_JIRA_ISSUE | "attach_retrospective_pdf_to_jira_issue" | + + + diff --git a/docs/Audit.md b/docs/Audit.md index a0310ac4..dbf11aeb 100644 --- a/docs/Audit.md +++ b/docs/Audit.md @@ -9,9 +9,16 @@ |------------ | ------------- | ------------- | -------------| |**event** | **String** | Describes the action that was taken. | | |**itemType** | [**ItemTypeEnum**](#ItemTypeEnum) | Describes the object in which the action was taken on | [optional] | +|**itemTypeDisplay** | **String** | Human-friendly display name for the item type | [optional] | |**_object** | **Object** | The object in which the action was taken on | [optional] | |**objectChanges** | **Object** | The changes that occurred on the object | [optional] | |**userId** | **Integer** | The ID of who took action on the object. Together with whodunnit_type can be used to find the user | [optional] | +|**userName** | **String** | Display name of the user who performed the action | [optional] | +|**userEmail** | **String** | Email address of the user who performed the action | [optional] | +|**ipAddress** | **String** | IP address of the client that performed the action | [optional] | +|**userAgent** | **String** | User-Agent header of the client that performed the action | [optional] | +|**requestId** | **String** | Unique request ID (UUID) for the HTTP request that triggered the action | [optional] | +|**sessionId** | **String** | SHA-256 fingerprint of the web session for correlating multiple actions within the same browser session | [optional] | |**createdAt** | **String** | Date of creation | | |**itemId** | **String** | ID of the affected object | [optional] | |**id** | **Integer** | ID of audit | [optional] | @@ -22,7 +29,14 @@ | Name | Value | |---- | -----| +| ALERT_ROUTE | "AlertRoute" | +| ALERT_ROUTING_RULE | "AlertRoutingRule" | +| ALERTS_SOURCE | "Alerts::Source" | | API_KEY | "ApiKey" | +| CATALOG | "Catalog" | +| CATALOG_ENTITY | "CatalogEntity" | +| CATALOG_ENTITY_PROPERTY | "CatalogEntityProperty" | +| CATALOG_FIELD | "CatalogField" | | CAUSE | "Cause" | | CUSTOM_FIELD | "CustomField" | | CUSTOM_FIELD_OPTION | "CustomFieldOption" | @@ -40,24 +54,42 @@ | GENIUS_WORKFLOW_GROUP | "GeniusWorkflowGroup" | | GENIUS_WORKFLOW_RUN | "GeniusWorkflowRun" | | GROUP | "Group" | +| GROUP_USER | "GroupUser" | | HEARTBEAT | "Heartbeat" | | INCIDENT | "Incident" | | INCIDENT_ACTION_ITEM | "IncidentActionItem" | | INCIDENT_EVENT | "IncidentEvent" | | INCIDENT_FORM_FIELD_SELECTION | "IncidentFormFieldSelection" | | INCIDENT_FORM_FIELD_SELECTION_USER | "IncidentFormFieldSelectionUser" | +| INCIDENT_PERMISSION_SET | "IncidentPermissionSet" | | INCIDENT_POST_MORTEM | "IncidentPostMortem" | | INCIDENT_ROLE_ASSIGNMENT | "IncidentRoleAssignment" | | INCIDENT_ROLE_TASK | "IncidentRoleTask" | | INCIDENT_STATUS_PAGE_EVENT | "IncidentStatusPageEvent" | | INCIDENT_TASK | "IncidentTask" | | INCIDENT_TYPE | "IncidentType" | +| INTEGRATIONS_DATADOG_ACCOUNT | "Integrations::DatadogAccount" | +| INTEGRATIONS_GITHUB_ACCOUNT | "Integrations::GithubAccount" | +| INTEGRATIONS_GOOGLE_MEET_ACCOUNT | "Integrations::GoogleMeetAccount" | +| INTEGRATIONS_JIRA_ACCOUNT | "Integrations::JiraAccount" | +| INTEGRATIONS_MICROSOFT_TEAMS_ACCOUNT | "Integrations::MicrosoftTeamsAccount" | +| INTEGRATIONS_NOTION_ACCOUNT | "Integrations::NotionAccount" | +| INTEGRATIONS_OPSGENIE_ACCOUNT | "Integrations::OpsgenieAccount" | +| INTEGRATIONS_PAGERDUTY_ACCOUNT | "Integrations::PagerdutyAccount" | +| INTEGRATIONS_SERVICE_NOW_ACCOUNT | "Integrations::ServiceNowAccount" | +| INTEGRATIONS_SLACK_ACCOUNT | "Integrations::SlackAccount" | +| INTEGRATIONS_STATUS_PAGE_IO_ACCOUNT | "Integrations::StatusPageIoAccount" | +| INTEGRATIONS_ZENDESK_ACCOUNT | "Integrations::ZendeskAccount" | +| INTEGRATIONS_ZOOM_ACCOUNT | "Integrations::ZoomAccount" | | LIVE_CALL_ROUTER | "LiveCallRouter" | +| LOGIN_ACTIVITY | "LoginActivity" | +| MEMBERSHIP | "Membership" | | ON_CALL_ROLE | "OnCallRole" | | PLAYBOOK | "Playbook" | | PLAYBOOK_TASK | "PlaybookTask" | | ROLE | "Role" | | SCHEDULE | "Schedule" | +| SECRET | "Secret" | | SERVICE | "Service" | | SEVERITY | "Severity" | | STATUS_PAGE | "StatusPage" | diff --git a/docs/AuditsApi.md b/docs/AuditsApi.md index 88ce89b9..d6d1d1c5 100644 --- a/docs/AuditsApi.md +++ b/docs/AuditsApi.md @@ -9,7 +9,7 @@ All URIs are relative to *https://api.rootly.com* # **listAudits** -> AuditsList listAudits(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, sort) +> AuditsList listAudits(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterApiKeyIdEq, filterApiKeyIdNotEq, filterApiKeyIdIn, filterApiKeyIdNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterItemTypeEq, filterItemTypeNotEq, filterItemTypeIn, filterItemTypeNotIn, sort) List audits @@ -46,9 +46,25 @@ public class Example { String filterApiKeyId = "filterApiKeyId_example"; // String | String filterSource = "filterSource_example"; // String | String filterItemType = "filterItemType_example"; // String | + String filterUserIdEq = "filterUserIdEq_example"; // String | + String filterUserIdNotEq = "filterUserIdNotEq_example"; // String | + String filterUserIdIn = "filterUserIdIn_example"; // String | + String filterUserIdNotIn = "filterUserIdNotIn_example"; // String | + String filterApiKeyIdEq = "filterApiKeyIdEq_example"; // String | + String filterApiKeyIdNotEq = "filterApiKeyIdNotEq_example"; // String | + String filterApiKeyIdIn = "filterApiKeyIdIn_example"; // String | + String filterApiKeyIdNotIn = "filterApiKeyIdNotIn_example"; // String | + String filterSourceEq = "filterSourceEq_example"; // String | + String filterSourceNotEq = "filterSourceNotEq_example"; // String | + String filterSourceIn = "filterSourceIn_example"; // String | + String filterSourceNotIn = "filterSourceNotIn_example"; // String | + String filterItemTypeEq = "filterItemTypeEq_example"; // String | + String filterItemTypeNotEq = "filterItemTypeNotEq_example"; // String | + String filterItemTypeIn = "filterItemTypeIn_example"; // String | + String filterItemTypeNotIn = "filterItemTypeNotIn_example"; // String | String sort = "sort_example"; // String | try { - AuditsList result = apiInstance.listAudits(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, sort); + AuditsList result = apiInstance.listAudits(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterApiKeyIdEq, filterApiKeyIdNotEq, filterApiKeyIdIn, filterApiKeyIdNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterItemTypeEq, filterItemTypeNotEq, filterItemTypeIn, filterItemTypeNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling AuditsApi#listAudits"); @@ -76,6 +92,22 @@ public class Example { | **filterApiKeyId** | **String**| | [optional] | | **filterSource** | **String**| | [optional] | | **filterItemType** | **String**| | [optional] | +| **filterUserIdEq** | **String**| | [optional] | +| **filterUserIdNotEq** | **String**| | [optional] | +| **filterUserIdIn** | **String**| | [optional] | +| **filterUserIdNotIn** | **String**| | [optional] | +| **filterApiKeyIdEq** | **String**| | [optional] | +| **filterApiKeyIdNotEq** | **String**| | [optional] | +| **filterApiKeyIdIn** | **String**| | [optional] | +| **filterApiKeyIdNotIn** | **String**| | [optional] | +| **filterSourceEq** | **String**| | [optional] | +| **filterSourceNotEq** | **String**| | [optional] | +| **filterSourceIn** | **String**| | [optional] | +| **filterSourceNotIn** | **String**| | [optional] | +| **filterItemTypeEq** | **String**| | [optional] | +| **filterItemTypeNotEq** | **String**| | [optional] | +| **filterItemTypeIn** | **String**| | [optional] | +| **filterItemTypeNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/AuditsList.md b/docs/AuditsList.md index edfcbae2..b0d2fa02 100644 --- a/docs/AuditsList.md +++ b/docs/AuditsList.md @@ -10,6 +10,7 @@ |**data** | [**List<AuditsListDataInner>**](AuditsListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AuthorizationList.md b/docs/AuthorizationList.md index c89d9c16..b0b09591 100644 --- a/docs/AuthorizationList.md +++ b/docs/AuthorizationList.md @@ -10,6 +10,7 @@ |**data** | [**List<AuthorizationResponseData>**](AuthorizationResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AuthorizationResponse.md b/docs/AuthorizationResponse.md index cc71db90..d9d2f8bc 100644 --- a/docs/AuthorizationResponse.md +++ b/docs/AuthorizationResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**AuthorizationResponseData**](AuthorizationResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/AutoAssignRolePagerdutyTaskParamsAnyOf.md b/docs/AutoAssignRolePagerdutyTaskParamsAnyOf.md new file mode 100644 index 00000000..14673c3b --- /dev/null +++ b/docs/AutoAssignRolePagerdutyTaskParamsAnyOf.md @@ -0,0 +1,13 @@ + + +# AutoAssignRolePagerdutyTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**schedule** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/AutoAssignRolePagerdutyTaskParamsAnyOf1.md b/docs/AutoAssignRolePagerdutyTaskParamsAnyOf1.md new file mode 100644 index 00000000..80ddb9af --- /dev/null +++ b/docs/AutoAssignRolePagerdutyTaskParamsAnyOf1.md @@ -0,0 +1,13 @@ + + +# AutoAssignRolePagerdutyTaskParamsAnyOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**escalationPolicy** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/AutoAssignRoleRootlyTaskParams.md b/docs/AutoAssignRoleRootlyTaskParams.md index ba18bda4..1f1d33d9 100644 --- a/docs/AutoAssignRoleRootlyTaskParams.md +++ b/docs/AutoAssignRoleRootlyTaskParams.md @@ -9,11 +9,11 @@ |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | |**incidentRoleId** | **String** | The role id | | -|**escalationPolicyTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**scheduleTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**escalationPolicyTarget** | [**Object**](Object.md) | | [optional] | +|**serviceTarget** | [**Object**](Object.md) | | [optional] | +|**userTarget** | [**Object**](Object.md) | | [optional] | +|**groupTarget** | [**Object**](Object.md) | | [optional] | +|**scheduleTarget** | [**Object**](Object.md) | | [optional] | diff --git a/docs/AutoAssignRoleRootlyTaskParamsOneOf.md b/docs/AutoAssignRoleRootlyTaskParamsOneOf.md new file mode 100644 index 00000000..bf898f1c --- /dev/null +++ b/docs/AutoAssignRoleRootlyTaskParamsOneOf.md @@ -0,0 +1,13 @@ + + +# AutoAssignRoleRootlyTaskParamsOneOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**escalationPolicyTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/AutoAssignRoleRootlyTaskParamsOneOf1.md b/docs/AutoAssignRoleRootlyTaskParamsOneOf1.md new file mode 100644 index 00000000..a262374a --- /dev/null +++ b/docs/AutoAssignRoleRootlyTaskParamsOneOf1.md @@ -0,0 +1,13 @@ + + +# AutoAssignRoleRootlyTaskParamsOneOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/AutoAssignRoleRootlyTaskParamsOneOf2.md b/docs/AutoAssignRoleRootlyTaskParamsOneOf2.md new file mode 100644 index 00000000..dd512d4f --- /dev/null +++ b/docs/AutoAssignRoleRootlyTaskParamsOneOf2.md @@ -0,0 +1,13 @@ + + +# AutoAssignRoleRootlyTaskParamsOneOf2 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/AutoAssignRoleRootlyTaskParamsOneOf3.md b/docs/AutoAssignRoleRootlyTaskParamsOneOf3.md new file mode 100644 index 00000000..9723e3e8 --- /dev/null +++ b/docs/AutoAssignRoleRootlyTaskParamsOneOf3.md @@ -0,0 +1,13 @@ + + +# AutoAssignRoleRootlyTaskParamsOneOf3 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/AutoAssignRoleRootlyTaskParamsOneOf4.md b/docs/AutoAssignRoleRootlyTaskParamsOneOf4.md new file mode 100644 index 00000000..1d98dca4 --- /dev/null +++ b/docs/AutoAssignRoleRootlyTaskParamsOneOf4.md @@ -0,0 +1,13 @@ + + +# AutoAssignRoleRootlyTaskParamsOneOf4 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**scheduleTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/BulkDeleteCatalogEntities422Response.md b/docs/BulkDeleteCatalogEntities422Response.md new file mode 100644 index 00000000..daca4b25 --- /dev/null +++ b/docs/BulkDeleteCatalogEntities422Response.md @@ -0,0 +1,14 @@ + + +# BulkDeleteCatalogEntities422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<ErrorsListErrorsInner>**](ErrorsListErrorsInner.md) | | [optional] | +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDeleteEnvironments422Response.md b/docs/BulkDeleteEnvironments422Response.md new file mode 100644 index 00000000..75c7ec31 --- /dev/null +++ b/docs/BulkDeleteEnvironments422Response.md @@ -0,0 +1,14 @@ + + +# BulkDeleteEnvironments422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<ErrorsListErrorsInner>**](ErrorsListErrorsInner.md) | | [optional] | +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDeleteFunctionalities422Response.md b/docs/BulkDeleteFunctionalities422Response.md new file mode 100644 index 00000000..09b7be83 --- /dev/null +++ b/docs/BulkDeleteFunctionalities422Response.md @@ -0,0 +1,14 @@ + + +# BulkDeleteFunctionalities422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<ErrorsListErrorsInner>**](ErrorsListErrorsInner.md) | | [optional] | +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDeleteGroups422Response.md b/docs/BulkDeleteGroups422Response.md new file mode 100644 index 00000000..8cfadfdd --- /dev/null +++ b/docs/BulkDeleteGroups422Response.md @@ -0,0 +1,14 @@ + + +# BulkDeleteGroups422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<ErrorsListErrorsInner>**](ErrorsListErrorsInner.md) | | [optional] | +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDeleteServices422Response.md b/docs/BulkDeleteServices422Response.md new file mode 100644 index 00000000..06fcf4f1 --- /dev/null +++ b/docs/BulkDeleteServices422Response.md @@ -0,0 +1,14 @@ + + +# BulkDeleteServices422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<ErrorsListErrorsInner>**](ErrorsListErrorsInner.md) | | [optional] | +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDestroyCatalogEntities.md b/docs/BulkDestroyCatalogEntities.md new file mode 100644 index 00000000..9dcc7f90 --- /dev/null +++ b/docs/BulkDestroyCatalogEntities.md @@ -0,0 +1,28 @@ + + +# BulkDestroyCatalogEntities + +Two mutually exclusive modes. Pass exactly one of: external_ids (delete specific entities) or managed_by (prune all managed entities not in keep set). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalIds** | **List<String>** | Array of external_ids to delete. Max 100 per request. | | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Delete all entities with this managed_by value (web/admin_web not allowed). | | +|**keepExternalIds** | **List<String>** | Entities with these external_ids are preserved. | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/BulkDestroyCatalogEntitiesOneOf.md b/docs/BulkDestroyCatalogEntitiesOneOf.md new file mode 100644 index 00000000..9a2e899a --- /dev/null +++ b/docs/BulkDestroyCatalogEntitiesOneOf.md @@ -0,0 +1,13 @@ + + +# BulkDestroyCatalogEntitiesOneOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalIds** | **List<String>** | Array of external_ids to delete. Max 100 per request. | | + + + diff --git a/docs/BulkDestroyCatalogEntitiesOneOf1.md b/docs/BulkDestroyCatalogEntitiesOneOf1.md new file mode 100644 index 00000000..d2d00d09 --- /dev/null +++ b/docs/BulkDestroyCatalogEntitiesOneOf1.md @@ -0,0 +1,26 @@ + + +# BulkDestroyCatalogEntitiesOneOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Delete all entities with this managed_by value (web/admin_web not allowed). | | +|**keepExternalIds** | **List<String>** | Entities with these external_ids are preserved. | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/BulkDestroyCatalogEntitiesResponse.md b/docs/BulkDestroyCatalogEntitiesResponse.md new file mode 100644 index 00000000..06754051 --- /dev/null +++ b/docs/BulkDestroyCatalogEntitiesResponse.md @@ -0,0 +1,13 @@ + + +# BulkDestroyCatalogEntitiesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDestroyCatalogEntitiesResponseData.md b/docs/BulkDestroyCatalogEntitiesResponseData.md new file mode 100644 index 00000000..0b903381 --- /dev/null +++ b/docs/BulkDestroyCatalogEntitiesResponseData.md @@ -0,0 +1,15 @@ + + +# BulkDestroyCatalogEntitiesResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**deletedExternalIds** | **List<String>** | External IDs that were successfully deleted | [optional] | +|**failedExternalIds** | **List<String>** | External IDs whose deletion the record itself blocked (e.g. minimum-one guard, restrict associations). Records the caller is not authorized to destroy are NOT listed here. | [optional] | +|**notFoundExternalIds** | **List<String>** | External IDs that were not found or not accessible to the caller (external_ids mode only) | [optional] | + + + diff --git a/docs/BulkDestroyEnvironments.md b/docs/BulkDestroyEnvironments.md new file mode 100644 index 00000000..7b2581f9 --- /dev/null +++ b/docs/BulkDestroyEnvironments.md @@ -0,0 +1,28 @@ + + +# BulkDestroyEnvironments + +Two mutually exclusive modes. Pass exactly one of: external_ids (delete specific records) or managed_by (prune all managed records not in keep set). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalIds** | **List<String>** | Array of external_ids to delete. Max 100 per request. | | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Delete all records with this managed_by value (web/admin_web not allowed). | | +|**keepExternalIds** | **List<String>** | Records with these external_ids are preserved. | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/BulkDestroyEnvironmentsOneOf.md b/docs/BulkDestroyEnvironmentsOneOf.md new file mode 100644 index 00000000..22645684 --- /dev/null +++ b/docs/BulkDestroyEnvironmentsOneOf.md @@ -0,0 +1,26 @@ + + +# BulkDestroyEnvironmentsOneOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Delete all records with this managed_by value (web/admin_web not allowed). | | +|**keepExternalIds** | **List<String>** | Records with these external_ids are preserved. | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/BulkDestroyEnvironmentsResponse.md b/docs/BulkDestroyEnvironmentsResponse.md new file mode 100644 index 00000000..ef00bd3a --- /dev/null +++ b/docs/BulkDestroyEnvironmentsResponse.md @@ -0,0 +1,13 @@ + + +# BulkDestroyEnvironmentsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDestroyFunctionalities.md b/docs/BulkDestroyFunctionalities.md new file mode 100644 index 00000000..ac23999a --- /dev/null +++ b/docs/BulkDestroyFunctionalities.md @@ -0,0 +1,28 @@ + + +# BulkDestroyFunctionalities + +Two mutually exclusive modes. Pass exactly one of: external_ids (delete specific records) or managed_by (prune all managed records not in keep set). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalIds** | **List<String>** | Array of external_ids to delete. Max 100 per request. | | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Delete all records with this managed_by value (web/admin_web not allowed). | | +|**keepExternalIds** | **List<String>** | Records with these external_ids are preserved. | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/BulkDestroyFunctionalitiesResponse.md b/docs/BulkDestroyFunctionalitiesResponse.md new file mode 100644 index 00000000..b619221a --- /dev/null +++ b/docs/BulkDestroyFunctionalitiesResponse.md @@ -0,0 +1,13 @@ + + +# BulkDestroyFunctionalitiesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDestroyServices.md b/docs/BulkDestroyServices.md new file mode 100644 index 00000000..92d6e860 --- /dev/null +++ b/docs/BulkDestroyServices.md @@ -0,0 +1,28 @@ + + +# BulkDestroyServices + +Two mutually exclusive modes. Pass exactly one of: external_ids (delete specific records) or managed_by (prune all managed records not in keep set). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalIds** | **List<String>** | Array of external_ids to delete. Max 100 per request. | | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Delete all records with this managed_by value (web/admin_web not allowed). | | +|**keepExternalIds** | **List<String>** | Records with these external_ids are preserved. | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/BulkDestroyServicesResponse.md b/docs/BulkDestroyServicesResponse.md new file mode 100644 index 00000000..4c1d208e --- /dev/null +++ b/docs/BulkDestroyServicesResponse.md @@ -0,0 +1,13 @@ + + +# BulkDestroyServicesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkDestroyTeams.md b/docs/BulkDestroyTeams.md new file mode 100644 index 00000000..54d6dc00 --- /dev/null +++ b/docs/BulkDestroyTeams.md @@ -0,0 +1,28 @@ + + +# BulkDestroyTeams + +Two mutually exclusive modes. Pass exactly one of: external_ids (delete specific records) or managed_by (prune all managed records not in keep set). + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalIds** | **List<String>** | Array of external_ids to delete. Max 100 per request. | | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Delete all records with this managed_by value (web/admin_web not allowed). | | +|**keepExternalIds** | **List<String>** | Records with these external_ids are preserved. | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/BulkDestroyTeamsResponse.md b/docs/BulkDestroyTeamsResponse.md new file mode 100644 index 00000000..edc5b7fd --- /dev/null +++ b/docs/BulkDestroyTeamsResponse.md @@ -0,0 +1,13 @@ + + +# BulkDestroyTeamsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**BulkDestroyCatalogEntitiesResponseData**](BulkDestroyCatalogEntitiesResponseData.md) | | [optional] | + + + diff --git a/docs/BulkUpsertCatalogEntities.md b/docs/BulkUpsertCatalogEntities.md new file mode 100644 index 00000000..f7bb6af3 --- /dev/null +++ b/docs/BulkUpsertCatalogEntities.md @@ -0,0 +1,13 @@ + + +# BulkUpsertCatalogEntities + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**entities** | [**List<BulkUpsertCatalogEntitiesEntitiesInner>**](BulkUpsertCatalogEntitiesEntitiesInner.md) | Array of catalog entities to upsert. Each must have an external_id. Max 100 per request. external_ids must be unique within a batch. | | + + + diff --git a/docs/BulkUpsertCatalogEntities422Response.md b/docs/BulkUpsertCatalogEntities422Response.md new file mode 100644 index 00000000..73b83bf5 --- /dev/null +++ b/docs/BulkUpsertCatalogEntities422Response.md @@ -0,0 +1,13 @@ + + +# BulkUpsertCatalogEntities422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertCatalogEntitiesErrorErrorsInner>**](BulkUpsertCatalogEntitiesErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertCatalogEntitiesEntitiesInner.md b/docs/BulkUpsertCatalogEntitiesEntitiesInner.md new file mode 100644 index 00000000..4dca983e --- /dev/null +++ b/docs/BulkUpsertCatalogEntitiesEntitiesInner.md @@ -0,0 +1,18 @@ + + +# BulkUpsertCatalogEntitiesEntitiesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalId** | **String** | External identifier used as the upsert key. Must be unique within the catalog. | | +|**name** | **String** | Required for new entities. Optional for updates (managed-fields: omitted attributes are preserved). | [optional] | +|**description** | **String** | | [optional] | +|**publicDescription** | **String** | | [optional] | +|**backstageId** | **String** | | [optional] | +|**fields** | [**List<BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner>**](BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md) | Property values for this entity. Only mentioned fields are written; unmentioned fields are preserved. | [optional] | + + + diff --git a/docs/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md b/docs/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md new file mode 100644 index 00000000..2794aac1 --- /dev/null +++ b/docs/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md @@ -0,0 +1,16 @@ + + +# BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner + +Each field entry must include either catalog_field_id or catalog_property_id. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**catalogFieldId** | **String** | UUID, slug, or external_id of the catalog field (required if catalog_property_id is absent) | [optional] | +|**catalogPropertyId** | **String** | Alias for catalog_field_id (required if catalog_field_id is absent) | [optional] | +|**value** | **String** | The value for this field | | + + + diff --git a/docs/BulkUpsertCatalogEntitiesError.md b/docs/BulkUpsertCatalogEntitiesError.md new file mode 100644 index 00000000..1a2d2b72 --- /dev/null +++ b/docs/BulkUpsertCatalogEntitiesError.md @@ -0,0 +1,13 @@ + + +# BulkUpsertCatalogEntitiesError + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertCatalogEntitiesErrorErrorsInner>**](BulkUpsertCatalogEntitiesErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertCatalogEntitiesErrorErrorsInner.md b/docs/BulkUpsertCatalogEntitiesErrorErrorsInner.md new file mode 100644 index 00000000..fac19720 --- /dev/null +++ b/docs/BulkUpsertCatalogEntitiesErrorErrorsInner.md @@ -0,0 +1,15 @@ + + +# BulkUpsertCatalogEntitiesErrorErrorsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**index** | **Integer** | Position of the failed entity in the batch | | +|**externalId** | **String** | | | +|**errors** | **List<String>** | | | + + + diff --git a/docs/BulkUpsertCatalogEntitiesResponse.md b/docs/BulkUpsertCatalogEntitiesResponse.md new file mode 100644 index 00000000..8379188f --- /dev/null +++ b/docs/BulkUpsertCatalogEntitiesResponse.md @@ -0,0 +1,13 @@ + + +# BulkUpsertCatalogEntitiesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<BulkUpsertCatalogEntitiesResponseDataInner>**](BulkUpsertCatalogEntitiesResponseDataInner.md) | | [optional] | + + + diff --git a/docs/BulkUpsertCatalogEntitiesResponseDataInner.md b/docs/BulkUpsertCatalogEntitiesResponseDataInner.md new file mode 100644 index 00000000..4c174351 --- /dev/null +++ b/docs/BulkUpsertCatalogEntitiesResponseDataInner.md @@ -0,0 +1,23 @@ + + +# BulkUpsertCatalogEntitiesResponseDataInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | +|**attributes** | [**CatalogEntity**](CatalogEntity.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| CATALOG_ENTITIES | "catalog_entities" | + + + diff --git a/docs/BulkUpsertEnvironments.md b/docs/BulkUpsertEnvironments.md new file mode 100644 index 00000000..3b736de1 --- /dev/null +++ b/docs/BulkUpsertEnvironments.md @@ -0,0 +1,13 @@ + + +# BulkUpsertEnvironments + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**entities** | [**List<BulkUpsertEnvironmentsEntitiesInner>**](BulkUpsertEnvironmentsEntitiesInner.md) | Environments to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). | | + + + diff --git a/docs/BulkUpsertEnvironments422Response.md b/docs/BulkUpsertEnvironments422Response.md new file mode 100644 index 00000000..2d15a0ae --- /dev/null +++ b/docs/BulkUpsertEnvironments422Response.md @@ -0,0 +1,13 @@ + + +# BulkUpsertEnvironments422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertEnvironmentsEntitiesInner.md b/docs/BulkUpsertEnvironmentsEntitiesInner.md new file mode 100644 index 00000000..e2953557 --- /dev/null +++ b/docs/BulkUpsertEnvironmentsEntitiesInner.md @@ -0,0 +1,20 @@ + + +# BulkUpsertEnvironmentsEntitiesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalId** | **String** | External identifier used as the upsert key. Unique per team. | | +|**name** | **String** | Required for new records. Optional for updates. | [optional] | +|**description** | **String** | | [optional] | +|**publicDescription** | **String** | | [optional] | +|**color** | **String** | | [optional] | +|**position** | **Integer** | | [optional] | +|**notifyEmails** | **List<String>** | | [optional] | +|**fields** | [**List<BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner>**](BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md) | Catalog property values (merge semantics: only mentioned fields written). | [optional] | + + + diff --git a/docs/BulkUpsertEnvironmentsError.md b/docs/BulkUpsertEnvironmentsError.md new file mode 100644 index 00000000..16fd1ab5 --- /dev/null +++ b/docs/BulkUpsertEnvironmentsError.md @@ -0,0 +1,13 @@ + + +# BulkUpsertEnvironmentsError + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertEnvironmentsErrorErrorsInner.md b/docs/BulkUpsertEnvironmentsErrorErrorsInner.md new file mode 100644 index 00000000..20d2529b --- /dev/null +++ b/docs/BulkUpsertEnvironmentsErrorErrorsInner.md @@ -0,0 +1,15 @@ + + +# BulkUpsertEnvironmentsErrorErrorsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**index** | **Integer** | Position of the failed record in the batch | | +|**externalId** | **String** | | | +|**errors** | **List<String>** | | | + + + diff --git a/docs/BulkUpsertEnvironmentsResponse.md b/docs/BulkUpsertEnvironmentsResponse.md new file mode 100644 index 00000000..bbf707a9 --- /dev/null +++ b/docs/BulkUpsertEnvironmentsResponse.md @@ -0,0 +1,13 @@ + + +# BulkUpsertEnvironmentsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<BulkUpsertEnvironmentsResponseDataInner>**](BulkUpsertEnvironmentsResponseDataInner.md) | | [optional] | + + + diff --git a/docs/BulkUpsertEnvironmentsResponseDataInner.md b/docs/BulkUpsertEnvironmentsResponseDataInner.md new file mode 100644 index 00000000..8a658877 --- /dev/null +++ b/docs/BulkUpsertEnvironmentsResponseDataInner.md @@ -0,0 +1,23 @@ + + +# BulkUpsertEnvironmentsResponseDataInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | +|**attributes** | [**Environment**](Environment.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| ENVIRONMENTS | "environments" | + + + diff --git a/docs/BulkUpsertFunctionalities.md b/docs/BulkUpsertFunctionalities.md new file mode 100644 index 00000000..cb7e98f2 --- /dev/null +++ b/docs/BulkUpsertFunctionalities.md @@ -0,0 +1,13 @@ + + +# BulkUpsertFunctionalities + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**entities** | [**List<BulkUpsertFunctionalitiesEntitiesInner>**](BulkUpsertFunctionalitiesEntitiesInner.md) | Functionalities to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). | | + + + diff --git a/docs/BulkUpsertFunctionalities422Response.md b/docs/BulkUpsertFunctionalities422Response.md new file mode 100644 index 00000000..7e1eaf7b --- /dev/null +++ b/docs/BulkUpsertFunctionalities422Response.md @@ -0,0 +1,13 @@ + + +# BulkUpsertFunctionalities422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertFunctionalitiesEntitiesInner.md b/docs/BulkUpsertFunctionalitiesEntitiesInner.md new file mode 100644 index 00000000..3a2b740f --- /dev/null +++ b/docs/BulkUpsertFunctionalitiesEntitiesInner.md @@ -0,0 +1,29 @@ + + +# BulkUpsertFunctionalitiesEntitiesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalId** | **String** | External identifier used as the upsert key. Unique per team. | | +|**name** | **String** | Required for new records. Optional for updates. | [optional] | +|**description** | **String** | | [optional] | +|**publicDescription** | **String** | | [optional] | +|**color** | **String** | | [optional] | +|**position** | **Integer** | | [optional] | +|**showUptime** | **Boolean** | | [optional] | +|**showUptimeLastDays** | **Integer** | | [optional] | +|**notifyEmails** | **List<String>** | | [optional] | +|**pagerdutyId** | **String** | | [optional] | +|**opsgenieId** | **String** | | [optional] | +|**opsgenieTeamId** | **String** | | [optional] | +|**backstageId** | **String** | | [optional] | +|**cortexId** | **String** | | [optional] | +|**opslevelId** | **String** | | [optional] | +|**serviceNowCiSysId** | **String** | | [optional] | +|**fields** | [**List<BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner>**](BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md) | Catalog property values (merge semantics: only mentioned fields written). | [optional] | + + + diff --git a/docs/BulkUpsertFunctionalitiesError.md b/docs/BulkUpsertFunctionalitiesError.md new file mode 100644 index 00000000..3f66863b --- /dev/null +++ b/docs/BulkUpsertFunctionalitiesError.md @@ -0,0 +1,13 @@ + + +# BulkUpsertFunctionalitiesError + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertFunctionalitiesResponse.md b/docs/BulkUpsertFunctionalitiesResponse.md new file mode 100644 index 00000000..1171bd70 --- /dev/null +++ b/docs/BulkUpsertFunctionalitiesResponse.md @@ -0,0 +1,13 @@ + + +# BulkUpsertFunctionalitiesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<BulkUpsertFunctionalitiesResponseDataInner>**](BulkUpsertFunctionalitiesResponseDataInner.md) | | [optional] | + + + diff --git a/docs/BulkUpsertFunctionalitiesResponseDataInner.md b/docs/BulkUpsertFunctionalitiesResponseDataInner.md new file mode 100644 index 00000000..713e328c --- /dev/null +++ b/docs/BulkUpsertFunctionalitiesResponseDataInner.md @@ -0,0 +1,23 @@ + + +# BulkUpsertFunctionalitiesResponseDataInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | +|**attributes** | [**Functionality**](Functionality.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| FUNCTIONALITIES | "functionalities" | + + + diff --git a/docs/BulkUpsertGroups422Response.md b/docs/BulkUpsertGroups422Response.md new file mode 100644 index 00000000..831516b4 --- /dev/null +++ b/docs/BulkUpsertGroups422Response.md @@ -0,0 +1,13 @@ + + +# BulkUpsertGroups422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertServices.md b/docs/BulkUpsertServices.md new file mode 100644 index 00000000..558d7822 --- /dev/null +++ b/docs/BulkUpsertServices.md @@ -0,0 +1,13 @@ + + +# BulkUpsertServices + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**entities** | [**List<BulkUpsertServicesEntitiesInner>**](BulkUpsertServicesEntitiesInner.md) | Services to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). | | + + + diff --git a/docs/BulkUpsertServices422Response.md b/docs/BulkUpsertServices422Response.md new file mode 100644 index 00000000..1a15caaf --- /dev/null +++ b/docs/BulkUpsertServices422Response.md @@ -0,0 +1,13 @@ + + +# BulkUpsertServices422Response + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertServicesEntitiesInner.md b/docs/BulkUpsertServicesEntitiesInner.md new file mode 100644 index 00000000..b8b3c119 --- /dev/null +++ b/docs/BulkUpsertServicesEntitiesInner.md @@ -0,0 +1,35 @@ + + +# BulkUpsertServicesEntitiesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalId** | **String** | External identifier used as the upsert key. Unique per team. | | +|**name** | **String** | Required for new records. Optional for updates. | [optional] | +|**description** | **String** | | [optional] | +|**publicDescription** | **String** | | [optional] | +|**color** | **String** | | [optional] | +|**position** | **Integer** | | [optional] | +|**showUptime** | **Boolean** | | [optional] | +|**showUptimeLastDays** | **Integer** | | [optional] | +|**githubRepositoryName** | **String** | | [optional] | +|**githubRepositoryBranch** | **String** | | [optional] | +|**gitlabRepositoryName** | **String** | | [optional] | +|**gitlabRepositoryBranch** | **String** | | [optional] | +|**kubernetesDeploymentName** | **String** | | [optional] | +|**pagerdutyId** | **String** | | [optional] | +|**opsgenieId** | **String** | | [optional] | +|**opsgenieTeamId** | **String** | | [optional] | +|**cortexId** | **String** | | [optional] | +|**opslevelId** | **String** | | [optional] | +|**backstageId** | **String** | | [optional] | +|**serviceNowCiSysId** | **String** | | [optional] | +|**notifyEmails** | **List<String>** | | [optional] | +|**alertsEmailEnabled** | **Boolean** | | [optional] | +|**fields** | [**List<BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner>**](BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md) | Catalog property values (merge semantics: only mentioned fields written). | [optional] | + + + diff --git a/docs/BulkUpsertServicesError.md b/docs/BulkUpsertServicesError.md new file mode 100644 index 00000000..43e16438 --- /dev/null +++ b/docs/BulkUpsertServicesError.md @@ -0,0 +1,13 @@ + + +# BulkUpsertServicesError + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertServicesResponse.md b/docs/BulkUpsertServicesResponse.md new file mode 100644 index 00000000..79351882 --- /dev/null +++ b/docs/BulkUpsertServicesResponse.md @@ -0,0 +1,13 @@ + + +# BulkUpsertServicesResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<BulkUpsertServicesResponseDataInner>**](BulkUpsertServicesResponseDataInner.md) | | [optional] | + + + diff --git a/docs/BulkUpsertServicesResponseDataInner.md b/docs/BulkUpsertServicesResponseDataInner.md new file mode 100644 index 00000000..d3f21c6b --- /dev/null +++ b/docs/BulkUpsertServicesResponseDataInner.md @@ -0,0 +1,23 @@ + + +# BulkUpsertServicesResponseDataInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | +|**attributes** | [**Service**](Service.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| SERVICES | "services" | + + + diff --git a/docs/BulkUpsertTeams.md b/docs/BulkUpsertTeams.md new file mode 100644 index 00000000..30278346 --- /dev/null +++ b/docs/BulkUpsertTeams.md @@ -0,0 +1,13 @@ + + +# BulkUpsertTeams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**entities** | [**List<BulkUpsertTeamsEntitiesInner>**](BulkUpsertTeamsEntitiesInner.md) | Teams to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). | | + + + diff --git a/docs/BulkUpsertTeamsEntitiesInner.md b/docs/BulkUpsertTeamsEntitiesInner.md new file mode 100644 index 00000000..3e4c6fd0 --- /dev/null +++ b/docs/BulkUpsertTeamsEntitiesInner.md @@ -0,0 +1,30 @@ + + +# BulkUpsertTeamsEntitiesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**externalId** | **String** | External identifier used as the upsert key. Unique per team. | | +|**name** | **String** | Required for new records. Optional for updates. | [optional] | +|**description** | **String** | | [optional] | +|**publicDescription** | **String** | | [optional] | +|**color** | **String** | | [optional] | +|**position** | **Integer** | | [optional] | +|**notifyEmails** | **List<String>** | | [optional] | +|**pagerdutyId** | **String** | | [optional] | +|**pagerdutyServiceId** | **String** | | [optional] | +|**opsgenieId** | **String** | | [optional] | +|**victorOpsId** | **String** | | [optional] | +|**pagertreeId** | **String** | | [optional] | +|**backstageId** | **String** | | [optional] | +|**cortexId** | **String** | | [optional] | +|**opslevelId** | **String** | | [optional] | +|**serviceNowCiSysId** | **String** | | [optional] | +|**alertsEmailEnabled** | **Boolean** | | [optional] | +|**fields** | [**List<BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner>**](BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.md) | Catalog property values (merge semantics: only mentioned fields written). | [optional] | + + + diff --git a/docs/BulkUpsertTeamsError.md b/docs/BulkUpsertTeamsError.md new file mode 100644 index 00000000..7d27cfc8 --- /dev/null +++ b/docs/BulkUpsertTeamsError.md @@ -0,0 +1,13 @@ + + +# BulkUpsertTeamsError + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**errors** | [**List<BulkUpsertEnvironmentsErrorErrorsInner>**](BulkUpsertEnvironmentsErrorErrorsInner.md) | | | + + + diff --git a/docs/BulkUpsertTeamsResponse.md b/docs/BulkUpsertTeamsResponse.md new file mode 100644 index 00000000..691d6451 --- /dev/null +++ b/docs/BulkUpsertTeamsResponse.md @@ -0,0 +1,13 @@ + + +# BulkUpsertTeamsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<BulkUpsertTeamsResponseDataInner>**](BulkUpsertTeamsResponseDataInner.md) | | [optional] | + + + diff --git a/docs/BulkUpsertTeamsResponseDataInner.md b/docs/BulkUpsertTeamsResponseDataInner.md new file mode 100644 index 00000000..e08f151a --- /dev/null +++ b/docs/BulkUpsertTeamsResponseDataInner.md @@ -0,0 +1,23 @@ + + +# BulkUpsertTeamsResponseDataInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | +|**attributes** | [**Team**](Team.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| GROUPS | "groups" | + + + diff --git a/docs/Catalog.md b/docs/Catalog.md index 81db470f..2361fb50 100644 --- a/docs/Catalog.md +++ b/docs/Catalog.md @@ -8,9 +8,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | | | +|**slug** | **String** | The slug of the catalog. Derived from `name`. | [optional] [readonly] | |**description** | **String** | | [optional] | |**icon** | [**IconEnum**](#IconEnum) | | | |**position** | **Integer** | Default position of the catalog when displayed in a list. | | +|**externalId** | **String** | An external identifier for this catalog. Must be unique within the team. | [optional] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Which source manages this resource (read-only). | [optional] | |**createdAt** | **String** | | | |**updatedAt** | **String** | | | @@ -31,3 +34,17 @@ +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/CatalogChecklistTemplate.md b/docs/CatalogChecklistTemplate.md index 8738e934..9e5fad8f 100644 --- a/docs/CatalogChecklistTemplate.md +++ b/docs/CatalogChecklistTemplate.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the checklist template | | -|**slug** | **String** | The slug of the checklist template | [optional] | +|**slug** | **String** | The slug of the checklist template | [optional] [readonly] | |**description** | **String** | The description of the checklist template | [optional] | |**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The catalog type | | |**scopeType** | [**ScopeTypeEnum**](#ScopeTypeEnum) | The scope type | | diff --git a/docs/CatalogChecklistTemplateList.md b/docs/CatalogChecklistTemplateList.md index d66b6a53..35966048 100644 --- a/docs/CatalogChecklistTemplateList.md +++ b/docs/CatalogChecklistTemplateList.md @@ -10,6 +10,7 @@ |**data** | [**List<CatalogChecklistTemplateResponseData>**](CatalogChecklistTemplateResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogChecklistTemplateResponse.md b/docs/CatalogChecklistTemplateResponse.md index e9311087..985cfa4f 100644 --- a/docs/CatalogChecklistTemplateResponse.md +++ b/docs/CatalogChecklistTemplateResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CatalogChecklistTemplateResponseData**](CatalogChecklistTemplateResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogEntitiesApi.md b/docs/CatalogEntitiesApi.md index f2fa53a3..6fdb2501 100644 --- a/docs/CatalogEntitiesApi.md +++ b/docs/CatalogEntitiesApi.md @@ -4,6 +4,8 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**bulkDeleteCatalogEntities**](CatalogEntitiesApi.md#bulkDeleteCatalogEntities) | **POST** /v1/catalogs/{catalog_id}/entities/bulk_delete | Bulk delete Catalog Entities | +| [**bulkUpsertCatalogEntities**](CatalogEntitiesApi.md#bulkUpsertCatalogEntities) | **POST** /v1/catalogs/{catalog_id}/entities/bulk_upsert | Bulk upsert Catalog Entities | | [**createCatalogEntity**](CatalogEntitiesApi.md#createCatalogEntity) | **POST** /v1/catalogs/{catalog_id}/entities | Creates a Catalog Entity | | [**deleteCatalogEntity**](CatalogEntitiesApi.md#deleteCatalogEntity) | **DELETE** /v1/catalog_entities/{id} | Delete a Catalog Entity | | [**getCatalogEntity**](CatalogEntitiesApi.md#getCatalogEntity) | **GET** /v1/catalog_entities/{id} | Retrieves a Catalog Entity | @@ -11,6 +13,148 @@ All URIs are relative to *https://api.rootly.com* | [**updateCatalogEntity**](CatalogEntitiesApi.md#updateCatalogEntity) | **PUT** /v1/catalog_entities/{id} | Update a Catalog Entity | + +# **bulkDeleteCatalogEntities** +> BulkDestroyCatalogEntitiesResponse bulkDeleteCatalogEntities(catalogId, bulkDestroyCatalogEntities) + +Bulk delete Catalog Entities + +Delete catalog entities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.CatalogEntitiesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + CatalogEntitiesApi apiInstance = new CatalogEntitiesApi(defaultClient); + String catalogId = "catalogId_example"; // String | + BulkDestroyCatalogEntities bulkDestroyCatalogEntities = new BulkDestroyCatalogEntities(); // BulkDestroyCatalogEntities | + try { + BulkDestroyCatalogEntitiesResponse result = apiInstance.bulkDeleteCatalogEntities(catalogId, bulkDestroyCatalogEntities); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CatalogEntitiesApi#bulkDeleteCatalogEntities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **catalogId** | **String**| | | +| **bulkDestroyCatalogEntities** | [**BulkDestroyCatalogEntities**](BulkDestroyCatalogEntities.md)| | | + +### Return type + +[**BulkDestroyCatalogEntitiesResponse**](BulkDestroyCatalogEntitiesResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | entities deleted successfully | - | +| **422** | validation or partial-failure error | - | +| **401** | unauthorized | - | + + +# **bulkUpsertCatalogEntities** +> BulkUpsertCatalogEntitiesResponse bulkUpsertCatalogEntities(catalogId, bulkUpsertCatalogEntities) + +Bulk upsert Catalog Entities + +Create or update multiple catalog entities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.CatalogEntitiesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + CatalogEntitiesApi apiInstance = new CatalogEntitiesApi(defaultClient); + String catalogId = "catalogId_example"; // String | + BulkUpsertCatalogEntities bulkUpsertCatalogEntities = new BulkUpsertCatalogEntities(); // BulkUpsertCatalogEntities | + try { + BulkUpsertCatalogEntitiesResponse result = apiInstance.bulkUpsertCatalogEntities(catalogId, bulkUpsertCatalogEntities); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CatalogEntitiesApi#bulkUpsertCatalogEntities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **catalogId** | **String**| | | +| **bulkUpsertCatalogEntities** | [**BulkUpsertCatalogEntities**](BulkUpsertCatalogEntities.md)| | | + +### Return type + +[**BulkUpsertCatalogEntitiesResponse**](BulkUpsertCatalogEntitiesResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | entities upserted successfully | - | +| **422** | validation or entity-level error | - | +| **401** | unauthorized | - | + # **createCatalogEntity** > CatalogEntityResponse createCatalogEntity(catalogId, newCatalogEntity) @@ -78,8 +222,8 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | catalog_entity created | - | -| **422** | invalid request | - | +| **201** | catalog_entity created with fields attribute | - | +| **422** | rejects entity with invalid catalog_field_id | - | | **401** | responds with unauthorized for invalid token | - | @@ -222,7 +366,7 @@ public class Example { # **listCatalogEntities** -> CatalogEntityList listCatalogEntities(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) +> CatalogEntityList listCatalogEntities(catalogId, include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn) List Catalog Entities @@ -253,14 +397,30 @@ public class Example { String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | + String filterSearch = "filterSearch_example"; // String | String filterSlug = "filterSlug_example"; // String | String filterName = "filterName_example"; // String | + String filterBackstageId = "filterBackstageId_example"; // String | + String filterExternalId = "filterExternalId_example"; // String | + String filterManagedBy = "filterManagedBy_example"; // String | String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterManagedByEq = "filterManagedByEq_example"; // String | + String filterManagedByNotEq = "filterManagedByNotEq_example"; // String | + String filterManagedByIn = "filterManagedByIn_example"; // String | + String filterManagedByNotIn = "filterManagedByNotIn_example"; // String | try { - CatalogEntityList result = apiInstance.listCatalogEntities(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + CatalogEntityList result = apiInstance.listCatalogEntities(catalogId, include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling CatalogEntitiesApi#listCatalogEntities"); @@ -282,12 +442,28 @@ public class Example { | **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | +| **filterSearch** | **String**| | [optional] | | **filterSlug** | **String**| | [optional] | | **filterName** | **String**| | [optional] | +| **filterBackstageId** | **String**| | [optional] | +| **filterExternalId** | **String**| | [optional] | +| **filterManagedBy** | **String**| | [optional] | | **filterCreatedAtGt** | **String**| | [optional] | | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterManagedByEq** | **String**| | [optional] | +| **filterManagedByNotEq** | **String**| | [optional] | +| **filterManagedByIn** | **String**| | [optional] | +| **filterManagedByNotIn** | **String**| | [optional] | ### Return type @@ -374,6 +550,6 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | catalog_entity updated | - | +| **200** | catalog_entity update replaces existing properties | - | | **404** | resource not found | - | diff --git a/docs/CatalogEntity.md b/docs/CatalogEntity.md index 91bff1b9..f9c29996 100644 --- a/docs/CatalogEntity.md +++ b/docs/CatalogEntity.md @@ -8,10 +8,30 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | | | +|**slug** | **String** | The slug of the catalog entity. Derived from `name`. | [optional] [readonly] | |**description** | **String** | | [optional] | +|**publicDescription** | **String** | The status page description of the catalog entity | [optional] | |**position** | **Integer** | Default position of the item when displayed in a list. | | +|**backstageId** | **String** | The Backstage entity ID this catalog entity is linked to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog entity. Must be unique within the catalog. | [optional] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Which source manages this resource (read-only). | [optional] | |**createdAt** | **String** | | | |**updatedAt** | **String** | | | +|**properties** | [**List<NewCatalogEntityDataAttributesPropertiesInner>**](NewCatalogEntityDataAttributesPropertiesInner.md) | Array of property values for this catalog entity | [optional] | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | diff --git a/docs/CatalogEntityChecklistList.md b/docs/CatalogEntityChecklistList.md index 0e368d72..5aca6222 100644 --- a/docs/CatalogEntityChecklistList.md +++ b/docs/CatalogEntityChecklistList.md @@ -10,6 +10,7 @@ |**data** | [**List<CatalogEntityChecklistResponseData>**](CatalogEntityChecklistResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogEntityChecklistResponse.md b/docs/CatalogEntityChecklistResponse.md index 2df8b92e..e70fca2e 100644 --- a/docs/CatalogEntityChecklistResponse.md +++ b/docs/CatalogEntityChecklistResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CatalogEntityChecklistResponseData**](CatalogEntityChecklistResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogEntityList.md b/docs/CatalogEntityList.md index d545d66a..c00a7792 100644 --- a/docs/CatalogEntityList.md +++ b/docs/CatalogEntityList.md @@ -10,6 +10,7 @@ |**data** | [**List<CatalogEntityResponseData>**](CatalogEntityResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogEntityPropertiesApi.md b/docs/CatalogEntityPropertiesApi.md index d642d051..aca8d48d 100644 --- a/docs/CatalogEntityPropertiesApi.md +++ b/docs/CatalogEntityPropertiesApi.md @@ -17,7 +17,7 @@ All URIs are relative to *https://api.rootly.com* Creates a Catalog Entity Property -Creates a new Catalog Entity Property from provided data +**Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Creates a new Catalog Entity Property from provided data. ### Example ```java @@ -88,7 +88,7 @@ public class Example { Delete a Catalog Entity Property -Delete a specific Catalog Entity Property by id +**Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Delete a specific Catalog Entity Property by id. ### Example ```java @@ -156,7 +156,7 @@ public class Example { Retrieves a Catalog Entity Property -Retrieves a specific Catalog Entity Property by id +**Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. Retrieves a specific Catalog Entity Property by id. ### Example ```java @@ -226,7 +226,7 @@ public class Example { List catalog properties -List Catalog Entity Properties +**Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. List Catalog Entity Properties. ### Example ```java @@ -313,7 +313,7 @@ public class Example { Update a Catalog Entity Property -Update a specific Catalog Entity Property by id +**Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Update a specific Catalog Entity Property by id. ### Example ```java diff --git a/docs/CatalogEntityProperty.md b/docs/CatalogEntityProperty.md index 39a6cfd5..5ec3b97d 100644 --- a/docs/CatalogEntityProperty.md +++ b/docs/CatalogEntityProperty.md @@ -2,6 +2,7 @@ # CatalogEntityProperty +**Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. ## Properties @@ -22,6 +23,7 @@ |---- | -----| | TEXT | "text" | | CATALOG_ENTITY | "catalog_entity" | +| SLACK | "slack" | diff --git a/docs/CatalogEntityPropertyList.md b/docs/CatalogEntityPropertyList.md index 00390aec..764ca7c3 100644 --- a/docs/CatalogEntityPropertyList.md +++ b/docs/CatalogEntityPropertyList.md @@ -2,6 +2,7 @@ # CatalogEntityPropertyList +**Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. ## Properties @@ -10,6 +11,7 @@ |**data** | [**List<CatalogEntityPropertyResponseData>**](CatalogEntityPropertyResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogEntityPropertyResponse.md b/docs/CatalogEntityPropertyResponse.md index 31323843..0470d5d8 100644 --- a/docs/CatalogEntityPropertyResponse.md +++ b/docs/CatalogEntityPropertyResponse.md @@ -2,12 +2,14 @@ # CatalogEntityPropertyResponse +**Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CatalogEntityPropertyResponseData**](CatalogEntityPropertyResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogEntityResponse.md b/docs/CatalogEntityResponse.md index 67f6612d..8f0c02f2 100644 --- a/docs/CatalogEntityResponse.md +++ b/docs/CatalogEntityResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CatalogEntityResponseData**](CatalogEntityResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogField.md b/docs/CatalogField.md index 52e1e3a0..03536cf2 100644 --- a/docs/CatalogField.md +++ b/docs/CatalogField.md @@ -9,11 +9,15 @@ |------------ | ------------- | ------------- | -------------| |**catalogId** | **String** | | | |**name** | **String** | | | -|**slug** | **String** | | | +|**slug** | **String** | | [optional] [readonly] | |**kind** | [**KindEnum**](#KindEnum) | | | |**kindCatalogId** | **String** | Restricts values to items of specified catalog. | [optional] | |**multiple** | **Boolean** | Whether the attribute accepts multiple values. | | |**position** | **Integer** | Default position of the item when displayed in a list. | | +|**required** | **Boolean** | Whether the field is required. | [optional] | +|**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The type of catalog the field belongs to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog field. Must be unique within the scope. | [optional] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Which source manages this resource (read-only). | [optional] | |**createdAt** | **String** | | | |**updatedAt** | **String** | | | @@ -28,3 +32,31 @@ +## Enum: CatalogTypeEnum + +| Name | Value | +|---- | -----| +| CATALOG | "catalog" | +| CAUSE | "cause" | +| ENVIRONMENT | "environment" | +| FUNCTIONALITY | "functionality" | +| INCIDENT_TYPE | "incident_type" | +| SERVICE | "service" | +| TEAM | "team" | + + + +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/CatalogFieldList.md b/docs/CatalogFieldList.md index e9b7cbca..e94760d6 100644 --- a/docs/CatalogFieldList.md +++ b/docs/CatalogFieldList.md @@ -10,6 +10,7 @@ |**data** | [**List<CatalogFieldResponseData>**](CatalogFieldResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogFieldResponse.md b/docs/CatalogFieldResponse.md index d099f0f8..35a1a561 100644 --- a/docs/CatalogFieldResponse.md +++ b/docs/CatalogFieldResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CatalogFieldResponseData**](CatalogFieldResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogFieldResponseData.md b/docs/CatalogFieldResponseData.md index 8f6f231f..cc8f720d 100644 --- a/docs/CatalogFieldResponseData.md +++ b/docs/CatalogFieldResponseData.md @@ -17,7 +17,7 @@ | Name | Value | |---- | -----| -| CATALOG_FIELDS | "catalog_fields" | +| CATALOG_PROPERTIES | "catalog_properties" | diff --git a/docs/CatalogList.md b/docs/CatalogList.md index 16e590e8..b0a9b74d 100644 --- a/docs/CatalogList.md +++ b/docs/CatalogList.md @@ -10,6 +10,7 @@ |**data** | [**List<CatalogResponseData>**](CatalogResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogProperty.md b/docs/CatalogProperty.md index 72edacfd..1b65fa89 100644 --- a/docs/CatalogProperty.md +++ b/docs/CatalogProperty.md @@ -9,13 +9,15 @@ |------------ | ------------- | ------------- | -------------| |**catalogId** | **String** | | | |**name** | **String** | | | -|**slug** | **String** | | [optional] | +|**slug** | **String** | | [optional] [readonly] | |**kind** | [**KindEnum**](#KindEnum) | | | |**kindCatalogId** | **String** | Restricts values to items of specified catalog. | [optional] | |**multiple** | **Boolean** | Whether the attribute accepts multiple values. | | |**position** | **Integer** | Default position of the item when displayed in a list. | | |**required** | **Boolean** | Whether the property is required. | [optional] | |**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The type of catalog the property belongs to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog property. Must be unique within the scope. | [optional] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | Which source manages this resource (read-only). | [optional] | |**createdAt** | **String** | | | |**updatedAt** | **String** | | | @@ -44,3 +46,17 @@ +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/CatalogPropertyList.md b/docs/CatalogPropertyList.md index 776dda39..0a3080cd 100644 --- a/docs/CatalogPropertyList.md +++ b/docs/CatalogPropertyList.md @@ -10,6 +10,7 @@ |**data** | [**List<CatalogPropertyResponseData>**](CatalogPropertyResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogPropertyResponse.md b/docs/CatalogPropertyResponse.md index ff236dc7..920fcb14 100644 --- a/docs/CatalogPropertyResponse.md +++ b/docs/CatalogPropertyResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CatalogPropertyResponseData**](CatalogPropertyResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogResponse.md b/docs/CatalogResponse.md index dabe34a0..be613d2a 100644 --- a/docs/CatalogResponse.md +++ b/docs/CatalogResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CatalogResponseData**](CatalogResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CatalogsApi.md b/docs/CatalogsApi.md index 629652a1..12722d3c 100644 --- a/docs/CatalogsApi.md +++ b/docs/CatalogsApi.md @@ -218,7 +218,7 @@ public class Example { # **listCatalogs** -> CatalogList listCatalogs(include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) +> CatalogList listCatalogs(include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn) List catalogs @@ -248,14 +248,29 @@ public class Example { String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | + String filterSearch = "filterSearch_example"; // String | String filterSlug = "filterSlug_example"; // String | String filterName = "filterName_example"; // String | + String filterExternalId = "filterExternalId_example"; // String | + String filterManagedBy = "filterManagedBy_example"; // String | String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterManagedByEq = "filterManagedByEq_example"; // String | + String filterManagedByNotEq = "filterManagedByNotEq_example"; // String | + String filterManagedByIn = "filterManagedByIn_example"; // String | + String filterManagedByNotIn = "filterManagedByNotIn_example"; // String | try { - CatalogList result = apiInstance.listCatalogs(include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + CatalogList result = apiInstance.listCatalogs(include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling CatalogsApi#listCatalogs"); @@ -276,12 +291,27 @@ public class Example { | **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | +| **filterSearch** | **String**| | [optional] | | **filterSlug** | **String**| | [optional] | | **filterName** | **String**| | [optional] | +| **filterExternalId** | **String**| | [optional] | +| **filterManagedBy** | **String**| | [optional] | | **filterCreatedAtGt** | **String**| | [optional] | | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterManagedByEq** | **String**| | [optional] | +| **filterManagedByNotEq** | **String**| | [optional] | +| **filterManagedByIn** | **String**| | [optional] | +| **filterManagedByNotIn** | **String**| | [optional] | ### Return type diff --git a/docs/Cause.md b/docs/Cause.md index 34a3c0fa..c014df54 100644 --- a/docs/Cause.md +++ b/docs/Cause.md @@ -8,9 +8,11 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the cause | | -|**slug** | **String** | The slug of the cause | [optional] | +|**slug** | **String** | The slug of the cause | [optional] [readonly] | |**description** | **String** | The description of the cause | [optional] | +|**publicDescription** | **String** | The status page description of the cause | [optional] | |**position** | **Integer** | Position of the cause | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this cause. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | diff --git a/docs/CauseList.md b/docs/CauseList.md index d85887ec..e822a604 100644 --- a/docs/CauseList.md +++ b/docs/CauseList.md @@ -10,6 +10,7 @@ |**data** | [**List<CauseResponseData>**](CauseResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CauseResponse.md b/docs/CauseResponse.md index 24f35d2b..f852a5c8 100644 --- a/docs/CauseResponse.md +++ b/docs/CauseResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CauseResponseData**](CauseResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CausesApi.md b/docs/CausesApi.md index 15fbbbd7..04b5649c 100644 --- a/docs/CausesApi.md +++ b/docs/CausesApi.md @@ -5,8 +5,10 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**createCause**](CausesApi.md#createCause) | **POST** /v1/causes | Creates a cause | +| [**createCauseCatalogProperty**](CausesApi.md#createCauseCatalogProperty) | **POST** /v1/causes/properties | Creates a Catalog Property | | [**deleteCause**](CausesApi.md#deleteCause) | **DELETE** /v1/causes/{id} | Delete a cause | | [**getCause**](CausesApi.md#getCause) | **GET** /v1/causes/{id} | Retrieves a cause | +| [**listCauseCatalogProperties**](CausesApi.md#listCauseCatalogProperties) | **GET** /v1/causes/properties | List Catalog Properties | | [**listCauses**](CausesApi.md#listCauses) | **GET** /v1/causes | List causes | | [**updateCause**](CausesApi.md#updateCause) | **PUT** /v1/causes/{id} | Update a cause | @@ -80,6 +82,75 @@ public class Example { | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | + +# **createCauseCatalogProperty** +> CatalogPropertyResponse createCauseCatalogProperty(newCatalogProperty) + +Creates a Catalog Property + +Creates a new Catalog Property from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.CausesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + CausesApi apiInstance = new CausesApi(defaultClient); + NewCatalogProperty newCatalogProperty = new NewCatalogProperty(); // NewCatalogProperty | + try { + CatalogPropertyResponse result = apiInstance.createCauseCatalogProperty(newCatalogProperty); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CausesApi#createCauseCatalogProperty"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newCatalogProperty** | [**NewCatalogProperty**](NewCatalogProperty.md)| | | + +### Return type + +[**CatalogPropertyResponse**](CatalogPropertyResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | catalog_property created ignores wrong catalog_type attribute | - | +| **422** | exceeds max fields per catalog | - | +| **401** | responds with unauthorized for invalid token | - | + # **deleteCause** > CauseResponse deleteCause(id) @@ -216,9 +287,96 @@ public class Example { | **200** | cause found by slug | - | | **404** | resource not found | - | + +# **listCauseCatalogProperties** +> CatalogPropertyList listCauseCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) + +List Catalog Properties + +List Cause Catalog Properties + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.CausesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + CausesApi apiInstance = new CausesApi(defaultClient); + String include = "catalog"; // String | comma separated if needed. eg: catalog + String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + String filterSlug = "filterSlug_example"; // String | + String filterName = "filterName_example"; // String | + String filterKind = "filterKind_example"; // String | + String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | + String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | + String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | + String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + try { + CatalogPropertyList result = apiInstance.listCauseCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CausesApi#listCauseCatalogProperties"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include** | **String**| comma separated if needed. eg: catalog | [optional] [enum: catalog] | +| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | +| **filterSlug** | **String**| | [optional] | +| **filterName** | **String**| | [optional] | +| **filterKind** | **String**| | [optional] | +| **filterCreatedAtGt** | **String**| | [optional] | +| **filterCreatedAtGte** | **String**| | [optional] | +| **filterCreatedAtLt** | **String**| | [optional] | +| **filterCreatedAtLte** | **String**| | [optional] | + +### Return type + +[**CatalogPropertyList**](CatalogPropertyList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + # **listCauses** -> CauseList listCauses(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) +> CauseList listCauses(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn) List causes @@ -254,8 +412,16 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | try { - CauseList result = apiInstance.listCauses(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + CauseList result = apiInstance.listCauses(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling CausesApi#listCauses"); @@ -282,6 +448,14 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | ### Return type diff --git a/docs/ChangeGoogleChatSpacePrivacyTaskParams.md b/docs/ChangeGoogleChatSpacePrivacyTaskParams.md new file mode 100644 index 00000000..a5e83e9d --- /dev/null +++ b/docs/ChangeGoogleChatSpacePrivacyTaskParams.md @@ -0,0 +1,23 @@ + + +# ChangeGoogleChatSpacePrivacyTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**space** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**audience** | **String** | Target audience resource name (e.g. audiences/default). Leave blank to make private. | [optional] | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| CHANGE_GOOGLE_CHAT_SPACE_PRIVACY | "change_google_chat_space_privacy" | + + + diff --git a/docs/ChangeSlackChannelPrivacyTaskParams.md b/docs/ChangeSlackChannelPrivacyTaskParams.md index eb94416f..d88ce2c7 100644 --- a/docs/ChangeSlackChannelPrivacyTaskParams.md +++ b/docs/ChangeSlackChannelPrivacyTaskParams.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | -|**channel** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**channel** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**privacy** | [**PrivacyEnum**](#PrivacyEnum) | | | @@ -17,7 +17,7 @@ | Name | Value | |---- | -----| -| RENAME_SLACK_CHANNEL | "rename_slack_channel" | +| CHANGE_SLACK_CHANNEL_PRIVACY | "change_slack_channel_privacy" | diff --git a/docs/CommunicationsGroup.md b/docs/CommunicationsGroup.md index 5dd228df..2d77493d 100644 --- a/docs/CommunicationsGroup.md +++ b/docs/CommunicationsGroup.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the communications group | | -|**slug** | **String** | The slug of the communications group | | +|**slug** | **String** | The slug of the communications group | [optional] [readonly] | |**description** | **String** | The description of the communications group | [optional] | |**communicationTypeId** | **String** | The communication type ID | | |**isPrivate** | **Boolean** | Whether the group is private | | diff --git a/docs/CommunicationsGroupResponse.md b/docs/CommunicationsGroupResponse.md index ed9766ff..a3246738 100644 --- a/docs/CommunicationsGroupResponse.md +++ b/docs/CommunicationsGroupResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CommunicationsGroupResponseData**](CommunicationsGroupResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CommunicationsGroupsResponse.md b/docs/CommunicationsGroupsResponse.md index 81dd8dda..fc825125 100644 --- a/docs/CommunicationsGroupsResponse.md +++ b/docs/CommunicationsGroupsResponse.md @@ -10,6 +10,7 @@ |**data** | [**List<CommunicationsGroupResponseData>**](CommunicationsGroupResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CommunicationsStage.md b/docs/CommunicationsStage.md index a9bae835..4619ec02 100644 --- a/docs/CommunicationsStage.md +++ b/docs/CommunicationsStage.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the communications stage | | -|**slug** | **String** | The slug of the communications stage | | +|**slug** | **String** | The slug of the communications stage | [optional] [readonly] | |**description** | **String** | The description of the communications stage | [optional] | |**position** | **Integer** | Position of the communications stage | | |**createdAt** | **String** | Date of creation | | diff --git a/docs/CommunicationsStageResponse.md b/docs/CommunicationsStageResponse.md index 9de0253c..c1b46dba 100644 --- a/docs/CommunicationsStageResponse.md +++ b/docs/CommunicationsStageResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CommunicationsStageResponseData**](CommunicationsStageResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CommunicationsStagesResponse.md b/docs/CommunicationsStagesResponse.md index 9909a4e9..86569bfc 100644 --- a/docs/CommunicationsStagesResponse.md +++ b/docs/CommunicationsStagesResponse.md @@ -10,6 +10,7 @@ |**data** | [**List<CommunicationsStageResponseData>**](CommunicationsStageResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CommunicationsTemplate.md b/docs/CommunicationsTemplate.md index 2f1a1b66..83a5df05 100644 --- a/docs/CommunicationsTemplate.md +++ b/docs/CommunicationsTemplate.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the communications template | | -|**slug** | **String** | The slug of the communications template | | +|**slug** | **String** | The slug of the communications template | [optional] [readonly] | |**description** | **String** | The description of the communications template | [optional] | |**position** | **Integer** | Position of the communications template | | |**createdAt** | **String** | Date of creation | | diff --git a/docs/CommunicationsTemplateCommunicationTemplateStagesInner.md b/docs/CommunicationsTemplateCommunicationTemplateStagesInner.md index 5dc12d92..1bcead95 100644 --- a/docs/CommunicationsTemplateCommunicationTemplateStagesInner.md +++ b/docs/CommunicationsTemplateCommunicationTemplateStagesInner.md @@ -7,12 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**id** | **String** | ID of the communication template stage | [optional] | -|**communicationStageId** | **String** | The communication stage ID | [optional] | -|**smsContent** | **String** | SMS content for the stage | [optional] | -|**emailSubject** | **String** | Email subject for the stage | [optional] | -|**emailBody** | **String** | Email body for the stage | [optional] | -|**slackContent** | **String** | Slack content for the stage | [optional] | +|**data** | [**CommunicationsTemplateCommunicationTemplateStagesInnerData**](CommunicationsTemplateCommunicationTemplateStagesInnerData.md) | | [optional] | diff --git a/docs/CommunicationsTemplateResponse.md b/docs/CommunicationsTemplateResponse.md index d7b9032d..18a78e77 100644 --- a/docs/CommunicationsTemplateResponse.md +++ b/docs/CommunicationsTemplateResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CommunicationsTemplateResponseData**](CommunicationsTemplateResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CommunicationsTemplatesResponse.md b/docs/CommunicationsTemplatesResponse.md index 47ce805a..b878b5e8 100644 --- a/docs/CommunicationsTemplatesResponse.md +++ b/docs/CommunicationsTemplatesResponse.md @@ -10,6 +10,7 @@ |**data** | [**List<CommunicationsTemplateResponseData>**](CommunicationsTemplateResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CommunicationsType.md b/docs/CommunicationsType.md index f03e09c6..3ff5f7e0 100644 --- a/docs/CommunicationsType.md +++ b/docs/CommunicationsType.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the communications type | | -|**slug** | **String** | The slug of the communications type | | +|**slug** | **String** | The slug of the communications type | [optional] [readonly] | |**description** | **String** | The description of the communications type | [optional] | |**color** | **String** | The color of the communications type | | |**position** | **Integer** | Position of the communications type | | diff --git a/docs/CommunicationsTypeResponse.md b/docs/CommunicationsTypeResponse.md index 1acdfc2d..a3095489 100644 --- a/docs/CommunicationsTypeResponse.md +++ b/docs/CommunicationsTypeResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CommunicationsTypeResponseData**](CommunicationsTypeResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CommunicationsTypesResponse.md b/docs/CommunicationsTypesResponse.md index 3b0d046a..dcb259ec 100644 --- a/docs/CommunicationsTypesResponse.md +++ b/docs/CommunicationsTypesResponse.md @@ -10,6 +10,7 @@ |**data** | [**List<CommunicationsTypeResponseData>**](CommunicationsTypeResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CreateAnthropicChatCompletionTaskParams.md b/docs/CreateAnthropicChatCompletionTaskParams.md index e80fc823..9231e26e 100644 --- a/docs/CreateAnthropicChatCompletionTaskParams.md +++ b/docs/CreateAnthropicChatCompletionTaskParams.md @@ -11,6 +11,7 @@ |**model** | [**CreateAnthropicChatCompletionTaskParamsModel**](CreateAnthropicChatCompletionTaskParamsModel.md) | | | |**systemPrompt** | **String** | The system prompt to send to Anthropic (optional) | [optional] | |**prompt** | **String** | The prompt to send to Anthropic | | +|**maxTokens** | **Integer** | Maximum number of tokens to generate. Defaults to 4000 when omitted | [optional] | diff --git a/docs/CreateClickupTaskTaskParams.md b/docs/CreateClickupTaskTaskParams.md index faf04e3e..7adb8916 100644 --- a/docs/CreateClickupTaskTaskParams.md +++ b/docs/CreateClickupTaskTaskParams.md @@ -10,6 +10,7 @@ |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | |**title** | **String** | The task title | | |**description** | **String** | The task description | [optional] | +|**_list** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**tags** | **String** | The task tags | [optional] | |**priority** | [**CreateJiraIssueTaskParamsPriority**](CreateJiraIssueTaskParamsPriority.md) | | [optional] | |**dueDate** | **String** | The due date | [optional] | diff --git a/docs/CreateConfluencePageTaskParams.md b/docs/CreateConfluencePageTaskParams.md index f0daa6d7..1bc4c557 100644 --- a/docs/CreateConfluencePageTaskParams.md +++ b/docs/CreateConfluencePageTaskParams.md @@ -16,6 +16,10 @@ |**content** | **String** | The page content | [optional] | |**postMortemTemplateId** | **String** | The Retrospective template to use | [optional] | |**markPostMortemAsPublished** | **Boolean** | | [optional] | +|**includeOverview** | **Boolean** | | [optional] | +|**includeTimeline** | **Boolean** | | [optional] | +|**includeFollowUps** | **Boolean** | | [optional] | +|**createAsLiveDoc** | **Boolean** | | [optional] | diff --git a/docs/CreateEdgeConnectorRequestDataAttributes.md b/docs/CreateEdgeConnectorRequestDataAttributes.md index 123a9a45..f151d950 100644 --- a/docs/CreateEdgeConnectorRequestDataAttributes.md +++ b/docs/CreateEdgeConnectorRequestDataAttributes.md @@ -11,6 +11,7 @@ |**description** | **String** | Connector description | [optional] | |**status** | [**StatusEnum**](#StatusEnum) | Connector status | [optional] | |**subscriptions** | **List<String>** | Array of event types to subscribe to | [optional] | +|**filters** | [**CreateEdgeConnectorRequestDataAttributesFilters**](CreateEdgeConnectorRequestDataAttributesFilters.md) | | [optional] | diff --git a/docs/CreateEdgeConnectorRequestDataAttributesFilters.md b/docs/CreateEdgeConnectorRequestDataAttributesFilters.md new file mode 100644 index 00000000..6ee26d5f --- /dev/null +++ b/docs/CreateEdgeConnectorRequestDataAttributesFilters.md @@ -0,0 +1,17 @@ + + +# CreateEdgeConnectorRequestDataAttributesFilters + +Event filters. OR within dimension, AND across dimensions. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**groupIds** | **List<String>** | Filter by group UUIDs | [optional] | +|**serviceIds** | **List<String>** | Filter by service UUIDs | [optional] | +|**environmentIds** | **List<String>** | Filter by environment UUIDs | [optional] | +|**functionalityIds** | **List<String>** | Filter by functionality UUIDs | [optional] | + + + diff --git a/docs/CreateGithubIssueTaskParams.md b/docs/CreateGithubIssueTaskParams.md index 745a4582..47862b5f 100644 --- a/docs/CreateGithubIssueTaskParams.md +++ b/docs/CreateGithubIssueTaskParams.md @@ -11,6 +11,10 @@ |**title** | **String** | The issue title | | |**body** | **String** | The issue body | [optional] | |**repository** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**labels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | The issue labels | [optional] | +|**issueType** | [**CreateGithubIssueTaskParamsIssueType**](CreateGithubIssueTaskParamsIssueType.md) | | [optional] | +|**parentIssueNumber** | **String** | The parent issue number for sub-issue linking | [optional] | +|**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | diff --git a/docs/CreateGitlabIssueTaskParams.md b/docs/CreateGitlabIssueTaskParams.md index f53ff5fd..e08d1cda 100644 --- a/docs/CreateGitlabIssueTaskParams.md +++ b/docs/CreateGitlabIssueTaskParams.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | -|**issueType** | [**IssueTypeEnum**](#IssueTypeEnum) | The issue type | [optional] | +|**issueType** | [**IssueTypeEnum**](#IssueTypeEnum) | The issue type | | |**title** | **String** | The issue title | | |**description** | **String** | The issue description | [optional] | |**repository** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | diff --git a/docs/CreateGoogleChatSpaceTaskParams.md b/docs/CreateGoogleChatSpaceTaskParams.md new file mode 100644 index 00000000..f7f27d66 --- /dev/null +++ b/docs/CreateGoogleChatSpaceTaskParams.md @@ -0,0 +1,24 @@ + + +# CreateGoogleChatSpaceTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**title** | **String** | | | +|**description** | **String** | | [optional] | +|**audience** | **String** | Target audience resource name (e.g. audiences/default). Leave blank for private space. | [optional] | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| CREATE_GOOGLE_CHAT_SPACE | "create_google_chat_space" | + + + diff --git a/docs/CreateGoogleDocsPageTaskParams.md b/docs/CreateGoogleDocsPageTaskParams.md index 1c3a8553..35fc6c34 100644 --- a/docs/CreateGoogleDocsPageTaskParams.md +++ b/docs/CreateGoogleDocsPageTaskParams.md @@ -16,6 +16,9 @@ |**content** | **String** | The page content | [optional] | |**templateId** | **String** | The Google Doc file ID to use as a template | [optional] | |**permissions** | **String** | Page permissions JSON | [optional] | +|**includeOverview** | **Boolean** | | [optional] | +|**includeTimeline** | **Boolean** | | [optional] | +|**includeFollowUps** | **Boolean** | | [optional] | diff --git a/docs/CreateGoogleMeetingTaskParams.md b/docs/CreateGoogleMeetingTaskParams.md index 9d5f8fef..bf121a11 100644 --- a/docs/CreateGoogleMeetingTaskParams.md +++ b/docs/CreateGoogleMeetingTaskParams.md @@ -12,6 +12,7 @@ |**description** | **String** | [DEPRECATED] The meeting description | | |**conferenceSolutionKey** | [**ConferenceSolutionKeyEnum**](#ConferenceSolutionKeyEnum) | [DEPRECATED] Sets the video conference type attached to the meeting | [optional] | |**recordMeeting** | **Boolean** | Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting | [optional] | +|**recordingMode** | [**RecordingModeEnum**](#RecordingModeEnum) | The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) | [optional] | |**postToIncidentTimeline** | **Boolean** | | [optional] | |**postToSlackChannels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | @@ -36,3 +37,14 @@ +## Enum: RecordingModeEnum + +| Name | Value | +|---- | -----| +| SPEAKER_VIEW | "speaker_view" | +| GALLERY_VIEW | "gallery_view" | +| GALLERY_VIEW_V2 | "gallery_view_v2" | +| AUDIO_ONLY | "audio_only" | + + + diff --git a/docs/CreateJiraIssueTaskParams.md b/docs/CreateJiraIssueTaskParams.md index bd54a2ec..685bfd63 100644 --- a/docs/CreateJiraIssueTaskParams.md +++ b/docs/CreateJiraIssueTaskParams.md @@ -21,6 +21,8 @@ |**status** | [**CreateJiraIssueTaskParamsStatus**](CreateJiraIssueTaskParamsStatus.md) | | [optional] | |**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | |**updatePayload** | **String** | Update payload. Can contain liquid markup and need to be valid JSON | [optional] | +|**retryCount** | **Integer** | Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. | [optional] | +|**retryWaitTime** | **Integer** | Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. | [optional] | diff --git a/docs/CreateJiraSubtaskTaskParams.md b/docs/CreateJiraSubtaskTaskParams.md index 7aebbbb5..065d2178 100644 --- a/docs/CreateJiraSubtaskTaskParams.md +++ b/docs/CreateJiraSubtaskTaskParams.md @@ -22,6 +22,8 @@ |**status** | [**CreateJiraIssueTaskParamsStatus**](CreateJiraIssueTaskParamsStatus.md) | | [optional] | |**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | |**updatePayload** | **String** | Update payload. Can contain liquid markup and need to be valid JSON | [optional] | +|**retryCount** | **Integer** | Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. | [optional] | +|**retryWaitTime** | **Integer** | Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. | [optional] | diff --git a/docs/CreateJsmopsAlertTaskParams.md b/docs/CreateJsmopsAlertTaskParams.md index 7f99d120..25c97a2a 100644 --- a/docs/CreateJsmopsAlertTaskParams.md +++ b/docs/CreateJsmopsAlertTaskParams.md @@ -34,7 +34,6 @@ | P3 | "P3" | | P1 | "P1" | | P2 | "P2" | -| P32 | "P3" | | P4 | "P4" | | P5 | "P5" | | AUTO | "auto" | diff --git a/docs/CreateLinearIssueTaskParams.md b/docs/CreateLinearIssueTaskParams.md index 24402497..9604f797 100644 --- a/docs/CreateLinearIssueTaskParams.md +++ b/docs/CreateLinearIssueTaskParams.md @@ -16,6 +16,7 @@ |**labels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**priority** | [**CreateJiraIssueTaskParamsPriority**](CreateJiraIssueTaskParamsPriority.md) | | [optional] | |**assignUserEmail** | **String** | The assigned user's email | [optional] | +|**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | diff --git a/docs/CreateLinearSubtaskIssueTaskParams.md b/docs/CreateLinearSubtaskIssueTaskParams.md index d69677d7..68b90480 100644 --- a/docs/CreateLinearSubtaskIssueTaskParams.md +++ b/docs/CreateLinearSubtaskIssueTaskParams.md @@ -15,6 +15,7 @@ |**priority** | [**CreateJiraIssueTaskParamsPriority**](CreateJiraIssueTaskParamsPriority.md) | | [optional] | |**labels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**assignUserEmail** | **String** | The assigned user's email | [optional] | +|**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | diff --git a/docs/CreateMicrosoftTeamsChannelTaskParams.md b/docs/CreateMicrosoftTeamsChannelTaskParams.md index c39f2ac4..950c1002 100644 --- a/docs/CreateMicrosoftTeamsChannelTaskParams.md +++ b/docs/CreateMicrosoftTeamsChannelTaskParams.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | -|**team** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**team** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**title** | **String** | Microsoft Team channel title | | |**description** | **String** | Microsoft Team channel description | [optional] | |**_private** | [**PrivateEnum**](#PrivateEnum) | | [optional] | diff --git a/docs/CreateMicrosoftTeamsMeetingTaskParams.md b/docs/CreateMicrosoftTeamsMeetingTaskParams.md index 5c9d00ee..8153bd0f 100644 --- a/docs/CreateMicrosoftTeamsMeetingTaskParams.md +++ b/docs/CreateMicrosoftTeamsMeetingTaskParams.md @@ -11,6 +11,7 @@ |**name** | **String** | The meeting name | | |**subject** | **String** | The meeting subject | | |**recordMeeting** | **Boolean** | Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting | [optional] | +|**recordingMode** | [**RecordingModeEnum**](#RecordingModeEnum) | The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) | [optional] | |**postToIncidentTimeline** | **Boolean** | | [optional] | |**postToSlackChannels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | @@ -24,3 +25,14 @@ +## Enum: RecordingModeEnum + +| Name | Value | +|---- | -----| +| SPEAKER_VIEW | "speaker_view" | +| GALLERY_VIEW | "gallery_view" | +| GALLERY_VIEW_V2 | "gallery_view_v2" | +| AUDIO_ONLY | "audio_only" | + + + diff --git a/docs/CreateMotionTaskTaskParams.md b/docs/CreateMotionTaskTaskParams.md index 2acb6591..7578103b 100644 --- a/docs/CreateMotionTaskTaskParams.md +++ b/docs/CreateMotionTaskTaskParams.md @@ -13,7 +13,7 @@ |**status** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**title** | **String** | The task title | | |**description** | **String** | The task description | [optional] | -|**labels** | **List<String>** | | [optional] | +|**labels** | **String** | The task labels | [optional] | |**priority** | [**CreateJiraIssueTaskParamsPriority**](CreateJiraIssueTaskParamsPriority.md) | | [optional] | |**duration** | **String** | The duration. Eg. \"NONE\", \"REMINDER\", or a integer greater than 0. | [optional] | |**dueDate** | **String** | The due date | [optional] | diff --git a/docs/CreateOpenaiChatCompletionTaskParamsModel.md b/docs/CreateOpenaiChatCompletionTaskParamsModel.md index a809b41f..342d3110 100644 --- a/docs/CreateOpenaiChatCompletionTaskParamsModel.md +++ b/docs/CreateOpenaiChatCompletionTaskParamsModel.md @@ -2,7 +2,7 @@ # CreateOpenaiChatCompletionTaskParamsModel -The OpenAI model. eg: gpt-4o-mini +The OpenAI model. eg: gpt-5-nano ## Properties diff --git a/docs/CreateShortcutStoryTaskParamsAnyOf.md b/docs/CreateShortcutStoryTaskParamsAnyOf.md new file mode 100644 index 00000000..314be362 --- /dev/null +++ b/docs/CreateShortcutStoryTaskParamsAnyOf.md @@ -0,0 +1,13 @@ + + +# CreateShortcutStoryTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**project** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/CreateShortcutStoryTaskParamsAnyOf1.md b/docs/CreateShortcutStoryTaskParamsAnyOf1.md new file mode 100644 index 00000000..f9cecd49 --- /dev/null +++ b/docs/CreateShortcutStoryTaskParamsAnyOf1.md @@ -0,0 +1,13 @@ + + +# CreateShortcutStoryTaskParamsAnyOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**workflowState** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/CreateWebexMeetingTaskParams.md b/docs/CreateWebexMeetingTaskParams.md index c3c8d8c2..4493a6b0 100644 --- a/docs/CreateWebexMeetingTaskParams.md +++ b/docs/CreateWebexMeetingTaskParams.md @@ -11,6 +11,7 @@ |**topic** | **String** | The meeting topic | | |**password** | **String** | The meeting password | [optional] | |**recordMeeting** | **Boolean** | Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting | [optional] | +|**recordingMode** | [**RecordingModeEnum**](#RecordingModeEnum) | The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) | [optional] | |**postToIncidentTimeline** | **Boolean** | | [optional] | |**postToSlackChannels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | @@ -24,3 +25,14 @@ +## Enum: RecordingModeEnum + +| Name | Value | +|---- | -----| +| SPEAKER_VIEW | "speaker_view" | +| GALLERY_VIEW | "gallery_view" | +| GALLERY_VIEW_V2 | "gallery_view_v2" | +| AUDIO_ONLY | "audio_only" | + + + diff --git a/docs/CreateZoomMeetingTaskParams.md b/docs/CreateZoomMeetingTaskParams.md index 74067e5b..24a9b7e0 100644 --- a/docs/CreateZoomMeetingTaskParams.md +++ b/docs/CreateZoomMeetingTaskParams.md @@ -14,6 +14,8 @@ |**alternativeHosts** | **List<String>** | | [optional] | |**autoRecording** | [**AutoRecordingEnum**](#AutoRecordingEnum) | | [optional] | |**recordMeeting** | **Boolean** | Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting | [optional] | +|**recordingMode** | [**RecordingModeEnum**](#RecordingModeEnum) | The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) | [optional] | +|**enableZoomBotAutoJoin** | **Boolean** | Allow the Rootly bot to start recording without waiting for host approval | [optional] | |**postToIncidentTimeline** | **Boolean** | | [optional] | |**postToSlackChannels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | @@ -37,3 +39,14 @@ +## Enum: RecordingModeEnum + +| Name | Value | +|---- | -----| +| SPEAKER_VIEW | "speaker_view" | +| GALLERY_VIEW | "gallery_view" | +| GALLERY_VIEW_V2 | "gallery_view_v2" | +| AUDIO_ONLY | "audio_only" | + + + diff --git a/docs/CustomField.md b/docs/CustomField.md index cf44714b..7427948e 100644 --- a/docs/CustomField.md +++ b/docs/CustomField.md @@ -7,46 +7,17 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**label** | **String** | The name of the custom_field | | -|**kind** | **String** | The kind of the custom_field | [optional] | -|**enabled** | **Boolean** | Whether the custom_field is enabled | [optional] | -|**slug** | **String** | The slug of the custom_field | | -|**description** | **String** | The description of the custom_field | [optional] | -|**shown** | [**List<ShownEnum>**](#List<ShownEnum>) | | | -|**required** | [**List<RequiredEnum>**](#List<RequiredEnum>) | | | -|**_default** | **String** | The default value for text field kinds | [optional] | -|**position** | **Integer** | The position of the custom_field | | -|**createdAt** | **String** | Date of creation | | -|**updatedAt** | **String** | Date of last update | | +|**fieldSource** | [**FieldSourceEnum**](#FieldSourceEnum) | | | +|**catalogPropertyId** | **String** | ID of the catalog property | | +|**fieldKey** | **String** | Ignored for custom fields (auto-derived from catalog property) | [optional] | -## Enum: List<ShownEnum> +## Enum: FieldSourceEnum | Name | Value | |---- | -----| -| INCIDENT_FORM | "incident_form" | -| INCIDENT_MITIGATION_FORM | "incident_mitigation_form" | -| INCIDENT_RESOLUTION_FORM | "incident_resolution_form" | -| INCIDENT_POST_MORTEM_FORM | "incident_post_mortem_form" | -| INCIDENT_SLACK_FORM | "incident_slack_form" | -| INCIDENT_MITIGATION_SLACK_FORM | "incident_mitigation_slack_form" | -| INCIDENT_RESOLUTION_SLACK_FORM | "incident_resolution_slack_form" | -| INCIDENT_POST_MORTEM | "incident_post_mortem" | - - - -## Enum: List<RequiredEnum> - -| Name | Value | -|---- | -----| -| INCIDENT_FORM | "incident_form" | -| INCIDENT_MITIGATION_FORM | "incident_mitigation_form" | -| INCIDENT_RESOLUTION_FORM | "incident_resolution_form" | -| INCIDENT_POST_MORTEM_FORM | "incident_post_mortem_form" | -| INCIDENT_SLACK_FORM | "incident_slack_form" | -| INCIDENT_MITIGATION_SLACK_FORM | "incident_mitigation_slack_form" | -| INCIDENT_RESOLUTION_SLACK_FORM | "incident_resolution_slack_form" | +| CUSTOM | "custom" | diff --git a/docs/CustomFieldList.md b/docs/CustomFieldList.md index 9f668e38..b91f4802 100644 --- a/docs/CustomFieldList.md +++ b/docs/CustomFieldList.md @@ -10,6 +10,7 @@ |**data** | [**List<CustomFieldResponseData>**](CustomFieldResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CustomFieldOptionList.md b/docs/CustomFieldOptionList.md index faa2d59a..308d8273 100644 --- a/docs/CustomFieldOptionList.md +++ b/docs/CustomFieldOptionList.md @@ -10,6 +10,7 @@ |**data** | [**List<CustomFieldOptionResponseData>**](CustomFieldOptionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CustomFieldOptionResponse.md b/docs/CustomFieldOptionResponse.md index ff36cab4..76d1d76f 100644 --- a/docs/CustomFieldOptionResponse.md +++ b/docs/CustomFieldOptionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CustomFieldOptionResponseData**](CustomFieldOptionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CustomFieldResponse.md b/docs/CustomFieldResponse.md index 5d632e1b..38a39289 100644 --- a/docs/CustomFieldResponse.md +++ b/docs/CustomFieldResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CustomFieldResponseData**](CustomFieldResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CustomForm.md b/docs/CustomForm.md index 86356f70..f77b0fb0 100644 --- a/docs/CustomForm.md +++ b/docs/CustomForm.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the custom form. | | -|**slug** | **String** | The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. | | +|**slug** | **String** | The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. | [optional] [readonly] | |**description** | **String** | | [optional] | |**enabled** | **Boolean** | | | |**command** | **String** | The Slack command used to trigger this form. | | diff --git a/docs/CustomFormList.md b/docs/CustomFormList.md index 16da6772..8f77a42f 100644 --- a/docs/CustomFormList.md +++ b/docs/CustomFormList.md @@ -10,6 +10,7 @@ |**data** | [**List<CustomFormResponseData>**](CustomFormResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/CustomFormResponse.md b/docs/CustomFormResponse.md index 2c8814b7..276f6c2e 100644 --- a/docs/CustomFormResponse.md +++ b/docs/CustomFormResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**CustomFormResponseData**](CustomFormResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/DashboardList.md b/docs/DashboardList.md index 8660691a..b78552df 100644 --- a/docs/DashboardList.md +++ b/docs/DashboardList.md @@ -10,6 +10,7 @@ |**data** | [**List<DashboardResponseData>**](DashboardResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/DashboardPanelList.md b/docs/DashboardPanelList.md index aefc0b73..9344bb73 100644 --- a/docs/DashboardPanelList.md +++ b/docs/DashboardPanelList.md @@ -10,6 +10,7 @@ |**data** | [**List<DashboardPanelResponseData>**](DashboardPanelResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/DashboardPanelResponse.md b/docs/DashboardPanelResponse.md index 806a5bea..b793f4a6 100644 --- a/docs/DashboardPanelResponse.md +++ b/docs/DashboardPanelResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**DashboardPanelResponseData**](DashboardPanelResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/DashboardResponse.md b/docs/DashboardResponse.md index 92fd6aeb..442b900f 100644 --- a/docs/DashboardResponse.md +++ b/docs/DashboardResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**DashboardResponseData**](DashboardResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/DeprecatedCustomFieldsApi.md b/docs/DeprecatedCustomFieldsApi.md index 80e916b5..cd6c8d3b 100644 --- a/docs/DeprecatedCustomFieldsApi.md +++ b/docs/DeprecatedCustomFieldsApi.md @@ -220,7 +220,7 @@ public class Example { # **listCustomFields** -> CustomFieldList listCustomFields(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) +> CustomFieldList listCustomFields(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterLabelEq, filterLabelNotEq, filterLabelIn, filterLabelNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn) [DEPRECATED] List Custom Fields @@ -258,8 +258,24 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterLabelEq = "filterLabelEq_example"; // String | + String filterLabelNotEq = "filterLabelNotEq_example"; // String | + String filterLabelIn = "filterLabelIn_example"; // String | + String filterLabelNotIn = "filterLabelNotIn_example"; // String | + String filterKindEq = "filterKindEq_example"; // String | + String filterKindNotEq = "filterKindNotEq_example"; // String | + String filterKindIn = "filterKindIn_example"; // String | + String filterKindNotIn = "filterKindNotIn_example"; // String | + String filterEnabledEq = "filterEnabledEq_example"; // String | + String filterEnabledNotEq = "filterEnabledNotEq_example"; // String | + String filterEnabledIn = "filterEnabledIn_example"; // String | + String filterEnabledNotIn = "filterEnabledNotIn_example"; // String | try { - CustomFieldList result = apiInstance.listCustomFields(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + CustomFieldList result = apiInstance.listCustomFields(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterLabelEq, filterLabelNotEq, filterLabelIn, filterLabelNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling DeprecatedCustomFieldsApi#listCustomFields"); @@ -288,6 +304,22 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterLabelEq** | **String**| | [optional] | +| **filterLabelNotEq** | **String**| | [optional] | +| **filterLabelIn** | **String**| | [optional] | +| **filterLabelNotIn** | **String**| | [optional] | +| **filterKindEq** | **String**| | [optional] | +| **filterKindNotEq** | **String**| | [optional] | +| **filterKindIn** | **String**| | [optional] | +| **filterKindNotIn** | **String**| | [optional] | +| **filterEnabledEq** | **String**| | [optional] | +| **filterEnabledNotEq** | **String**| | [optional] | +| **filterEnabledIn** | **String**| | [optional] | +| **filterEnabledNotIn** | **String**| | [optional] | ### Return type diff --git a/docs/EdgeConnectorActionDataAttributesParametersInner.md b/docs/EdgeConnectorActionDataAttributesParametersInner.md index bf2b4fd4..0aaff13f 100644 --- a/docs/EdgeConnectorActionDataAttributesParametersInner.md +++ b/docs/EdgeConnectorActionDataAttributesParametersInner.md @@ -11,7 +11,7 @@ |**type** | [**TypeEnum**](#TypeEnum) | | [optional] | |**required** | **Boolean** | | [optional] | |**description** | **String** | | [optional] | -|**_default** | **Object** | Default value (any type) | [optional] | +|**_default** | **String** | Default value (any type) | [optional] | |**options** | **List<String>** | | [optional] | diff --git a/docs/EdgeConnectorActionsApi.md b/docs/EdgeConnectorActionsApi.md index 0845174b..34687dba 100644 --- a/docs/EdgeConnectorActionsApi.md +++ b/docs/EdgeConnectorActionsApi.md @@ -4,18 +4,18 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| -| [**v1EdgeConnectorsEdgeConnectorIdActionsGet**](EdgeConnectorActionsApi.md#v1EdgeConnectorsEdgeConnectorIdActionsGet) | **GET** /v1/edge_connectors/{edge_connector_id}/actions | List edge connector actions | -| [**v1EdgeConnectorsEdgeConnectorIdActionsIdDelete**](EdgeConnectorActionsApi.md#v1EdgeConnectorsEdgeConnectorIdActionsIdDelete) | **DELETE** /v1/edge_connectors/{edge_connector_id}/actions/{id} | Delete edge connector action | -| [**v1EdgeConnectorsEdgeConnectorIdActionsIdGet**](EdgeConnectorActionsApi.md#v1EdgeConnectorsEdgeConnectorIdActionsIdGet) | **GET** /v1/edge_connectors/{edge_connector_id}/actions/{id} | Show edge connector action | -| [**v1EdgeConnectorsEdgeConnectorIdActionsIdPatch**](EdgeConnectorActionsApi.md#v1EdgeConnectorsEdgeConnectorIdActionsIdPatch) | **PATCH** /v1/edge_connectors/{edge_connector_id}/actions/{id} | Update edge connector action | -| [**v1EdgeConnectorsEdgeConnectorIdActionsPost**](EdgeConnectorActionsApi.md#v1EdgeConnectorsEdgeConnectorIdActionsPost) | **POST** /v1/edge_connectors/{edge_connector_id}/actions | Create edge connector action | +| [**createEdgeConnectorAction**](EdgeConnectorActionsApi.md#createEdgeConnectorAction) | **POST** /v1/edge_connectors/{edge_connector_id}/actions | Create edge connector action | +| [**deleteEdgeConnectorAction**](EdgeConnectorActionsApi.md#deleteEdgeConnectorAction) | **DELETE** /v1/edge_connectors/{edge_connector_id}/actions/{id} | Delete edge connector action | +| [**getEdgeConnectorAction**](EdgeConnectorActionsApi.md#getEdgeConnectorAction) | **GET** /v1/edge_connectors/{edge_connector_id}/actions/{id} | Show edge connector action | +| [**listEdgeConnectorActions**](EdgeConnectorActionsApi.md#listEdgeConnectorActions) | **GET** /v1/edge_connectors/{edge_connector_id}/actions | List edge connector actions | +| [**updateEdgeConnectorAction**](EdgeConnectorActionsApi.md#updateEdgeConnectorAction) | **PATCH** /v1/edge_connectors/{edge_connector_id}/actions/{id} | Update edge connector action | - -# **v1EdgeConnectorsEdgeConnectorIdActionsGet** -> v1EdgeConnectorsEdgeConnectorIdActionsGet(edgeConnectorId) + +# **createEdgeConnectorAction** +> createEdgeConnectorAction(edgeConnectorId, createEdgeConnectorActionRequest) -List edge connector actions +Create edge connector action ### Example ```java @@ -38,10 +38,11 @@ public class Example { EdgeConnectorActionsApi apiInstance = new EdgeConnectorActionsApi(defaultClient); String edgeConnectorId = "edgeConnectorId_example"; // String | Edge connector ID + CreateEdgeConnectorActionRequest createEdgeConnectorActionRequest = new CreateEdgeConnectorActionRequest(); // CreateEdgeConnectorActionRequest | try { - apiInstance.v1EdgeConnectorsEdgeConnectorIdActionsGet(edgeConnectorId); + apiInstance.createEdgeConnectorAction(edgeConnectorId, createEdgeConnectorActionRequest); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorActionsApi#v1EdgeConnectorsEdgeConnectorIdActionsGet"); + System.err.println("Exception when calling EdgeConnectorActionsApi#createEdgeConnectorAction"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -56,6 +57,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **edgeConnectorId** | **String**| Edge connector ID | | +| **createEdgeConnectorActionRequest** | [**CreateEdgeConnectorActionRequest**](CreateEdgeConnectorActionRequest.md)| | [optional] | ### Return type @@ -67,18 +69,18 @@ null (empty response body) ### HTTP request headers - - **Content-Type**: Not defined + - **Content-Type**: application/vnd.api+json - **Accept**: Not defined ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Returns list of actions | - | -| **404** | Edge connector not found | - | +| **201** | Action created | - | +| **422** | Invalid parameters | - | - -# **v1EdgeConnectorsEdgeConnectorIdActionsIdDelete** -> v1EdgeConnectorsEdgeConnectorIdActionsIdDelete(edgeConnectorId, id) + +# **deleteEdgeConnectorAction** +> deleteEdgeConnectorAction(edgeConnectorId, id) Delete edge connector action @@ -105,9 +107,9 @@ public class Example { String edgeConnectorId = "edgeConnectorId_example"; // String | Edge connector ID GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | try { - apiInstance.v1EdgeConnectorsEdgeConnectorIdActionsIdDelete(edgeConnectorId, id); + apiInstance.deleteEdgeConnectorAction(edgeConnectorId, id); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorActionsApi#v1EdgeConnectorsEdgeConnectorIdActionsIdDelete"); + System.err.println("Exception when calling EdgeConnectorActionsApi#deleteEdgeConnectorAction"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -142,9 +144,9 @@ null (empty response body) |-------------|-------------|------------------| | **200** | Action deleted | - | - -# **v1EdgeConnectorsEdgeConnectorIdActionsIdGet** -> v1EdgeConnectorsEdgeConnectorIdActionsIdGet(edgeConnectorId, id) + +# **getEdgeConnectorAction** +> getEdgeConnectorAction(edgeConnectorId, id) Show edge connector action @@ -171,9 +173,9 @@ public class Example { String edgeConnectorId = "edgeConnectorId_example"; // String | Edge connector ID GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | try { - apiInstance.v1EdgeConnectorsEdgeConnectorIdActionsIdGet(edgeConnectorId, id); + apiInstance.getEdgeConnectorAction(edgeConnectorId, id); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorActionsApi#v1EdgeConnectorsEdgeConnectorIdActionsIdGet"); + System.err.println("Exception when calling EdgeConnectorActionsApi#getEdgeConnectorAction"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -209,11 +211,11 @@ null (empty response body) | **200** | Returns action details | - | | **404** | Action not found | - | - -# **v1EdgeConnectorsEdgeConnectorIdActionsIdPatch** -> v1EdgeConnectorsEdgeConnectorIdActionsIdPatch(edgeConnectorId, id, v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest) + +# **listEdgeConnectorActions** +> listEdgeConnectorActions(edgeConnectorId) -Update edge connector action +List edge connector actions ### Example ```java @@ -236,12 +238,10 @@ public class Example { EdgeConnectorActionsApi apiInstance = new EdgeConnectorActionsApi(defaultClient); String edgeConnectorId = "edgeConnectorId_example"; // String | Edge connector ID - GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | - V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest = new V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest(); // V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest | try { - apiInstance.v1EdgeConnectorsEdgeConnectorIdActionsIdPatch(edgeConnectorId, id, v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest); + apiInstance.listEdgeConnectorActions(edgeConnectorId); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorActionsApi#v1EdgeConnectorsEdgeConnectorIdActionsIdPatch"); + System.err.println("Exception when calling EdgeConnectorActionsApi#listEdgeConnectorActions"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -256,8 +256,6 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **edgeConnectorId** | **String**| Edge connector ID | | -| **id** | [**GetAlertFieldIdParameter**](.md)| | | -| **v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest** | [**V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest**](V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest.md)| | [optional] | ### Return type @@ -269,19 +267,20 @@ null (empty response body) ### HTTP request headers - - **Content-Type**: application/vnd.api+json + - **Content-Type**: Not defined - **Accept**: Not defined ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Action updated | - | +| **200** | Returns list of actions | - | +| **404** | Edge connector not found | - | - -# **v1EdgeConnectorsEdgeConnectorIdActionsPost** -> v1EdgeConnectorsEdgeConnectorIdActionsPost(edgeConnectorId, v1EdgeConnectorsEdgeConnectorIdActionsPostRequest) + +# **updateEdgeConnectorAction** +> updateEdgeConnectorAction(edgeConnectorId, id, updateEdgeConnectorActionRequest) -Create edge connector action +Update edge connector action ### Example ```java @@ -304,11 +303,12 @@ public class Example { EdgeConnectorActionsApi apiInstance = new EdgeConnectorActionsApi(defaultClient); String edgeConnectorId = "edgeConnectorId_example"; // String | Edge connector ID - V1EdgeConnectorsEdgeConnectorIdActionsPostRequest v1EdgeConnectorsEdgeConnectorIdActionsPostRequest = new V1EdgeConnectorsEdgeConnectorIdActionsPostRequest(); // V1EdgeConnectorsEdgeConnectorIdActionsPostRequest | + GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | + UpdateEdgeConnectorActionRequest updateEdgeConnectorActionRequest = new UpdateEdgeConnectorActionRequest(); // UpdateEdgeConnectorActionRequest | try { - apiInstance.v1EdgeConnectorsEdgeConnectorIdActionsPost(edgeConnectorId, v1EdgeConnectorsEdgeConnectorIdActionsPostRequest); + apiInstance.updateEdgeConnectorAction(edgeConnectorId, id, updateEdgeConnectorActionRequest); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorActionsApi#v1EdgeConnectorsEdgeConnectorIdActionsPost"); + System.err.println("Exception when calling EdgeConnectorActionsApi#updateEdgeConnectorAction"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -323,7 +323,8 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **edgeConnectorId** | **String**| Edge connector ID | | -| **v1EdgeConnectorsEdgeConnectorIdActionsPostRequest** | [**V1EdgeConnectorsEdgeConnectorIdActionsPostRequest**](V1EdgeConnectorsEdgeConnectorIdActionsPostRequest.md)| | [optional] | +| **id** | [**GetAlertFieldIdParameter**](.md)| | | +| **updateEdgeConnectorActionRequest** | [**UpdateEdgeConnectorActionRequest**](UpdateEdgeConnectorActionRequest.md)| | [optional] | ### Return type @@ -341,6 +342,5 @@ null (empty response body) ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | Action created | - | -| **422** | Invalid parameters | - | +| **200** | Action updated | - | diff --git a/docs/EdgeConnectorsApi.md b/docs/EdgeConnectorsApi.md index 2fc8729d..d2096fed 100644 --- a/docs/EdgeConnectorsApi.md +++ b/docs/EdgeConnectorsApi.md @@ -4,18 +4,18 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| -| [**v1EdgeConnectorsGet**](EdgeConnectorsApi.md#v1EdgeConnectorsGet) | **GET** /v1/edge_connectors | List edge connectors | -| [**v1EdgeConnectorsIdDelete**](EdgeConnectorsApi.md#v1EdgeConnectorsIdDelete) | **DELETE** /v1/edge_connectors/{id} | Delete edge connector | -| [**v1EdgeConnectorsIdGet**](EdgeConnectorsApi.md#v1EdgeConnectorsIdGet) | **GET** /v1/edge_connectors/{id} | Show edge connector | -| [**v1EdgeConnectorsIdPatch**](EdgeConnectorsApi.md#v1EdgeConnectorsIdPatch) | **PATCH** /v1/edge_connectors/{id} | Update edge connector | -| [**v1EdgeConnectorsPost**](EdgeConnectorsApi.md#v1EdgeConnectorsPost) | **POST** /v1/edge_connectors | Create edge connector | +| [**createEdgeConnector**](EdgeConnectorsApi.md#createEdgeConnector) | **POST** /v1/edge_connectors | Create edge connector | +| [**deleteEdgeConnector**](EdgeConnectorsApi.md#deleteEdgeConnector) | **DELETE** /v1/edge_connectors/{id} | Delete edge connector | +| [**getEdgeConnector**](EdgeConnectorsApi.md#getEdgeConnector) | **GET** /v1/edge_connectors/{id} | Show edge connector | +| [**listEdgeConnectors**](EdgeConnectorsApi.md#listEdgeConnectors) | **GET** /v1/edge_connectors | List edge connectors | +| [**updateEdgeConnector**](EdgeConnectorsApi.md#updateEdgeConnector) | **PATCH** /v1/edge_connectors/{id} | Update edge connector | - -# **v1EdgeConnectorsGet** -> v1EdgeConnectorsGet(page, perPage, status, name) + +# **createEdgeConnector** +> createEdgeConnector(createEdgeConnectorRequest) -List edge connectors +Create edge connector ### Example ```java @@ -37,14 +37,11 @@ public class Example { bearer_auth.setBearerToken("BEARER TOKEN"); EdgeConnectorsApi apiInstance = new EdgeConnectorsApi(defaultClient); - Integer page = 56; // Integer | - Integer perPage = 56; // Integer | - String status = "status_example"; // String | Filter by status (active/paused) - String name = "name_example"; // String | Filter by name (partial match) + CreateEdgeConnectorRequest createEdgeConnectorRequest = new CreateEdgeConnectorRequest(); // CreateEdgeConnectorRequest | try { - apiInstance.v1EdgeConnectorsGet(page, perPage, status, name); + apiInstance.createEdgeConnector(createEdgeConnectorRequest); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorsApi#v1EdgeConnectorsGet"); + System.err.println("Exception when calling EdgeConnectorsApi#createEdgeConnector"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -58,10 +55,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **page** | **Integer**| | [optional] | -| **perPage** | **Integer**| | [optional] | -| **status** | **String**| Filter by status (active/paused) | [optional] | -| **name** | **String**| Filter by name (partial match) | [optional] | +| **createEdgeConnectorRequest** | [**CreateEdgeConnectorRequest**](CreateEdgeConnectorRequest.md)| | [optional] | ### Return type @@ -73,17 +67,18 @@ null (empty response body) ### HTTP request headers - - **Content-Type**: Not defined + - **Content-Type**: application/vnd.api+json - **Accept**: Not defined ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Filters by status | - | +| **201** | Edge connector created | - | +| **422** | Invalid parameters | - | - -# **v1EdgeConnectorsIdDelete** -> v1EdgeConnectorsIdDelete(id) + +# **deleteEdgeConnector** +> deleteEdgeConnector(id) Delete edge connector @@ -109,9 +104,9 @@ public class Example { EdgeConnectorsApi apiInstance = new EdgeConnectorsApi(defaultClient); String id = "id_example"; // String | Edge connector ID try { - apiInstance.v1EdgeConnectorsIdDelete(id); + apiInstance.deleteEdgeConnector(id); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorsApi#v1EdgeConnectorsIdDelete"); + System.err.println("Exception when calling EdgeConnectorsApi#deleteEdgeConnector"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -145,9 +140,9 @@ null (empty response body) |-------------|-------------|------------------| | **200** | Edge connector deleted | - | - -# **v1EdgeConnectorsIdGet** -> v1EdgeConnectorsIdGet(id) + +# **getEdgeConnector** +> getEdgeConnector(id) Show edge connector @@ -173,9 +168,9 @@ public class Example { EdgeConnectorsApi apiInstance = new EdgeConnectorsApi(defaultClient); String id = "id_example"; // String | Edge connector ID try { - apiInstance.v1EdgeConnectorsIdGet(id); + apiInstance.getEdgeConnector(id); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorsApi#v1EdgeConnectorsIdGet"); + System.err.println("Exception when calling EdgeConnectorsApi#getEdgeConnector"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -210,11 +205,11 @@ null (empty response body) | **200** | Returns edge connector details | - | | **404** | Edge connector not found | - | - -# **v1EdgeConnectorsIdPatch** -> v1EdgeConnectorsIdPatch(id, v1EdgeConnectorsIdPatchRequest) + +# **listEdgeConnectors** +> listEdgeConnectors(page, perPage, status, name) -Update edge connector +List edge connectors ### Example ```java @@ -236,12 +231,14 @@ public class Example { bearer_auth.setBearerToken("BEARER TOKEN"); EdgeConnectorsApi apiInstance = new EdgeConnectorsApi(defaultClient); - String id = "id_example"; // String | Edge connector ID - V1EdgeConnectorsIdPatchRequest v1EdgeConnectorsIdPatchRequest = new V1EdgeConnectorsIdPatchRequest(); // V1EdgeConnectorsIdPatchRequest | + Integer page = 56; // Integer | + Integer perPage = 56; // Integer | + String status = "status_example"; // String | Filter by status (active/paused) + String name = "name_example"; // String | Filter by name (partial match) try { - apiInstance.v1EdgeConnectorsIdPatch(id, v1EdgeConnectorsIdPatchRequest); + apiInstance.listEdgeConnectors(page, perPage, status, name); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorsApi#v1EdgeConnectorsIdPatch"); + System.err.println("Exception when calling EdgeConnectorsApi#listEdgeConnectors"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -255,8 +252,10 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **id** | **String**| Edge connector ID | | -| **v1EdgeConnectorsIdPatchRequest** | [**V1EdgeConnectorsIdPatchRequest**](V1EdgeConnectorsIdPatchRequest.md)| | [optional] | +| **page** | **Integer**| | [optional] | +| **perPage** | **Integer**| | [optional] | +| **status** | **String**| Filter by status (active/paused) | [optional] | +| **name** | **String**| Filter by name (partial match) | [optional] | ### Return type @@ -268,20 +267,19 @@ null (empty response body) ### HTTP request headers - - **Content-Type**: application/vnd.api+json + - **Content-Type**: Not defined - **Accept**: Not defined ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Edge connector updated | - | -| **422** | Invalid parameters | - | +| **200** | Filters by status | - | - -# **v1EdgeConnectorsPost** -> v1EdgeConnectorsPost(v1EdgeConnectorsPostRequest) + +# **updateEdgeConnector** +> updateEdgeConnector(id, updateEdgeConnectorRequest) -Create edge connector +Update edge connector ### Example ```java @@ -303,11 +301,12 @@ public class Example { bearer_auth.setBearerToken("BEARER TOKEN"); EdgeConnectorsApi apiInstance = new EdgeConnectorsApi(defaultClient); - V1EdgeConnectorsPostRequest v1EdgeConnectorsPostRequest = new V1EdgeConnectorsPostRequest(); // V1EdgeConnectorsPostRequest | + String id = "id_example"; // String | Edge connector ID + UpdateEdgeConnectorRequest updateEdgeConnectorRequest = new UpdateEdgeConnectorRequest(); // UpdateEdgeConnectorRequest | try { - apiInstance.v1EdgeConnectorsPost(v1EdgeConnectorsPostRequest); + apiInstance.updateEdgeConnector(id, updateEdgeConnectorRequest); } catch (ApiException e) { - System.err.println("Exception when calling EdgeConnectorsApi#v1EdgeConnectorsPost"); + System.err.println("Exception when calling EdgeConnectorsApi#updateEdgeConnector"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -321,7 +320,8 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **v1EdgeConnectorsPostRequest** | [**V1EdgeConnectorsPostRequest**](V1EdgeConnectorsPostRequest.md)| | [optional] | +| **id** | **String**| Edge connector ID | | +| **updateEdgeConnectorRequest** | [**UpdateEdgeConnectorRequest**](UpdateEdgeConnectorRequest.md)| | [optional] | ### Return type @@ -339,6 +339,6 @@ null (empty response body) ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | Edge connector created | - | +| **200** | Edge connector updated | - | | **422** | Invalid parameters | - | diff --git a/docs/Environment.md b/docs/Environment.md index 92e523c4..52df11ba 100644 --- a/docs/Environment.md +++ b/docs/Environment.md @@ -8,15 +8,33 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the environment | | -|**slug** | **String** | The slug of the environment | [optional] | +|**slug** | **String** | The slug of the environment | [optional] [readonly] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | How this environment is managed (provenance): web, api, terraform, etc. Read-only. | [optional] | +|**externalId** | **String** | The external id associated to this environment | [optional] | |**description** | **String** | The description of the environment | [optional] | +|**publicDescription** | **String** | The status page description of the environment | [optional] | |**notifyEmails** | **List<String>** | Emails attached to the environment | [optional] | |**color** | **String** | The hex color of the environment | [optional] | |**position** | **Integer** | Position of the environment | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this environment | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this environment | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this environment. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/EnvironmentList.md b/docs/EnvironmentList.md index 32b43e94..82dc8204 100644 --- a/docs/EnvironmentList.md +++ b/docs/EnvironmentList.md @@ -10,6 +10,7 @@ |**data** | [**List<EnvironmentResponseData>**](EnvironmentResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/EnvironmentResponse.md b/docs/EnvironmentResponse.md index 5086f1c6..b457393b 100644 --- a/docs/EnvironmentResponse.md +++ b/docs/EnvironmentResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**EnvironmentResponseData**](EnvironmentResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/EnvironmentsApi.md b/docs/EnvironmentsApi.md index 062910ff..2f02b598 100644 --- a/docs/EnvironmentsApi.md +++ b/docs/EnvironmentsApi.md @@ -4,13 +4,155 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**bulkDeleteEnvironments**](EnvironmentsApi.md#bulkDeleteEnvironments) | **POST** /v1/environments/bulk_delete | Bulk delete Environments | +| [**bulkUpsertEnvironments**](EnvironmentsApi.md#bulkUpsertEnvironments) | **POST** /v1/environments/bulk_upsert | Bulk upsert Environments | | [**createEnvironment**](EnvironmentsApi.md#createEnvironment) | **POST** /v1/environments | Creates an environment | +| [**createEnvironmentCatalogProperty**](EnvironmentsApi.md#createEnvironmentCatalogProperty) | **POST** /v1/environments/properties | Creates a Catalog Property | | [**deleteEnvironment**](EnvironmentsApi.md#deleteEnvironment) | **DELETE** /v1/environments/{id} | Delete an environment | | [**getEnvironment**](EnvironmentsApi.md#getEnvironment) | **GET** /v1/environments/{id} | Retrieves an environment | +| [**listEnvironmentCatalogProperties**](EnvironmentsApi.md#listEnvironmentCatalogProperties) | **GET** /v1/environments/properties | List Catalog Properties | | [**listEnvironments**](EnvironmentsApi.md#listEnvironments) | **GET** /v1/environments | List environments | | [**updateEnvironment**](EnvironmentsApi.md#updateEnvironment) | **PUT** /v1/environments/{id} | Update an environment | + +# **bulkDeleteEnvironments** +> BulkDestroyEnvironmentsResponse bulkDeleteEnvironments(bulkDestroyEnvironments) + +Bulk delete Environments + +Delete environments by external_id list, or prune by managed_by source. Two mutually exclusive modes. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.EnvironmentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + EnvironmentsApi apiInstance = new EnvironmentsApi(defaultClient); + BulkDestroyEnvironments bulkDestroyEnvironments = new BulkDestroyEnvironments(); // BulkDestroyEnvironments | + try { + BulkDestroyEnvironmentsResponse result = apiInstance.bulkDeleteEnvironments(bulkDestroyEnvironments); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentsApi#bulkDeleteEnvironments"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkDestroyEnvironments** | [**BulkDestroyEnvironments**](BulkDestroyEnvironments.md)| | | + +### Return type + +[**BulkDestroyEnvironmentsResponse**](BulkDestroyEnvironmentsResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records deleted successfully | - | +| **422** | validation or partial-failure error | - | +| **401** | unauthorized | - | + + +# **bulkUpsertEnvironments** +> BulkUpsertEnvironmentsResponse bulkUpsertEnvironments(bulkUpsertEnvironments) + +Bulk upsert Environments + +Create or update multiple environments by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.EnvironmentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + EnvironmentsApi apiInstance = new EnvironmentsApi(defaultClient); + BulkUpsertEnvironments bulkUpsertEnvironments = new BulkUpsertEnvironments(); // BulkUpsertEnvironments | + try { + BulkUpsertEnvironmentsResponse result = apiInstance.bulkUpsertEnvironments(bulkUpsertEnvironments); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentsApi#bulkUpsertEnvironments"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkUpsertEnvironments** | [**BulkUpsertEnvironments**](BulkUpsertEnvironments.md)| | | + +### Return type + +[**BulkUpsertEnvironmentsResponse**](BulkUpsertEnvironmentsResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records upserted successfully | - | +| **422** | validation or record-level error | - | +| **401** | unauthorized | - | + # **createEnvironment** > EnvironmentResponse createEnvironment(newEnvironment) @@ -80,6 +222,75 @@ public class Example { | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | + +# **createEnvironmentCatalogProperty** +> CatalogPropertyResponse createEnvironmentCatalogProperty(newCatalogProperty) + +Creates a Catalog Property + +Creates a new Catalog Property from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.EnvironmentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + EnvironmentsApi apiInstance = new EnvironmentsApi(defaultClient); + NewCatalogProperty newCatalogProperty = new NewCatalogProperty(); // NewCatalogProperty | + try { + CatalogPropertyResponse result = apiInstance.createEnvironmentCatalogProperty(newCatalogProperty); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentsApi#createEnvironmentCatalogProperty"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newCatalogProperty** | [**NewCatalogProperty**](NewCatalogProperty.md)| | | + +### Return type + +[**CatalogPropertyResponse**](CatalogPropertyResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | catalog_property created ignores wrong catalog_type attribute | - | +| **422** | exceeds max fields per catalog | - | +| **401** | responds with unauthorized for invalid token | - | + # **deleteEnvironment** > EnvironmentResponse deleteEnvironment(id) @@ -216,9 +427,96 @@ public class Example { | **200** | environment found by slug | - | | **404** | resource not found | - | + +# **listEnvironmentCatalogProperties** +> CatalogPropertyList listEnvironmentCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) + +List Catalog Properties + +List Environment Catalog Properties + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.EnvironmentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + EnvironmentsApi apiInstance = new EnvironmentsApi(defaultClient); + String include = "catalog"; // String | comma separated if needed. eg: catalog + String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + String filterSlug = "filterSlug_example"; // String | + String filterName = "filterName_example"; // String | + String filterKind = "filterKind_example"; // String | + String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | + String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | + String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | + String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + try { + CatalogPropertyList result = apiInstance.listEnvironmentCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling EnvironmentsApi#listEnvironmentCatalogProperties"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include** | **String**| comma separated if needed. eg: catalog | [optional] [enum: catalog] | +| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | +| **filterSlug** | **String**| | [optional] | +| **filterName** | **String**| | [optional] | +| **filterKind** | **String**| | [optional] | +| **filterCreatedAtGt** | **String**| | [optional] | +| **filterCreatedAtGte** | **String**| | [optional] | +| **filterCreatedAtLt** | **String**| | [optional] | +| **filterCreatedAtLte** | **String**| | [optional] | + +### Return type + +[**CatalogPropertyList**](CatalogPropertyList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + # **listEnvironments** -> EnvironmentList listEnvironments(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> EnvironmentList listEnvironments(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort) List environments @@ -255,9 +553,21 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterColorEq = "filterColorEq_example"; // String | + String filterColorNotEq = "filterColorNotEq_example"; // String | + String filterColorIn = "filterColorIn_example"; // String | + String filterColorNotIn = "filterColorNotIn_example"; // String | String sort = "sort_example"; // String | try { - EnvironmentList result = apiInstance.listEnvironments(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + EnvironmentList result = apiInstance.listEnvironments(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling EnvironmentsApi#listEnvironments"); @@ -285,6 +595,18 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterColorEq** | **String**| | [optional] | +| **filterColorNotEq** | **String**| | [optional] | +| **filterColorIn** | **String**| | [optional] | +| **filterColorNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/EscalationPathsApi.md b/docs/EscalationPathsApi.md index 351d5615..dca2b732 100644 --- a/docs/EscalationPathsApi.md +++ b/docs/EscalationPathsApi.md @@ -222,7 +222,7 @@ public class Example { # **listEscalationPaths** -> EscalationPolicyPathList listEscalationPaths(escalationPolicyId, include, pageNumber, pageSize) +> EscalationPolicyPathList listEscalationPaths(escalationPolicyId, include, filterPathType, pageNumber, pageSize) List escalation paths @@ -250,10 +250,11 @@ public class Example { EscalationPathsApi apiInstance = new EscalationPathsApi(defaultClient); String escalationPolicyId = "escalationPolicyId_example"; // String | String include = "escalation_policy_levels"; // String | comma separated if needed. eg: escalation_policy_levels + String filterPathType = "escalation"; // String | Filter by path_type. Returns all path types when omitted. Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | try { - EscalationPolicyPathList result = apiInstance.listEscalationPaths(escalationPolicyId, include, pageNumber, pageSize); + EscalationPolicyPathList result = apiInstance.listEscalationPaths(escalationPolicyId, include, filterPathType, pageNumber, pageSize); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling EscalationPathsApi#listEscalationPaths"); @@ -272,6 +273,7 @@ public class Example { |------------- | ------------- | ------------- | -------------| | **escalationPolicyId** | **String**| | | | **include** | **String**| comma separated if needed. eg: escalation_policy_levels | [optional] [enum: escalation_policy_levels] | +| **filterPathType** | **String**| Filter by path_type. Returns all path types when omitted. | [optional] [enum: escalation, deferral] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | diff --git a/docs/EscalationPoliciesApi.md b/docs/EscalationPoliciesApi.md index d56f0f56..5180a694 100644 --- a/docs/EscalationPoliciesApi.md +++ b/docs/EscalationPoliciesApi.md @@ -220,7 +220,7 @@ public class Example { # **listEscalationPolicies** -> EscalationPolicyList listEscalationPolicies(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize) +> EscalationPolicyList listEscalationPolicies(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize) List escalation policies @@ -249,14 +249,23 @@ public class Example { String include = "escalation_policy_levels"; // String | comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths String filterSearch = "filterSearch_example"; // String | String filterName = "filterName_example"; // String | + String filterTeamIds = "filterTeamIds_example"; // String | Filter escalation policies by associated team IDs. Comma-separate multiple values. String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterTeamIdsEq = "filterTeamIdsEq_example"; // String | + String filterTeamIdsNotEq = "filterTeamIdsNotEq_example"; // String | + String filterTeamIdsIn = "filterTeamIdsIn_example"; // String | + String filterTeamIdsNotIn = "filterTeamIdsNotIn_example"; // String | Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | try { - EscalationPolicyList result = apiInstance.listEscalationPolicies(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + EscalationPolicyList result = apiInstance.listEscalationPolicies(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling EscalationPoliciesApi#listEscalationPolicies"); @@ -276,10 +285,19 @@ public class Example { | **include** | **String**| comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths | [optional] [enum: escalation_policy_levels, escalation_policy_paths, groups, services] | | **filterSearch** | **String**| | [optional] | | **filterName** | **String**| | [optional] | +| **filterTeamIds** | **String**| Filter escalation policies by associated team IDs. Comma-separate multiple values. | [optional] | | **filterCreatedAtGt** | **String**| | [optional] | | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterTeamIdsEq** | **String**| | [optional] | +| **filterTeamIdsNotEq** | **String**| | [optional] | +| **filterTeamIdsIn** | **String**| | [optional] | +| **filterTeamIdsNotIn** | **String**| | [optional] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | diff --git a/docs/EscalationPolicyLevel.md b/docs/EscalationPolicyLevel.md index 5a0ec066..c00a8275 100644 --- a/docs/EscalationPolicyLevel.md +++ b/docs/EscalationPolicyLevel.md @@ -11,7 +11,11 @@ |**escalationPolicyPathId** | **String** | The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path. | [optional] | |**pagingStrategyConfigurationStrategy** | [**PagingStrategyConfigurationStrategyEnum**](#PagingStrategyConfigurationStrategyEnum) | | [optional] | |**pagingStrategyConfigurationScheduleStrategy** | [**PagingStrategyConfigurationScheduleStrategyEnum**](#PagingStrategyConfigurationScheduleStrategyEnum) | | [optional] | -|**delay** | **Integer** | Delay before notification targets will be alerted. | | +|**pagingStrategyConfigurationRepeats** | **Integer** | Number of times to rotate through the roster (cycle-based round robin). | [optional] | +|**pagingStrategyConfigurationRepeatsMode** | [**PagingStrategyConfigurationRepeatsModeEnum**](#PagingStrategyConfigurationRepeatsModeEnum) | Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. | [optional] | +|**pagingStrategyConfigurationRotationScope** | [**PagingStrategyConfigurationRotationScopeEnum**](#PagingStrategyConfigurationRotationScopeEnum) | Scope of rotation ordering: active rotation members only, or entire schedule. | [optional] | +|**pagingStrategyConfigurationPageUsersCount** | **Integer** | Number of users to page at a time (cycle-based round robin). | [optional] | +|**delay** | **Integer** | Delay before notifying targets in the next Escalation Level. | | |**position** | **Integer** | Position of the escalation policy level | | |**createdAt** | **String** | Date of creation | [optional] | |**updatedAt** | **String** | Date of last update | [optional] | @@ -39,3 +43,21 @@ +## Enum: PagingStrategyConfigurationRepeatsModeEnum + +| Name | Value | +|---- | -----| +| USERS | "users" | +| ALL | "all" | + + + +## Enum: PagingStrategyConfigurationRotationScopeEnum + +| Name | Value | +|---- | -----| +| ACTIVE_ROTATION | "active_rotation" | +| ENTIRE_SCHEDULE | "entire_schedule" | + + + diff --git a/docs/EscalationPolicyLevelList.md b/docs/EscalationPolicyLevelList.md index 8bda6a99..35b43934 100644 --- a/docs/EscalationPolicyLevelList.md +++ b/docs/EscalationPolicyLevelList.md @@ -10,6 +10,7 @@ |**data** | [**List<EscalationPolicyLevelListDataInner>**](EscalationPolicyLevelListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/EscalationPolicyLevelResponse.md b/docs/EscalationPolicyLevelResponse.md index cc04e3c7..ae5dfd43 100644 --- a/docs/EscalationPolicyLevelResponse.md +++ b/docs/EscalationPolicyLevelResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**EscalationPolicyLevelResponseData**](EscalationPolicyLevelResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/EscalationPolicyList.md b/docs/EscalationPolicyList.md index e7f91240..3cd08359 100644 --- a/docs/EscalationPolicyList.md +++ b/docs/EscalationPolicyList.md @@ -10,6 +10,7 @@ |**data** | [**List<EscalationPolicyResponseData>**](EscalationPolicyResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/EscalationPolicyPath.md b/docs/EscalationPolicyPath.md index cf1babe0..44775da2 100644 --- a/docs/EscalationPolicyPath.md +++ b/docs/EscalationPolicyPath.md @@ -10,20 +10,42 @@ |**name** | **String** | The name of the escalation path | | |**_default** | **Boolean** | Whether this escalation path is the default path | | |**notificationType** | **String** | Notification rule type | | +|**pathType** | [**PathTypeEnum**](#PathTypeEnum) | The type of escalation path | [optional] | |**escalationPolicyId** | **String** | The ID of the escalation policy | | +|**afterDeferralBehavior** | [**AfterDeferralBehaviorEnum**](#AfterDeferralBehaviorEnum) | What happens after a deferral path finishes | [optional] | +|**afterDeferralPathId** | **String** | The escalation path to execute after this deferral path when after_deferral_behavior is execute_path | [optional] | |**matchMode** | [**MatchModeEnum**](#MatchModeEnum) | How path rules are matched. | [optional] | |**position** | **Integer** | The position of this path in the paths for this EP. | [optional] | |**repeat** | **Boolean** | Whether this path should be repeated until someone acknowledges the alert | | |**repeatCount** | **Integer** | The number of times this path will be executed until someone acknowledges the alert | | |**initialDelay** | **Integer** | Initial delay for escalation path in minutes. Maximum 1 week (10080). | [optional] | +|**retriggerTimeoutMinutes** | **Integer** | Re-trigger acknowledged alerts on this path after N minutes; null inherits the urgency/workspace default, negative = never. | [optional] | |**createdAt** | **String** | Date of creation | [optional] | |**updatedAt** | **String** | Date of last update | [optional] | -|**rules** | [**List<EscalationPolicyPathRulesInner>**](EscalationPolicyPathRulesInner.md) | Escalation path rules | [optional] | +|**rules** | [**List<UpdateEscalationPolicyPathDataAttributesRulesInner>**](UpdateEscalationPolicyPathDataAttributesRulesInner.md) | Escalation path rules | [optional] | |**timeRestrictionTimeZone** | [**TimeRestrictionTimeZoneEnum**](#TimeRestrictionTimeZoneEnum) | Time zone used for time restrictions. | [optional] | |**timeRestrictions** | [**List<UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner>**](UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner.md) | If time restrictions are set, alerts will follow this path when they arrive within the specified time ranges and meet the rules. | [optional] | +## Enum: PathTypeEnum + +| Name | Value | +|---- | -----| +| ESCALATION | "escalation" | +| DEFERRAL | "deferral" | + + + +## Enum: AfterDeferralBehaviorEnum + +| Name | Value | +|---- | -----| +| RE_EVALUATE | "re_evaluate" | +| EXECUTE_PATH | "execute_path" | + + + ## Enum: MatchModeEnum | Name | Value | @@ -66,7 +88,6 @@ | GUADALAJARA | "Guadalajara" | | AMERICA_MEXICO_CITY | "America/Mexico_City" | | MEXICO_CITY | "Mexico City" | -| AMERICA_MEXICO_CITY2 | "America/Mexico_City" | | MONTERREY | "Monterrey" | | AMERICA_MONTERREY | "America/Monterrey" | | SASKATCHEWAN | "Saskatchewan" | @@ -80,7 +101,6 @@ | LIMA | "Lima" | | AMERICA_LIMA | "America/Lima" | | QUITO | "Quito" | -| AMERICA_LIMA2 | "America/Lima" | | ATLANTIC_TIME_CANADA_ | "Atlantic Time (Canada)" | | AMERICA_HALIFAX | "America/Halifax" | | CARACAS | "Caracas" | @@ -111,16 +131,11 @@ | ATLANTIC_AZORES | "Atlantic/Azores" | | CAPE_VERDE_IS_ | "Cape Verde Is." | | ATLANTIC_CAPE_VERDE | "Atlantic/Cape_Verde" | -| CASABLANCA | "Casablanca" | -| AFRICA_CASABLANCA | "Africa/Casablanca" | -| DUBLIN | "Dublin" | -| EUROPE_DUBLIN | "Europe/Dublin" | | EDINBURGH | "Edinburgh" | | EUROPE_LONDON | "Europe/London" | | LISBON | "Lisbon" | | EUROPE_LISBON | "Europe/Lisbon" | | LONDON | "London" | -| EUROPE_LONDON2 | "Europe/London" | | MONROVIA | "Monrovia" | | AFRICA_MONROVIA | "Africa/Monrovia" | | UTC | "UTC" | @@ -139,8 +154,12 @@ | EUROPE_BRUSSELS | "Europe/Brussels" | | BUDAPEST | "Budapest" | | EUROPE_BUDAPEST | "Europe/Budapest" | +| CASABLANCA | "Casablanca" | +| AFRICA_CASABLANCA | "Africa/Casablanca" | | COPENHAGEN | "Copenhagen" | | EUROPE_COPENHAGEN | "Europe/Copenhagen" | +| DUBLIN | "Dublin" | +| EUROPE_DUBLIN | "Europe/Dublin" | | LJUBLJANA | "Ljubljana" | | EUROPE_LJUBLJANA | "Europe/Ljubljana" | | MADRID | "Madrid" | @@ -166,7 +185,6 @@ | ZAGREB | "Zagreb" | | EUROPE_ZAGREB | "Europe/Zagreb" | | ZURICH | "Zurich" | -| EUROPE_ZURICH2 | "Europe/Zurich" | | ATHENS | "Athens" | | EUROPE_ATHENS | "Europe/Athens" | | BUCHAREST | "Bucharest" | @@ -208,7 +226,6 @@ | RIYADH | "Riyadh" | | ASIA_RIYADH | "Asia/Riyadh" | | ST_PETERSBURG | "St. Petersburg" | -| EUROPE_MOSCOW2 | "Europe/Moscow" | | VOLGOGRAD | "Volgograd" | | EUROPE_VOLGOGRAD | "Europe/Volgograd" | | TEHRAN | "Tehran" | @@ -218,7 +235,6 @@ | BAKU | "Baku" | | ASIA_BAKU | "Asia/Baku" | | MUSCAT | "Muscat" | -| ASIA_MUSCAT2 | "Asia/Muscat" | | SAMARA | "Samara" | | EUROPE_SAMARA | "Europe/Samara" | | TBILISI | "Tbilisi" | @@ -230,23 +246,18 @@ | ALMATY | "Almaty" | | ASIA_ALMATY | "Asia/Almaty" | | ASTANA | "Astana" | -| ASIA_ALMATY2 | "Asia/Almaty" | | EKATERINBURG | "Ekaterinburg" | | ASIA_YEKATERINBURG | "Asia/Yekaterinburg" | | ISLAMABAD | "Islamabad" | | ASIA_KARACHI | "Asia/Karachi" | | KARACHI | "Karachi" | -| ASIA_KARACHI2 | "Asia/Karachi" | | TASHKENT | "Tashkent" | | ASIA_TASHKENT | "Asia/Tashkent" | | CHENNAI | "Chennai" | | ASIA_KOLKATA | "Asia/Kolkata" | | KOLKATA | "Kolkata" | -| ASIA_KOLKATA2 | "Asia/Kolkata" | | MUMBAI | "Mumbai" | -| ASIA_KOLKATA3 | "Asia/Kolkata" | | NEW_DELHI | "New Delhi" | -| ASIA_KOLKATA4 | "Asia/Kolkata" | | SRI_JAYAWARDENEPURA | "Sri Jayawardenepura" | | ASIA_COLOMBO | "Asia/Colombo" | | KATHMANDU | "Kathmandu" | @@ -260,7 +271,6 @@ | BANGKOK | "Bangkok" | | ASIA_BANGKOK | "Asia/Bangkok" | | HANOI | "Hanoi" | -| ASIA_BANGKOK2 | "Asia/Bangkok" | | JAKARTA | "Jakarta" | | ASIA_JAKARTA | "Asia/Jakarta" | | KRASNOYARSK | "Krasnoyarsk" | @@ -288,11 +298,9 @@ | OSAKA | "Osaka" | | ASIA_TOKYO | "Asia/Tokyo" | | SAPPORO | "Sapporo" | -| ASIA_TOKYO2 | "Asia/Tokyo" | | SEOUL | "Seoul" | | ASIA_SEOUL | "Asia/Seoul" | | TOKYO | "Tokyo" | -| ASIA_TOKYO3 | "Asia/Tokyo" | | YAKUTSK | "Yakutsk" | | ASIA_YAKUTSK | "Asia/Yakutsk" | | ADELAIDE | "Adelaide" | @@ -332,7 +340,6 @@ | MARSHALL_IS_ | "Marshall Is." | | PACIFIC_MAJURO | "Pacific/Majuro" | | WELLINGTON | "Wellington" | -| PACIFIC_AUCKLAND2 | "Pacific/Auckland" | | CHATHAM_IS_ | "Chatham Is." | | PACIFIC_CHATHAM | "Pacific/Chatham" | | NUKU_ALOFA | "Nuku'alofa" | @@ -341,6 +348,22 @@ | PACIFIC_APIA | "Pacific/Apia" | | TOKELAU_IS_ | "Tokelau Is." | | PACIFIC_FAKAOFO | "Pacific/Fakaofo" | +| AMERICA_ADAK | "America/Adak" | +| AMERICA_ATKA | "America/Atka" | +| US_ALEUTIAN | "US/Aleutian" | +| AMERICA_VANCOUVER | "America/Vancouver" | +| CANADA_PACIFIC | "Canada/Pacific" | +| AMERICA_MIQUELON | "America/Miquelon" | +| AUSTRALIA_EUCLA | "Australia/Eucla" | +| AUSTRALIA_LHI | "Australia/LHI" | +| AUSTRALIA_LORD_HOWE | "Australia/Lord_Howe" | +| CHILE_EASTER_ISLAND | "Chile/EasterIsland" | +| PACIFIC_EASTER | "Pacific/Easter" | +| PACIFIC_GAMBIER | "Pacific/Gambier" | +| PACIFIC_PITCAIRN | "Pacific/Pitcairn" | +| PACIFIC_MARQUESAS | "Pacific/Marquesas" | +| PACIFIC_KIRITIMATI | "Pacific/Kiritimati" | +| PACIFIC_NORFOLK | "Pacific/Norfolk" | diff --git a/docs/EscalationPolicyPathList.md b/docs/EscalationPolicyPathList.md index 95e7d6ac..aa1e137c 100644 --- a/docs/EscalationPolicyPathList.md +++ b/docs/EscalationPolicyPathList.md @@ -10,6 +10,7 @@ |**data** | [**List<EscalationPolicyPathListDataInner>**](EscalationPolicyPathListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/EscalationPolicyPathResponse.md b/docs/EscalationPolicyPathResponse.md index 6a2c89fb..8e7c5d53 100644 --- a/docs/EscalationPolicyPathResponse.md +++ b/docs/EscalationPolicyPathResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**EscalationPolicyPathResponseData**](EscalationPolicyPathResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/EscalationPolicyResponse.md b/docs/EscalationPolicyResponse.md index 6ef8322d..9d928836 100644 --- a/docs/EscalationPolicyResponse.md +++ b/docs/EscalationPolicyResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**EscalationPolicyResponseData**](EscalationPolicyResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormField.md b/docs/FormField.md index 5590f549..db6a0b8f 100644 --- a/docs/FormField.md +++ b/docs/FormField.md @@ -12,13 +12,15 @@ |**valueKind** | [**ValueKindEnum**](#ValueKindEnum) | The value kind of the form field | | |**valueKindCatalogId** | **String** | The ID of the catalog used when value_kind is `catalog_entity` | [optional] | |**name** | **String** | The name of the form field | | -|**slug** | **String** | The slug of the form field | | +|**slug** | **String** | The slug of the form field | [optional] [readonly] | +|**resourceType** | [**ResourceTypeEnum**](#ResourceTypeEnum) | The resource type this field belongs to | [optional] | |**description** | **String** | The description of the form field | [optional] | |**shown** | **List<String>** | | | |**required** | **List<String>** | | | |**showOnIncidentDetails** | **Boolean** | Whether the form field is shown on the incident details panel | [optional] | |**enabled** | **Boolean** | Whether the form field is enabled | [optional] | |**defaultValues** | **List<String>** | | | +|**autoSetByCatalogPropertyId** | **String** | Catalog property ID to auto-set this form field. Only reference-kind catalog properties are supported. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | @@ -40,6 +42,7 @@ | CAUSES | "causes" | | FUNCTIONALITIES | "functionalities" | | TEAMS | "teams" | +| STATUS | "status" | | VISIBILITY | "visibility" | | MARK_AS_TEST | "mark_as_test" | | MARK_AS_BACKFILLED | "mark_as_backfilled" | @@ -88,6 +91,18 @@ | FUNCTIONALITY | "functionality" | | USER | "user" | | CATALOG_ENTITY | "catalog_entity" | +| ENVIRONMENT | "environment" | +| CAUSE | "cause" | +| INCIDENT_TYPE | "incident_type" | + + + +## Enum: ResourceTypeEnum + +| Name | Value | +|---- | -----| +| INCIDENT | "incident" | +| PROBLEM | "problem" | diff --git a/docs/FormFieldList.md b/docs/FormFieldList.md index 48d62988..a43b4953 100644 --- a/docs/FormFieldList.md +++ b/docs/FormFieldList.md @@ -10,6 +10,7 @@ |**data** | [**List<FormFieldResponseData>**](FormFieldResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldOptionList.md b/docs/FormFieldOptionList.md index fcecd8da..32631645 100644 --- a/docs/FormFieldOptionList.md +++ b/docs/FormFieldOptionList.md @@ -10,6 +10,7 @@ |**data** | [**List<FormFieldOptionResponseData>**](FormFieldOptionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldOptionResponse.md b/docs/FormFieldOptionResponse.md index 03de2156..80211526 100644 --- a/docs/FormFieldOptionResponse.md +++ b/docs/FormFieldOptionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FormFieldOptionResponseData**](FormFieldOptionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldPlacement.md b/docs/FormFieldPlacement.md index 86515c83..a72b87ac 100644 --- a/docs/FormFieldPlacement.md +++ b/docs/FormFieldPlacement.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**formFieldId** | **String** | The form field that is placed. | | -|**formSetId** | **String** | The form set this field is placed in. | | +|**formSetId** | **String** | The form set this field is placed in. The form set must have the same `resource_type` as the form field, otherwise the request is rejected with 422. | | |**form** | **String** | The form this field is placed on. | | |**position** | **Integer** | The position of the field placement. | | |**required** | **Boolean** | Whether the field is unconditionally required on this form. | | diff --git a/docs/FormFieldPlacementConditionList.md b/docs/FormFieldPlacementConditionList.md index 51eebb6f..2577eae7 100644 --- a/docs/FormFieldPlacementConditionList.md +++ b/docs/FormFieldPlacementConditionList.md @@ -10,6 +10,7 @@ |**data** | [**List<FormFieldPlacementConditionResponseData>**](FormFieldPlacementConditionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldPlacementConditionResponse.md b/docs/FormFieldPlacementConditionResponse.md index f7f362b8..a00963c3 100644 --- a/docs/FormFieldPlacementConditionResponse.md +++ b/docs/FormFieldPlacementConditionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FormFieldPlacementConditionResponseData**](FormFieldPlacementConditionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldPlacementList.md b/docs/FormFieldPlacementList.md index dedeae76..ab525bdb 100644 --- a/docs/FormFieldPlacementList.md +++ b/docs/FormFieldPlacementList.md @@ -10,6 +10,7 @@ |**data** | [**List<FormFieldPlacementResponseData>**](FormFieldPlacementResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldPlacementResponse.md b/docs/FormFieldPlacementResponse.md index e5d1f65b..a4fb61db 100644 --- a/docs/FormFieldPlacementResponse.md +++ b/docs/FormFieldPlacementResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FormFieldPlacementResponseData**](FormFieldPlacementResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldPlacementsApi.md b/docs/FormFieldPlacementsApi.md index 0b50e3fa..ec21b462 100644 --- a/docs/FormFieldPlacementsApi.md +++ b/docs/FormFieldPlacementsApi.md @@ -79,7 +79,7 @@ public class Example { | Status code | Description | Response headers | |-------------|-------------|------------------| | **201** | form_field_placement created with non_editable true | - | -| **422** | invalid request | - | +| **422** | cross-resource placement rejected | - | | **401** | responds with unauthorized for invalid token | - | @@ -360,6 +360,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | form_field_placement updated with non_editable | - | +| **200** | moves a custom field's placement onto an action item form | - | +| **422** | rejects re-pointing a placement at another team's form set | - | | **404** | resource not found | - | diff --git a/docs/FormFieldPosition.md b/docs/FormFieldPosition.md index b492625e..6785e472 100644 --- a/docs/FormFieldPosition.md +++ b/docs/FormFieldPosition.md @@ -34,6 +34,10 @@ | SLACK_INCIDENT_CANCELLATION_FORM | "slack_incident_cancellation_form" | | SLACK_SCHEDULED_INCIDENT_FORM | "slack_scheduled_incident_form" | | SLACK_UPDATE_SCHEDULED_INCIDENT_FORM | "slack_update_scheduled_incident_form" | +| WEB_ACTION_ITEM_FORM | "web_action_item_form" | +| SLACK_ACTION_ITEM_FORM | "slack_action_item_form" | +| WEB_TASK_FORM | "web_task_form" | +| SLACK_TASK_FORM | "slack_task_form" | diff --git a/docs/FormFieldPositionList.md b/docs/FormFieldPositionList.md index 826ecc50..00a0d41c 100644 --- a/docs/FormFieldPositionList.md +++ b/docs/FormFieldPositionList.md @@ -10,6 +10,7 @@ |**data** | [**List<FormFieldPositionResponseData>**](FormFieldPositionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldPositionResponse.md b/docs/FormFieldPositionResponse.md index ff8195ff..6fdbf2ac 100644 --- a/docs/FormFieldPositionResponse.md +++ b/docs/FormFieldPositionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FormFieldPositionResponseData**](FormFieldPositionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldPositionsApi.md b/docs/FormFieldPositionsApi.md index d23aaaad..78d161fa 100644 --- a/docs/FormFieldPositionsApi.md +++ b/docs/FormFieldPositionsApi.md @@ -78,7 +78,8 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | form_field_position created | - | +| **201** | form_field_position created on an action item form | - | +| **422** | rejects an action item form when the feature is disabled | - | | **401** | responds with unauthorized for invalid token | - | @@ -360,5 +361,6 @@ public class Example { | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | form_field_position updated | - | +| **422** | does not error when updating with a nonexistent form_field_id | - | | **404** | resource not found | - | diff --git a/docs/FormFieldResponse.md b/docs/FormFieldResponse.md index b353aaba..56386629 100644 --- a/docs/FormFieldResponse.md +++ b/docs/FormFieldResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FormFieldResponseData**](FormFieldResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormFieldsApi.md b/docs/FormFieldsApi.md index 3cc4adcf..e6883c0a 100644 --- a/docs/FormFieldsApi.md +++ b/docs/FormFieldsApi.md @@ -76,8 +76,8 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | form_field created | - | -| **422** | invalid request | - | +| **201** | form_field created with auto_set_by_catalog_property_id | - | +| **422** | form_field creation fails with auto_set_by_catalog_property_id for catalog fields of different type | - | | **401** | responds with unauthorized for invalid token | - | @@ -220,7 +220,7 @@ public class Example { # **listFormFields** -> FormFieldList listFormFields(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) +> FormFieldList listFormFields(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn) List Form Fields @@ -258,8 +258,24 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterKindEq = "filterKindEq_example"; // String | + String filterKindNotEq = "filterKindNotEq_example"; // String | + String filterKindIn = "filterKindIn_example"; // String | + String filterKindNotIn = "filterKindNotIn_example"; // String | + String filterEnabledEq = "filterEnabledEq_example"; // String | + String filterEnabledNotEq = "filterEnabledNotEq_example"; // String | + String filterEnabledIn = "filterEnabledIn_example"; // String | + String filterEnabledNotIn = "filterEnabledNotIn_example"; // String | try { - FormFieldList result = apiInstance.listFormFields(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + FormFieldList result = apiInstance.listFormFields(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FormFieldsApi#listFormFields"); @@ -288,6 +304,22 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterKindEq** | **String**| | [optional] | +| **filterKindNotEq** | **String**| | [optional] | +| **filterKindIn** | **String**| | [optional] | +| **filterKindNotIn** | **String**| | [optional] | +| **filterEnabledEq** | **String**| | [optional] | +| **filterEnabledNotEq** | **String**| | [optional] | +| **filterEnabledIn** | **String**| | [optional] | +| **filterEnabledNotIn** | **String**| | [optional] | ### Return type diff --git a/docs/FormSet.md b/docs/FormSet.md index 67d0376c..c2a95237 100644 --- a/docs/FormSet.md +++ b/docs/FormSet.md @@ -8,9 +8,9 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the form set | | -|**slug** | **String** | The slug of the form set | | +|**slug** | **String** | The slug of the form set | [optional] [readonly] | |**isDefault** | **Boolean** | Whether the form set is default | | -|**forms** | **List<String>** | The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form` | | +|**forms** | **List<String>** | The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`, `google_chat_update_incident_form`, `microsoft_teams_new_incident_form` | | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | diff --git a/docs/FormSetConditionList.md b/docs/FormSetConditionList.md index 6cad0d56..acf2b0a3 100644 --- a/docs/FormSetConditionList.md +++ b/docs/FormSetConditionList.md @@ -10,6 +10,7 @@ |**data** | [**List<FormSetConditionResponseData>**](FormSetConditionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormSetConditionResponse.md b/docs/FormSetConditionResponse.md index f5bafe09..ed4073fe 100644 --- a/docs/FormSetConditionResponse.md +++ b/docs/FormSetConditionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FormSetConditionResponseData**](FormSetConditionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormSetList.md b/docs/FormSetList.md index ca072009..19a0ac7a 100644 --- a/docs/FormSetList.md +++ b/docs/FormSetList.md @@ -10,6 +10,7 @@ |**data** | [**List<FormSetResponseData>**](FormSetResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FormSetResponse.md b/docs/FormSetResponse.md index 76b1147f..0f587d59 100644 --- a/docs/FormSetResponse.md +++ b/docs/FormSetResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FormSetResponseData**](FormSetResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FunctionalitiesApi.md b/docs/FunctionalitiesApi.md index e0ecd734..2cef02a6 100644 --- a/docs/FunctionalitiesApi.md +++ b/docs/FunctionalitiesApi.md @@ -4,15 +4,157 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**bulkDeleteFunctionalities**](FunctionalitiesApi.md#bulkDeleteFunctionalities) | **POST** /v1/functionalities/bulk_delete | Bulk delete Functionalities | +| [**bulkUpsertFunctionalities**](FunctionalitiesApi.md#bulkUpsertFunctionalities) | **POST** /v1/functionalities/bulk_upsert | Bulk upsert Functionalities | | [**createFunctionality**](FunctionalitiesApi.md#createFunctionality) | **POST** /v1/functionalities | Creates a functionality | +| [**createFunctionalityCatalogProperty**](FunctionalitiesApi.md#createFunctionalityCatalogProperty) | **POST** /v1/functionalities/properties | Creates a Catalog Property | | [**deleteFunctionality**](FunctionalitiesApi.md#deleteFunctionality) | **DELETE** /v1/functionalities/{id} | Delete a functionality | | [**getFunctionality**](FunctionalitiesApi.md#getFunctionality) | **GET** /v1/functionalities/{id} | Retrieves a functionality | | [**getFunctionalityIncidentsChart**](FunctionalitiesApi.md#getFunctionalityIncidentsChart) | **GET** /v1/functionalities/{id}/incidents_chart | Get functionality incidents chart | | [**getFunctionalityUptimeChart**](FunctionalitiesApi.md#getFunctionalityUptimeChart) | **GET** /v1/functionalities/{id}/uptime_chart | Get functionality uptime chart | | [**listFunctionalities**](FunctionalitiesApi.md#listFunctionalities) | **GET** /v1/functionalities | List functionalities | +| [**listFunctionalityCatalogProperties**](FunctionalitiesApi.md#listFunctionalityCatalogProperties) | **GET** /v1/functionalities/properties | List Catalog Properties | | [**updateFunctionality**](FunctionalitiesApi.md#updateFunctionality) | **PUT** /v1/functionalities/{id} | Update a functionality | + +# **bulkDeleteFunctionalities** +> BulkDestroyFunctionalitiesResponse bulkDeleteFunctionalities(bulkDestroyFunctionalities) + +Bulk delete Functionalities + +Delete functionalities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.FunctionalitiesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + FunctionalitiesApi apiInstance = new FunctionalitiesApi(defaultClient); + BulkDestroyFunctionalities bulkDestroyFunctionalities = new BulkDestroyFunctionalities(); // BulkDestroyFunctionalities | + try { + BulkDestroyFunctionalitiesResponse result = apiInstance.bulkDeleteFunctionalities(bulkDestroyFunctionalities); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FunctionalitiesApi#bulkDeleteFunctionalities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkDestroyFunctionalities** | [**BulkDestroyFunctionalities**](BulkDestroyFunctionalities.md)| | | + +### Return type + +[**BulkDestroyFunctionalitiesResponse**](BulkDestroyFunctionalitiesResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records deleted successfully | - | +| **422** | validation or partial-failure error | - | +| **401** | unauthorized | - | + + +# **bulkUpsertFunctionalities** +> BulkUpsertFunctionalitiesResponse bulkUpsertFunctionalities(bulkUpsertFunctionalities) + +Bulk upsert Functionalities + +Create or update multiple functionalities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.FunctionalitiesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + FunctionalitiesApi apiInstance = new FunctionalitiesApi(defaultClient); + BulkUpsertFunctionalities bulkUpsertFunctionalities = new BulkUpsertFunctionalities(); // BulkUpsertFunctionalities | + try { + BulkUpsertFunctionalitiesResponse result = apiInstance.bulkUpsertFunctionalities(bulkUpsertFunctionalities); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FunctionalitiesApi#bulkUpsertFunctionalities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkUpsertFunctionalities** | [**BulkUpsertFunctionalities**](BulkUpsertFunctionalities.md)| | | + +### Return type + +[**BulkUpsertFunctionalitiesResponse**](BulkUpsertFunctionalitiesResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records upserted successfully | - | +| **422** | validation or record-level error | - | +| **401** | unauthorized | - | + # **createFunctionality** > FunctionalityResponse createFunctionality(newFunctionality) @@ -82,6 +224,75 @@ public class Example { | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | + +# **createFunctionalityCatalogProperty** +> CatalogPropertyResponse createFunctionalityCatalogProperty(newCatalogProperty) + +Creates a Catalog Property + +Creates a new Catalog Property from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.FunctionalitiesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + FunctionalitiesApi apiInstance = new FunctionalitiesApi(defaultClient); + NewCatalogProperty newCatalogProperty = new NewCatalogProperty(); // NewCatalogProperty | + try { + CatalogPropertyResponse result = apiInstance.createFunctionalityCatalogProperty(newCatalogProperty); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FunctionalitiesApi#createFunctionalityCatalogProperty"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newCatalogProperty** | [**NewCatalogProperty**](NewCatalogProperty.md)| | | + +### Return type + +[**CatalogPropertyResponse**](CatalogPropertyResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | catalog_property created ignores wrong catalog_type attribute | - | +| **422** | exceeds max fields per catalog | - | +| **401** | responds with unauthorized for invalid token | - | + # **deleteFunctionality** > FunctionalityResponse deleteFunctionality(id) @@ -220,7 +431,7 @@ public class Example { # **getFunctionalityIncidentsChart** -> Object getFunctionalityIncidentsChart(id, period) +> IncidentsChartResponse getFunctionalityIncidentsChart(id, period) Get functionality incidents chart @@ -249,7 +460,7 @@ public class Example { GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | String period = "period_example"; // String | try { - Object result = apiInstance.getFunctionalityIncidentsChart(id, period); + IncidentsChartResponse result = apiInstance.getFunctionalityIncidentsChart(id, period); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FunctionalitiesApi#getFunctionalityIncidentsChart"); @@ -271,7 +482,7 @@ public class Example { ### Return type -**Object** +[**IncidentsChartResponse**](IncidentsChartResponse.md) ### Authorization @@ -290,7 +501,7 @@ public class Example { # **getFunctionalityUptimeChart** -> Object getFunctionalityUptimeChart(id, period) +> UptimeChartResponse getFunctionalityUptimeChart(id, period) Get functionality uptime chart @@ -319,7 +530,7 @@ public class Example { GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | String period = "period_example"; // String | try { - Object result = apiInstance.getFunctionalityUptimeChart(id, period); + UptimeChartResponse result = apiInstance.getFunctionalityUptimeChart(id, period); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FunctionalitiesApi#getFunctionalityUptimeChart"); @@ -341,7 +552,7 @@ public class Example { ### Return type -**Object** +[**UptimeChartResponse**](UptimeChartResponse.md) ### Authorization @@ -360,7 +571,7 @@ public class Example { # **listFunctionalities** -> FunctionalityList listFunctionalities(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> FunctionalityList listFunctionalities(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort) List functionalities @@ -400,9 +611,17 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | String sort = "sort_example"; // String | try { - FunctionalityList result = apiInstance.listFunctionalities(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + FunctionalityList result = apiInstance.listFunctionalities(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FunctionalitiesApi#listFunctionalities"); @@ -433,6 +652,14 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type @@ -453,6 +680,93 @@ public class Example { |-------------|-------------|------------------| | **200** | success | - | + +# **listFunctionalityCatalogProperties** +> CatalogPropertyList listFunctionalityCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) + +List Catalog Properties + +List Functionality Catalog Properties + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.FunctionalitiesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + FunctionalitiesApi apiInstance = new FunctionalitiesApi(defaultClient); + String include = "catalog"; // String | comma separated if needed. eg: catalog + String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + String filterSlug = "filterSlug_example"; // String | + String filterName = "filterName_example"; // String | + String filterKind = "filterKind_example"; // String | + String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | + String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | + String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | + String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + try { + CatalogPropertyList result = apiInstance.listFunctionalityCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling FunctionalitiesApi#listFunctionalityCatalogProperties"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include** | **String**| comma separated if needed. eg: catalog | [optional] [enum: catalog] | +| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | +| **filterSlug** | **String**| | [optional] | +| **filterName** | **String**| | [optional] | +| **filterKind** | **String**| | [optional] | +| **filterCreatedAtGt** | **String**| | [optional] | +| **filterCreatedAtGte** | **String**| | [optional] | +| **filterCreatedAtLt** | **String**| | [optional] | +| **filterCreatedAtLte** | **String**| | [optional] | + +### Return type + +[**CatalogPropertyList**](CatalogPropertyList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + # **updateFunctionality** > FunctionalityResponse updateFunctionality(id, updateFunctionality) diff --git a/docs/Functionality.md b/docs/Functionality.md index 9498d6a6..e9e051e1 100644 --- a/docs/Functionality.md +++ b/docs/Functionality.md @@ -8,9 +8,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the functionality | | -|**slug** | **String** | The slug of the functionality | [optional] | +|**slug** | **String** | The slug of the functionality | [optional] [readonly] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | How this functionality is managed (provenance): web, api, terraform, etc. Read-only. | [optional] | |**description** | **String** | The description of the functionality | [optional] | -|**publicDescription** | **String** | The public description of the functionality | [optional] | +|**publicDescription** | **String** | The status page description of the functionality | [optional] | |**notifyEmails** | **List<String>** | Emails attached to the functionality | [optional] | |**color** | **String** | The hex color of the functionality | [optional] | |**backstageId** | **String** | The Backstage entity id associated to this functionality. eg: :namespace/:kind/:entity_name | [optional] | @@ -25,10 +26,26 @@ |**serviceIds** | **List<String>** | Services associated with this functionality | [optional] | |**ownerGroupIds** | **List<String>** | Owner Teams associated with this functionality | [optional] | |**ownerUserIds** | **List<Integer>** | Owner Users associated with this functionality | [optional] | +|**escalationPolicyId** | **String** | The escalation policy id of the functionality | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this functionality | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this functionality | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this functionality. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/FunctionalityList.md b/docs/FunctionalityList.md index e315d351..96944183 100644 --- a/docs/FunctionalityList.md +++ b/docs/FunctionalityList.md @@ -10,6 +10,7 @@ |**data** | [**List<FunctionalityResponseData>**](FunctionalityResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/FunctionalityResponse.md b/docs/FunctionalityResponse.md index 068bf668..42d03d6b 100644 --- a/docs/FunctionalityResponse.md +++ b/docs/FunctionalityResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**FunctionalityResponseData**](FunctionalityResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/GetGithubCommitsTaskParamsAnyOf.md b/docs/GetGithubCommitsTaskParamsAnyOf.md new file mode 100644 index 00000000..35a83426 --- /dev/null +++ b/docs/GetGithubCommitsTaskParamsAnyOf.md @@ -0,0 +1,13 @@ + + +# GetGithubCommitsTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**serviceIds** | **List<String>** | | | + + + diff --git a/docs/GetGithubCommitsTaskParamsAnyOf1.md b/docs/GetGithubCommitsTaskParamsAnyOf1.md new file mode 100644 index 00000000..bd797538 --- /dev/null +++ b/docs/GetGithubCommitsTaskParamsAnyOf1.md @@ -0,0 +1,13 @@ + + +# GetGithubCommitsTaskParamsAnyOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**githubRepositoryNames** | **List<String>** | | | + + + diff --git a/docs/GetGitlabCommitsTaskParamsAnyOf.md b/docs/GetGitlabCommitsTaskParamsAnyOf.md new file mode 100644 index 00000000..648266f7 --- /dev/null +++ b/docs/GetGitlabCommitsTaskParamsAnyOf.md @@ -0,0 +1,13 @@ + + +# GetGitlabCommitsTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**gitlabRepositoryNames** | **List<String>** | | | + + + diff --git a/docs/Heartbeat.md b/docs/Heartbeat.md index 52267280..45040044 100644 --- a/docs/Heartbeat.md +++ b/docs/Heartbeat.md @@ -15,14 +15,15 @@ |**interval** | **Integer** | | | |**intervalUnit** | [**IntervalUnitEnum**](#IntervalUnitEnum) | | | |**notificationTargetId** | **String** | | | -|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | | | +|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. | | +|**ownerGroupIds** | **List<String>** | List of team IDs that own this heartbeat | [optional] | |**enabled** | **Boolean** | Whether to trigger alerts when heartbeat is expired. | | |**status** | [**StatusEnum**](#StatusEnum) | | | |**pingUrl** | **String** | URL to receive heartbeat pings. | [optional] | |**secret** | **String** | Secret used as bearer token when pinging heartbeat. | [optional] | |**emailAddress** | **String** | Email address to receive heartbeat pings. | | -|**lastPingedAt** | **String** | When the heartbeat was last pinged. | [optional] | -|**expiresAt** | **String** | When heartbeat expires | [optional] | +|**lastPingedAt** | **String** | Last persisted heartbeat ping timestamp. Accepted pings may be coalesced for up to 30 seconds. | [optional] | +|**expiresAt** | **String** | Persisted expiry deadline, including up to 30 seconds of coalescing grace. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | @@ -46,6 +47,7 @@ | GROUP | "Group" | | SERVICE | "Service" | | ESCALATION_POLICY | "EscalationPolicy" | +| FUNCTIONALITY | "Functionality" | diff --git a/docs/HeartbeatList.md b/docs/HeartbeatList.md index 12e01800..77c74e35 100644 --- a/docs/HeartbeatList.md +++ b/docs/HeartbeatList.md @@ -10,6 +10,7 @@ |**data** | [**List<HeartbeatResponseData>**](HeartbeatResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/HeartbeatResponse.md b/docs/HeartbeatResponse.md index a9b547ed..08afe89c 100644 --- a/docs/HeartbeatResponse.md +++ b/docs/HeartbeatResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**HeartbeatResponseData**](HeartbeatResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/HttpClientTaskParams.md b/docs/HttpClientTaskParams.md index 983dede7..1400a2ac 100644 --- a/docs/HttpClientTaskParams.md +++ b/docs/HttpClientTaskParams.md @@ -18,6 +18,8 @@ |**succeedOnStatus** | **String** | HTTP status code expected. Can be a regular expression. Eg: 200, 200|203, 20[0-3] | | |**postToIncidentTimeline** | **Boolean** | | [optional] | |**postToSlackChannels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**retryCount** | **Integer** | Number of times to retry on HTTP 429 responses (0-4). 0 disables retry. | [optional] | +|**retryWaitTime** | **Integer** | Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. | [optional] | diff --git a/docs/ImportMeetingRecording.md b/docs/ImportMeetingRecording.md new file mode 100644 index 00000000..65252d7b --- /dev/null +++ b/docs/ImportMeetingRecording.md @@ -0,0 +1,37 @@ + + +# ImportMeetingRecording + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**source** | [**SourceEnum**](#SourceEnum) | Import source (currently only \"recall_desktop_sdk\") | | +|**recallRecordingId** | **UUID** | External recording UUID (required when source is recall_desktop_sdk) | | +|**platform** | [**PlatformEnum**](#PlatformEnum) | Meeting platform | | +|**startedAt** | **OffsetDateTime** | When the recording started | [optional] | +|**endedAt** | **OffsetDateTime** | When the recording ended | [optional] | +|**meetingUrl** | **String** | Original meeting URL | [optional] | + + + +## Enum: SourceEnum + +| Name | Value | +|---- | -----| +| RECALL_DESKTOP_SDK | "recall_desktop_sdk" | + + + +## Enum: PlatformEnum + +| Name | Value | +|---- | -----| +| ZOOM | "zoom" | +| GOOGLE_MEET | "google_meet" | +| MICROSOFT_TEAMS | "microsoft_teams" | +| WEBEX | "webex" | + + + diff --git a/docs/Incident.md b/docs/Incident.md index ba842de9..06949b2f 100644 --- a/docs/Incident.md +++ b/docs/Incident.md @@ -11,7 +11,7 @@ |**sequentialId** | **Integer** | Sequential ID of the incident | [optional] | |**title** | **String** | The title of the incident | | |**kind** | **String** | The kind of the incident | [optional] | -|**slug** | **String** | The slug of the incident | | +|**slug** | **String** | The slug of the incident | [optional] [readonly] | |**parentIncidentId** | **String** | ID of parent incident | [optional] | |**duplicateIncidentId** | **String** | ID of duplicated incident | [optional] | |**summary** | **String** | The summary of the incident | [optional] | @@ -42,12 +42,29 @@ |**zoomMeetingPassword** | **String** | Zoom meeting password | [optional] | |**zoomMeetingPstnPassword** | **String** | Zoom meeting PSTN password | [optional] | |**zoomMeetingH323Password** | **String** | Zoom meeting H323 password | [optional] | -|**zoomMeetingGlobalDialInNumbers** | **List<String>** | Zoom meeting global dial-in numbers | [optional] | +|**zoomMeetingGlobalDialInNumbers** | [**List<IncidentZoomMeetingGlobalDialInNumbersInner>**](IncidentZoomMeetingGlobalDialInNumbersInner.md) | Zoom meeting global dial-in numbers | [optional] | |**googleDriveId** | **String** | Google Drive document ID | [optional] | |**googleDriveParentId** | **String** | Google Drive parent folder ID | [optional] | |**googleDriveUrl** | **String** | Google Drive URL | [optional] | |**googleMeetingId** | **String** | Google meeting ID | [optional] | |**googleMeetingUrl** | **String** | Google meeting URL | [optional] | +|**microsoftTeamsMeetingId** | **String** | Microsoft Teams meeting ID | [optional] | +|**microsoftTeamsMeetingUrl** | **String** | Microsoft Teams meeting URL | [optional] | +|**microsoftTeamsChannelId** | **String** | Microsoft Teams channel ID | [optional] | +|**microsoftTeamsChannelName** | **String** | Microsoft Teams channel name | [optional] | +|**microsoftTeamsChannelUrl** | **String** | Microsoft Teams channel URL | [optional] | +|**microsoftTeamsChannelShortUrl** | **String** | Microsoft Teams channel short URL | [optional] | +|**microsoftTeamsChatId** | **String** | Microsoft Teams chat ID | [optional] | +|**microsoftTeamsChatUrl** | **String** | Microsoft Teams chat URL | [optional] | +|**microsoftTeamsTeamId** | **String** | Microsoft Teams team ID | [optional] | +|**googleChatSpaceId** | **String** | Google Chat space ID | [optional] | +|**googleChatSpaceName** | **String** | Google Chat space name | [optional] | +|**googleChatSpaceUrl** | **String** | Google Chat space URL | [optional] | +|**googleChatSpaceShortUrl** | **String** | Google Chat space short URL | [optional] | +|**googleChatSpaceArchived** | **Boolean** | Whether the Google Chat space is archived | [optional] | +|**googleChatSpaceDomainId** | **String** | Google Chat space domain ID | [optional] | +|**webexMeetingId** | **String** | Webex meeting ID | [optional] | +|**webexMeetingUrl** | **String** | Webex meeting URL | [optional] | |**jiraIssueKey** | **String** | Jira issue key | [optional] | |**jiraIssueId** | **String** | Jira issue ID | [optional] | |**jiraIssueUrl** | **String** | Jira issue URL | [optional] | diff --git a/docs/IncidentActionItem.md b/docs/IncidentActionItem.md index ac3ceb21..14faf35b 100644 --- a/docs/IncidentActionItem.md +++ b/docs/IncidentActionItem.md @@ -18,6 +18,7 @@ |**jiraIssueId** | **String** | The Jira issue ID. | [optional] | |**jiraIssueKey** | **String** | The Jira issue key. | [optional] | |**jiraIssueUrl** | **String** | The Jira issue URL. | [optional] | +|**createdBy** | [**UserFlatResponse**](UserFlatResponse.md) | User who created this action item | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | diff --git a/docs/IncidentActionItemList.md b/docs/IncidentActionItemList.md index b1b4bf2e..0de30330 100644 --- a/docs/IncidentActionItemList.md +++ b/docs/IncidentActionItemList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentActionItemResponseData>**](IncidentActionItemResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentActionItemResponse.md b/docs/IncidentActionItemResponse.md index b212cd0f..566160a4 100644 --- a/docs/IncidentActionItemResponse.md +++ b/docs/IncidentActionItemResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentActionItemResponseData**](IncidentActionItemResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentActionItemsApi.md b/docs/IncidentActionItemsApi.md index 60b4e3a4..90ee8400 100644 --- a/docs/IncidentActionItemsApi.md +++ b/docs/IncidentActionItemsApi.md @@ -221,7 +221,7 @@ public class Example { # **listAllIncidentActionItems** -> IncidentActionItemList listAllIncidentActionItems(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> IncidentActionItemList listAllIncidentActionItems(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterPriorityEq, filterPriorityNotEq, filterPriorityIn, filterPriorityNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterIncidentStatusEq, filterIncidentStatusNotEq, filterIncidentStatusIn, filterIncidentStatusNotIn, sort) List all action items for an organization @@ -266,9 +266,25 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterKindEq = "filterKindEq_example"; // String | + String filterKindNotEq = "filterKindNotEq_example"; // String | + String filterKindIn = "filterKindIn_example"; // String | + String filterKindNotIn = "filterKindNotIn_example"; // String | + String filterPriorityEq = "filterPriorityEq_example"; // String | + String filterPriorityNotEq = "filterPriorityNotEq_example"; // String | + String filterPriorityIn = "filterPriorityIn_example"; // String | + String filterPriorityNotIn = "filterPriorityNotIn_example"; // String | + String filterStatusEq = "filterStatusEq_example"; // String | + String filterStatusNotEq = "filterStatusNotEq_example"; // String | + String filterStatusIn = "filterStatusIn_example"; // String | + String filterStatusNotIn = "filterStatusNotIn_example"; // String | + String filterIncidentStatusEq = "filterIncidentStatusEq_example"; // String | + String filterIncidentStatusNotEq = "filterIncidentStatusNotEq_example"; // String | + String filterIncidentStatusIn = "filterIncidentStatusIn_example"; // String | + String filterIncidentStatusNotIn = "filterIncidentStatusNotIn_example"; // String | String sort = "sort_example"; // String | try { - IncidentActionItemList result = apiInstance.listAllIncidentActionItems(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + IncidentActionItemList result = apiInstance.listAllIncidentActionItems(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterPriorityEq, filterPriorityNotEq, filterPriorityIn, filterPriorityNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterIncidentStatusEq, filterIncidentStatusNotEq, filterIncidentStatusIn, filterIncidentStatusNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling IncidentActionItemsApi#listAllIncidentActionItems"); @@ -304,6 +320,22 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterKindEq** | **String**| | [optional] | +| **filterKindNotEq** | **String**| | [optional] | +| **filterKindIn** | **String**| | [optional] | +| **filterKindNotIn** | **String**| | [optional] | +| **filterPriorityEq** | **String**| | [optional] | +| **filterPriorityNotEq** | **String**| | [optional] | +| **filterPriorityIn** | **String**| | [optional] | +| **filterPriorityNotIn** | **String**| | [optional] | +| **filterStatusEq** | **String**| | [optional] | +| **filterStatusNotEq** | **String**| | [optional] | +| **filterStatusIn** | **String**| | [optional] | +| **filterStatusNotIn** | **String**| | [optional] | +| **filterIncidentStatusEq** | **String**| | [optional] | +| **filterIncidentStatusNotEq** | **String**| | [optional] | +| **filterIncidentStatusIn** | **String**| | [optional] | +| **filterIncidentStatusNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/IncidentCustomFieldSelectionList.md b/docs/IncidentCustomFieldSelectionList.md index 699f5524..41ab357e 100644 --- a/docs/IncidentCustomFieldSelectionList.md +++ b/docs/IncidentCustomFieldSelectionList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentCustomFieldSelectionResponseData>**](IncidentCustomFieldSelectionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentCustomFieldSelectionResponse.md b/docs/IncidentCustomFieldSelectionResponse.md index 6b827f12..6d0cc302 100644 --- a/docs/IncidentCustomFieldSelectionResponse.md +++ b/docs/IncidentCustomFieldSelectionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentCustomFieldSelectionResponseData**](IncidentCustomFieldSelectionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentEventFunctionalityList.md b/docs/IncidentEventFunctionalityList.md index 9e1a3676..1ea0dcc0 100644 --- a/docs/IncidentEventFunctionalityList.md +++ b/docs/IncidentEventFunctionalityList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentEventFunctionalityResponseData>**](IncidentEventFunctionalityResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentEventFunctionalityResponse.md b/docs/IncidentEventFunctionalityResponse.md index b50b529a..67989e1d 100644 --- a/docs/IncidentEventFunctionalityResponse.md +++ b/docs/IncidentEventFunctionalityResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentEventFunctionalityResponseData**](IncidentEventFunctionalityResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentEventList.md b/docs/IncidentEventList.md index 51256445..460b3e54 100644 --- a/docs/IncidentEventList.md +++ b/docs/IncidentEventList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentEventResponseData>**](IncidentEventResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentEventResponse.md b/docs/IncidentEventResponse.md index c33028df..a3f12273 100644 --- a/docs/IncidentEventResponse.md +++ b/docs/IncidentEventResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentEventResponseData**](IncidentEventResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentEventServiceList.md b/docs/IncidentEventServiceList.md index c56d19a9..62dd8358 100644 --- a/docs/IncidentEventServiceList.md +++ b/docs/IncidentEventServiceList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentEventServiceResponseData>**](IncidentEventServiceResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentEventServiceResponse.md b/docs/IncidentEventServiceResponse.md index 50995d3c..8b6d1987 100644 --- a/docs/IncidentEventServiceResponse.md +++ b/docs/IncidentEventServiceResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentEventServiceResponseData**](IncidentEventServiceResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentFeedbackList.md b/docs/IncidentFeedbackList.md index cefdc493..97044935 100644 --- a/docs/IncidentFeedbackList.md +++ b/docs/IncidentFeedbackList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentFeedbackResponseData>**](IncidentFeedbackResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentFeedbackResponse.md b/docs/IncidentFeedbackResponse.md index 690f9912..5a2d1b5a 100644 --- a/docs/IncidentFeedbackResponse.md +++ b/docs/IncidentFeedbackResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentFeedbackResponseData**](IncidentFeedbackResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentFormFieldSelection.md b/docs/IncidentFormFieldSelection.md index d068b90d..ff7c018f 100644 --- a/docs/IncidentFormFieldSelection.md +++ b/docs/IncidentFormFieldSelection.md @@ -16,6 +16,9 @@ |**selectedServiceIds** | **List<String>** | | [optional] | |**selectedFunctionalityIds** | **List<String>** | | [optional] | |**selectedUserIds** | **List<Integer>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | diff --git a/docs/IncidentFormFieldSelectionList.md b/docs/IncidentFormFieldSelectionList.md index 986e01c5..cecd8b24 100644 --- a/docs/IncidentFormFieldSelectionList.md +++ b/docs/IncidentFormFieldSelectionList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentFormFieldSelectionResponseData>**](IncidentFormFieldSelectionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentFormFieldSelectionResponse.md b/docs/IncidentFormFieldSelectionResponse.md index 6140f30e..c400c35d 100644 --- a/docs/IncidentFormFieldSelectionResponse.md +++ b/docs/IncidentFormFieldSelectionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentFormFieldSelectionResponseData**](IncidentFormFieldSelectionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentList.md b/docs/IncidentList.md index 8e93b610..91fe0683 100644 --- a/docs/IncidentList.md +++ b/docs/IncidentList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentResponseData>**](IncidentResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPermissionSet.md b/docs/IncidentPermissionSet.md index 894cb4e2..a90f812c 100644 --- a/docs/IncidentPermissionSet.md +++ b/docs/IncidentPermissionSet.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The incident permission set name. | | -|**slug** | **String** | The incident permission set slug. | | +|**slug** | **String** | The incident permission set slug. | [optional] [readonly] | |**description** | **String** | The incident permission set description. | [optional] | |**privateIncidentPermissions** | [**List<PrivateIncidentPermissionsEnum>**](#List<PrivateIncidentPermissionsEnum>) | | [optional] | |**publicIncidentPermissions** | [**List<PublicIncidentPermissionsEnum>**](#List<PublicIncidentPermissionsEnum>) | | [optional] | diff --git a/docs/IncidentPermissionSetBooleanList.md b/docs/IncidentPermissionSetBooleanList.md index fdd6bfec..f74f15fa 100644 --- a/docs/IncidentPermissionSetBooleanList.md +++ b/docs/IncidentPermissionSetBooleanList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentPermissionSetBooleanResponseData>**](IncidentPermissionSetBooleanResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPermissionSetBooleanResponse.md b/docs/IncidentPermissionSetBooleanResponse.md index 8f057fee..e8458bc9 100644 --- a/docs/IncidentPermissionSetBooleanResponse.md +++ b/docs/IncidentPermissionSetBooleanResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentPermissionSetBooleanResponseData**](IncidentPermissionSetBooleanResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPermissionSetList.md b/docs/IncidentPermissionSetList.md index 6ce6f0a5..5aa6514f 100644 --- a/docs/IncidentPermissionSetList.md +++ b/docs/IncidentPermissionSetList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentPermissionSetResponseData>**](IncidentPermissionSetResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPermissionSetResourceList.md b/docs/IncidentPermissionSetResourceList.md index b0ffb28b..f919eb8a 100644 --- a/docs/IncidentPermissionSetResourceList.md +++ b/docs/IncidentPermissionSetResourceList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentPermissionSetResourceResponseData>**](IncidentPermissionSetResourceResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPermissionSetResourceResponse.md b/docs/IncidentPermissionSetResourceResponse.md index d54026a4..0fdfcebd 100644 --- a/docs/IncidentPermissionSetResourceResponse.md +++ b/docs/IncidentPermissionSetResourceResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentPermissionSetResourceResponseData**](IncidentPermissionSetResourceResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPermissionSetResponse.md b/docs/IncidentPermissionSetResponse.md index d1c4d102..792d546a 100644 --- a/docs/IncidentPermissionSetResponse.md +++ b/docs/IncidentPermissionSetResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentPermissionSetResponseData**](IncidentPermissionSetResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPostMortemList.md b/docs/IncidentPostMortemList.md index 6b0725e0..923c1fe8 100644 --- a/docs/IncidentPostMortemList.md +++ b/docs/IncidentPostMortemList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentPostMortemResponseData>**](IncidentPostMortemResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentPostMortemResponse.md b/docs/IncidentPostMortemResponse.md index e8209eec..802b4b0d 100644 --- a/docs/IncidentPostMortemResponse.md +++ b/docs/IncidentPostMortemResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentPostMortemResponseData**](IncidentPostMortemResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentResponse.md b/docs/IncidentResponse.md index f48e3407..fdddf94f 100644 --- a/docs/IncidentResponse.md +++ b/docs/IncidentResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentResponseData**](IncidentResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentRetrospectiveStepResponse.md b/docs/IncidentRetrospectiveStepResponse.md index 24231804..c503efcb 100644 --- a/docs/IncidentRetrospectiveStepResponse.md +++ b/docs/IncidentRetrospectiveStepResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentRetrospectiveStepResponseData**](IncidentRetrospectiveStepResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentRole.md b/docs/IncidentRole.md index 74d009f1..d7f01479 100644 --- a/docs/IncidentRole.md +++ b/docs/IncidentRole.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the incident role | | -|**slug** | **String** | The slug of the incident role | [optional] | +|**slug** | **String** | The slug of the incident role | [optional] [readonly] | |**summary** | **String** | The summary of the incident role | [optional] | |**description** | **String** | The description of the incident role | [optional] | |**position** | **Integer** | Position of the incident role | [optional] | diff --git a/docs/IncidentRoleList.md b/docs/IncidentRoleList.md index 70b075bc..0c078688 100644 --- a/docs/IncidentRoleList.md +++ b/docs/IncidentRoleList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentRoleResponseData>**](IncidentRoleResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentRoleResponse.md b/docs/IncidentRoleResponse.md index 4f3fea93..401296d3 100644 --- a/docs/IncidentRoleResponse.md +++ b/docs/IncidentRoleResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentRoleResponseData**](IncidentRoleResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentRoleTaskList.md b/docs/IncidentRoleTaskList.md index 2085f3da..ed5ae4f0 100644 --- a/docs/IncidentRoleTaskList.md +++ b/docs/IncidentRoleTaskList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentRoleTaskResponseData>**](IncidentRoleTaskResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentRoleTaskResponse.md b/docs/IncidentRoleTaskResponse.md index 0bad7acc..40c10960 100644 --- a/docs/IncidentRoleTaskResponse.md +++ b/docs/IncidentRoleTaskResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentRoleTaskResponseData**](IncidentRoleTaskResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentRolesApi.md b/docs/IncidentRolesApi.md index c30c51eb..1ace9560 100644 --- a/docs/IncidentRolesApi.md +++ b/docs/IncidentRolesApi.md @@ -218,7 +218,7 @@ public class Example { # **listIncidentRoles** -> IncidentRoleList listIncidentRoles(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> IncidentRoleList listIncidentRoles(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, sort) List incident roles @@ -244,7 +244,6 @@ public class Example { bearer_auth.setBearerToken("BEARER TOKEN"); IncidentRolesApi apiInstance = new IncidentRolesApi(defaultClient); - String include = "include_example"; // String | Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | String filterSearch = "filterSearch_example"; // String | @@ -255,9 +254,21 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterEnabledEq = "filterEnabledEq_example"; // String | + String filterEnabledNotEq = "filterEnabledNotEq_example"; // String | + String filterEnabledIn = "filterEnabledIn_example"; // String | + String filterEnabledNotIn = "filterEnabledNotIn_example"; // String | String sort = "sort_example"; // String | try { - IncidentRoleList result = apiInstance.listIncidentRoles(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + IncidentRoleList result = apiInstance.listIncidentRoles(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling IncidentRolesApi#listIncidentRoles"); @@ -274,7 +285,6 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **include** | **String**| | [optional] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | | **filterSearch** | **String**| | [optional] | @@ -285,6 +295,18 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterEnabledEq** | **String**| | [optional] | +| **filterEnabledNotEq** | **String**| | [optional] | +| **filterEnabledIn** | **String**| | [optional] | +| **filterEnabledNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/IncidentStatusPageEvent.md b/docs/IncidentStatusPageEvent.md index a0dbfc31..f1f69d29 100644 --- a/docs/IncidentStatusPageEvent.md +++ b/docs/IncidentStatusPageEvent.md @@ -12,6 +12,7 @@ |**status** | [**StatusEnum**](#StatusEnum) | The status of the incident event | [optional] | |**notifySubscribers** | **Boolean** | Notify all status pages subscribers | [optional] | |**shouldTweet** | **Boolean** | For Statuspage.io integrated pages auto publishes a tweet for your update | [optional] | +|**statusPageComponents** | [**List<IncidentStatusPageEventStatusPageComponentsInner>**](IncidentStatusPageEventStatusPageComponentsInner.md) | Affected status page components recorded on the event and their statuses | [optional] | |**startedAt** | **String** | Date of start | | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | diff --git a/docs/IncidentStatusPageEventList.md b/docs/IncidentStatusPageEventList.md index a8136f2c..7cfa59b9 100644 --- a/docs/IncidentStatusPageEventList.md +++ b/docs/IncidentStatusPageEventList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentStatusPageEventResponseData>**](IncidentStatusPageEventResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentStatusPageEventResponse.md b/docs/IncidentStatusPageEventResponse.md index c1bd0278..6e90a6ca 100644 --- a/docs/IncidentStatusPageEventResponse.md +++ b/docs/IncidentStatusPageEventResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentStatusPageEventResponseData**](IncidentStatusPageEventResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentStatusPageEventStatusPageComponentsInner.md b/docs/IncidentStatusPageEventStatusPageComponentsInner.md new file mode 100644 index 00000000..4d8a6649 --- /dev/null +++ b/docs/IncidentStatusPageEventStatusPageComponentsInner.md @@ -0,0 +1,25 @@ + + +# IncidentStatusPageEventStatusPageComponentsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**statusPageComponentId** | **String** | Unique ID of a component on the event's status page | | +|**status** | [**StatusEnum**](#StatusEnum) | The status recorded for the component | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| OPERATIONAL | "operational" | +| DEGRADED_PERFORMANCE | "degraded_performance" | +| PARTIAL_OUTAGE | "partial_outage" | +| MAJOR_OUTAGE | "major_outage" | + + + diff --git a/docs/IncidentStatusPageEventsApi.md b/docs/IncidentStatusPageEventsApi.md index d9378a1d..dac945a5 100644 --- a/docs/IncidentStatusPageEventsApi.md +++ b/docs/IncidentStatusPageEventsApi.md @@ -78,7 +78,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | incident_status_page_event created | - | +| **201** | incident_status_page_event created with component statuses | - | | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | @@ -358,6 +358,6 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | incident_status_page_event updated | - | +| **200** | incident_status_page_event started_at updated | - | | **404** | resource not found | - | diff --git a/docs/IncidentSubStatusList.md b/docs/IncidentSubStatusList.md index 6d9ec4fe..d77f186d 100644 --- a/docs/IncidentSubStatusList.md +++ b/docs/IncidentSubStatusList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentSubStatusResponseData>**](IncidentSubStatusResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentSubStatusResponse.md b/docs/IncidentSubStatusResponse.md index 16166d99..548659cd 100644 --- a/docs/IncidentSubStatusResponse.md +++ b/docs/IncidentSubStatusResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentSubStatusResponseData**](IncidentSubStatusResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentTriggerParams.md b/docs/IncidentTriggerParams.md index 182853be..97976f84 100644 --- a/docs/IncidentTriggerParams.md +++ b/docs/IncidentTriggerParams.md @@ -26,6 +26,9 @@ |**incidentConditionFunctionality** | [**IncidentConditionFunctionalityEnum**](#IncidentConditionFunctionalityEnum) | | [optional] | |**incidentConditionGroup** | [**IncidentConditionGroupEnum**](#IncidentConditionGroupEnum) | | [optional] | |**incidentConditionCause** | [**IncidentConditionCauseEnum**](#IncidentConditionCauseEnum) | | [optional] | +|**incidentConditionLabel** | [**IncidentConditionLabelEnum**](#IncidentConditionLabelEnum) | | [optional] | +|**incidentConditionLabelUseRegexp** | **Boolean** | | [optional] | +|**incidentLabels** | **List<String>** | | [optional] | |**incidentPostMortemConditionCause** | [**IncidentPostMortemConditionCauseEnum**](#IncidentPostMortemConditionCauseEnum) | [DEPRECATED] Use incident_condition_cause instead | [optional] | |**incidentConditionSummary** | [**IncidentConditionSummaryEnum**](#IncidentConditionSummaryEnum) | | [optional] | |**incidentConditionStartedAt** | [**IncidentConditionStartedAtEnum**](#IncidentConditionStartedAtEnum) | | [optional] | @@ -281,6 +284,22 @@ +## Enum: IncidentConditionLabelEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + ## Enum: IncidentPostMortemConditionCauseEnum | Name | Value | diff --git a/docs/IncidentType.md b/docs/IncidentType.md index 42081e09..aa0d76dd 100644 --- a/docs/IncidentType.md +++ b/docs/IncidentType.md @@ -8,13 +8,15 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the incident type | | -|**slug** | **String** | The slug of the incident type | [optional] | +|**slug** | **String** | The slug of the incident type | [optional] [readonly] | |**description** | **String** | The description of the incident type | [optional] | +|**publicDescription** | **String** | The status page description of the incident type | [optional] | |**color** | **String** | The hex color of the incident type | [optional] | |**position** | **Integer** | Position of the incident type | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the incident type | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this incident type | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this incident type | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this incident type. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | diff --git a/docs/IncidentTypeList.md b/docs/IncidentTypeList.md index 0d53bc9f..ee33dfd9 100644 --- a/docs/IncidentTypeList.md +++ b/docs/IncidentTypeList.md @@ -10,6 +10,7 @@ |**data** | [**List<IncidentTypeResponseData>**](IncidentTypeResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentTypeResponse.md b/docs/IncidentTypeResponse.md index 4d0ba3e5..3a009d30 100644 --- a/docs/IncidentTypeResponse.md +++ b/docs/IncidentTypeResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**IncidentTypeResponseData**](IncidentTypeResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/IncidentTypesApi.md b/docs/IncidentTypesApi.md index b88cbb2f..3d5d04ca 100644 --- a/docs/IncidentTypesApi.md +++ b/docs/IncidentTypesApi.md @@ -5,8 +5,10 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**createIncidentType**](IncidentTypesApi.md#createIncidentType) | **POST** /v1/incident_types | Creates an incident type | +| [**createIncidentTypeCatalogProperty**](IncidentTypesApi.md#createIncidentTypeCatalogProperty) | **POST** /v1/incident_types/properties | Creates a Catalog Property | | [**deleteIncidentType**](IncidentTypesApi.md#deleteIncidentType) | **DELETE** /v1/incident_types/{id} | Delete an incident type | | [**getIncidentType**](IncidentTypesApi.md#getIncidentType) | **GET** /v1/incident_types/{id} | Retrieves an incident type | +| [**listIncidentTypeCatalogProperties**](IncidentTypesApi.md#listIncidentTypeCatalogProperties) | **GET** /v1/incident_types/properties | List Catalog Properties | | [**listIncidentTypes**](IncidentTypesApi.md#listIncidentTypes) | **GET** /v1/incident_types | List incident types | | [**updateIncidentType**](IncidentTypesApi.md#updateIncidentType) | **PUT** /v1/incident_types/{id} | Update an incident type | @@ -80,6 +82,75 @@ public class Example { | **422** | invalid request | - | | **401** | resource not found | - | + +# **createIncidentTypeCatalogProperty** +> CatalogPropertyResponse createIncidentTypeCatalogProperty(newCatalogProperty) + +Creates a Catalog Property + +Creates a new Catalog Property from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.IncidentTypesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + IncidentTypesApi apiInstance = new IncidentTypesApi(defaultClient); + NewCatalogProperty newCatalogProperty = new NewCatalogProperty(); // NewCatalogProperty | + try { + CatalogPropertyResponse result = apiInstance.createIncidentTypeCatalogProperty(newCatalogProperty); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling IncidentTypesApi#createIncidentTypeCatalogProperty"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newCatalogProperty** | [**NewCatalogProperty**](NewCatalogProperty.md)| | | + +### Return type + +[**CatalogPropertyResponse**](CatalogPropertyResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | catalog_property created ignores wrong catalog_type attribute | - | +| **422** | exceeds max fields per catalog | - | +| **401** | responds with unauthorized for invalid token | - | + # **deleteIncidentType** > IncidentTypeResponse deleteIncidentType(id) @@ -216,9 +287,96 @@ public class Example { | **200** | incident_type found by slug | - | | **404** | resource not found | - | + +# **listIncidentTypeCatalogProperties** +> CatalogPropertyList listIncidentTypeCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) + +List Catalog Properties + +List IncidentType Catalog Properties + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.IncidentTypesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + IncidentTypesApi apiInstance = new IncidentTypesApi(defaultClient); + String include = "catalog"; // String | comma separated if needed. eg: catalog + String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + String filterSlug = "filterSlug_example"; // String | + String filterName = "filterName_example"; // String | + String filterKind = "filterKind_example"; // String | + String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | + String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | + String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | + String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + try { + CatalogPropertyList result = apiInstance.listIncidentTypeCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling IncidentTypesApi#listIncidentTypeCatalogProperties"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include** | **String**| comma separated if needed. eg: catalog | [optional] [enum: catalog] | +| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | +| **filterSlug** | **String**| | [optional] | +| **filterName** | **String**| | [optional] | +| **filterKind** | **String**| | [optional] | +| **filterCreatedAtGt** | **String**| | [optional] | +| **filterCreatedAtGte** | **String**| | [optional] | +| **filterCreatedAtLt** | **String**| | [optional] | +| **filterCreatedAtLte** | **String**| | [optional] | + +### Return type + +[**CatalogPropertyList**](CatalogPropertyList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + # **listIncidentTypes** -> IncidentTypeList listIncidentTypes(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> IncidentTypeList listIncidentTypes(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort) List incident types @@ -254,9 +412,21 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterColorEq = "filterColorEq_example"; // String | + String filterColorNotEq = "filterColorNotEq_example"; // String | + String filterColorIn = "filterColorIn_example"; // String | + String filterColorNotIn = "filterColorNotIn_example"; // String | String sort = "sort_example"; // String | try { - IncidentTypeList result = apiInstance.listIncidentTypes(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + IncidentTypeList result = apiInstance.listIncidentTypes(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling IncidentTypesApi#listIncidentTypes"); @@ -283,6 +453,18 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterColorEq** | **String**| | [optional] | +| **filterColorNotEq** | **String**| | [optional] | +| **filterColorIn** | **String**| | [optional] | +| **filterColorNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/IncidentsApi.md b/docs/IncidentsApi.md index 17bb8021..e7bb43e0 100644 --- a/docs/IncidentsApi.md +++ b/docs/IncidentsApi.md @@ -9,6 +9,7 @@ All URIs are relative to *https://api.rootly.com* | [**cancelIncident**](IncidentsApi.md#cancelIncident) | **PUT** /v1/incidents/{id}/cancel | Cancel an incident | | [**createIncident**](IncidentsApi.md#createIncident) | **POST** /v1/incidents | Creates an incident | | [**deleteIncident**](IncidentsApi.md#deleteIncident) | **DELETE** /v1/incidents/{id} | Delete an incident | +| [**detachFromParentIncident**](IncidentsApi.md#detachFromParentIncident) | **PUT** /v1/incidents/{id}/detach_from_parent | Detach an incident from its parent | | [**getIncident**](IncidentsApi.md#getIncident) | **GET** /v1/incidents/{id} | Retrieves an incident | | [**listIncidents**](IncidentsApi.md#listIncidents) | **GET** /v1/incidents | List incidents | | [**markAsDuplicateIncident**](IncidentsApi.md#markAsDuplicateIncident) | **PUT** /v1/incidents/{id}/duplicate | Mark an incident as a duplicate | @@ -18,6 +19,7 @@ All URIs are relative to *https://api.rootly.com* | [**resolveIncident**](IncidentsApi.md#resolveIncident) | **PUT** /v1/incidents/{id}/resolve | Resolve an incident | | [**restartIncident**](IncidentsApi.md#restartIncident) | **PUT** /v1/incidents/{id}/restart | Restart an incident | | [**triageIncident**](IncidentsApi.md#triageIncident) | **PUT** /v1/incidents/{id}/in_triage | Triage an incident | +| [**unmarkAsDuplicateIncident**](IncidentsApi.md#unmarkAsDuplicateIncident) | **PUT** /v1/incidents/{id}/unmark_as_duplicate | Remove duplicate marking from an incident | | [**updateIncident**](IncidentsApi.md#updateIncident) | **PUT** /v1/incidents/{id} | Update an incident | @@ -368,6 +370,75 @@ public class Example { | **200** | incident deleted | - | | **404** | resource not found | - | + +# **detachFromParentIncident** +> IncidentResponse detachFromParentIncident(id) + +Detach an incident from its parent + +Detach a sub-incident from its parent incident + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.IncidentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + IncidentsApi apiInstance = new IncidentsApi(defaultClient); + GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | + try { + IncidentResponse result = apiInstance.detachFromParentIncident(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling IncidentsApi#detachFromParentIncident"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | [**GetAlertFieldIdParameter**](.md)| | | + +### Return type + +[**IncidentResponse**](IncidentResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | incident detached from parent | - | +| **422** | incident has no parent | - | +| **404** | resource not found | - | + # **getIncident** > IncidentResponse getIncident(id, include) @@ -440,7 +511,7 @@ public class Example { # **listIncidents** -> IncidentList listIncidents(pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterServices, filterServiceIds, filterTeams, filterTeamIds, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, sort, include) +> IncidentList listIncidents(pageAfter, pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterFunctionalityNames, filterServices, filterServiceIds, filterServiceNames, filterTeams, filterTeamIds, filterTeamNames, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterSlackChannelId, filterSequentialId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterPrivateEq, filterPrivateNotEq, filterPrivateIn, filterPrivateNotIn, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterSeverityIdEq, filterSeverityIdNotEq, filterSeverityIdIn, filterSeverityIdNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterZendeskTicketIdEq, filterZendeskTicketIdNotEq, filterZendeskTicketIdIn, filterZendeskTicketIdNotIn, filterSequentialIdEq, filterSequentialIdNotEq, filterSequentialIdIn, filterSequentialIdNotIn, filterTypesEq, filterTypesNotEq, filterTypesIn, filterTypesNotIn, filterTypeIdsEq, filterTypeIdsNotEq, filterTypeIdsIn, filterTypeIdsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterEnvironmentIdsEq, filterEnvironmentIdsNotEq, filterEnvironmentIdsIn, filterEnvironmentIdsNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterServiceIdsEq, filterServiceIdsNotEq, filterServiceIdsIn, filterServiceIdsNotIn, filterServiceNamesEq, filterServiceNamesNotEq, filterServiceNamesIn, filterServiceNamesNotIn, filterFunctionalitiesEq, filterFunctionalitiesNotEq, filterFunctionalitiesIn, filterFunctionalitiesNotIn, filterFunctionalityIdsEq, filterFunctionalityIdsNotEq, filterFunctionalityIdsIn, filterFunctionalityIdsNotIn, filterFunctionalityNamesEq, filterFunctionalityNamesNotEq, filterFunctionalityNamesIn, filterFunctionalityNamesNotIn, filterCausesEq, filterCausesNotEq, filterCausesIn, filterCausesNotIn, filterCauseIdsEq, filterCauseIdsNotEq, filterCauseIdsIn, filterCauseIdsNotIn, filterTeamsEq, filterTeamsNotEq, filterTeamsIn, filterTeamsNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, filterTeamNamesEq, filterTeamNamesNotEq, filterTeamNamesIn, filterTeamNamesNotIn, sort, include) List incidents @@ -466,6 +537,7 @@ public class Example { bearer_auth.setBearerToken("BEARER TOKEN"); IncidentsApi apiInstance = new IncidentsApi(defaultClient); + String pageAfter = "pageAfter_example"; // String | The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | String filterSearch = "filterSearch_example"; // String | @@ -482,13 +554,18 @@ public class Example { String filterEnvironmentIds = "filterEnvironmentIds_example"; // String | String filterFunctionalities = "filterFunctionalities_example"; // String | String filterFunctionalityIds = "filterFunctionalityIds_example"; // String | + String filterFunctionalityNames = "filterFunctionalityNames_example"; // String | String filterServices = "filterServices_example"; // String | String filterServiceIds = "filterServiceIds_example"; // String | + String filterServiceNames = "filterServiceNames_example"; // String | String filterTeams = "filterTeams_example"; // String | String filterTeamIds = "filterTeamIds_example"; // String | + String filterTeamNames = "filterTeamNames_example"; // String | String filterCause = "filterCause_example"; // String | String filterCauseIds = "filterCauseIds_example"; // String | String filterCustomFieldSelectedOptionIds = "filterCustomFieldSelectedOptionIds_example"; // String | + String filterSlackChannelId = "filterSlackChannelId_example"; // String | + String filterSequentialId = "filterSequentialId_example"; // String | Filter by the human-readable incident number (the 123 in INC-123). String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | @@ -525,10 +602,106 @@ public class Example { String filterInTriageAtGte = "filterInTriageAtGte_example"; // String | String filterInTriageAtLt = "filterInTriageAtLt_example"; // String | String filterInTriageAtLte = "filterInTriageAtLte_example"; // String | + String filterKindEq = "filterKindEq_example"; // String | + String filterKindNotEq = "filterKindNotEq_example"; // String | + String filterKindIn = "filterKindIn_example"; // String | + String filterKindNotIn = "filterKindNotIn_example"; // String | + String filterStatusEq = "filterStatusEq_example"; // String | + String filterStatusNotEq = "filterStatusNotEq_example"; // String | + String filterStatusIn = "filterStatusIn_example"; // String | + String filterStatusNotIn = "filterStatusNotIn_example"; // String | + String filterPrivateEq = "filterPrivateEq_example"; // String | + String filterPrivateNotEq = "filterPrivateNotEq_example"; // String | + String filterPrivateIn = "filterPrivateIn_example"; // String | + String filterPrivateNotIn = "filterPrivateNotIn_example"; // String | + String filterUserIdEq = "filterUserIdEq_example"; // String | + String filterUserIdNotEq = "filterUserIdNotEq_example"; // String | + String filterUserIdIn = "filterUserIdIn_example"; // String | + String filterUserIdNotIn = "filterUserIdNotIn_example"; // String | + String filterSeverityEq = "filterSeverityEq_example"; // String | + String filterSeverityNotEq = "filterSeverityNotEq_example"; // String | + String filterSeverityIn = "filterSeverityIn_example"; // String | + String filterSeverityNotIn = "filterSeverityNotIn_example"; // String | + String filterSeverityIdEq = "filterSeverityIdEq_example"; // String | + String filterSeverityIdNotEq = "filterSeverityIdNotEq_example"; // String | + String filterSeverityIdIn = "filterSeverityIdIn_example"; // String | + String filterSeverityIdNotIn = "filterSeverityIdNotIn_example"; // String | + String filterLabelsEq = "filterLabelsEq_example"; // String | + String filterLabelsNotEq = "filterLabelsNotEq_example"; // String | + String filterLabelsIn = "filterLabelsIn_example"; // String | + String filterLabelsNotIn = "filterLabelsNotIn_example"; // String | + String filterZendeskTicketIdEq = "filterZendeskTicketIdEq_example"; // String | + String filterZendeskTicketIdNotEq = "filterZendeskTicketIdNotEq_example"; // String | + String filterZendeskTicketIdIn = "filterZendeskTicketIdIn_example"; // String | + String filterZendeskTicketIdNotIn = "filterZendeskTicketIdNotIn_example"; // String | + String filterSequentialIdEq = "filterSequentialIdEq_example"; // String | + String filterSequentialIdNotEq = "filterSequentialIdNotEq_example"; // String | + String filterSequentialIdIn = "filterSequentialIdIn_example"; // String | + String filterSequentialIdNotIn = "filterSequentialIdNotIn_example"; // String | + String filterTypesEq = "filterTypesEq_example"; // String | + String filterTypesNotEq = "filterTypesNotEq_example"; // String | + String filterTypesIn = "filterTypesIn_example"; // String | + String filterTypesNotIn = "filterTypesNotIn_example"; // String | + String filterTypeIdsEq = "filterTypeIdsEq_example"; // String | + String filterTypeIdsNotEq = "filterTypeIdsNotEq_example"; // String | + String filterTypeIdsIn = "filterTypeIdsIn_example"; // String | + String filterTypeIdsNotIn = "filterTypeIdsNotIn_example"; // String | + String filterEnvironmentsEq = "filterEnvironmentsEq_example"; // String | + String filterEnvironmentsNotEq = "filterEnvironmentsNotEq_example"; // String | + String filterEnvironmentsIn = "filterEnvironmentsIn_example"; // String | + String filterEnvironmentsNotIn = "filterEnvironmentsNotIn_example"; // String | + String filterEnvironmentIdsEq = "filterEnvironmentIdsEq_example"; // String | + String filterEnvironmentIdsNotEq = "filterEnvironmentIdsNotEq_example"; // String | + String filterEnvironmentIdsIn = "filterEnvironmentIdsIn_example"; // String | + String filterEnvironmentIdsNotIn = "filterEnvironmentIdsNotIn_example"; // String | + String filterServicesEq = "filterServicesEq_example"; // String | + String filterServicesNotEq = "filterServicesNotEq_example"; // String | + String filterServicesIn = "filterServicesIn_example"; // String | + String filterServicesNotIn = "filterServicesNotIn_example"; // String | + String filterServiceIdsEq = "filterServiceIdsEq_example"; // String | + String filterServiceIdsNotEq = "filterServiceIdsNotEq_example"; // String | + String filterServiceIdsIn = "filterServiceIdsIn_example"; // String | + String filterServiceIdsNotIn = "filterServiceIdsNotIn_example"; // String | + String filterServiceNamesEq = "filterServiceNamesEq_example"; // String | + String filterServiceNamesNotEq = "filterServiceNamesNotEq_example"; // String | + String filterServiceNamesIn = "filterServiceNamesIn_example"; // String | + String filterServiceNamesNotIn = "filterServiceNamesNotIn_example"; // String | + String filterFunctionalitiesEq = "filterFunctionalitiesEq_example"; // String | + String filterFunctionalitiesNotEq = "filterFunctionalitiesNotEq_example"; // String | + String filterFunctionalitiesIn = "filterFunctionalitiesIn_example"; // String | + String filterFunctionalitiesNotIn = "filterFunctionalitiesNotIn_example"; // String | + String filterFunctionalityIdsEq = "filterFunctionalityIdsEq_example"; // String | + String filterFunctionalityIdsNotEq = "filterFunctionalityIdsNotEq_example"; // String | + String filterFunctionalityIdsIn = "filterFunctionalityIdsIn_example"; // String | + String filterFunctionalityIdsNotIn = "filterFunctionalityIdsNotIn_example"; // String | + String filterFunctionalityNamesEq = "filterFunctionalityNamesEq_example"; // String | + String filterFunctionalityNamesNotEq = "filterFunctionalityNamesNotEq_example"; // String | + String filterFunctionalityNamesIn = "filterFunctionalityNamesIn_example"; // String | + String filterFunctionalityNamesNotIn = "filterFunctionalityNamesNotIn_example"; // String | + String filterCausesEq = "filterCausesEq_example"; // String | + String filterCausesNotEq = "filterCausesNotEq_example"; // String | + String filterCausesIn = "filterCausesIn_example"; // String | + String filterCausesNotIn = "filterCausesNotIn_example"; // String | + String filterCauseIdsEq = "filterCauseIdsEq_example"; // String | + String filterCauseIdsNotEq = "filterCauseIdsNotEq_example"; // String | + String filterCauseIdsIn = "filterCauseIdsIn_example"; // String | + String filterCauseIdsNotIn = "filterCauseIdsNotIn_example"; // String | + String filterTeamsEq = "filterTeamsEq_example"; // String | + String filterTeamsNotEq = "filterTeamsNotEq_example"; // String | + String filterTeamsIn = "filterTeamsIn_example"; // String | + String filterTeamsNotIn = "filterTeamsNotIn_example"; // String | + String filterTeamIdsEq = "filterTeamIdsEq_example"; // String | + String filterTeamIdsNotEq = "filterTeamIdsNotEq_example"; // String | + String filterTeamIdsIn = "filterTeamIdsIn_example"; // String | + String filterTeamIdsNotIn = "filterTeamIdsNotIn_example"; // String | + String filterTeamNamesEq = "filterTeamNamesEq_example"; // String | + String filterTeamNamesNotEq = "filterTeamNamesNotEq_example"; // String | + String filterTeamNamesIn = "filterTeamNamesIn_example"; // String | + String filterTeamNamesNotIn = "filterTeamNamesNotIn_example"; // String | String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at String include = "sub_statuses"; // String | comma separated if needed. eg: sub_statuses,causes,subscribers try { - IncidentList result = apiInstance.listIncidents(pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterServices, filterServiceIds, filterTeams, filterTeamIds, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, sort, include); + IncidentList result = apiInstance.listIncidents(pageAfter, pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterFunctionalityNames, filterServices, filterServiceIds, filterServiceNames, filterTeams, filterTeamIds, filterTeamNames, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterSlackChannelId, filterSequentialId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterPrivateEq, filterPrivateNotEq, filterPrivateIn, filterPrivateNotIn, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterSeverityIdEq, filterSeverityIdNotEq, filterSeverityIdIn, filterSeverityIdNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterZendeskTicketIdEq, filterZendeskTicketIdNotEq, filterZendeskTicketIdIn, filterZendeskTicketIdNotIn, filterSequentialIdEq, filterSequentialIdNotEq, filterSequentialIdIn, filterSequentialIdNotIn, filterTypesEq, filterTypesNotEq, filterTypesIn, filterTypesNotIn, filterTypeIdsEq, filterTypeIdsNotEq, filterTypeIdsIn, filterTypeIdsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterEnvironmentIdsEq, filterEnvironmentIdsNotEq, filterEnvironmentIdsIn, filterEnvironmentIdsNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterServiceIdsEq, filterServiceIdsNotEq, filterServiceIdsIn, filterServiceIdsNotIn, filterServiceNamesEq, filterServiceNamesNotEq, filterServiceNamesIn, filterServiceNamesNotIn, filterFunctionalitiesEq, filterFunctionalitiesNotEq, filterFunctionalitiesIn, filterFunctionalitiesNotIn, filterFunctionalityIdsEq, filterFunctionalityIdsNotEq, filterFunctionalityIdsIn, filterFunctionalityIdsNotIn, filterFunctionalityNamesEq, filterFunctionalityNamesNotEq, filterFunctionalityNamesIn, filterFunctionalityNamesNotIn, filterCausesEq, filterCausesNotEq, filterCausesIn, filterCausesNotIn, filterCauseIdsEq, filterCauseIdsNotEq, filterCauseIdsIn, filterCauseIdsNotIn, filterTeamsEq, filterTeamsNotEq, filterTeamsIn, filterTeamsNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, filterTeamNamesEq, filterTeamNamesNotEq, filterTeamNamesIn, filterTeamNamesNotIn, sort, include); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling IncidentsApi#listIncidents"); @@ -545,6 +718,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| +| **pageAfter** | **String**| The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. | [optional] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | | **filterSearch** | **String**| | [optional] | @@ -561,13 +735,18 @@ public class Example { | **filterEnvironmentIds** | **String**| | [optional] | | **filterFunctionalities** | **String**| | [optional] | | **filterFunctionalityIds** | **String**| | [optional] | +| **filterFunctionalityNames** | **String**| | [optional] | | **filterServices** | **String**| | [optional] | | **filterServiceIds** | **String**| | [optional] | +| **filterServiceNames** | **String**| | [optional] | | **filterTeams** | **String**| | [optional] | | **filterTeamIds** | **String**| | [optional] | +| **filterTeamNames** | **String**| | [optional] | | **filterCause** | **String**| | [optional] | | **filterCauseIds** | **String**| | [optional] | | **filterCustomFieldSelectedOptionIds** | **String**| | [optional] | +| **filterSlackChannelId** | **String**| | [optional] | +| **filterSequentialId** | **String**| Filter by the human-readable incident number (the 123 in INC-123). | [optional] | | **filterCreatedAtGt** | **String**| | [optional] | | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | @@ -604,7 +783,103 @@ public class Example { | **filterInTriageAtGte** | **String**| | [optional] | | **filterInTriageAtLt** | **String**| | [optional] | | **filterInTriageAtLte** | **String**| | [optional] | -| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at] | +| **filterKindEq** | **String**| | [optional] | +| **filterKindNotEq** | **String**| | [optional] | +| **filterKindIn** | **String**| | [optional] | +| **filterKindNotIn** | **String**| | [optional] | +| **filterStatusEq** | **String**| | [optional] | +| **filterStatusNotEq** | **String**| | [optional] | +| **filterStatusIn** | **String**| | [optional] | +| **filterStatusNotIn** | **String**| | [optional] | +| **filterPrivateEq** | **String**| | [optional] | +| **filterPrivateNotEq** | **String**| | [optional] | +| **filterPrivateIn** | **String**| | [optional] | +| **filterPrivateNotIn** | **String**| | [optional] | +| **filterUserIdEq** | **String**| | [optional] | +| **filterUserIdNotEq** | **String**| | [optional] | +| **filterUserIdIn** | **String**| | [optional] | +| **filterUserIdNotIn** | **String**| | [optional] | +| **filterSeverityEq** | **String**| | [optional] | +| **filterSeverityNotEq** | **String**| | [optional] | +| **filterSeverityIn** | **String**| | [optional] | +| **filterSeverityNotIn** | **String**| | [optional] | +| **filterSeverityIdEq** | **String**| | [optional] | +| **filterSeverityIdNotEq** | **String**| | [optional] | +| **filterSeverityIdIn** | **String**| | [optional] | +| **filterSeverityIdNotIn** | **String**| | [optional] | +| **filterLabelsEq** | **String**| | [optional] | +| **filterLabelsNotEq** | **String**| | [optional] | +| **filterLabelsIn** | **String**| | [optional] | +| **filterLabelsNotIn** | **String**| | [optional] | +| **filterZendeskTicketIdEq** | **String**| | [optional] | +| **filterZendeskTicketIdNotEq** | **String**| | [optional] | +| **filterZendeskTicketIdIn** | **String**| | [optional] | +| **filterZendeskTicketIdNotIn** | **String**| | [optional] | +| **filterSequentialIdEq** | **String**| | [optional] | +| **filterSequentialIdNotEq** | **String**| | [optional] | +| **filterSequentialIdIn** | **String**| | [optional] | +| **filterSequentialIdNotIn** | **String**| | [optional] | +| **filterTypesEq** | **String**| | [optional] | +| **filterTypesNotEq** | **String**| | [optional] | +| **filterTypesIn** | **String**| | [optional] | +| **filterTypesNotIn** | **String**| | [optional] | +| **filterTypeIdsEq** | **String**| | [optional] | +| **filterTypeIdsNotEq** | **String**| | [optional] | +| **filterTypeIdsIn** | **String**| | [optional] | +| **filterTypeIdsNotIn** | **String**| | [optional] | +| **filterEnvironmentsEq** | **String**| | [optional] | +| **filterEnvironmentsNotEq** | **String**| | [optional] | +| **filterEnvironmentsIn** | **String**| | [optional] | +| **filterEnvironmentsNotIn** | **String**| | [optional] | +| **filterEnvironmentIdsEq** | **String**| | [optional] | +| **filterEnvironmentIdsNotEq** | **String**| | [optional] | +| **filterEnvironmentIdsIn** | **String**| | [optional] | +| **filterEnvironmentIdsNotIn** | **String**| | [optional] | +| **filterServicesEq** | **String**| | [optional] | +| **filterServicesNotEq** | **String**| | [optional] | +| **filterServicesIn** | **String**| | [optional] | +| **filterServicesNotIn** | **String**| | [optional] | +| **filterServiceIdsEq** | **String**| | [optional] | +| **filterServiceIdsNotEq** | **String**| | [optional] | +| **filterServiceIdsIn** | **String**| | [optional] | +| **filterServiceIdsNotIn** | **String**| | [optional] | +| **filterServiceNamesEq** | **String**| | [optional] | +| **filterServiceNamesNotEq** | **String**| | [optional] | +| **filterServiceNamesIn** | **String**| | [optional] | +| **filterServiceNamesNotIn** | **String**| | [optional] | +| **filterFunctionalitiesEq** | **String**| | [optional] | +| **filterFunctionalitiesNotEq** | **String**| | [optional] | +| **filterFunctionalitiesIn** | **String**| | [optional] | +| **filterFunctionalitiesNotIn** | **String**| | [optional] | +| **filterFunctionalityIdsEq** | **String**| | [optional] | +| **filterFunctionalityIdsNotEq** | **String**| | [optional] | +| **filterFunctionalityIdsIn** | **String**| | [optional] | +| **filterFunctionalityIdsNotIn** | **String**| | [optional] | +| **filterFunctionalityNamesEq** | **String**| | [optional] | +| **filterFunctionalityNamesNotEq** | **String**| | [optional] | +| **filterFunctionalityNamesIn** | **String**| | [optional] | +| **filterFunctionalityNamesNotIn** | **String**| | [optional] | +| **filterCausesEq** | **String**| | [optional] | +| **filterCausesNotEq** | **String**| | [optional] | +| **filterCausesIn** | **String**| | [optional] | +| **filterCausesNotIn** | **String**| | [optional] | +| **filterCauseIdsEq** | **String**| | [optional] | +| **filterCauseIdsNotEq** | **String**| | [optional] | +| **filterCauseIdsIn** | **String**| | [optional] | +| **filterCauseIdsNotIn** | **String**| | [optional] | +| **filterTeamsEq** | **String**| | [optional] | +| **filterTeamsNotEq** | **String**| | [optional] | +| **filterTeamsIn** | **String**| | [optional] | +| **filterTeamsNotIn** | **String**| | [optional] | +| **filterTeamIdsEq** | **String**| | [optional] | +| **filterTeamIdsNotEq** | **String**| | [optional] | +| **filterTeamIdsIn** | **String**| | [optional] | +| **filterTeamIdsNotIn** | **String**| | [optional] | +| **filterTeamNamesEq** | **String**| | [optional] | +| **filterTeamNamesNotEq** | **String**| | [optional] | +| **filterTeamNamesIn** | **String**| | [optional] | +| **filterTeamNamesNotIn** | **String**| | [optional] | +| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, started_at, -started_at, in_triage_at, -in_triage_at, mitigated_at, -mitigated_at, resolved_at, -resolved_at] | | **include** | **String**| comma separated if needed. eg: sub_statuses,causes,subscribers | [optional] [enum: sub_statuses, causes, subscribers, roles, slack_messages, environments, incident_types, services, functionalities, groups, events, action_items, custom_field_selections, feedbacks, incident_post_mortem, alerts] | ### Return type @@ -624,6 +899,7 @@ public class Example { | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | success | - | +| **400** | malformed date filter | - | # **markAsDuplicateIncident** @@ -1115,6 +1391,75 @@ public class Example { | **200** | incident set to triage | - | | **404** | resource not found | - | + +# **unmarkAsDuplicateIncident** +> IncidentResponse unmarkAsDuplicateIncident(id) + +Remove duplicate marking from an incident + +Remove the duplicate marking from an incident + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.IncidentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + IncidentsApi apiInstance = new IncidentsApi(defaultClient); + GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | + try { + IncidentResponse result = apiInstance.unmarkAsDuplicateIncident(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling IncidentsApi#unmarkAsDuplicateIncident"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | [**GetAlertFieldIdParameter**](.md)| | | + +### Return type + +[**IncidentResponse**](IncidentResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | duplicate marking removed | - | +| **422** | incident is not marked as duplicate | - | +| **404** | resource not found | - | + # **updateIncident** > IncidentResponse updateIncident(id, updateIncident) diff --git a/docs/IncidentsChartResponse.md b/docs/IncidentsChartResponse.md new file mode 100644 index 00000000..7a9375c1 --- /dev/null +++ b/docs/IncidentsChartResponse.md @@ -0,0 +1,13 @@ + + +# IncidentsChartResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **Object** | | | + + + diff --git a/docs/InviteToGoogleChatSpaceTaskParams.md b/docs/InviteToGoogleChatSpaceTaskParams.md new file mode 100644 index 00000000..55274751 --- /dev/null +++ b/docs/InviteToGoogleChatSpaceTaskParams.md @@ -0,0 +1,23 @@ + + +# InviteToGoogleChatSpaceTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**space** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**emails** | **String** | Comma separated list of emails to invite | | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| INVITE_TO_GOOGLE_CHAT_SPACE | "invite_to_google_chat_space" | + + + diff --git a/docs/InviteToMicrosoftTeamsChannelRootlyTaskParams.md b/docs/InviteToMicrosoftTeamsChannelRootlyTaskParams.md new file mode 100644 index 00000000..f9a5ca81 --- /dev/null +++ b/docs/InviteToMicrosoftTeamsChannelRootlyTaskParams.md @@ -0,0 +1,28 @@ + + +# InviteToMicrosoftTeamsChannelRootlyTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**team** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**channel** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**escalationPolicyTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**scheduleTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| INVITE_TO_MICROSOFT_TEAMS_CHANNEL_ROOTLY | "invite_to_microsoft_teams_channel_rootly" | + + + diff --git a/docs/InviteToSlackChannelTaskParamsAnyOf.md b/docs/InviteToSlackChannelTaskParamsAnyOf.md new file mode 100644 index 00000000..17058dd1 --- /dev/null +++ b/docs/InviteToSlackChannelTaskParamsAnyOf.md @@ -0,0 +1,13 @@ + + +# InviteToSlackChannelTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**slackUsers** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/InviteToSlackChannelTaskParamsAnyOf1.md b/docs/InviteToSlackChannelTaskParamsAnyOf1.md new file mode 100644 index 00000000..53b782b0 --- /dev/null +++ b/docs/InviteToSlackChannelTaskParamsAnyOf1.md @@ -0,0 +1,13 @@ + + +# InviteToSlackChannelTaskParamsAnyOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**slackUserGroups** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/InviteToSlackChannelTaskParamsAnyOf2.md b/docs/InviteToSlackChannelTaskParamsAnyOf2.md new file mode 100644 index 00000000..e0a72c30 --- /dev/null +++ b/docs/InviteToSlackChannelTaskParamsAnyOf2.md @@ -0,0 +1,13 @@ + + +# InviteToSlackChannelTaskParamsAnyOf2 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**slackEmails** | **String** | | | + + + diff --git a/docs/JsonapiIncludedResource.md b/docs/JsonapiIncludedResource.md new file mode 100644 index 00000000..40e39795 --- /dev/null +++ b/docs/JsonapiIncludedResource.md @@ -0,0 +1,16 @@ + + +# JsonapiIncludedResource + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | | +|**type** | **String** | | | +|**attributes** | **Map<String, Object>** | | [optional] | +|**relationships** | **Map<String, Object>** | | [optional] | + + + diff --git a/docs/LiveCallRouter.md b/docs/LiveCallRouter.md index 8aef260f..6ffca8ff 100644 --- a/docs/LiveCallRouter.md +++ b/docs/LiveCallRouter.md @@ -15,11 +15,15 @@ |**phoneNumber** | **String** | You can select a phone number using [generate_phone_number](#//api/v1/live_call_routers/generate_phone_number) API and pass that phone number here to register | [optional] | |**voicemailGreeting** | **String** | The voicemail greeting of the live_call_router | [optional] | |**callerGreeting** | **String** | The caller greeting message of the live_call_router | [optional] | +|**unavailableResponderMessage** | **String** | The message played to the caller when a responder doesn't answer and the call moves on to the next person in the escalation. Leave blank to use the default message. | [optional] | |**waitingMusicUrl** | [**WaitingMusicUrlEnum**](#WaitingMusicUrlEnum) | The waiting music URL of the live_call_router | [optional] | |**sentToVoicemailDelay** | **Integer** | The delay (seconds) after which the caller in redirected to voicemail | [optional] | |**shouldRedirectToVoicemailOnNoAnswer** | **Boolean** | This prompts the caller to choose voicemail or connect live | [optional] | |**escalationLevelDelayInSeconds** | **Integer** | This overrides the delay (seconds) in escalation levels | [optional] | |**shouldAutoResolveAlertOnCallEnd** | **Boolean** | This overrides the delay (seconds) in escalation levels | [optional] | +|**notifyViaSms** | **Boolean** | Whether responders are also notified via SMS when this router pages them | [optional] | +|**notifyViaPushNotification** | **Boolean** | Whether responders are also notified via push notification when this router pages them | [optional] | +|**informationalNotificationMessage** | **String** | Optional message included in the SMS/push notification. Supports variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name }}. | [optional] | |**alertUrgencyId** | **String** | This is used in escalation paths to determine who to page | [optional] | |**callingTreePrompt** | **String** | The audio instructions callers will hear when they call this number, prompting them to select from available options to route their call | [optional] | |**pagingTargets** | [**List<NewLiveCallRouterDataAttributesPagingTargetsInner>**](NewLiveCallRouterDataAttributesPagingTargetsInner.md) | Paging targets that callers can select from when this live call router is configured as a phone tree. | [optional] | @@ -47,6 +51,8 @@ | DE | "DE" | | NL | "NL" | | NZ | "NZ" | +| SE | "SE" | +| CH | "CH" | | GB | "GB" | | US | "US" | diff --git a/docs/LiveCallRouterList.md b/docs/LiveCallRouterList.md index fa47c79c..14f39fd1 100644 --- a/docs/LiveCallRouterList.md +++ b/docs/LiveCallRouterList.md @@ -10,6 +10,7 @@ |**data** | [**List<LiveCallRouterResponseData>**](LiveCallRouterResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/LiveCallRouterResponse.md b/docs/LiveCallRouterResponse.md index 6a3944de..1d48a2d1 100644 --- a/docs/LiveCallRouterResponse.md +++ b/docs/LiveCallRouterResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**LiveCallRouterResponseData**](LiveCallRouterResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/LiveCallRoutersApi.md b/docs/LiveCallRoutersApi.md index f530d069..a995bc9d 100644 --- a/docs/LiveCallRoutersApi.md +++ b/docs/LiveCallRoutersApi.md @@ -77,7 +77,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | live_call_router created with multiple notification targets | - | +| **201** | live_call_router created with multiple targets without calling_tree_enabled (backward compat) | - | | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | @@ -196,7 +196,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **countryCode** | **String**| | [enum: AU, CA, DE, NL, NZ, GB, US] | +| **countryCode** | **String**| | [enum: AU, CA, DE, NL, NZ, SE, CH, GB, US] | | **phoneType** | **String**| | [enum: local, toll_free, mobile] | ### Return type @@ -440,6 +440,6 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | live_call_router updated | - | +| **200** | live_call_router multichannel notification fields updated | - | | **404** | resource not found | - | diff --git a/docs/MeetingRecording.md b/docs/MeetingRecording.md index bcfb6962..7f26d5bc 100644 --- a/docs/MeetingRecording.md +++ b/docs/MeetingRecording.md @@ -16,7 +16,10 @@ |**speakerCount** | **Integer** | Number of unique speakers detected in the transcript | [optional] | |**wordCount** | **Integer** | Total word count across all transcript segments | [optional] | |**transcriptSummary** | **String** | AI-generated summary of the meeting transcript (null if no transcript or not yet analyzed) | [optional] | -|**hasVideo** | **Boolean** | Whether a video recording file is attached | [optional] | +|**title** | **String** | Human-readable label for the recording session | [optional] | +|**meetingUrl** | **String** | Original meeting URL | [optional] | +|**videoUrl** | **String** | Signed URL to stream/download the video recording | [optional] | +|**createdBy** | **String** | Source that created the recording (e.g. desktop_sdk, recall_bot) | [optional] | |**createdAt** | **OffsetDateTime** | When the recording session was created | | |**updatedAt** | **OffsetDateTime** | When the recording session was last updated | | diff --git a/docs/MeetingRecordingDetail.md b/docs/MeetingRecordingDetail.md new file mode 100644 index 00000000..c6e6a2b3 --- /dev/null +++ b/docs/MeetingRecordingDetail.md @@ -0,0 +1,56 @@ + + +# MeetingRecordingDetail + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**platform** | [**PlatformEnum**](#PlatformEnum) | Meeting platform | | +|**sessionNumber** | **Integer** | Session number within the incident for this platform (starts at 1, increments on re-invite) | | +|**status** | [**StatusEnum**](#StatusEnum) | Current recording lifecycle status | | +|**startedAt** | **OffsetDateTime** | When the bot started recording (null if bot never joined) | [optional] | +|**endedAt** | **OffsetDateTime** | When the recording ended | [optional] | +|**durationMinutes** | **BigDecimal** | Recording duration in minutes (null if not started) | [optional] | +|**speakerCount** | **Integer** | Number of unique speakers detected in the transcript | [optional] | +|**wordCount** | **Integer** | Total word count across all transcript segments | [optional] | +|**transcriptSummary** | **String** | AI-generated summary of the meeting transcript (null if no transcript or not yet analyzed) | [optional] | +|**title** | **String** | Human-readable label for the recording session | [optional] | +|**meetingUrl** | **String** | Original meeting URL | [optional] | +|**videoUrl** | **String** | Signed URL to stream/download the video recording | [optional] | +|**createdBy** | **String** | Source that created the recording (e.g. desktop_sdk, recall_bot) | [optional] | +|**createdAt** | **OffsetDateTime** | When the recording session was created | | +|**updatedAt** | **OffsetDateTime** | When the recording session was last updated | | +|**transcript** | [**MeetingRecordingDetailAllOfTranscript**](MeetingRecordingDetailAllOfTranscript.md) | | [optional] | +|**recallUploadId** | **String** | Recall upload identifier | [optional] | +|**recordableId** | **String** | UUID of the associated recordable (e.g. incident) | [optional] | +|**recordableType** | **String** | Type of the associated recordable (e.g. Incident) | [optional] | + + + +## Enum: PlatformEnum + +| Name | Value | +|---- | -----| +| ZOOM | "zoom" | +| GOOGLE_MEET | "google_meet" | +| MICROSOFT_TEAMS | "microsoft_teams" | +| WEBEX | "webex" | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| PENDING | "pending" | +| RECORDING | "recording" | +| PAUSED | "paused" | +| CALL_ENDED | "call_ended" | +| ANALYZING | "analyzing" | +| COMPLETED | "completed" | +| FAILED | "failed" | + + + diff --git a/docs/MeetingRecordingDetailAllOfTranscript.md b/docs/MeetingRecordingDetailAllOfTranscript.md new file mode 100644 index 00000000..2ff96b8f --- /dev/null +++ b/docs/MeetingRecordingDetailAllOfTranscript.md @@ -0,0 +1,13 @@ + + +# MeetingRecordingDetailAllOfTranscript + +Array of speaker segments when populated, empty object when no transcript exists. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| + + + diff --git a/docs/MeetingRecordingDetailResponse.md b/docs/MeetingRecordingDetailResponse.md new file mode 100644 index 00000000..b5b7c5f8 --- /dev/null +++ b/docs/MeetingRecordingDetailResponse.md @@ -0,0 +1,13 @@ + + +# MeetingRecordingDetailResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**MeetingRecordingDetailResponseData**](MeetingRecordingDetailResponseData.md) | | | + + + diff --git a/docs/MeetingRecordingDetailResponseData.md b/docs/MeetingRecordingDetailResponseData.md new file mode 100644 index 00000000..450c3f83 --- /dev/null +++ b/docs/MeetingRecordingDetailResponseData.md @@ -0,0 +1,23 @@ + + +# MeetingRecordingDetailResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique UUID of the meeting recording | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**MeetingRecordingDetail**](MeetingRecordingDetail.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| MEETING_RECORDINGS | "meeting_recordings" | + + + diff --git a/docs/MeetingRecordingList.md b/docs/MeetingRecordingList.md index 5dc06479..81802a9a 100644 --- a/docs/MeetingRecordingList.md +++ b/docs/MeetingRecordingList.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**data** | [**List<MeetingRecordingListDataInner>**](MeetingRecordingListDataInner.md) | | | +|**data** | [**List<MeetingRecordingResponseData>**](MeetingRecordingResponseData.md) | | | |**meta** | [**Meta**](Meta.md) | | [optional] | diff --git a/docs/MeetingRecordingResponse.md b/docs/MeetingRecordingResponse.md new file mode 100644 index 00000000..9969abf6 --- /dev/null +++ b/docs/MeetingRecordingResponse.md @@ -0,0 +1,13 @@ + + +# MeetingRecordingResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**MeetingRecordingResponseData**](MeetingRecordingResponseData.md) | | | + + + diff --git a/docs/MeetingRecordingResponseData.md b/docs/MeetingRecordingResponseData.md new file mode 100644 index 00000000..22fe1dc5 --- /dev/null +++ b/docs/MeetingRecordingResponseData.md @@ -0,0 +1,23 @@ + + +# MeetingRecordingResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique UUID of the meeting recording | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**MeetingRecording**](MeetingRecording.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| MEETING_RECORDINGS | "meeting_recordings" | + + + diff --git a/docs/MeetingRecordingTranscriptSegment.md b/docs/MeetingRecordingTranscriptSegment.md new file mode 100644 index 00000000..209105ad --- /dev/null +++ b/docs/MeetingRecordingTranscriptSegment.md @@ -0,0 +1,14 @@ + + +# MeetingRecordingTranscriptSegment + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**speaker** | **String** | Speaker label (e.g. Speaker 1) | | +|**words** | [**List<MeetingRecordingTranscriptWord>**](MeetingRecordingTranscriptWord.md) | Timestamped words spoken by this speaker | | + + + diff --git a/docs/MeetingRecordingTranscriptWord.md b/docs/MeetingRecordingTranscriptWord.md new file mode 100644 index 00000000..671baf25 --- /dev/null +++ b/docs/MeetingRecordingTranscriptWord.md @@ -0,0 +1,15 @@ + + +# MeetingRecordingTranscriptWord + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**text** | **String** | Transcribed word | | +|**startTimestamp** | **BigDecimal** | Start time in seconds from recording start | [optional] | +|**endTimestamp** | **BigDecimal** | End time in seconds from recording start | [optional] | + + + diff --git a/docs/MeetingRecordingsApi.md b/docs/MeetingRecordingsApi.md index c4a89a12..97a80583 100644 --- a/docs/MeetingRecordingsApi.md +++ b/docs/MeetingRecordingsApi.md @@ -7,17 +7,21 @@ All URIs are relative to *https://api.rootly.com* | [**createMeetingRecording**](MeetingRecordingsApi.md#createMeetingRecording) | **POST** /v1/incidents/{incident_id}/meeting_recordings | Create meeting recording | | [**deleteMeetingRecording**](MeetingRecordingsApi.md#deleteMeetingRecording) | **DELETE** /v1/meeting_recordings/{id} | Delete a meeting recording | | [**deleteMeetingRecordingVideo**](MeetingRecordingsApi.md#deleteMeetingRecordingVideo) | **DELETE** /v1/meeting_recordings/{id}/delete_video | Delete video from a meeting recording | +| [**deleteStandaloneMeetingRecording**](MeetingRecordingsApi.md#deleteStandaloneMeetingRecording) | **DELETE** /v1/meeting_recordings/{id}/delete_session | Delete a standalone meeting recording | | [**getMeetingRecording**](MeetingRecordingsApi.md#getMeetingRecording) | **GET** /v1/meeting_recordings/{id} | Get a meeting recording | +| [**importMeetingRecording**](MeetingRecordingsApi.md#importMeetingRecording) | **POST** /v1/incidents/{incident_id}/meeting_recordings/import | Import a meeting recording | | [**leaveMeetingRecording**](MeetingRecordingsApi.md#leaveMeetingRecording) | **POST** /v1/meeting_recordings/{id}/leave | Leave a meeting call | +| [**listAllMeetingRecordings**](MeetingRecordingsApi.md#listAllMeetingRecordings) | **GET** /v1/meeting_recordings | List all meeting recordings | | [**listMeetingRecordings**](MeetingRecordingsApi.md#listMeetingRecordings) | **GET** /v1/incidents/{incident_id}/meeting_recordings | List meeting recordings | | [**pauseMeetingRecording**](MeetingRecordingsApi.md#pauseMeetingRecording) | **POST** /v1/meeting_recordings/{id}/pause | Pause a meeting recording | | [**resumeMeetingRecording**](MeetingRecordingsApi.md#resumeMeetingRecording) | **POST** /v1/meeting_recordings/{id}/resume | Resume a meeting recording | +| [**startRecordingSession**](MeetingRecordingsApi.md#startRecordingSession) | **POST** /v1/meeting_recordings/start_session | Start a recording session | | [**stopMeetingRecording**](MeetingRecordingsApi.md#stopMeetingRecording) | **POST** /v1/meeting_recordings/{id}/stop | Stop a meeting recording | # **createMeetingRecording** -> createMeetingRecording(incidentId, platform) +> MeetingRecordingResponse createMeetingRecording(incidentId, platform) Create meeting recording @@ -46,7 +50,8 @@ public class Example { String incidentId = "incidentId_example"; // String | Incident UUID String platform = "zoom"; // String | Meeting platform try { - apiInstance.createMeetingRecording(incidentId, platform); + MeetingRecordingResponse result = apiInstance.createMeetingRecording(incidentId, platform); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#createMeetingRecording"); System.err.println("Status code: " + e.getCode()); @@ -67,7 +72,7 @@ public class Example { ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -76,7 +81,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | @@ -86,7 +91,7 @@ null (empty response body) # **deleteMeetingRecording** -> deleteMeetingRecording(id) +> MeetingRecordingResponse deleteMeetingRecording(id) Delete a meeting recording @@ -114,7 +119,8 @@ public class Example { MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); String id = "id_example"; // String | Meeting Recording UUID try { - apiInstance.deleteMeetingRecording(id); + MeetingRecordingResponse result = apiInstance.deleteMeetingRecording(id); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#deleteMeetingRecording"); System.err.println("Status code: " + e.getCode()); @@ -134,7 +140,7 @@ public class Example { ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -143,7 +149,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | @@ -153,7 +159,7 @@ null (empty response body) # **deleteMeetingRecordingVideo** -> deleteMeetingRecordingVideo(id) +> MeetingRecordingResponse deleteMeetingRecordingVideo(id) Delete video from a meeting recording @@ -181,7 +187,8 @@ public class Example { MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); String id = "id_example"; // String | Meeting Recording UUID try { - apiInstance.deleteMeetingRecordingVideo(id); + MeetingRecordingResponse result = apiInstance.deleteMeetingRecordingVideo(id); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#deleteMeetingRecordingVideo"); System.err.println("Status code: " + e.getCode()); @@ -201,7 +208,7 @@ public class Example { ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -210,7 +217,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | @@ -218,9 +225,77 @@ null (empty response body) | **200** | video deleted | - | | **422** | cannot delete video (active recording or no video) | - | + +# **deleteStandaloneMeetingRecording** +> deleteStandaloneMeetingRecording(id) + +Delete a standalone meeting recording + +Delete a standalone meeting recording (not linked to an incident). Only the recording owner can delete it. Active recordings (pending, recording, paused) must be stopped first. Returns 404 for incident-linked recordings or recordings owned by another user. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.MeetingRecordingsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); + String id = "id_example"; // String | Meeting Recording UUID + try { + apiInstance.deleteStandaloneMeetingRecording(id); + } catch (ApiException e) { + System.err.println("Exception when calling MeetingRecordingsApi#deleteStandaloneMeetingRecording"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| Meeting Recording UUID | | + +### Return type + +null (empty response body) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | recording deleted | - | +| **422** | cannot delete active recording | - | +| **404** | recording not found or not owned by user | - | + # **getMeetingRecording** -> getMeetingRecording(id) +> MeetingRecordingResponse getMeetingRecording(id, include) Get a meeting recording @@ -247,8 +322,10 @@ public class Example { MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); String id = "id_example"; // String | Meeting Recording UUID + String include = "transcript"; // String | comma separated if needed. eg: transcript try { - apiInstance.getMeetingRecording(id); + MeetingRecordingResponse result = apiInstance.getMeetingRecording(id, include); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#getMeetingRecording"); System.err.println("Status code: " + e.getCode()); @@ -265,10 +342,11 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **id** | **String**| Meeting Recording UUID | | +| **include** | **String**| comma separated if needed. eg: transcript | [optional] [enum: transcript] | ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -277,7 +355,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | @@ -285,9 +363,79 @@ null (empty response body) | **200** | meeting recording found | - | | **404** | meeting recording not found | - | + +# **importMeetingRecording** +> MeetingRecordingResponse importMeetingRecording(incidentId, importMeetingRecording) + +Import a meeting recording + +Import an externally captured meeting recording and attach it to an incident. Video and transcript are fetched asynchronously. The existing POST /v1/incidents/{incident_id}/meeting_recordings endpoint invites a bot — this endpoint handles recordings that were captured outside of the bot flow. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.MeetingRecordingsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); + String incidentId = "incidentId_example"; // String | Incident UUID + ImportMeetingRecording importMeetingRecording = new ImportMeetingRecording(); // ImportMeetingRecording | + try { + MeetingRecordingResponse result = apiInstance.importMeetingRecording(incidentId, importMeetingRecording); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MeetingRecordingsApi#importMeetingRecording"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **incidentId** | **String**| Incident UUID | | +| **importMeetingRecording** | [**ImportMeetingRecording**](ImportMeetingRecording.md)| | [optional] | + +### Return type + +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | recording imported | - | +| **422** | validation error (e.g. unsupported source, duplicate recording) | - | + # **leaveMeetingRecording** -> leaveMeetingRecording(id) +> MeetingRecordingResponse leaveMeetingRecording(id) Leave a meeting call @@ -315,7 +463,8 @@ public class Example { MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); String id = "id_example"; // String | Meeting Recording UUID try { - apiInstance.leaveMeetingRecording(id); + MeetingRecordingResponse result = apiInstance.leaveMeetingRecording(id); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#leaveMeetingRecording"); System.err.println("Status code: " + e.getCode()); @@ -335,7 +484,7 @@ public class Example { ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -344,7 +493,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | @@ -352,6 +501,77 @@ null (empty response body) | **200** | bot left the call | - | | **422** | bot is not in a call | - | + +# **listAllMeetingRecordings** +> MeetingRecordingList listAllMeetingRecordings(status, platform, createdBy) + +List all meeting recordings + +List meeting recordings across the organization. Returns the current user's standalone recordings plus incident-backed recordings the user can access. Supports filtering by status, platform, and created_by. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.MeetingRecordingsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); + String status = "status_example"; // String | Filter by status + String platform = "platform_example"; // String | Filter by platform + String createdBy = "createdBy_example"; // String | Filter by creator type + try { + MeetingRecordingList result = apiInstance.listAllMeetingRecordings(status, platform, createdBy); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MeetingRecordingsApi#listAllMeetingRecordings"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **status** | **String**| Filter by status | [optional] | +| **platform** | **String**| Filter by platform | [optional] | +| **createdBy** | **String**| Filter by creator type | [optional] | + +### Return type + +[**MeetingRecordingList**](MeetingRecordingList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | meeting recordings found | - | + # **listMeetingRecordings** > MeetingRecordingList listMeetingRecordings(incidentId, pageNumber, pageSize) @@ -426,7 +646,7 @@ public class Example { # **pauseMeetingRecording** -> pauseMeetingRecording(id) +> MeetingRecordingResponse pauseMeetingRecording(id) Pause a meeting recording @@ -454,7 +674,8 @@ public class Example { MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); String id = "id_example"; // String | Meeting Recording UUID try { - apiInstance.pauseMeetingRecording(id); + MeetingRecordingResponse result = apiInstance.pauseMeetingRecording(id); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#pauseMeetingRecording"); System.err.println("Status code: " + e.getCode()); @@ -474,7 +695,7 @@ public class Example { ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -483,7 +704,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | @@ -493,7 +714,7 @@ null (empty response body) # **resumeMeetingRecording** -> resumeMeetingRecording(id) +> MeetingRecordingResponse resumeMeetingRecording(id) Resume a meeting recording @@ -521,7 +742,8 @@ public class Example { MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); String id = "id_example"; // String | Meeting Recording UUID try { - apiInstance.resumeMeetingRecording(id); + MeetingRecordingResponse result = apiInstance.resumeMeetingRecording(id); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#resumeMeetingRecording"); System.err.println("Status code: " + e.getCode()); @@ -541,7 +763,7 @@ public class Example { ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -550,7 +772,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | @@ -558,9 +780,77 @@ null (empty response body) | **200** | recording resumed | - | | **422** | recording is not paused | - | + +# **startRecordingSession** +> StartSessionResponse startRecordingSession(startSessionRequest) + +Start a recording session + +Start a new desktop recording session. The server creates a recording record and returns a stream token the desktop client uses to send audio. No provider-specific configuration is needed from the client. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.MeetingRecordingsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); + StartSessionRequest startSessionRequest = new StartSessionRequest(); // StartSessionRequest | + try { + StartSessionResponse result = apiInstance.startRecordingSession(startSessionRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling MeetingRecordingsApi#startRecordingSession"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **startSessionRequest** | [**StartSessionRequest**](StartSessionRequest.md)| | [optional] | + +### Return type + +[**StartSessionResponse**](StartSessionResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | session created | - | +| **422** | invalid platform | - | + # **stopMeetingRecording** -> stopMeetingRecording(id) +> MeetingRecordingResponse stopMeetingRecording(id) Stop a meeting recording @@ -588,7 +878,8 @@ public class Example { MeetingRecordingsApi apiInstance = new MeetingRecordingsApi(defaultClient); String id = "id_example"; // String | Meeting Recording UUID try { - apiInstance.stopMeetingRecording(id); + MeetingRecordingResponse result = apiInstance.stopMeetingRecording(id); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling MeetingRecordingsApi#stopMeetingRecording"); System.err.println("Status code: " + e.getCode()); @@ -608,7 +899,7 @@ public class Example { ### Return type -null (empty response body) +[**MeetingRecordingResponse**](MeetingRecordingResponse.md) ### Authorization @@ -617,7 +908,7 @@ null (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/vnd.api+json ### HTTP response details | Status code | Description | Response headers | diff --git a/docs/Meta.md b/docs/Meta.md index 39f9f801..726dffae 100644 --- a/docs/Meta.md +++ b/docs/Meta.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**nextCursor** | **String** | | [optional] | |**currentPage** | **Integer** | | | |**nextPage** | **Integer** | | | |**prevPage** | **Integer** | | | diff --git a/docs/NewAlertDataAttributes.md b/docs/NewAlertDataAttributes.md index 55c0f3a3..10e0acae 100644 --- a/docs/NewAlertDataAttributes.md +++ b/docs/NewAlertDataAttributes.md @@ -8,20 +8,22 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**noise** | [**NoiseEnum**](#NoiseEnum) | Whether the alert is marked as noise | [optional] | -|**source** | [**SourceEnum**](#SourceEnum) | The source of the alert | | +|**source** | **String** | Deprecated. Accepted for backwards compatibility; new clients should omit. Defaults to `api`. | [optional] | |**status** | [**StatusEnum**](#StatusEnum) | Only available for organizations with Rootly On-Call enabled. Can be one of open, triggered. | [optional] | |**summary** | **String** | The summary of the alert | | |**description** | **String** | The description of the alert | [optional] | |**serviceIds** | **List<String>** | The Service IDs to attach to the alert. If your organization has On-Call enabled and your notification target is a Service. This field will be automatically set for you. | [optional] | |**groupIds** | **List<String>** | The Group IDs to attach to the alert. If your organization has On-Call enabled and your notification target is a Group. This field will be automatically set for you. | [optional] | +|**functionalityIds** | **List<String>** | The Functionality IDs to attach to the alert | [optional] | |**environmentIds** | **List<String>** | The Environment IDs to attach to the alert | [optional] | |**startedAt** | **OffsetDateTime** | Alert start datetime | [optional] | |**endedAt** | **OffsetDateTime** | Alert end datetime | [optional] | |**externalId** | **String** | External ID | [optional] | |**externalUrl** | **String** | External Url | [optional] | |**alertUrgencyId** | **String** | The ID of the alert urgency | [optional] | -|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, User. | [optional] | +|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, Functionality, User. Please contact support if you encounter issues using `Functionality` as a notification target type. | [optional] | |**notificationTargetId** | **String** | Only available for organizations with Rootly On-Call enabled. The _identifier_ of the notification target object. | [optional] | +|**notificationTargets** | [**List<NewAlertDataAttributesNotificationTargetsInner>**](NewAlertDataAttributesNotificationTargetsInner.md) | Only available for organizations with Rootly On-Call enabled. Page multiple destinations (any combination of Group, Service, EscalationPolicy, Functionality, or User) in a single request. `Functionality` targets require the `enable_paging_functionalities` feature; a request that includes one while it is disabled is rejected. Applies to alert creation only. When provided, this takes precedence over the singular `notification_target_type` / `notification_target_id` fields. | [optional] | |**labels** | [**List<NewAlertDataAttributesLabelsInner>**](NewAlertDataAttributesLabelsInner.md) | | [optional] | |**data** | **Object** | Additional data | [optional] | |**deduplicationKey** | **String** | Alerts sharing the same deduplication key are treated as a single alert. | [optional] | @@ -38,56 +40,6 @@ -## Enum: SourceEnum - -| Name | Value | -|---- | -----| -| ROOTLY | "rootly" | -| MANUAL | "manual" | -| API | "api" | -| HEARTBEAT | "heartbeat" | -| WEB | "web" | -| SLACK | "slack" | -| EMAIL | "email" | -| WORKFLOW | "workflow" | -| LIVE_CALL_ROUTING | "live_call_routing" | -| MOBILE | "mobile" | -| PAGERDUTY | "pagerduty" | -| OPSGENIE | "opsgenie" | -| VICTOROPS | "victorops" | -| PAGERTREE | "pagertree" | -| DATADOG | "datadog" | -| NOBL9 | "nobl9" | -| ZENDESK | "zendesk" | -| ASANA | "asana" | -| CLICKUP | "clickup" | -| SENTRY | "sentry" | -| ROLLBAR | "rollbar" | -| JIRA | "jira" | -| HONEYCOMB | "honeycomb" | -| SERVICE_NOW | "service_now" | -| LINEAR | "linear" | -| GRAFANA | "grafana" | -| ALERTMANAGER | "alertmanager" | -| GOOGLE_CLOUD | "google_cloud" | -| GENERIC_WEBHOOK | "generic_webhook" | -| CLOUD_WATCH | "cloud_watch" | -| AZURE | "azure" | -| SPLUNK | "splunk" | -| CHRONOSPHERE | "chronosphere" | -| APP_OPTICS | "app_optics" | -| BUG_SNAG | "bug_snag" | -| MONTE_CARLO | "monte_carlo" | -| NAGIOS | "nagios" | -| PRTG | "prtg" | -| CATCHPOINT | "catchpoint" | -| APP_DYNAMICS | "app_dynamics" | -| CHECKLY | "checkly" | -| NEW_RELIC | "new_relic" | -| GITLAB | "gitlab" | - - - ## Enum: StatusEnum | Name | Value | @@ -105,6 +57,7 @@ | GROUP | "Group" | | ESCALATION_POLICY | "EscalationPolicy" | | SERVICE | "Service" | +| FUNCTIONALITY | "Functionality" | diff --git a/docs/NewAlertDataAttributesNotificationTargetsInner.md b/docs/NewAlertDataAttributesNotificationTargetsInner.md new file mode 100644 index 00000000..f9e8dcf1 --- /dev/null +++ b/docs/NewAlertDataAttributesNotificationTargetsInner.md @@ -0,0 +1,26 @@ + + +# NewAlertDataAttributesNotificationTargetsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | The type of the notification target. Can be one of Group, Service, EscalationPolicy, Functionality, User. | | +|**id** | **String** | The identifier of the notification target object. | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| USER | "User" | +| GROUP | "Group" | +| ESCALATION_POLICY | "EscalationPolicy" | +| SERVICE | "Service" | +| FUNCTIONALITY | "Functionality" | + + + diff --git a/docs/NewAlertFieldDataAttributes.md b/docs/NewAlertFieldDataAttributes.md index ad08dd07..2df043fb 100644 --- a/docs/NewAlertFieldDataAttributes.md +++ b/docs/NewAlertFieldDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the alert field | | diff --git a/docs/NewAlertGroupDataAttributes.md b/docs/NewAlertGroupDataAttributes.md index 0ded2d6e..56f777cc 100644 --- a/docs/NewAlertGroupDataAttributes.md +++ b/docs/NewAlertGroupDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the alert group | | |**description** | **String** | The description of the alert urgency | [optional] | |**timeWindow** | **Integer** | The length of time an Alert Group should stay open and accept new alerts | [optional] | diff --git a/docs/NewAlertGroupDataAttributesTargetsInner.md b/docs/NewAlertGroupDataAttributesTargetsInner.md index f7f789fa..9f12d727 100644 --- a/docs/NewAlertGroupDataAttributesTargetsInner.md +++ b/docs/NewAlertGroupDataAttributesTargetsInner.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target. | | -|**targetId** | **UUID** | id for the Group, Service or EscalationPolicy | | +|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. | | +|**targetId** | **UUID** | id for the Group, Service, EscalationPolicy or Functionality | | @@ -19,6 +19,7 @@ | GROUP | "Group" | | SERVICE | "Service" | | ESCALATION_POLICY | "EscalationPolicy" | +| FUNCTIONALITY | "Functionality" | diff --git a/docs/NewAlertRetriggerRule.md b/docs/NewAlertRetriggerRule.md new file mode 100644 index 00000000..431f017c --- /dev/null +++ b/docs/NewAlertRetriggerRule.md @@ -0,0 +1,13 @@ + + +# NewAlertRetriggerRule + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**NewAlertRetriggerRuleData**](NewAlertRetriggerRuleData.md) | | | + + + diff --git a/docs/NewAlertRetriggerRuleData.md b/docs/NewAlertRetriggerRuleData.md new file mode 100644 index 00000000..f2a11abc --- /dev/null +++ b/docs/NewAlertRetriggerRuleData.md @@ -0,0 +1,22 @@ + + +# NewAlertRetriggerRuleData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**NewAlertRetriggerRuleDataAttributes**](NewAlertRetriggerRuleDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| ALERT_RETRIGGER_RULES | "alert_retrigger_rules" | + + + diff --git a/docs/NewAlertRetriggerRuleDataAttributes.md b/docs/NewAlertRetriggerRuleDataAttributes.md new file mode 100644 index 00000000..f16e6e67 --- /dev/null +++ b/docs/NewAlertRetriggerRuleDataAttributes.md @@ -0,0 +1,47 @@ + + +# NewAlertRetriggerRuleDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | A human-readable name for the rule | | +|**matchMode** | [**MatchModeEnum**](#MatchModeEnum) | Whether all or any of the conditions must match | [optional] | +|**timeoutMinutes** | [**TimeoutMinutesEnum**](#TimeoutMinutesEnum) | Re-trigger the alert this many minutes after acknowledgment. Null means never re-trigger. | [optional] | +|**position** | **Integer** | The position of the rule; the first matching rule (by position) decides the outcome | [optional] | +|**conditions** | [**List<NewAlertRetriggerRuleDataAttributesConditionsInner>**](NewAlertRetriggerRuleDataAttributesConditionsInner.md) | The conditions that determine which alerts this rule applies to. An empty array applies to every alert. | [optional] | + + + +## Enum: MatchModeEnum + +| Name | Value | +|---- | -----| +| MATCH_ALL_RULES | "match-all-rules" | +| MATCH_ANY_RULE | "match-any-rule" | + + + +## Enum: TimeoutMinutesEnum + +| Name | Value | +|---- | -----| +| NUMBER_10 | 10 | +| NUMBER_20 | 20 | +| NUMBER_30 | 30 | +| NUMBER_40 | 40 | +| NUMBER_50 | 50 | +| NUMBER_60 | 60 | +| NUMBER_90 | 90 | +| NUMBER_120 | 120 | +| NUMBER_180 | 180 | +| NUMBER_240 | 240 | +| NUMBER_300 | 300 | +| NUMBER_360 | 360 | +| NUMBER_720 | 720 | +| NUMBER_1440 | 1440 | + + + diff --git a/docs/NewAlertRetriggerRuleDataAttributesConditionsInner.md b/docs/NewAlertRetriggerRuleDataAttributesConditionsInner.md new file mode 100644 index 00000000..77f5e37a --- /dev/null +++ b/docs/NewAlertRetriggerRuleDataAttributesConditionsInner.md @@ -0,0 +1,46 @@ + + +# NewAlertRetriggerRuleDataAttributesConditionsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**kind** | [**KindEnum**](#KindEnum) | The operand the condition matches on. Native operands (urgency, source, service, group) match by record; alert_field/payload match a field value. | | +|**operator** | [**OperatorEnum**](#OperatorEnum) | How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; alert_field/payload additionally support the string/regex operators. | | +|**recordIds** | **List<UUID>** | For urgency/service/group/source conditions: the IDs of the matched records (AlertUrgency, Service, Group, or Alerts::Source). | [optional] | +|**values** | **List<String>** | For source conditions: non-integration source aliases (e.g. manual, api). For alert_field/payload conditions: the values to compare against. | [optional] | +|**propertyFieldName** | **String** | For alert_field conditions: the alert field id. For payload conditions: a JSON Path (e.g. $.priority). | [optional] | + + + +## Enum: KindEnum + +| Name | Value | +|---- | -----| +| URGENCY | "urgency" | +| SOURCE | "source" | +| SERVICE | "service" | +| GROUP | "group" | +| ALERT_FIELD | "alert_field" | +| PAYLOAD | "payload" | + + + +## Enum: OperatorEnum + +| Name | Value | +|---- | -----| +| IS_ONE_OF | "is_one_of" | +| IS_NOT_ONE_OF | "is_not_one_of" | +| IS_SET | "is_set" | +| IS_NOT_SET | "is_not_set" | +| CONTAINS | "contains" | +| DOES_NOT_CONTAIN | "does_not_contain" | +| STARTS_WITH | "starts_with" | +| ENDS_WITH | "ends_with" | +| MATCHES_REGEX | "matches_regex" | + + + diff --git a/docs/NewAlertRouteDataAttributesRulesInnerDestinationsInner.md b/docs/NewAlertRouteDataAttributesRulesInnerDestinationsInner.md index 896c621e..d84afeb6 100644 --- a/docs/NewAlertRouteDataAttributesRulesInnerDestinationsInner.md +++ b/docs/NewAlertRouteDataAttributesRulesInnerDestinationsInner.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target | | +|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. | | |**targetId** | **UUID** | The ID of the target | | @@ -18,6 +18,7 @@ |---- | -----| | SERVICE | "Service" | | GROUP | "Group" | +| FUNCTIONALITY | "Functionality" | | ESCALATION_POLICY | "EscalationPolicy" | diff --git a/docs/NewAlertUrgencyDataAttributes.md b/docs/NewAlertUrgencyDataAttributes.md index e2b78177..a4c4719d 100644 --- a/docs/NewAlertUrgencyDataAttributes.md +++ b/docs/NewAlertUrgencyDataAttributes.md @@ -10,6 +10,7 @@ |**name** | **String** | The name of the alert urgency | | |**description** | **String** | The description of the alert urgency | | |**position** | **Integer** | Position of the alert urgency | [optional] | +|**retriggerTimeoutMinutes** | **Integer** | Re-trigger acknowledged alerts of this urgency after N minutes; null inherits the workspace default, negative = never. | [optional] | diff --git a/docs/NewAlertsSourceDataAttributes.md b/docs/NewAlertsSourceDataAttributes.md index b59b0ca3..d64d9f04 100644 --- a/docs/NewAlertsSourceDataAttributes.md +++ b/docs/NewAlertsSourceDataAttributes.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the alert source | | +|**enabled** | **Boolean** | Whether the alert source is enabled. Disabled sources do not create alerts from incoming events. | [optional] | |**sourceType** | [**SourceTypeEnum**](#SourceTypeEnum) | The alert source type | [optional] | |**alertUrgencyId** | **String** | ID for the default alert urgency assigned to this alert source | [optional] | |**deduplicateAlertsByKey** | **Boolean** | Toggle alert deduplication using deduplication key. If enabled, deduplication_key_kind and deduplication_key_path are required. | [optional] | @@ -30,13 +31,16 @@ | EMAIL | "email" | | APP_DYNAMICS | "app_dynamics" | | CATCHPOINT | "catchpoint" | +| CLOUDFLARE | "cloudflare" | | DATADOG | "datadog" | +| DYNATRACE | "dynatrace" | | ALERTMANAGER | "alertmanager" | | GOOGLE_CLOUD | "google_cloud" | | GRAFANA | "grafana" | | SENTRY | "sentry" | | GENERIC_WEBHOOK | "generic_webhook" | | CLOUD_WATCH | "cloud_watch" | +| AWS_SNS | "aws_sns" | | CHECKLY | "checkly" | | AZURE | "azure" | | NEW_RELIC | "new_relic" | diff --git a/docs/NewAlertsSourceDataAttributesSourceableAttributes.md b/docs/NewAlertsSourceDataAttributesSourceableAttributes.md index 7a29980e..4d02042b 100644 --- a/docs/NewAlertsSourceDataAttributesSourceableAttributes.md +++ b/docs/NewAlertsSourceDataAttributesSourceableAttributes.md @@ -2,7 +2,7 @@ # NewAlertsSourceDataAttributesSourceableAttributes -Provide additional attributes for generic_webhook alerts source +Provide additional attributes for the underlying source. `auto_resolve`, `resolve_state` and `field_mappings_attributes` apply to generic_webhook sources; `accept_threaded_emails` applies to email sources. ## Properties diff --git a/docs/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.md b/docs/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.md index 5ff6eecf..71c497e1 100644 --- a/docs/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.md +++ b/docs/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**field** | [**FieldEnum**](#FieldEnum) | Select the field on which the condition to be evaluated | [optional] | -|**jsonPath** | **String** | JSON path expression to extract a specific value from the alert's payload for evaluation | [optional] | +|**jsonPath** | **String** | JSON path expression to extract a specific value from the alert's payload for evaluation. For `notification_target_id` only: if your account has opted in to Dynamic Notification Targets, this may also be a Liquid template that resolves to a notification target id at routing time. | [optional] | diff --git a/docs/NewCatalogChecklistTemplateDataAttributes.md b/docs/NewCatalogChecklistTemplateDataAttributes.md index 8d6f683d..743c6cd9 100644 --- a/docs/NewCatalogChecklistTemplateDataAttributes.md +++ b/docs/NewCatalogChecklistTemplateDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the checklist template | | |**description** | **String** | The description of the checklist template | [optional] | |**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The catalog type | | diff --git a/docs/NewCatalogDataAttributes.md b/docs/NewCatalogDataAttributes.md index f8e87df3..905ac1d2 100644 --- a/docs/NewCatalogDataAttributes.md +++ b/docs/NewCatalogDataAttributes.md @@ -7,10 +7,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | | |**description** | **String** | | [optional] | |**icon** | [**IconEnum**](#IconEnum) | | [optional] | |**position** | **Integer** | Default position of the catalog when displayed in a list. | [optional] | +|**externalId** | **String** | An external identifier for this catalog. Must be unique within the team. | [optional] | diff --git a/docs/NewCatalogEntityDataAttributes.md b/docs/NewCatalogEntityDataAttributes.md index 8ab1ceb0..05b6299a 100644 --- a/docs/NewCatalogEntityDataAttributes.md +++ b/docs/NewCatalogEntityDataAttributes.md @@ -7,9 +7,14 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | | |**description** | **String** | | [optional] | +|**publicDescription** | **String** | The status page description of the catalog entity | [optional] | |**position** | **Integer** | Default position of the item when displayed in a list. | [optional] | +|**backstageId** | **String** | The Backstage entity ID this catalog entity is linked to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog entity. Must be unique within the catalog. | [optional] | +|**properties** | [**List<NewCatalogEntityDataAttributesPropertiesInner>**](NewCatalogEntityDataAttributesPropertiesInner.md) | Array of property values for this catalog entity | [optional] | diff --git a/docs/NewCatalogEntityProperty.md b/docs/NewCatalogEntityProperty.md index ff94b9db..4af54d61 100644 --- a/docs/NewCatalogEntityProperty.md +++ b/docs/NewCatalogEntityProperty.md @@ -2,6 +2,7 @@ # NewCatalogEntityProperty +**Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. ## Properties diff --git a/docs/NewCatalogEntityPropertyDataAttributes.md b/docs/NewCatalogEntityPropertyDataAttributes.md index a062c4a9..9cba7bd3 100644 --- a/docs/NewCatalogEntityPropertyDataAttributes.md +++ b/docs/NewCatalogEntityPropertyDataAttributes.md @@ -2,6 +2,7 @@ # NewCatalogEntityPropertyDataAttributes +Maximum of 50 values allowed per catalog field. ## Properties @@ -20,6 +21,7 @@ |---- | -----| | TEXT | "text" | | CATALOG_ENTITY | "catalog_entity" | +| SLACK | "slack" | diff --git a/docs/NewCatalogFieldData.md b/docs/NewCatalogFieldData.md index 4f8be025..75e8cc95 100644 --- a/docs/NewCatalogFieldData.md +++ b/docs/NewCatalogFieldData.md @@ -16,7 +16,7 @@ | Name | Value | |---- | -----| -| CATALOG_FIELDS | "catalog_fields" | +| CATALOG_PROPERTIES | "catalog_properties" | diff --git a/docs/NewCatalogFieldDataAttributes.md b/docs/NewCatalogFieldDataAttributes.md index 6fdd607e..4b8e415c 100644 --- a/docs/NewCatalogFieldDataAttributes.md +++ b/docs/NewCatalogFieldDataAttributes.md @@ -7,11 +7,15 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | | |**kind** | [**KindEnum**](#KindEnum) | | | |**kindCatalogId** | **String** | Restricts values to items of specified catalog. | [optional] | |**multiple** | **Boolean** | Whether the attribute accepts multiple values. | [optional] | |**position** | **Integer** | Default position of the item when displayed in a list. | [optional] | +|**required** | **Boolean** | Whether the field is required. | [optional] | +|**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The type of catalog the field belongs to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog field. Must be unique within the scope. | [optional] | @@ -21,6 +25,28 @@ |---- | -----| | TEXT | "text" | | REFERENCE | "reference" | +| BOOLEAN | "boolean" | +| SERVICE | "service" | +| FUNCTIONALITY | "functionality" | +| ENVIRONMENT | "environment" | +| GROUP | "group" | +| CAUSE | "cause" | +| INCIDENT_TYPE | "incident_type" | +| USER | "user" | + + + +## Enum: CatalogTypeEnum + +| Name | Value | +|---- | -----| +| CATALOG | "catalog" | +| CAUSE | "cause" | +| ENVIRONMENT | "environment" | +| FUNCTIONALITY | "functionality" | +| INCIDENT_TYPE | "incident_type" | +| SERVICE | "service" | +| TEAM | "team" | diff --git a/docs/NewCatalogPropertyDataAttributes.md b/docs/NewCatalogPropertyDataAttributes.md index c7151874..633e8391 100644 --- a/docs/NewCatalogPropertyDataAttributes.md +++ b/docs/NewCatalogPropertyDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | | |**kind** | [**KindEnum**](#KindEnum) | | | |**kindCatalogId** | **String** | Restricts values to items of specified catalog. | [optional] | @@ -14,6 +15,7 @@ |**position** | **Integer** | Default position of the item when displayed in a list. | [optional] | |**required** | **Boolean** | Whether the property is required. | [optional] | |**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The type of catalog the property belongs to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog property. Must be unique within the scope. | [optional] | @@ -24,7 +26,6 @@ | TEXT | "text" | | REFERENCE | "reference" | | BOOLEAN | "boolean" | -| REFERENCE2 | "reference" | | SERVICE | "service" | | FUNCTIONALITY | "functionality" | | ENVIRONMENT | "environment" | diff --git a/docs/NewCauseDataAttributes.md b/docs/NewCauseDataAttributes.md index a35349f6..8a49d489 100644 --- a/docs/NewCauseDataAttributes.md +++ b/docs/NewCauseDataAttributes.md @@ -7,9 +7,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the cause | | |**description** | **String** | The description of the cause | [optional] | +|**publicDescription** | **String** | The status page description of the cause | [optional] | |**position** | **Integer** | Position of the cause | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this cause. | [optional] | diff --git a/docs/NewCommunicationsStageDataAttributes.md b/docs/NewCommunicationsStageDataAttributes.md index fecf068a..b18e997e 100644 --- a/docs/NewCommunicationsStageDataAttributes.md +++ b/docs/NewCommunicationsStageDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the communications stage | | |**description** | **String** | The description of the communications stage | [optional] | |**position** | **Integer** | Position of the communications stage | [optional] | diff --git a/docs/NewCommunicationsTypeDataAttributes.md b/docs/NewCommunicationsTypeDataAttributes.md index dbd5459b..75ea71ab 100644 --- a/docs/NewCommunicationsTypeDataAttributes.md +++ b/docs/NewCommunicationsTypeDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the communications type | | |**description** | **String** | The description of the communications type | [optional] | |**color** | **String** | The color of the communications type | | diff --git a/docs/NewCustomFormDataAttributes.md b/docs/NewCustomFormDataAttributes.md index 2614f623..fdd444d7 100644 --- a/docs/NewCustomFormDataAttributes.md +++ b/docs/NewCustomFormDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the custom form. | | -|**slug** | **String** | The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. | [optional] | |**description** | **String** | | [optional] | |**enabled** | **Boolean** | | [optional] | |**command** | **String** | The Slack command used to trigger this form. | | diff --git a/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.md b/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.md index aad84107..7a6529dd 100644 --- a/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.md +++ b/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.md @@ -18,6 +18,7 @@ |---- | -----| | CUSTOM_FIELD | "custom_field" | | INCIDENT_ROLE | "incident_role" | +| ALERT_FIELD | "alert_field" | diff --git a/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.md b/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.md index de88c4ad..c6f2a328 100644 --- a/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.md +++ b/docs/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.md @@ -18,6 +18,7 @@ |---- | -----| | CUSTOM_FIELD | "custom_field" | | INCIDENT_ROLE | "incident_role" | +| ALERT_FIELD | "alert_field" | diff --git a/docs/NewEnvironmentDataAttributes.md b/docs/NewEnvironmentDataAttributes.md index 92aecebb..f1c9f738 100644 --- a/docs/NewEnvironmentDataAttributes.md +++ b/docs/NewEnvironmentDataAttributes.md @@ -7,13 +7,17 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the environment | | |**description** | **String** | The description of the environment | [optional] | +|**publicDescription** | **String** | The status page description of the environment | [optional] | |**color** | **String** | The hex color of the environment | [optional] | |**position** | **Integer** | Position of the environment | [optional] | +|**externalId** | **String** | The external id associated to this environment | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the environment | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this environment | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this environment | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this environment. | [optional] | diff --git a/docs/NewEscalationPolicyDataAttributesBusinessHours.md b/docs/NewEscalationPolicyDataAttributesBusinessHours.md index eb3c2bc7..82a24993 100644 --- a/docs/NewEscalationPolicyDataAttributesBusinessHours.md +++ b/docs/NewEscalationPolicyDataAttributesBusinessHours.md @@ -47,7 +47,6 @@ | GUADALAJARA | "Guadalajara" | | AMERICA_MEXICO_CITY | "America/Mexico_City" | | MEXICO_CITY | "Mexico City" | -| AMERICA_MEXICO_CITY2 | "America/Mexico_City" | | MONTERREY | "Monterrey" | | AMERICA_MONTERREY | "America/Monterrey" | | SASKATCHEWAN | "Saskatchewan" | @@ -61,7 +60,6 @@ | LIMA | "Lima" | | AMERICA_LIMA | "America/Lima" | | QUITO | "Quito" | -| AMERICA_LIMA2 | "America/Lima" | | ATLANTIC_TIME_CANADA_ | "Atlantic Time (Canada)" | | AMERICA_HALIFAX | "America/Halifax" | | CARACAS | "Caracas" | @@ -92,16 +90,11 @@ | ATLANTIC_AZORES | "Atlantic/Azores" | | CAPE_VERDE_IS_ | "Cape Verde Is." | | ATLANTIC_CAPE_VERDE | "Atlantic/Cape_Verde" | -| CASABLANCA | "Casablanca" | -| AFRICA_CASABLANCA | "Africa/Casablanca" | -| DUBLIN | "Dublin" | -| EUROPE_DUBLIN | "Europe/Dublin" | | EDINBURGH | "Edinburgh" | | EUROPE_LONDON | "Europe/London" | | LISBON | "Lisbon" | | EUROPE_LISBON | "Europe/Lisbon" | | LONDON | "London" | -| EUROPE_LONDON2 | "Europe/London" | | MONROVIA | "Monrovia" | | AFRICA_MONROVIA | "Africa/Monrovia" | | UTC | "UTC" | @@ -120,8 +113,12 @@ | EUROPE_BRUSSELS | "Europe/Brussels" | | BUDAPEST | "Budapest" | | EUROPE_BUDAPEST | "Europe/Budapest" | +| CASABLANCA | "Casablanca" | +| AFRICA_CASABLANCA | "Africa/Casablanca" | | COPENHAGEN | "Copenhagen" | | EUROPE_COPENHAGEN | "Europe/Copenhagen" | +| DUBLIN | "Dublin" | +| EUROPE_DUBLIN | "Europe/Dublin" | | LJUBLJANA | "Ljubljana" | | EUROPE_LJUBLJANA | "Europe/Ljubljana" | | MADRID | "Madrid" | @@ -147,7 +144,6 @@ | ZAGREB | "Zagreb" | | EUROPE_ZAGREB | "Europe/Zagreb" | | ZURICH | "Zurich" | -| EUROPE_ZURICH2 | "Europe/Zurich" | | ATHENS | "Athens" | | EUROPE_ATHENS | "Europe/Athens" | | BUCHAREST | "Bucharest" | @@ -189,7 +185,6 @@ | RIYADH | "Riyadh" | | ASIA_RIYADH | "Asia/Riyadh" | | ST_PETERSBURG | "St. Petersburg" | -| EUROPE_MOSCOW2 | "Europe/Moscow" | | VOLGOGRAD | "Volgograd" | | EUROPE_VOLGOGRAD | "Europe/Volgograd" | | TEHRAN | "Tehran" | @@ -199,7 +194,6 @@ | BAKU | "Baku" | | ASIA_BAKU | "Asia/Baku" | | MUSCAT | "Muscat" | -| ASIA_MUSCAT2 | "Asia/Muscat" | | SAMARA | "Samara" | | EUROPE_SAMARA | "Europe/Samara" | | TBILISI | "Tbilisi" | @@ -211,23 +205,18 @@ | ALMATY | "Almaty" | | ASIA_ALMATY | "Asia/Almaty" | | ASTANA | "Astana" | -| ASIA_ALMATY2 | "Asia/Almaty" | | EKATERINBURG | "Ekaterinburg" | | ASIA_YEKATERINBURG | "Asia/Yekaterinburg" | | ISLAMABAD | "Islamabad" | | ASIA_KARACHI | "Asia/Karachi" | | KARACHI | "Karachi" | -| ASIA_KARACHI2 | "Asia/Karachi" | | TASHKENT | "Tashkent" | | ASIA_TASHKENT | "Asia/Tashkent" | | CHENNAI | "Chennai" | | ASIA_KOLKATA | "Asia/Kolkata" | | KOLKATA | "Kolkata" | -| ASIA_KOLKATA2 | "Asia/Kolkata" | | MUMBAI | "Mumbai" | -| ASIA_KOLKATA3 | "Asia/Kolkata" | | NEW_DELHI | "New Delhi" | -| ASIA_KOLKATA4 | "Asia/Kolkata" | | SRI_JAYAWARDENEPURA | "Sri Jayawardenepura" | | ASIA_COLOMBO | "Asia/Colombo" | | KATHMANDU | "Kathmandu" | @@ -241,7 +230,6 @@ | BANGKOK | "Bangkok" | | ASIA_BANGKOK | "Asia/Bangkok" | | HANOI | "Hanoi" | -| ASIA_BANGKOK2 | "Asia/Bangkok" | | JAKARTA | "Jakarta" | | ASIA_JAKARTA | "Asia/Jakarta" | | KRASNOYARSK | "Krasnoyarsk" | @@ -269,11 +257,9 @@ | OSAKA | "Osaka" | | ASIA_TOKYO | "Asia/Tokyo" | | SAPPORO | "Sapporo" | -| ASIA_TOKYO2 | "Asia/Tokyo" | | SEOUL | "Seoul" | | ASIA_SEOUL | "Asia/Seoul" | | TOKYO | "Tokyo" | -| ASIA_TOKYO3 | "Asia/Tokyo" | | YAKUTSK | "Yakutsk" | | ASIA_YAKUTSK | "Asia/Yakutsk" | | ADELAIDE | "Adelaide" | @@ -313,7 +299,6 @@ | MARSHALL_IS_ | "Marshall Is." | | PACIFIC_MAJURO | "Pacific/Majuro" | | WELLINGTON | "Wellington" | -| PACIFIC_AUCKLAND2 | "Pacific/Auckland" | | CHATHAM_IS_ | "Chatham Is." | | PACIFIC_CHATHAM | "Pacific/Chatham" | | NUKU_ALOFA | "Nuku'alofa" | @@ -322,6 +307,22 @@ | PACIFIC_APIA | "Pacific/Apia" | | TOKELAU_IS_ | "Tokelau Is." | | PACIFIC_FAKAOFO | "Pacific/Fakaofo" | +| AMERICA_ADAK | "America/Adak" | +| AMERICA_ATKA | "America/Atka" | +| US_ALEUTIAN | "US/Aleutian" | +| AMERICA_VANCOUVER | "America/Vancouver" | +| CANADA_PACIFIC | "Canada/Pacific" | +| AMERICA_MIQUELON | "America/Miquelon" | +| AUSTRALIA_EUCLA | "Australia/Eucla" | +| AUSTRALIA_LHI | "Australia/LHI" | +| AUSTRALIA_LORD_HOWE | "Australia/Lord_Howe" | +| CHILE_EASTER_ISLAND | "Chile/EasterIsland" | +| PACIFIC_EASTER | "Pacific/Easter" | +| PACIFIC_GAMBIER | "Pacific/Gambier" | +| PACIFIC_PITCAIRN | "Pacific/Pitcairn" | +| PACIFIC_MARQUESAS | "Pacific/Marquesas" | +| PACIFIC_KIRITIMATI | "Pacific/Kiritimati" | +| PACIFIC_NORFOLK | "Pacific/Norfolk" | diff --git a/docs/NewEscalationPolicyLevelDataAttributes.md b/docs/NewEscalationPolicyLevelDataAttributes.md index e14b15e6..ec7a75ed 100644 --- a/docs/NewEscalationPolicyLevelDataAttributes.md +++ b/docs/NewEscalationPolicyLevelDataAttributes.md @@ -7,10 +7,14 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**delay** | **Integer** | Delay before notification targets will be alerted. | [optional] | +|**delay** | **Integer** | Delay before notifying targets in the next Escalation Level. | [optional] | |**position** | **Integer** | Position of the escalation policy level | | |**pagingStrategyConfigurationStrategy** | [**PagingStrategyConfigurationStrategyEnum**](#PagingStrategyConfigurationStrategyEnum) | | [optional] | |**pagingStrategyConfigurationScheduleStrategy** | [**PagingStrategyConfigurationScheduleStrategyEnum**](#PagingStrategyConfigurationScheduleStrategyEnum) | | [optional] | +|**pagingStrategyConfigurationRepeats** | **Integer** | Number of times to rotate through the roster (cycle-based round robin). | [optional] | +|**pagingStrategyConfigurationRepeatsMode** | [**PagingStrategyConfigurationRepeatsModeEnum**](#PagingStrategyConfigurationRepeatsModeEnum) | Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. | [optional] | +|**pagingStrategyConfigurationRotationScope** | [**PagingStrategyConfigurationRotationScopeEnum**](#PagingStrategyConfigurationRotationScopeEnum) | Scope of rotation ordering: active rotation members only, or entire schedule. | [optional] | +|**pagingStrategyConfigurationPageUsersCount** | **Integer** | Number of users to page at a time (cycle-based round robin). | [optional] | |**escalationPolicyPathId** | **String** | The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path. | [optional] | |**notificationTargetParams** | [**List<NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner>**](NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md) | Escalation level's notification targets | | @@ -36,3 +40,21 @@ +## Enum: PagingStrategyConfigurationRepeatsModeEnum + +| Name | Value | +|---- | -----| +| USERS | "users" | +| ALL | "all" | + + + +## Enum: PagingStrategyConfigurationRotationScopeEnum + +| Name | Value | +|---- | -----| +| ACTIVE_ROTATION | "active_rotation" | +| ENTIRE_SCHEDULE | "entire_schedule" | + + + diff --git a/docs/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md b/docs/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md index 474a7d7f..4abaaab1 100644 --- a/docs/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md +++ b/docs/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**id** | **String** | The ID of notification target. If Slack channel, then id of the slack channel (eg. C06Q2JK7RQW) | | +|**id** | **String** | The ID of notification target. If Slack channel, then id of the slack channel (eg. C06Q2JK7RQW). If Microsoft Teams channel, then the Rootly channel UUID. | | |**type** | [**TypeEnum**](#TypeEnum) | The type of the notification target | | |**teamMembers** | [**TeamMembersEnum**](#TeamMembersEnum) | For targets with type=team, controls whether to notify admins, all team members, or escalate to team EP. | [optional] | @@ -21,6 +21,7 @@ | USER | "user" | | SCHEDULE | "schedule" | | SLACK_CHANNEL | "slack_channel" | +| MICROSOFT_TEAMS_CHANNEL | "microsoft_teams_channel" | | SERVICE | "service" | diff --git a/docs/NewEscalationPolicyPathDataAttributes.md b/docs/NewEscalationPolicyPathDataAttributes.md index c3c3d0e2..80d9f926 100644 --- a/docs/NewEscalationPolicyPathDataAttributes.md +++ b/docs/NewEscalationPolicyPathDataAttributes.md @@ -9,12 +9,16 @@ |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the escalation path | | |**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | Notification rule type to be used | [optional] | +|**pathType** | [**PathTypeEnum**](#PathTypeEnum) | The type of escalation path to create | [optional] | +|**afterDeferralBehavior** | [**AfterDeferralBehaviorEnum**](#AfterDeferralBehaviorEnum) | What happens after a deferral path finishes. Required for deferral paths. | [optional] | +|**afterDeferralPathId** | **String** | The escalation path to execute after this deferral path when after_deferral_behavior is execute_path. | [optional] | |**_default** | **Boolean** | Whether this escalation path is the default path | [optional] | |**matchMode** | [**MatchModeEnum**](#MatchModeEnum) | How path rules are matched. | [optional] | |**position** | **Integer** | The position of this path in the paths for this EP. | [optional] | |**repeat** | **Boolean** | Whether this path should be repeated until someone acknowledges the alert | [optional] | |**repeatCount** | **Integer** | The number of times this path will be executed until someone acknowledges the alert | [optional] | |**initialDelay** | **Integer** | Initial delay for escalation path in minutes. Maximum 1 week (10080). | [optional] | +|**retriggerTimeoutMinutes** | **Integer** | Re-trigger acknowledged alerts on this path after N minutes; null inherits the urgency/workspace default, negative = never. | [optional] | |**rules** | [**List<NewEscalationPolicyPathDataAttributesRulesInner>**](NewEscalationPolicyPathDataAttributesRulesInner.md) | Escalation path conditions | [optional] | |**timeRestrictionTimeZone** | [**TimeRestrictionTimeZoneEnum**](#TimeRestrictionTimeZoneEnum) | Time zone used for time restrictions. | [optional] | |**timeRestrictions** | [**List<NewEscalationPolicyPathDataAttributesTimeRestrictionsInner>**](NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.md) | If time restrictions are set, alerts will follow this path when they arrive within the specified time ranges and meet the rules. | [optional] | @@ -30,6 +34,24 @@ +## Enum: PathTypeEnum + +| Name | Value | +|---- | -----| +| ESCALATION | "escalation" | +| DEFERRAL | "deferral" | + + + +## Enum: AfterDeferralBehaviorEnum + +| Name | Value | +|---- | -----| +| RE_EVALUATE | "re_evaluate" | +| EXECUTE_PATH | "execute_path" | + + + ## Enum: MatchModeEnum | Name | Value | @@ -72,7 +94,6 @@ | GUADALAJARA | "Guadalajara" | | AMERICA_MEXICO_CITY | "America/Mexico_City" | | MEXICO_CITY | "Mexico City" | -| AMERICA_MEXICO_CITY2 | "America/Mexico_City" | | MONTERREY | "Monterrey" | | AMERICA_MONTERREY | "America/Monterrey" | | SASKATCHEWAN | "Saskatchewan" | @@ -86,7 +107,6 @@ | LIMA | "Lima" | | AMERICA_LIMA | "America/Lima" | | QUITO | "Quito" | -| AMERICA_LIMA2 | "America/Lima" | | ATLANTIC_TIME_CANADA_ | "Atlantic Time (Canada)" | | AMERICA_HALIFAX | "America/Halifax" | | CARACAS | "Caracas" | @@ -117,16 +137,11 @@ | ATLANTIC_AZORES | "Atlantic/Azores" | | CAPE_VERDE_IS_ | "Cape Verde Is." | | ATLANTIC_CAPE_VERDE | "Atlantic/Cape_Verde" | -| CASABLANCA | "Casablanca" | -| AFRICA_CASABLANCA | "Africa/Casablanca" | -| DUBLIN | "Dublin" | -| EUROPE_DUBLIN | "Europe/Dublin" | | EDINBURGH | "Edinburgh" | | EUROPE_LONDON | "Europe/London" | | LISBON | "Lisbon" | | EUROPE_LISBON | "Europe/Lisbon" | | LONDON | "London" | -| EUROPE_LONDON2 | "Europe/London" | | MONROVIA | "Monrovia" | | AFRICA_MONROVIA | "Africa/Monrovia" | | UTC | "UTC" | @@ -145,8 +160,12 @@ | EUROPE_BRUSSELS | "Europe/Brussels" | | BUDAPEST | "Budapest" | | EUROPE_BUDAPEST | "Europe/Budapest" | +| CASABLANCA | "Casablanca" | +| AFRICA_CASABLANCA | "Africa/Casablanca" | | COPENHAGEN | "Copenhagen" | | EUROPE_COPENHAGEN | "Europe/Copenhagen" | +| DUBLIN | "Dublin" | +| EUROPE_DUBLIN | "Europe/Dublin" | | LJUBLJANA | "Ljubljana" | | EUROPE_LJUBLJANA | "Europe/Ljubljana" | | MADRID | "Madrid" | @@ -172,7 +191,6 @@ | ZAGREB | "Zagreb" | | EUROPE_ZAGREB | "Europe/Zagreb" | | ZURICH | "Zurich" | -| EUROPE_ZURICH2 | "Europe/Zurich" | | ATHENS | "Athens" | | EUROPE_ATHENS | "Europe/Athens" | | BUCHAREST | "Bucharest" | @@ -214,7 +232,6 @@ | RIYADH | "Riyadh" | | ASIA_RIYADH | "Asia/Riyadh" | | ST_PETERSBURG | "St. Petersburg" | -| EUROPE_MOSCOW2 | "Europe/Moscow" | | VOLGOGRAD | "Volgograd" | | EUROPE_VOLGOGRAD | "Europe/Volgograd" | | TEHRAN | "Tehran" | @@ -224,7 +241,6 @@ | BAKU | "Baku" | | ASIA_BAKU | "Asia/Baku" | | MUSCAT | "Muscat" | -| ASIA_MUSCAT2 | "Asia/Muscat" | | SAMARA | "Samara" | | EUROPE_SAMARA | "Europe/Samara" | | TBILISI | "Tbilisi" | @@ -236,23 +252,18 @@ | ALMATY | "Almaty" | | ASIA_ALMATY | "Asia/Almaty" | | ASTANA | "Astana" | -| ASIA_ALMATY2 | "Asia/Almaty" | | EKATERINBURG | "Ekaterinburg" | | ASIA_YEKATERINBURG | "Asia/Yekaterinburg" | | ISLAMABAD | "Islamabad" | | ASIA_KARACHI | "Asia/Karachi" | | KARACHI | "Karachi" | -| ASIA_KARACHI2 | "Asia/Karachi" | | TASHKENT | "Tashkent" | | ASIA_TASHKENT | "Asia/Tashkent" | | CHENNAI | "Chennai" | | ASIA_KOLKATA | "Asia/Kolkata" | | KOLKATA | "Kolkata" | -| ASIA_KOLKATA2 | "Asia/Kolkata" | | MUMBAI | "Mumbai" | -| ASIA_KOLKATA3 | "Asia/Kolkata" | | NEW_DELHI | "New Delhi" | -| ASIA_KOLKATA4 | "Asia/Kolkata" | | SRI_JAYAWARDENEPURA | "Sri Jayawardenepura" | | ASIA_COLOMBO | "Asia/Colombo" | | KATHMANDU | "Kathmandu" | @@ -266,7 +277,6 @@ | BANGKOK | "Bangkok" | | ASIA_BANGKOK | "Asia/Bangkok" | | HANOI | "Hanoi" | -| ASIA_BANGKOK2 | "Asia/Bangkok" | | JAKARTA | "Jakarta" | | ASIA_JAKARTA | "Asia/Jakarta" | | KRASNOYARSK | "Krasnoyarsk" | @@ -294,11 +304,9 @@ | OSAKA | "Osaka" | | ASIA_TOKYO | "Asia/Tokyo" | | SAPPORO | "Sapporo" | -| ASIA_TOKYO2 | "Asia/Tokyo" | | SEOUL | "Seoul" | | ASIA_SEOUL | "Asia/Seoul" | | TOKYO | "Tokyo" | -| ASIA_TOKYO3 | "Asia/Tokyo" | | YAKUTSK | "Yakutsk" | | ASIA_YAKUTSK | "Asia/Yakutsk" | | ADELAIDE | "Adelaide" | @@ -338,7 +346,6 @@ | MARSHALL_IS_ | "Marshall Is." | | PACIFIC_MAJURO | "Pacific/Majuro" | | WELLINGTON | "Wellington" | -| PACIFIC_AUCKLAND2 | "Pacific/Auckland" | | CHATHAM_IS_ | "Chatham Is." | | PACIFIC_CHATHAM | "Pacific/Chatham" | | NUKU_ALOFA | "Nuku'alofa" | @@ -347,6 +354,22 @@ | PACIFIC_APIA | "Pacific/Apia" | | TOKELAU_IS_ | "Tokelau Is." | | PACIFIC_FAKAOFO | "Pacific/Fakaofo" | +| AMERICA_ADAK | "America/Adak" | +| AMERICA_ATKA | "America/Atka" | +| US_ALEUTIAN | "US/Aleutian" | +| AMERICA_VANCOUVER | "America/Vancouver" | +| CANADA_PACIFIC | "Canada/Pacific" | +| AMERICA_MIQUELON | "America/Miquelon" | +| AUSTRALIA_EUCLA | "Australia/Eucla" | +| AUSTRALIA_LHI | "Australia/LHI" | +| AUSTRALIA_LORD_HOWE | "Australia/Lord_Howe" | +| CHILE_EASTER_ISLAND | "Chile/EasterIsland" | +| PACIFIC_EASTER | "Pacific/Easter" | +| PACIFIC_GAMBIER | "Pacific/Gambier" | +| PACIFIC_PITCAIRN | "Pacific/Pitcairn" | +| PACIFIC_MARQUESAS | "Pacific/Marquesas" | +| PACIFIC_KIRITIMATI | "Pacific/Kiritimati" | +| PACIFIC_NORFOLK | "Pacific/Norfolk" | diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInner.md b/docs/NewEscalationPolicyPathDataAttributesRulesInner.md index 55756c0a..5cf7f35c 100644 --- a/docs/NewEscalationPolicyPathDataAttributesRulesInner.md +++ b/docs/NewEscalationPolicyPathDataAttributesRulesInner.md @@ -11,8 +11,14 @@ |**urgencyIds** | **List<String>** | Alert urgency ids for which this escalation path should be used | | |**withinWorkingHour** | **Boolean** | Whether the escalation path should be used within working hours | | |**jsonPath** | **String** | JSON path to extract value from payload | | -|**operator** | [**OperatorEnum**](#OperatorEnum) | How JSON path value should be matched | | -|**value** | **String** | Value with which JSON path value should be matched | | +|**operator** | [**OperatorEnum**](#OperatorEnum) | Whether the alert must (or must not) have related incidents | | +|**value** | **String** | Value with which JSON path value should be matched | [optional] | +|**values** | **List<String>** | Alert source values to match against (e.g., manual, datadog) | | +|**fieldableType** | **String** | The type of the fieldable (e.g., AlertField) | | +|**fieldableId** | **String** | The ID of the alert field | | +|**serviceIds** | **List<String>** | Service ids for which this escalation path should be used | | +|**timeZone** | [**TimeZoneEnum**](#TimeZoneEnum) | Time zone for the deferral window | | +|**timeBlocks** | [**List<NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner>**](NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.md) | Time windows during which alerts are deferred | | @@ -20,7 +26,7 @@ | Name | Value | |---- | -----| -| JSON_PATH | "json_path" | +| RELATED_INCIDENTS | "related_incidents" | @@ -28,10 +34,320 @@ | Name | Value | |---- | -----| -| IS | "is" | -| IS_NOT | "is_not" | -| CONTAINS | "contains" | -| DOES_NOT_CONTAIN | "does_not_contain" | +| IS_SET | "is_set" | +| IS_NOT_SET | "is_not_set" | + + + +## Enum: TimeZoneEnum + +| Name | Value | +|---- | -----| +| INTERNATIONAL_DATE_LINE_WEST | "International Date Line West" | +| ETC_GMT_12 | "Etc/GMT+12" | +| AMERICAN_SAMOA | "American Samoa" | +| PACIFIC_PAGO_PAGO | "Pacific/Pago_Pago" | +| MIDWAY_ISLAND | "Midway Island" | +| PACIFIC_MIDWAY | "Pacific/Midway" | +| HAWAII | "Hawaii" | +| PACIFIC_HONOLULU | "Pacific/Honolulu" | +| ALASKA | "Alaska" | +| AMERICA_JUNEAU | "America/Juneau" | +| PACIFIC_TIME_US_CANADA_ | "Pacific Time (US & Canada)" | +| AMERICA_LOS_ANGELES | "America/Los_Angeles" | +| TIJUANA | "Tijuana" | +| AMERICA_TIJUANA | "America/Tijuana" | +| ARIZONA | "Arizona" | +| AMERICA_PHOENIX | "America/Phoenix" | +| MAZATLAN | "Mazatlan" | +| AMERICA_MAZATLAN | "America/Mazatlan" | +| MOUNTAIN_TIME_US_CANADA_ | "Mountain Time (US & Canada)" | +| AMERICA_DENVER | "America/Denver" | +| CENTRAL_AMERICA | "Central America" | +| AMERICA_GUATEMALA | "America/Guatemala" | +| CENTRAL_TIME_US_CANADA_ | "Central Time (US & Canada)" | +| AMERICA_CHICAGO | "America/Chicago" | +| CHIHUAHUA | "Chihuahua" | +| AMERICA_CHIHUAHUA | "America/Chihuahua" | +| GUADALAJARA | "Guadalajara" | +| AMERICA_MEXICO_CITY | "America/Mexico_City" | +| MEXICO_CITY | "Mexico City" | +| MONTERREY | "Monterrey" | +| AMERICA_MONTERREY | "America/Monterrey" | +| SASKATCHEWAN | "Saskatchewan" | +| AMERICA_REGINA | "America/Regina" | +| BOGOTA | "Bogota" | +| AMERICA_BOGOTA | "America/Bogota" | +| EASTERN_TIME_US_CANADA_ | "Eastern Time (US & Canada)" | +| AMERICA_NEW_YORK | "America/New_York" | +| INDIANA_EAST_ | "Indiana (East)" | +| AMERICA_INDIANA_INDIANAPOLIS | "America/Indiana/Indianapolis" | +| LIMA | "Lima" | +| AMERICA_LIMA | "America/Lima" | +| QUITO | "Quito" | +| ATLANTIC_TIME_CANADA_ | "Atlantic Time (Canada)" | +| AMERICA_HALIFAX | "America/Halifax" | +| CARACAS | "Caracas" | +| AMERICA_CARACAS | "America/Caracas" | +| GEORGETOWN | "Georgetown" | +| AMERICA_GUYANA | "America/Guyana" | +| LA_PAZ | "La Paz" | +| AMERICA_LA_PAZ | "America/La_Paz" | +| PUERTO_RICO | "Puerto Rico" | +| AMERICA_PUERTO_RICO | "America/Puerto_Rico" | +| SANTIAGO | "Santiago" | +| AMERICA_SANTIAGO | "America/Santiago" | +| NEWFOUNDLAND | "Newfoundland" | +| AMERICA_ST_JOHNS | "America/St_Johns" | +| ASUNCION | "Asuncion" | +| AMERICA_ASUNCION | "America/Asuncion" | +| BRASILIA | "Brasilia" | +| AMERICA_SAO_PAULO | "America/Sao_Paulo" | +| BUENOS_AIRES | "Buenos Aires" | +| AMERICA_ARGENTINA_BUENOS_AIRES | "America/Argentina/Buenos_Aires" | +| MONTEVIDEO | "Montevideo" | +| AMERICA_MONTEVIDEO | "America/Montevideo" | +| GREENLAND | "Greenland" | +| AMERICA_NUUK | "America/Nuuk" | +| MID_ATLANTIC | "Mid-Atlantic" | +| ATLANTIC_SOUTH_GEORGIA | "Atlantic/South_Georgia" | +| AZORES | "Azores" | +| ATLANTIC_AZORES | "Atlantic/Azores" | +| CAPE_VERDE_IS_ | "Cape Verde Is." | +| ATLANTIC_CAPE_VERDE | "Atlantic/Cape_Verde" | +| EDINBURGH | "Edinburgh" | +| EUROPE_LONDON | "Europe/London" | +| LISBON | "Lisbon" | +| EUROPE_LISBON | "Europe/Lisbon" | +| LONDON | "London" | +| MONROVIA | "Monrovia" | +| AFRICA_MONROVIA | "Africa/Monrovia" | +| UTC | "UTC" | +| ETC_UTC | "Etc/UTC" | +| AMSTERDAM | "Amsterdam" | +| EUROPE_AMSTERDAM | "Europe/Amsterdam" | +| BELGRADE | "Belgrade" | +| EUROPE_BELGRADE | "Europe/Belgrade" | +| BERLIN | "Berlin" | +| EUROPE_BERLIN | "Europe/Berlin" | +| BERN | "Bern" | +| EUROPE_ZURICH | "Europe/Zurich" | +| BRATISLAVA | "Bratislava" | +| EUROPE_BRATISLAVA | "Europe/Bratislava" | +| BRUSSELS | "Brussels" | +| EUROPE_BRUSSELS | "Europe/Brussels" | +| BUDAPEST | "Budapest" | +| EUROPE_BUDAPEST | "Europe/Budapest" | +| CASABLANCA | "Casablanca" | +| AFRICA_CASABLANCA | "Africa/Casablanca" | +| COPENHAGEN | "Copenhagen" | +| EUROPE_COPENHAGEN | "Europe/Copenhagen" | +| DUBLIN | "Dublin" | +| EUROPE_DUBLIN | "Europe/Dublin" | +| LJUBLJANA | "Ljubljana" | +| EUROPE_LJUBLJANA | "Europe/Ljubljana" | +| MADRID | "Madrid" | +| EUROPE_MADRID | "Europe/Madrid" | +| PARIS | "Paris" | +| EUROPE_PARIS | "Europe/Paris" | +| PRAGUE | "Prague" | +| EUROPE_PRAGUE | "Europe/Prague" | +| ROME | "Rome" | +| EUROPE_ROME | "Europe/Rome" | +| SARAJEVO | "Sarajevo" | +| EUROPE_SARAJEVO | "Europe/Sarajevo" | +| SKOPJE | "Skopje" | +| EUROPE_SKOPJE | "Europe/Skopje" | +| STOCKHOLM | "Stockholm" | +| EUROPE_STOCKHOLM | "Europe/Stockholm" | +| VIENNA | "Vienna" | +| EUROPE_VIENNA | "Europe/Vienna" | +| WARSAW | "Warsaw" | +| EUROPE_WARSAW | "Europe/Warsaw" | +| WEST_CENTRAL_AFRICA | "West Central Africa" | +| AFRICA_ALGIERS | "Africa/Algiers" | +| ZAGREB | "Zagreb" | +| EUROPE_ZAGREB | "Europe/Zagreb" | +| ZURICH | "Zurich" | +| ATHENS | "Athens" | +| EUROPE_ATHENS | "Europe/Athens" | +| BUCHAREST | "Bucharest" | +| EUROPE_BUCHAREST | "Europe/Bucharest" | +| CAIRO | "Cairo" | +| AFRICA_CAIRO | "Africa/Cairo" | +| HARARE | "Harare" | +| AFRICA_HARARE | "Africa/Harare" | +| HELSINKI | "Helsinki" | +| EUROPE_HELSINKI | "Europe/Helsinki" | +| JERUSALEM | "Jerusalem" | +| ASIA_JERUSALEM | "Asia/Jerusalem" | +| KALININGRAD | "Kaliningrad" | +| EUROPE_KALININGRAD | "Europe/Kaliningrad" | +| KYIV | "Kyiv" | +| EUROPE_KIEV | "Europe/Kiev" | +| PRETORIA | "Pretoria" | +| AFRICA_JOHANNESBURG | "Africa/Johannesburg" | +| RIGA | "Riga" | +| EUROPE_RIGA | "Europe/Riga" | +| SOFIA | "Sofia" | +| EUROPE_SOFIA | "Europe/Sofia" | +| TALLINN | "Tallinn" | +| EUROPE_TALLINN | "Europe/Tallinn" | +| VILNIUS | "Vilnius" | +| EUROPE_VILNIUS | "Europe/Vilnius" | +| BAGHDAD | "Baghdad" | +| ASIA_BAGHDAD | "Asia/Baghdad" | +| ISTANBUL | "Istanbul" | +| EUROPE_ISTANBUL | "Europe/Istanbul" | +| KUWAIT | "Kuwait" | +| ASIA_KUWAIT | "Asia/Kuwait" | +| MINSK | "Minsk" | +| EUROPE_MINSK | "Europe/Minsk" | +| MOSCOW | "Moscow" | +| EUROPE_MOSCOW | "Europe/Moscow" | +| NAIROBI | "Nairobi" | +| AFRICA_NAIROBI | "Africa/Nairobi" | +| RIYADH | "Riyadh" | +| ASIA_RIYADH | "Asia/Riyadh" | +| ST_PETERSBURG | "St. Petersburg" | +| VOLGOGRAD | "Volgograd" | +| EUROPE_VOLGOGRAD | "Europe/Volgograd" | +| TEHRAN | "Tehran" | +| ASIA_TEHRAN | "Asia/Tehran" | +| ABU_DHABI | "Abu Dhabi" | +| ASIA_MUSCAT | "Asia/Muscat" | +| BAKU | "Baku" | +| ASIA_BAKU | "Asia/Baku" | +| MUSCAT | "Muscat" | +| SAMARA | "Samara" | +| EUROPE_SAMARA | "Europe/Samara" | +| TBILISI | "Tbilisi" | +| ASIA_TBILISI | "Asia/Tbilisi" | +| YEREVAN | "Yerevan" | +| ASIA_YEREVAN | "Asia/Yerevan" | +| KABUL | "Kabul" | +| ASIA_KABUL | "Asia/Kabul" | +| ALMATY | "Almaty" | +| ASIA_ALMATY | "Asia/Almaty" | +| ASTANA | "Astana" | +| EKATERINBURG | "Ekaterinburg" | +| ASIA_YEKATERINBURG | "Asia/Yekaterinburg" | +| ISLAMABAD | "Islamabad" | +| ASIA_KARACHI | "Asia/Karachi" | +| KARACHI | "Karachi" | +| TASHKENT | "Tashkent" | +| ASIA_TASHKENT | "Asia/Tashkent" | +| CHENNAI | "Chennai" | +| ASIA_KOLKATA | "Asia/Kolkata" | +| KOLKATA | "Kolkata" | +| MUMBAI | "Mumbai" | +| NEW_DELHI | "New Delhi" | +| SRI_JAYAWARDENEPURA | "Sri Jayawardenepura" | +| ASIA_COLOMBO | "Asia/Colombo" | +| KATHMANDU | "Kathmandu" | +| ASIA_KATHMANDU | "Asia/Kathmandu" | +| DHAKA | "Dhaka" | +| ASIA_DHAKA | "Asia/Dhaka" | +| URUMQI | "Urumqi" | +| ASIA_URUMQI | "Asia/Urumqi" | +| RANGOON | "Rangoon" | +| ASIA_RANGOON | "Asia/Rangoon" | +| BANGKOK | "Bangkok" | +| ASIA_BANGKOK | "Asia/Bangkok" | +| HANOI | "Hanoi" | +| JAKARTA | "Jakarta" | +| ASIA_JAKARTA | "Asia/Jakarta" | +| KRASNOYARSK | "Krasnoyarsk" | +| ASIA_KRASNOYARSK | "Asia/Krasnoyarsk" | +| NOVOSIBIRSK | "Novosibirsk" | +| ASIA_NOVOSIBIRSK | "Asia/Novosibirsk" | +| BEIJING | "Beijing" | +| ASIA_SHANGHAI | "Asia/Shanghai" | +| CHONGQING | "Chongqing" | +| ASIA_CHONGQING | "Asia/Chongqing" | +| HONG_KONG | "Hong Kong" | +| ASIA_HONG_KONG | "Asia/Hong_Kong" | +| IRKUTSK | "Irkutsk" | +| ASIA_IRKUTSK | "Asia/Irkutsk" | +| KUALA_LUMPUR | "Kuala Lumpur" | +| ASIA_KUALA_LUMPUR | "Asia/Kuala_Lumpur" | +| PERTH | "Perth" | +| AUSTRALIA_PERTH | "Australia/Perth" | +| SINGAPORE | "Singapore" | +| ASIA_SINGAPORE | "Asia/Singapore" | +| TAIPEI | "Taipei" | +| ASIA_TAIPEI | "Asia/Taipei" | +| ULAANBAATAR | "Ulaanbaatar" | +| ASIA_ULAANBAATAR | "Asia/Ulaanbaatar" | +| OSAKA | "Osaka" | +| ASIA_TOKYO | "Asia/Tokyo" | +| SAPPORO | "Sapporo" | +| SEOUL | "Seoul" | +| ASIA_SEOUL | "Asia/Seoul" | +| TOKYO | "Tokyo" | +| YAKUTSK | "Yakutsk" | +| ASIA_YAKUTSK | "Asia/Yakutsk" | +| ADELAIDE | "Adelaide" | +| AUSTRALIA_ADELAIDE | "Australia/Adelaide" | +| DARWIN | "Darwin" | +| AUSTRALIA_DARWIN | "Australia/Darwin" | +| BRISBANE | "Brisbane" | +| AUSTRALIA_BRISBANE | "Australia/Brisbane" | +| CANBERRA | "Canberra" | +| AUSTRALIA_CANBERRA | "Australia/Canberra" | +| GUAM | "Guam" | +| PACIFIC_GUAM | "Pacific/Guam" | +| HOBART | "Hobart" | +| AUSTRALIA_HOBART | "Australia/Hobart" | +| MELBOURNE | "Melbourne" | +| AUSTRALIA_MELBOURNE | "Australia/Melbourne" | +| PORT_MORESBY | "Port Moresby" | +| PACIFIC_PORT_MORESBY | "Pacific/Port_Moresby" | +| SYDNEY | "Sydney" | +| AUSTRALIA_SYDNEY | "Australia/Sydney" | +| VLADIVOSTOK | "Vladivostok" | +| ASIA_VLADIVOSTOK | "Asia/Vladivostok" | +| MAGADAN | "Magadan" | +| ASIA_MAGADAN | "Asia/Magadan" | +| NEW_CALEDONIA | "New Caledonia" | +| PACIFIC_NOUMEA | "Pacific/Noumea" | +| SOLOMON_IS_ | "Solomon Is." | +| PACIFIC_GUADALCANAL | "Pacific/Guadalcanal" | +| SREDNEKOLYMSK | "Srednekolymsk" | +| ASIA_SREDNEKOLYMSK | "Asia/Srednekolymsk" | +| AUCKLAND | "Auckland" | +| PACIFIC_AUCKLAND | "Pacific/Auckland" | +| FIJI | "Fiji" | +| PACIFIC_FIJI | "Pacific/Fiji" | +| KAMCHATKA | "Kamchatka" | +| ASIA_KAMCHATKA | "Asia/Kamchatka" | +| MARSHALL_IS_ | "Marshall Is." | +| PACIFIC_MAJURO | "Pacific/Majuro" | +| WELLINGTON | "Wellington" | +| CHATHAM_IS_ | "Chatham Is." | +| PACIFIC_CHATHAM | "Pacific/Chatham" | +| NUKU_ALOFA | "Nuku'alofa" | +| PACIFIC_TONGATAPU | "Pacific/Tongatapu" | +| SAMOA | "Samoa" | +| PACIFIC_APIA | "Pacific/Apia" | +| TOKELAU_IS_ | "Tokelau Is." | +| PACIFIC_FAKAOFO | "Pacific/Fakaofo" | +| AMERICA_ADAK | "America/Adak" | +| AMERICA_ATKA | "America/Atka" | +| US_ALEUTIAN | "US/Aleutian" | +| AMERICA_VANCOUVER | "America/Vancouver" | +| CANADA_PACIFIC | "Canada/Pacific" | +| AMERICA_MIQUELON | "America/Miquelon" | +| AUSTRALIA_EUCLA | "Australia/Eucla" | +| AUSTRALIA_LHI | "Australia/LHI" | +| AUSTRALIA_LORD_HOWE | "Australia/Lord_Howe" | +| CHILE_EASTER_ISLAND | "Chile/EasterIsland" | +| PACIFIC_EASTER | "Pacific/Easter" | +| PACIFIC_GAMBIER | "Pacific/Gambier" | +| PACIFIC_PITCAIRN | "Pacific/Pitcairn" | +| PACIFIC_MARQUESAS | "Pacific/Marquesas" | +| PACIFIC_KIRITIMATI | "Pacific/Kiritimati" | +| PACIFIC_NORFOLK | "Pacific/Norfolk" | diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md index cb2edb40..63611b09 100644 --- a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md +++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.md @@ -31,6 +31,12 @@ | IS_NOT | "is_not" | | CONTAINS | "contains" | | DOES_NOT_CONTAIN | "does_not_contain" | +| CONTAINS_KEY | "contains_key" | +| DOES_NOT_CONTAIN_KEY | "does_not_contain_key" | +| STARTS_WITH | "starts_with" | +| DOES_NOT_START_WITH | "does_not_start_with" | +| MATCHES | "matches" | +| DOES_NOT_MATCH | "does_not_match" | | IS_ONE_OF | "is_one_of" | | IS_NOT_ONE_OF | "is_not_one_of" | | IS_SET | "is_set" | diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md index c525141a..e513fcdd 100644 --- a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md +++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.md @@ -54,7 +54,6 @@ | GUADALAJARA | "Guadalajara" | | AMERICA_MEXICO_CITY | "America/Mexico_City" | | MEXICO_CITY | "Mexico City" | -| AMERICA_MEXICO_CITY2 | "America/Mexico_City" | | MONTERREY | "Monterrey" | | AMERICA_MONTERREY | "America/Monterrey" | | SASKATCHEWAN | "Saskatchewan" | @@ -68,7 +67,6 @@ | LIMA | "Lima" | | AMERICA_LIMA | "America/Lima" | | QUITO | "Quito" | -| AMERICA_LIMA2 | "America/Lima" | | ATLANTIC_TIME_CANADA_ | "Atlantic Time (Canada)" | | AMERICA_HALIFAX | "America/Halifax" | | CARACAS | "Caracas" | @@ -104,7 +102,6 @@ | LISBON | "Lisbon" | | EUROPE_LISBON | "Europe/Lisbon" | | LONDON | "London" | -| EUROPE_LONDON2 | "Europe/London" | | MONROVIA | "Monrovia" | | AFRICA_MONROVIA | "Africa/Monrovia" | | UTC | "UTC" | @@ -154,7 +151,6 @@ | ZAGREB | "Zagreb" | | EUROPE_ZAGREB | "Europe/Zagreb" | | ZURICH | "Zurich" | -| EUROPE_ZURICH2 | "Europe/Zurich" | | ATHENS | "Athens" | | EUROPE_ATHENS | "Europe/Athens" | | BUCHAREST | "Bucharest" | @@ -196,7 +192,6 @@ | RIYADH | "Riyadh" | | ASIA_RIYADH | "Asia/Riyadh" | | ST_PETERSBURG | "St. Petersburg" | -| EUROPE_MOSCOW2 | "Europe/Moscow" | | VOLGOGRAD | "Volgograd" | | EUROPE_VOLGOGRAD | "Europe/Volgograd" | | TEHRAN | "Tehran" | @@ -206,7 +201,6 @@ | BAKU | "Baku" | | ASIA_BAKU | "Asia/Baku" | | MUSCAT | "Muscat" | -| ASIA_MUSCAT2 | "Asia/Muscat" | | SAMARA | "Samara" | | EUROPE_SAMARA | "Europe/Samara" | | TBILISI | "Tbilisi" | @@ -218,23 +212,18 @@ | ALMATY | "Almaty" | | ASIA_ALMATY | "Asia/Almaty" | | ASTANA | "Astana" | -| ASIA_ALMATY2 | "Asia/Almaty" | | EKATERINBURG | "Ekaterinburg" | | ASIA_YEKATERINBURG | "Asia/Yekaterinburg" | | ISLAMABAD | "Islamabad" | | ASIA_KARACHI | "Asia/Karachi" | | KARACHI | "Karachi" | -| ASIA_KARACHI2 | "Asia/Karachi" | | TASHKENT | "Tashkent" | | ASIA_TASHKENT | "Asia/Tashkent" | | CHENNAI | "Chennai" | | ASIA_KOLKATA | "Asia/Kolkata" | | KOLKATA | "Kolkata" | -| ASIA_KOLKATA2 | "Asia/Kolkata" | | MUMBAI | "Mumbai" | -| ASIA_KOLKATA3 | "Asia/Kolkata" | | NEW_DELHI | "New Delhi" | -| ASIA_KOLKATA4 | "Asia/Kolkata" | | SRI_JAYAWARDENEPURA | "Sri Jayawardenepura" | | ASIA_COLOMBO | "Asia/Colombo" | | KATHMANDU | "Kathmandu" | @@ -248,7 +237,6 @@ | BANGKOK | "Bangkok" | | ASIA_BANGKOK | "Asia/Bangkok" | | HANOI | "Hanoi" | -| ASIA_BANGKOK2 | "Asia/Bangkok" | | JAKARTA | "Jakarta" | | ASIA_JAKARTA | "Asia/Jakarta" | | KRASNOYARSK | "Krasnoyarsk" | @@ -276,11 +264,9 @@ | OSAKA | "Osaka" | | ASIA_TOKYO | "Asia/Tokyo" | | SAPPORO | "Sapporo" | -| ASIA_TOKYO2 | "Asia/Tokyo" | | SEOUL | "Seoul" | | ASIA_SEOUL | "Asia/Seoul" | | TOKYO | "Tokyo" | -| ASIA_TOKYO3 | "Asia/Tokyo" | | YAKUTSK | "Yakutsk" | | ASIA_YAKUTSK | "Asia/Yakutsk" | | ADELAIDE | "Adelaide" | @@ -320,7 +306,6 @@ | MARSHALL_IS_ | "Marshall Is." | | PACIFIC_MAJURO | "Pacific/Majuro" | | WELLINGTON | "Wellington" | -| PACIFIC_AUCKLAND2 | "Pacific/Auckland" | | CHATHAM_IS_ | "Chatham Is." | | PACIFIC_CHATHAM | "Pacific/Chatham" | | NUKU_ALOFA | "Nuku'alofa" | @@ -329,6 +314,22 @@ | PACIFIC_APIA | "Pacific/Apia" | | TOKELAU_IS_ | "Tokelau Is." | | PACIFIC_FAKAOFO | "Pacific/Fakaofo" | +| AMERICA_ADAK | "America/Adak" | +| AMERICA_ATKA | "America/Atka" | +| US_ALEUTIAN | "US/Aleutian" | +| AMERICA_VANCOUVER | "America/Vancouver" | +| CANADA_PACIFIC | "Canada/Pacific" | +| AMERICA_MIQUELON | "America/Miquelon" | +| AUSTRALIA_EUCLA | "Australia/Eucla" | +| AUSTRALIA_LHI | "Australia/LHI" | +| AUSTRALIA_LORD_HOWE | "Australia/Lord_Howe" | +| CHILE_EASTER_ISLAND | "Chile/EasterIsland" | +| PACIFIC_EASTER | "Pacific/Easter" | +| PACIFIC_GAMBIER | "Pacific/Gambier" | +| PACIFIC_PITCAIRN | "Pacific/Pitcairn" | +| PACIFIC_MARQUESAS | "Pacific/Marquesas" | +| PACIFIC_KIRITIMATI | "Pacific/Kiritimati" | +| PACIFIC_NORFOLK | "Pacific/Norfolk" | diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.md new file mode 100644 index 00000000..030bf346 --- /dev/null +++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.md @@ -0,0 +1,34 @@ + + +# NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | | +|**operator** | [**OperatorEnum**](#OperatorEnum) | How the alert source should be matched | | +|**values** | **List<String>** | Alert source values to match against (e.g., manual, datadog) | | + + + +## Enum: RuleTypeEnum + +| Name | Value | +|---- | -----| +| SOURCE | "source" | + + + +## Enum: OperatorEnum + +| Name | Value | +|---- | -----| +| IS | "is" | +| IS_NOT | "is_not" | +| IS_ONE_OF | "is_one_of" | +| IS_NOT_ONE_OF | "is_not_one_of" | + + + diff --git a/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.md b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.md new file mode 100644 index 00000000..2fc4e3f6 --- /dev/null +++ b/docs/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.md @@ -0,0 +1,31 @@ + + +# NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**ruleType** | [**RuleTypeEnum**](#RuleTypeEnum) | The type of the escalation path rule | | +|**operator** | [**OperatorEnum**](#OperatorEnum) | Whether the alert must (or must not) have related incidents | | + + + +## Enum: RuleTypeEnum + +| Name | Value | +|---- | -----| +| RELATED_INCIDENTS | "related_incidents" | + + + +## Enum: OperatorEnum + +| Name | Value | +|---- | -----| +| IS_SET | "is_set" | +| IS_NOT_SET | "is_not_set" | + + + diff --git a/docs/NewFormFieldDataAttributes.md b/docs/NewFormFieldDataAttributes.md index 84d5b73d..6d5ca52f 100644 --- a/docs/NewFormFieldDataAttributes.md +++ b/docs/NewFormFieldDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**kind** | [**KindEnum**](#KindEnum) | The kind of the form field | | |**inputKind** | [**InputKindEnum**](#InputKindEnum) | The input kind of the form field | [optional] | |**valueKind** | [**ValueKindEnum**](#ValueKindEnum) | The value kind of the form field | [optional] | @@ -18,6 +19,7 @@ |**showOnIncidentDetails** | **Boolean** | Whether the form field is shown on the incident details panel | [optional] | |**enabled** | **Boolean** | Whether the form field is enabled | [optional] | |**defaultValues** | **List<String>** | | [optional] | +|**autoSetByCatalogPropertyId** | **String** | Catalog property ID to auto-set this form field. Only reference-kind catalog properties are supported. | [optional] | @@ -37,6 +39,7 @@ | CAUSES | "causes" | | FUNCTIONALITIES | "functionalities" | | TEAMS | "teams" | +| STATUS | "status" | | VISIBILITY | "visibility" | | MARK_AS_TEST | "mark_as_test" | | MARK_AS_BACKFILLED | "mark_as_backfilled" | @@ -85,6 +88,9 @@ | FUNCTIONALITY | "functionality" | | USER | "user" | | CATALOG_ENTITY | "catalog_entity" | +| ENVIRONMENT | "environment" | +| CAUSE | "cause" | +| INCIDENT_TYPE | "incident_type" | diff --git a/docs/NewFormFieldPlacementDataAttributes.md b/docs/NewFormFieldPlacementDataAttributes.md index 011001b6..b29f9324 100644 --- a/docs/NewFormFieldPlacementDataAttributes.md +++ b/docs/NewFormFieldPlacementDataAttributes.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**formSetId** | **String** | The form set this field is placed in. | | +|**formSetId** | **String** | The form set this field is placed in. The form set must have the same `resource_type` as the form field, otherwise the request is rejected with 422. | | |**form** | **String** | The form this field is placed on. | | |**position** | **Integer** | The position of the field placement. | [optional] | |**required** | **Boolean** | Whether the field is unconditionally required on this form. | [optional] | diff --git a/docs/NewFormFieldPositionDataAttributes.md b/docs/NewFormFieldPositionDataAttributes.md index 04088ac3..4888b885 100644 --- a/docs/NewFormFieldPositionDataAttributes.md +++ b/docs/NewFormFieldPositionDataAttributes.md @@ -34,6 +34,10 @@ | SLACK_INCIDENT_CANCELLATION_FORM | "slack_incident_cancellation_form" | | SLACK_SCHEDULED_INCIDENT_FORM | "slack_scheduled_incident_form" | | SLACK_UPDATE_SCHEDULED_INCIDENT_FORM | "slack_update_scheduled_incident_form" | +| WEB_ACTION_ITEM_FORM | "web_action_item_form" | +| SLACK_ACTION_ITEM_FORM | "slack_action_item_form" | +| WEB_TASK_FORM | "web_task_form" | +| SLACK_TASK_FORM | "slack_task_form" | diff --git a/docs/NewFormSetDataAttributes.md b/docs/NewFormSetDataAttributes.md index fb9d9cb6..8404181b 100644 --- a/docs/NewFormSetDataAttributes.md +++ b/docs/NewFormSetDataAttributes.md @@ -7,8 +7,9 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the form set | | -|**forms** | **List<String>** | The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form` | | +|**forms** | **List<String>** | The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`, `google_chat_update_incident_form`, `microsoft_teams_new_incident_form` | | diff --git a/docs/NewFunctionalityDataAttributes.md b/docs/NewFunctionalityDataAttributes.md index 300440ac..7fd6e901 100644 --- a/docs/NewFunctionalityDataAttributes.md +++ b/docs/NewFunctionalityDataAttributes.md @@ -7,9 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the functionality | | |**description** | **String** | The description of the functionality | [optional] | -|**publicDescription** | **String** | The public description of the functionality | [optional] | +|**publicDescription** | **String** | The status page description of the functionality | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the functionality | [optional] | |**color** | **String** | The hex color of the functionality | [optional] | |**position** | **Integer** | Position of the functionality | [optional] | @@ -26,8 +27,10 @@ |**serviceIds** | **List<String>** | Services associated with this functionality | [optional] | |**ownerGroupIds** | **List<String>** | Owner Teams associated with this functionality | [optional] | |**ownerUserIds** | **List<Integer>** | Owner Users associated with this functionality | [optional] | +|**escalationPolicyId** | **String** | The escalation policy id of the functionality | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this functionality | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this functionality | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this functionality. | [optional] | diff --git a/docs/NewHeartbeatDataAttributes.md b/docs/NewHeartbeatDataAttributes.md index f91464f1..f1db9880 100644 --- a/docs/NewHeartbeatDataAttributes.md +++ b/docs/NewHeartbeatDataAttributes.md @@ -15,7 +15,8 @@ |**interval** | **Integer** | | | |**intervalUnit** | [**IntervalUnitEnum**](#IntervalUnitEnum) | | | |**notificationTargetId** | **String** | | | -|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | | | +|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. | | +|**ownerGroupIds** | **List<String>** | List of team IDs that own this heartbeat | [optional] | |**enabled** | **Boolean** | Whether to trigger alerts when heartbeat is expired. | [optional] | @@ -38,6 +39,7 @@ | GROUP | "Group" | | SERVICE | "Service" | | ESCALATION_POLICY | "EscalationPolicy" | +| FUNCTIONALITY | "Functionality" | diff --git a/docs/NewIncidentActionItemDataAttributes.md b/docs/NewIncidentActionItemDataAttributes.md index 66e0dc33..210a4c64 100644 --- a/docs/NewIncidentActionItemDataAttributes.md +++ b/docs/NewIncidentActionItemDataAttributes.md @@ -18,6 +18,7 @@ |**jiraIssueId** | **String** | The Jira issue ID. | [optional] | |**jiraIssueKey** | **String** | The Jira issue key. | [optional] | |**jiraIssueUrl** | **String** | The Jira issue URL. | [optional] | +|**formFieldSelections** | [**List<NewIncidentActionItemDataAttributesFormFieldSelectionsInner>**](NewIncidentActionItemDataAttributesFormFieldSelectionsInner.md) | Custom field values to set on the action item. Ignored unless custom fields for action items are enabled for the organization. | [optional] | diff --git a/docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.md b/docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.md new file mode 100644 index 00000000..d80b83b5 --- /dev/null +++ b/docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.md @@ -0,0 +1,25 @@ + + +# NewIncidentActionItemDataAttributesFormFieldSelectionsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | ID of an existing selection. Required when updating or removing a field's existing value. | [optional] | +|**formFieldId** | **String** | ID of the custom field | | +|**value** | [**NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue**](NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.md) | | [optional] | +|**selectedOptionIds** | **List<String>** | IDs of the selected custom field options | [optional] | +|**selectedUserIds** | **List<Integer>** | IDs of the selected users | [optional] | +|**selectedGroupIds** | **List<String>** | IDs of the selected teams | [optional] | +|**selectedServiceIds** | **List<String>** | IDs of the selected services | [optional] | +|**selectedFunctionalityIds** | **List<String>** | IDs of the selected functionalities | [optional] | +|**selectedCatalogEntityIds** | **List<String>** | IDs of the selected catalog entities | [optional] | +|**selectedEnvironmentIds** | **List<String>** | IDs of the selected environments | [optional] | +|**selectedCauseIds** | **List<String>** | IDs of the selected causes | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | IDs of the selected incident types | [optional] | +|**destroy** | **Boolean** | Set to true to remove the field's value from the action item | [optional] | + + + diff --git a/docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.md b/docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.md new file mode 100644 index 00000000..bf9e9d67 --- /dev/null +++ b/docs/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.md @@ -0,0 +1,13 @@ + + +# NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue + +Value for text, textarea, rich text, date, datetime, number, checkbox, or tag fields + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| + + + diff --git a/docs/NewIncidentFormFieldSelectionDataAttributes.md b/docs/NewIncidentFormFieldSelectionDataAttributes.md index 72ef32dc..35d6e79d 100644 --- a/docs/NewIncidentFormFieldSelectionDataAttributes.md +++ b/docs/NewIncidentFormFieldSelectionDataAttributes.md @@ -16,6 +16,9 @@ |**selectedServiceIds** | **List<String>** | | [optional] | |**selectedFunctionalityIds** | **List<String>** | | [optional] | |**selectedUserIds** | **List<Integer>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | diff --git a/docs/NewIncidentPermissionSetDataAttributes.md b/docs/NewIncidentPermissionSetDataAttributes.md index fbc46160..dea61ef8 100644 --- a/docs/NewIncidentPermissionSetDataAttributes.md +++ b/docs/NewIncidentPermissionSetDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The incident permission set name. | | -|**slug** | **String** | The incident permission set slug. | [optional] | |**description** | **String** | The incident permission set description. | [optional] | |**privateIncidentPermissions** | [**List<PrivateIncidentPermissionsEnum>**](#List<PrivateIncidentPermissionsEnum>) | | [optional] | |**publicIncidentPermissions** | [**List<PublicIncidentPermissionsEnum>**](#List<PublicIncidentPermissionsEnum>) | | [optional] | diff --git a/docs/NewIncidentRoleDataAttributes.md b/docs/NewIncidentRoleDataAttributes.md index f9fde384..d92b5191 100644 --- a/docs/NewIncidentRoleDataAttributes.md +++ b/docs/NewIncidentRoleDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the incident role | | |**summary** | **String** | The summary of the incident role | [optional] | |**description** | **String** | The description of the incident role | [optional] | diff --git a/docs/NewIncidentStatusPageEventDataAttributes.md b/docs/NewIncidentStatusPageEventDataAttributes.md index be4dbd3c..07ea3944 100644 --- a/docs/NewIncidentStatusPageEventDataAttributes.md +++ b/docs/NewIncidentStatusPageEventDataAttributes.md @@ -12,6 +12,8 @@ |**status** | [**StatusEnum**](#StatusEnum) | The status of the incident event | [optional] | |**notifySubscribers** | **Boolean** | Notify all status pages subscribers | [optional] | |**shouldTweet** | **Boolean** | For Statuspage.io integrated pages auto publishes a tweet for your update | [optional] | +|**startedAt** | **OffsetDateTime** | When the event started. Defaults to the time of creation. | [optional] | +|**statusPageComponents** | [**List<NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner>**](NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.md) | Affected status page components and their statuses. Requires the status-page-v3-phase-1 feature. Ignored for terminal event statuses (resolved, completed), which clear component impact. A status is required per component except for scheduled maintenance incidents. | [optional] | diff --git a/docs/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.md b/docs/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.md new file mode 100644 index 00000000..9441c35c --- /dev/null +++ b/docs/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.md @@ -0,0 +1,25 @@ + + +# NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**statusPageComponentId** | **String** | Unique ID of a component on the event's status page | | +|**status** | [**StatusEnum**](#StatusEnum) | The status to record for the component | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| OPERATIONAL | "operational" | +| DEGRADED_PERFORMANCE | "degraded_performance" | +| PARTIAL_OUTAGE | "partial_outage" | +| MAJOR_OUTAGE | "major_outage" | + + + diff --git a/docs/NewIncidentTypeDataAttributes.md b/docs/NewIncidentTypeDataAttributes.md index 4305fc1c..483443f5 100644 --- a/docs/NewIncidentTypeDataAttributes.md +++ b/docs/NewIncidentTypeDataAttributes.md @@ -7,13 +7,16 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the incident type | | |**description** | **String** | The description of the incident type | [optional] | +|**publicDescription** | **String** | The status page description of the incident type | [optional] | |**color** | **String** | The hex color of the incident type | [optional] | |**position** | **Integer** | Position of the incident type | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the incident type | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this incident type | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this incident type | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this incident type. | [optional] | diff --git a/docs/NewLiveCallRouterDataAttributes.md b/docs/NewLiveCallRouterDataAttributes.md index 0d275e95..407d7b3f 100644 --- a/docs/NewLiveCallRouterDataAttributes.md +++ b/docs/NewLiveCallRouterDataAttributes.md @@ -15,12 +15,17 @@ |**phoneNumber** | **String** | You can select a phone number using [generate_phone_number](#//api/v1/live_call_routers/generate_phone_number) API and pass that phone number here to register | | |**voicemailGreeting** | **String** | The voicemail greeting of the live_call_router | | |**callerGreeting** | **String** | The caller greeting message of the live_call_router | [optional] | +|**unavailableResponderMessage** | **String** | The message played to the caller when a responder doesn't answer and the call moves on to the next person in the escalation. Leave blank to use the default message. | [optional] | |**waitingMusicUrl** | [**WaitingMusicUrlEnum**](#WaitingMusicUrlEnum) | The waiting music URL of the live_call_router | [optional] | |**sentToVoicemailDelay** | **Integer** | The delay (seconds) after which the caller in redirected to voicemail | [optional] | |**shouldRedirectToVoicemailOnNoAnswer** | **Boolean** | This prompts the caller to choose voicemail or connect live | [optional] | |**escalationLevelDelayInSeconds** | **Integer** | This overrides the delay (seconds) in escalation levels | [optional] | |**shouldAutoResolveAlertOnCallEnd** | **Boolean** | This overrides the delay (seconds) in escalation levels | [optional] | +|**notifyViaSms** | **Boolean** | Whether responders are also notified via SMS when this router pages them | [optional] | +|**notifyViaPushNotification** | **Boolean** | Whether responders are also notified via push notification when this router pages them | [optional] | +|**informationalNotificationMessage** | **String** | Optional message included in the SMS/push notification. Supports variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name }}. | [optional] | |**alertUrgencyId** | **String** | This is used in escalation paths to determine who to page | [optional] | +|**callingTreeEnabled** | **Boolean** | Whether the live call router is configured as a phone tree, requiring callers to press a key before being connected | [optional] | |**callingTreePrompt** | **String** | The audio instructions callers will hear when they call this number, prompting them to select from available options to route their call | [optional] | |**pagingTargets** | [**List<NewLiveCallRouterDataAttributesPagingTargetsInner>**](NewLiveCallRouterDataAttributesPagingTargetsInner.md) | Paging targets that callers can select from when this live call router is configured as a phone tree. | | |**escalationPolicyTriggerParams** | [**NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams**](NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md) | | [optional] | @@ -45,6 +50,8 @@ | DE | "DE" | | NL | "NL" | | NZ | "NZ" | +| SE | "SE" | +| CH | "CH" | | GB | "GB" | | US | "US" | diff --git a/docs/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md b/docs/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md index cb762f0b..84fc3b1e 100644 --- a/docs/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md +++ b/docs/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **String** | The ID of notification target | | -|**type** | [**TypeEnum**](#TypeEnum) | The type of the notification target | | +|**type** | [**TypeEnum**](#TypeEnum) | The type of the notification target. Please contact support if you encounter issues using `functionality` as a target type. | | @@ -19,6 +19,7 @@ | SERVICE | "service" | | GROUP | "group" | | ESCALATION_POLICY | "escalation_policy" | +| FUNCTIONALITY | "functionality" | diff --git a/docs/NewLiveCallRouterDataAttributesPagingTargetsInner.md b/docs/NewLiveCallRouterDataAttributesPagingTargetsInner.md index 07261505..631bcad4 100644 --- a/docs/NewLiveCallRouterDataAttributesPagingTargetsInner.md +++ b/docs/NewLiveCallRouterDataAttributesPagingTargetsInner.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **String** | The ID of paging target | | -|**type** | [**TypeEnum**](#TypeEnum) | The type of the paging target | | +|**type** | [**TypeEnum**](#TypeEnum) | The type of the paging target. Please contact support if you encounter issues using `functionality` as a target type. | | |**alertUrgencyId** | **String** | This is used in escalation paths to determine who to page | | @@ -20,6 +20,7 @@ | SERVICE | "service" | | TEAM | "team" | | ESCALATION_POLICY | "escalation_policy" | +| FUNCTIONALITY | "functionality" | diff --git a/docs/NewOnCallPayReportDataAttributes.md b/docs/NewOnCallPayReportDataAttributes.md index f715af9a..fe46126b 100644 --- a/docs/NewOnCallPayReportDataAttributes.md +++ b/docs/NewOnCallPayReportDataAttributes.md @@ -10,6 +10,8 @@ |**startDate** | **LocalDate** | The start date for the report period. | | |**endDate** | **LocalDate** | The end date for the report period. | | |**scheduleIds** | **List<String>** | List of schedule UUIDs to scope the report. | [optional] | +|**timeZone** | **String** | IANA timezone used to compute day and weekend boundaries. Defaults to the team's timezone. | [optional] | +|**useRespondersTimeZone** | **Boolean** | When true, day and weekend boundaries are computed in each responder's personal timezone instead of the report-wide timezone. | [optional] | diff --git a/docs/NewOnCallRoleDataAttributes.md b/docs/NewOnCallRoleDataAttributes.md index 402b283f..f308a32b 100644 --- a/docs/NewOnCallRoleDataAttributes.md +++ b/docs/NewOnCallRoleDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The role name. | | -|**slug** | **String** | The role slug. | [optional] | |**systemRole** | [**List<SystemRoleEnum>**](#List<SystemRoleEnum>) | The kind of role (user and custom type roles are only editable) | [optional] | |**alertFieldsPermissions** | [**List<AlertFieldsPermissionsEnum>**](#List<AlertFieldsPermissionsEnum>) | | [optional] | |**alertGroupsPermissions** | [**List<AlertGroupsPermissionsEnum>**](#List<AlertGroupsPermissionsEnum>) | | [optional] | @@ -30,8 +30,10 @@ |**scheduleOverridePermissions** | [**List<ScheduleOverridePermissionsEnum>**](#List<ScheduleOverridePermissionsEnum>) | | [optional] | |**schedulesPermissions** | [**List<SchedulesPermissionsEnum>**](#List<SchedulesPermissionsEnum>) | | [optional] | |**servicesPermissions** | [**List<ServicesPermissionsEnum>**](#List<ServicesPermissionsEnum>) | | [optional] | +|**functionalitiesPermissions** | [**List<FunctionalitiesPermissionsEnum>**](#List<FunctionalitiesPermissionsEnum>) | | [optional] | |**webhooksPermissions** | [**List<WebhooksPermissionsEnum>**](#List<WebhooksPermissionsEnum>) | | [optional] | |**workflowsPermissions** | [**List<WorkflowsPermissionsEnum>**](#List<WorkflowsPermissionsEnum>) | | [optional] | +|**catalogsPermissions** | [**List<CatalogsPermissionsEnum>**](#List<CatalogsPermissionsEnum>) | | [optional] | @@ -128,6 +130,7 @@ | CREATE | "create" | | UPDATE | "update" | | READ | "read" | +| DELETE | "delete" | @@ -258,6 +261,17 @@ +## Enum: List<FunctionalitiesPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + ## Enum: List<WebhooksPermissionsEnum> | Name | Value | @@ -280,3 +294,14 @@ +## Enum: List<CatalogsPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + diff --git a/docs/NewPostMortemTemplateDataAttributes.md b/docs/NewPostMortemTemplateDataAttributes.md index ccaa39be..8a18b30c 100644 --- a/docs/NewPostMortemTemplateDataAttributes.md +++ b/docs/NewPostMortemTemplateDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the postmortem template | | |**_default** | **Boolean** | Default selected template when editing a postmortem | [optional] | |**content** | **String** | The postmortem template. Supports TipTap blocks (followup and timeline components), Liquid syntax, and HTML. Will be sanitized and applied to both content and content_html fields. | [optional] | diff --git a/docs/NewRetrospectiveStepDataAttributes.md b/docs/NewRetrospectiveStepDataAttributes.md index 87240f3a..d93fbea6 100644 --- a/docs/NewRetrospectiveStepDataAttributes.md +++ b/docs/NewRetrospectiveStepDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**title** | **String** | The name of the step | | |**description** | **String** | The description of the step | [optional] | |**dueAfterDays** | **Integer** | Due date in days | [optional] | diff --git a/docs/NewRoleDataAttributes.md b/docs/NewRoleDataAttributes.md index 6ae589c4..9f41efaf 100644 --- a/docs/NewRoleDataAttributes.md +++ b/docs/NewRoleDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. Custom role slugs remain accepted temporarily. Stop setting `slug`; it will become read-only and be derived from `name` when this property is removed from the request schema in a future version. | [optional] | |**name** | **String** | The role name. | | -|**slug** | **String** | The role slug. | [optional] | |**incidentPermissionSetId** | **String** | Associated incident permissions set. | [optional] | |**alertsPermissions** | [**List<AlertsPermissionsEnum>**](#List<AlertsPermissionsEnum>) | | [optional] | |**apiKeysPermissions** | [**List<ApiKeysPermissionsEnum>**](#List<ApiKeysPermissionsEnum>) | | [optional] | @@ -36,6 +36,13 @@ |**statusPagesPermissions** | [**List<StatusPagesPermissionsEnum>**](#List<StatusPagesPermissionsEnum>) | | [optional] | |**webhooksPermissions** | [**List<WebhooksPermissionsEnum>**](#List<WebhooksPermissionsEnum>) | | [optional] | |**workflowsPermissions** | [**List<WorkflowsPermissionsEnum>**](#List<WorkflowsPermissionsEnum>) | | [optional] | +|**catalogsPermissions** | [**List<CatalogsPermissionsEnum>**](#List<CatalogsPermissionsEnum>) | | [optional] | +|**subStatusesPermissions** | [**List<SubStatusesPermissionsEnum>**](#List<SubStatusesPermissionsEnum>) | | [optional] | +|**edgeConnectorPermissions** | [**List<EdgeConnectorPermissionsEnum>**](#List<EdgeConnectorPermissionsEnum>) | | [optional] | +|**slasPermissions** | [**List<SlasPermissionsEnum>**](#List<SlasPermissionsEnum>) | | [optional] | +|**pagingPermissions** | [**List<PagingPermissionsEnum>**](#List<PagingPermissionsEnum>) | | [optional] | +|**incidentCommunicationPermissions** | [**List<IncidentCommunicationPermissionsEnum>**](#List<IncidentCommunicationPermissionsEnum>) | | [optional] | +|**communicationPermissions** | [**List<CommunicationPermissionsEnum>**](#List<CommunicationPermissionsEnum>) | | [optional] | @@ -322,3 +329,81 @@ +## Enum: List<CatalogsPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<SubStatusesPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<EdgeConnectorPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<SlasPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<PagingPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<IncidentCommunicationPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | +| SEND | "send" | + + + +## Enum: List<CommunicationPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + diff --git a/docs/NewScheduleDataAttributes.md b/docs/NewScheduleDataAttributes.md index 8bafc1f0..e1508836 100644 --- a/docs/NewScheduleDataAttributes.md +++ b/docs/NewScheduleDataAttributes.md @@ -14,6 +14,28 @@ |**slackChannel** | [**NewScheduleDataAttributesSlackChannel**](NewScheduleDataAttributesSlackChannel.md) | | [optional] | |**ownerGroupIds** | **List<String>** | Owning teams. | [optional] | |**ownerUserId** | **Integer** | ID of the owner of the schedule | | +|**syncLinearEnabled** | **Boolean** | Whether the schedule is synced with Linear | [optional] | +|**includeShadowsInSlackNotifications** | **Boolean** | Whether shadow users are included in Slack notifications and user group syncing. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftStartNotificationsEnabled** | **Boolean** | Whether shift-start notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftUpdateNotificationsEnabled** | **Boolean** | Whether shift-update notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftReportEnabled** | **Boolean** | Whether the weekly shift summary report is enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftReportDayOfWeek** | [**ShiftReportDayOfWeekEnum**](#ShiftReportDayOfWeekEnum) | Day of week the weekly shift summary is sent | [optional] | +|**shiftReportTimeOfDay** | **String** | Time of day the weekly shift summary is sent, in HH:MM 24-hour format | [optional] | +|**shiftReportTimeZone** | **String** | IANA time zone used for the weekly shift summary | [optional] | + + + +## Enum: ShiftReportDayOfWeekEnum + +| Name | Value | +|---- | -----| +| MONDAY | "monday" | +| TUESDAY | "tuesday" | +| WEDNESDAY | "wednesday" | +| THURSDAY | "thursday" | +| FRIDAY | "friday" | +| SATURDAY | "saturday" | +| SUNDAY | "sunday" | diff --git a/docs/NewScheduleRotationDataAttributes.md b/docs/NewScheduleRotationDataAttributes.md index ead26b7d..646e981f 100644 --- a/docs/NewScheduleRotationDataAttributes.md +++ b/docs/NewScheduleRotationDataAttributes.md @@ -16,8 +16,8 @@ |**activeTimeAttributes** | [**List<NewScheduleRotationDataAttributesActiveTimeAttributesInner>**](NewScheduleRotationDataAttributesActiveTimeAttributesInner.md) | Schedule rotation's active times | [optional] | |**timeZone** | **String** | A valid IANA time zone name. | [optional] | |**scheduleRotationableAttributes** | [**NewScheduleRotationDataAttributesScheduleRotationableAttributes**](NewScheduleRotationDataAttributesScheduleRotationableAttributes.md) | | | -|**startTime** | **LocalDate** | ISO8601 date and time when rotation starts. Shifts will only be created after this time. | [optional] | -|**endTime** | **LocalDate** | ISO8601 date and time when rotation ends. Shifts will only be created before this time. | [optional] | +|**startTime** | **OffsetDateTime** | RFC3339 date-time when rotation starts. Shifts will only be created after this time. | [optional] | +|**endTime** | **OffsetDateTime** | RFC3339 date-time when rotation ends. Shifts will only be created before this time. | [optional] | |**scheduleRotationMembers** | [**List<NewScheduleRotationDataAttributesScheduleRotationMembersInner>**](NewScheduleRotationDataAttributesScheduleRotationMembersInner.md) | You can only add schedule rotation members if your account has schedule nesting feature enabled | [optional] | diff --git a/docs/NewServiceDataAttributes.md b/docs/NewServiceDataAttributes.md index 05364151..f19db438 100644 --- a/docs/NewServiceDataAttributes.md +++ b/docs/NewServiceDataAttributes.md @@ -7,9 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the service | | |**description** | **String** | The description of the service | [optional] | -|**publicDescription** | **String** | The public description of the service | [optional] | +|**publicDescription** | **String** | The status page description of the service | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the service | [optional] | |**color** | **String** | The hex color of the service | [optional] | |**position** | **Integer** | Position of the service | [optional] | @@ -40,6 +41,7 @@ |**alertBroadcastChannel** | [**NewServiceDataAttributesAlertBroadcastChannel**](NewServiceDataAttributesAlertBroadcastChannel.md) | | [optional] | |**incidentBroadcastEnabled** | **Boolean** | Enable incidents to be broadcasted to a specific channel | [optional] | |**incidentBroadcastChannel** | [**NewServiceDataAttributesIncidentBroadcastChannel**](NewServiceDataAttributesIncidentBroadcastChannel.md) | | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this service. | [optional] | diff --git a/docs/NewServiceDataAttributesAlertBroadcastChannel.md b/docs/NewServiceDataAttributesAlertBroadcastChannel.md index 6189ba0e..f95c1867 100644 --- a/docs/NewServiceDataAttributesAlertBroadcastChannel.md +++ b/docs/NewServiceDataAttributesAlertBroadcastChannel.md @@ -9,7 +9,7 @@ Slack channel to broadcast alerts to | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **String** | Slack channel ID | | -|**name** | **String** | Slack channel name | | +|**name** | **String** | Slack channel name | [optional] | diff --git a/docs/NewServiceDataAttributesIncidentBroadcastChannel.md b/docs/NewServiceDataAttributesIncidentBroadcastChannel.md index 0dbad397..4d0746f4 100644 --- a/docs/NewServiceDataAttributesIncidentBroadcastChannel.md +++ b/docs/NewServiceDataAttributesIncidentBroadcastChannel.md @@ -9,7 +9,7 @@ Slack channel to broadcast incidents to | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **String** | Slack channel ID | | -|**name** | **String** | Slack channel name | | +|**name** | **String** | Slack channel name | [optional] | diff --git a/docs/NewSeverityDataAttributes.md b/docs/NewSeverityDataAttributes.md index 2951be6f..1cf00357 100644 --- a/docs/NewSeverityDataAttributes.md +++ b/docs/NewSeverityDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the severity | | |**description** | **String** | The description of the severity | [optional] | |**severity** | [**SeverityEnum**](#SeverityEnum) | The severity of the severity | [optional] | diff --git a/docs/NewShiftCoverageRequest.md b/docs/NewShiftCoverageRequest.md new file mode 100644 index 00000000..fe3212de --- /dev/null +++ b/docs/NewShiftCoverageRequest.md @@ -0,0 +1,13 @@ + + +# NewShiftCoverageRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**NewShiftCoverageRequestData**](NewShiftCoverageRequestData.md) | | | + + + diff --git a/docs/NewShiftCoverageRequestData.md b/docs/NewShiftCoverageRequestData.md new file mode 100644 index 00000000..913bb69c --- /dev/null +++ b/docs/NewShiftCoverageRequestData.md @@ -0,0 +1,22 @@ + + +# NewShiftCoverageRequestData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**NewShiftCoverageRequestDataAttributes**](NewShiftCoverageRequestDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| SHIFT_COVERAGE_REQUESTS | "shift_coverage_requests" | + + + diff --git a/docs/NewShiftCoverageRequestDataAttributes.md b/docs/NewShiftCoverageRequestDataAttributes.md new file mode 100644 index 00000000..71816e66 --- /dev/null +++ b/docs/NewShiftCoverageRequestDataAttributes.md @@ -0,0 +1,15 @@ + + +# NewShiftCoverageRequestDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**startsAt** | **OffsetDateTime** | Start datetime of the time range to request coverage for | | +|**endsAt** | **OffsetDateTime** | End datetime of the time range to request coverage for | | +|**userId** | **Integer** | Optional. Restrict coverage to shifts assigned to this user. When omitted, every shift overlapping the time range is covered. | [optional] | + + + diff --git a/docs/NewSlaDataAttributes.md b/docs/NewSlaDataAttributes.md index 512cd906..09ddaa35 100644 --- a/docs/NewSlaDataAttributes.md +++ b/docs/NewSlaDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the SLA | | |**description** | **String** | A description of the SLA | [optional] | |**position** | **Integer** | Position of the SLA for ordering | [optional] | diff --git a/docs/NewStatusPageAnnouncement.md b/docs/NewStatusPageAnnouncement.md new file mode 100644 index 00000000..c64fb06e --- /dev/null +++ b/docs/NewStatusPageAnnouncement.md @@ -0,0 +1,13 @@ + + +# NewStatusPageAnnouncement + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**NewStatusPageAnnouncementData**](NewStatusPageAnnouncementData.md) | | | + + + diff --git a/docs/NewStatusPageAnnouncementData.md b/docs/NewStatusPageAnnouncementData.md new file mode 100644 index 00000000..386e7747 --- /dev/null +++ b/docs/NewStatusPageAnnouncementData.md @@ -0,0 +1,22 @@ + + +# NewStatusPageAnnouncementData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**NewStatusPageAnnouncementDataAttributes**](NewStatusPageAnnouncementDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_ANNOUNCEMENTS | "status_page_announcements" | + + + diff --git a/docs/NewStatusPageAnnouncementDataAttributes.md b/docs/NewStatusPageAnnouncementDataAttributes.md new file mode 100644 index 00000000..c33ff583 --- /dev/null +++ b/docs/NewStatusPageAnnouncementDataAttributes.md @@ -0,0 +1,15 @@ + + +# NewStatusPageAnnouncementDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**title** | **String** | Title of the announcement | | +|**body** | **String** | Body of the announcement | | +|**notifySubscribers** | **Boolean** | Controls if status page subscribers should be notified. Defaults to true | [optional] | + + + diff --git a/docs/NewStatusPageComponent.md b/docs/NewStatusPageComponent.md new file mode 100644 index 00000000..10168b24 --- /dev/null +++ b/docs/NewStatusPageComponent.md @@ -0,0 +1,13 @@ + + +# NewStatusPageComponent + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**NewStatusPageComponentData**](NewStatusPageComponentData.md) | | | + + + diff --git a/docs/NewStatusPageComponentData.md b/docs/NewStatusPageComponentData.md new file mode 100644 index 00000000..9027ad54 --- /dev/null +++ b/docs/NewStatusPageComponentData.md @@ -0,0 +1,22 @@ + + +# NewStatusPageComponentData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**NewStatusPageComponentDataAttributes**](NewStatusPageComponentDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_COMPONENTS | "status_page_components" | + + + diff --git a/docs/NewStatusPageComponentDataAttributes.md b/docs/NewStatusPageComponentDataAttributes.md new file mode 100644 index 00000000..477aae57 --- /dev/null +++ b/docs/NewStatusPageComponentDataAttributes.md @@ -0,0 +1,27 @@ + + +# NewStatusPageComponentDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Name of the component (required for ad-hoc components; derived from the source for catalog-backed ones) | [optional] | +|**description** | **String** | Description of the component (ad-hoc components only) | [optional] | +|**statusPageComponentGroupId** | **String** | ID of the component group on the same status page | [optional] | +|**position** | **Integer** | Position of the component (within its group, or on the page's top-level list when ungrouped) | [optional] | +|**sourceType** | [**SourceTypeEnum**](#SourceTypeEnum) | Catalog source type backing the component | [optional] | +|**sourceId** | **String** | ID of the catalog source backing the component | [optional] | + + + +## Enum: SourceTypeEnum + +| Name | Value | +|---- | -----| +| SERVICE | "Service" | +| FUNCTIONALITY | "Functionality" | + + + diff --git a/docs/NewStatusPageComponentGroup.md b/docs/NewStatusPageComponentGroup.md new file mode 100644 index 00000000..cc565069 --- /dev/null +++ b/docs/NewStatusPageComponentGroup.md @@ -0,0 +1,13 @@ + + +# NewStatusPageComponentGroup + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**NewStatusPageComponentGroupData**](NewStatusPageComponentGroupData.md) | | | + + + diff --git a/docs/NewStatusPageComponentGroupData.md b/docs/NewStatusPageComponentGroupData.md new file mode 100644 index 00000000..6b450f63 --- /dev/null +++ b/docs/NewStatusPageComponentGroupData.md @@ -0,0 +1,22 @@ + + +# NewStatusPageComponentGroupData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**NewStatusPageComponentGroupDataAttributes**](NewStatusPageComponentGroupDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_COMPONENT_GROUPS | "status_page_component_groups" | + + + diff --git a/docs/NewStatusPageComponentGroupDataAttributes.md b/docs/NewStatusPageComponentGroupDataAttributes.md new file mode 100644 index 00000000..318bff12 --- /dev/null +++ b/docs/NewStatusPageComponentGroupDataAttributes.md @@ -0,0 +1,16 @@ + + +# NewStatusPageComponentGroupDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Name of the component group | | +|**description** | **String** | Description of the component group | [optional] | +|**position** | **Integer** | Position of the group on the status page's top-level list (shared with ungrouped components) | [optional] | +|**collapsedByDefault** | **Boolean** | Whether the group renders collapsed on the public page | [optional] | + + + diff --git a/docs/NewStatusPageDataAttributes.md b/docs/NewStatusPageDataAttributes.md index e2bbc96b..7b5c9b0c 100644 --- a/docs/NewStatusPageDataAttributes.md +++ b/docs/NewStatusPageDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**title** | **String** | The title of the status page | | |**publicTitle** | **String** | The public title of the status page | [optional] | |**description** | **String** | The description of the status page | [optional] | @@ -25,6 +26,8 @@ |**samlIdpSloServiceUrl** | **String** | SAML IdP SLO service URL | [optional] | |**samlIdpCert** | **String** | SAML IdP certificate | [optional] | |**samlNameIdentifierFormat** | [**SamlNameIdentifierFormatEnum**](#SamlNameIdentifierFormatEnum) | SAML name identifier format | [optional] | +|**sectionOrder** | [**List<SectionOrderEnum>**](#List<SectionOrderEnum>) | Order of sections on the status page | [optional] | +|**externalDomainNames** | **List<String>** | External domain names attached to the status page | [optional] | |**websiteUrl** | **String** | Website URL | [optional] | |**websitePrivacyUrl** | **String** | Website Privacy URL | [optional] | |**websiteSupportUrl** | **String** | Website Support URL | [optional] | @@ -68,3 +71,13 @@ +## Enum: List<SectionOrderEnum> + +| Name | Value | +|---- | -----| +| MAINTENANCE | "maintenance" | +| SYSTEM_STATUS | "system_status" | +| INCIDENTS | "incidents" | + + + diff --git a/docs/NewStatusPageTemplateDataAttributes.md b/docs/NewStatusPageTemplateDataAttributes.md index a3ea8372..0963b598 100644 --- a/docs/NewStatusPageTemplateDataAttributes.md +++ b/docs/NewStatusPageTemplateDataAttributes.md @@ -9,6 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**statusPageId** | **String** | | [optional] | |**title** | **String** | Title of the template | | +|**updateTitle** | **String** | Title that will be used for the status page update | [optional] | |**body** | **String** | Description of the event the template will populate | | |**updateStatus** | [**UpdateStatusEnum**](#UpdateStatusEnum) | Status of the event the template will populate | [optional] | |**kind** | [**KindEnum**](#KindEnum) | The kind of the status page template | [optional] | diff --git a/docs/NewSubStatusDataAttributes.md b/docs/NewSubStatusDataAttributes.md index 3007cb6e..cad1213c 100644 --- a/docs/NewSubStatusDataAttributes.md +++ b/docs/NewSubStatusDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | | -|**slug** | **String** | | [optional] | |**description** | **String** | | [optional] | |**parentStatus** | [**ParentStatusEnum**](#ParentStatusEnum) | | | |**position** | **Integer** | | [optional] | diff --git a/docs/NewTeamDataAttributes.md b/docs/NewTeamDataAttributes.md index c8d1d756..e8f259f5 100644 --- a/docs/NewTeamDataAttributes.md +++ b/docs/NewTeamDataAttributes.md @@ -7,8 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the team | | |**description** | **String** | The description of the team | [optional] | +|**publicDescription** | **String** | The status page description of the team | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the team | [optional] | |**color** | **String** | The hex color of the team | [optional] | |**position** | **Integer** | Position of the team | [optional] | @@ -33,6 +35,19 @@ |**incidentBroadcastEnabled** | **Boolean** | Enable incidents to be broadcasted to a specific channel | [optional] | |**incidentBroadcastChannel** | [**NewServiceDataAttributesIncidentBroadcastChannel**](NewServiceDataAttributesIncidentBroadcastChannel.md) | | [optional] | |**autoAddMembersWhenAttached** | **Boolean** | Auto add members to incident channel when team is attached | [optional] | +|**autoAddMembersScope** | [**AutoAddMembersScopeEnum**](#AutoAddMembersScopeEnum) | Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this team. | [optional] | + + + +## Enum: AutoAddMembersScopeEnum + +| Name | Value | +|---- | -----| +| OFF | "off" | +| PUBLIC_ONLY | "public_only" | +| PUBLIC_AND_TEST | "public_and_test" | +| ALL | "all" | diff --git a/docs/NewUserNotificationRuleDataAttributes.md b/docs/NewUserNotificationRuleDataAttributes.md index 2256757d..854f918f 100644 --- a/docs/NewUserNotificationRuleDataAttributes.md +++ b/docs/NewUserNotificationRuleDataAttributes.md @@ -27,6 +27,8 @@ | DEVICE | "device" | | NON_CRITICAL_DEVICE | "non_critical_device" | | SLACK | "slack" | +| GOOGLE_CHAT | "google_chat" | +| MICROSOFT_TEAMS | "microsoft_teams" | diff --git a/docs/NewVerifiedDomain.md b/docs/NewVerifiedDomain.md new file mode 100644 index 00000000..e89b3645 --- /dev/null +++ b/docs/NewVerifiedDomain.md @@ -0,0 +1,13 @@ + + +# NewVerifiedDomain + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**NewVerifiedDomainData**](NewVerifiedDomainData.md) | | | + + + diff --git a/docs/NewVerifiedDomainData.md b/docs/NewVerifiedDomainData.md new file mode 100644 index 00000000..9917a4e0 --- /dev/null +++ b/docs/NewVerifiedDomainData.md @@ -0,0 +1,22 @@ + + +# NewVerifiedDomainData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**NewVerifiedDomainDataAttributes**](NewVerifiedDomainDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| VERIFIED_DOMAINS | "verified_domains" | + + + diff --git a/docs/NewVerifiedDomainDataAttributes.md b/docs/NewVerifiedDomainDataAttributes.md new file mode 100644 index 00000000..f05bd97d --- /dev/null +++ b/docs/NewVerifiedDomainDataAttributes.md @@ -0,0 +1,13 @@ + + +# NewVerifiedDomainDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**domain** | **String** | The domain to verify (e.g. acme.com) | | + + + diff --git a/docs/NewWebhooksEndpointDataAttributes.md b/docs/NewWebhooksEndpointDataAttributes.md index 9301660c..d8de7549 100644 --- a/docs/NewWebhooksEndpointDataAttributes.md +++ b/docs/NewWebhooksEndpointDataAttributes.md @@ -7,11 +7,13 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the endpoint | | |**url** | **String** | The URL of the endpoint. | | |**secret** | **String** | The webhook signing secret used to verify webhook requests. | [optional] | |**eventTypes** | [**List<EventTypesEnum>**](#List<EventTypesEnum>) | | [optional] | |**enabled** | **Boolean** | | [optional] | +|**customHeaders** | [**List<NewWebhooksEndpointDataAttributesCustomHeadersInner>**](NewWebhooksEndpointDataAttributesCustomHeadersInner.md) | Custom HTTP headers sent with each delivery. Max 10. Reserved names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected. | [optional] | @@ -42,12 +44,15 @@ | INCIDENT_EVENT_UPDATED | "incident_event.updated" | | INCIDENT_EVENT_DELETED | "incident_event.deleted" | | ALERT_CREATED | "alert.created" | +| ALERT_UPDATED | "alert.updated" | | PULSE_CREATED | "pulse.created" | +| SHIFT_STARTED | "shift.started" | | GENIUS_WORKFLOW_RUN_QUEUED | "genius_workflow_run.queued" | | GENIUS_WORKFLOW_RUN_STARTED | "genius_workflow_run.started" | | GENIUS_WORKFLOW_RUN_COMPLETED | "genius_workflow_run.completed" | | GENIUS_WORKFLOW_RUN_FAILED | "genius_workflow_run.failed" | | GENIUS_WORKFLOW_RUN_CANCELED | "genius_workflow_run.canceled" | +| AUDIT_LOG_CREATED | "audit_log.created" | diff --git a/docs/NewWebhooksEndpointDataAttributesCustomHeadersInner.md b/docs/NewWebhooksEndpointDataAttributesCustomHeadersInner.md new file mode 100644 index 00000000..f2ac26d0 --- /dev/null +++ b/docs/NewWebhooksEndpointDataAttributesCustomHeadersInner.md @@ -0,0 +1,14 @@ + + +# NewWebhooksEndpointDataAttributesCustomHeadersInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | | +|**value** | **String** | | | + + + diff --git a/docs/NewWorkflowActionItemFormFieldCondition.md b/docs/NewWorkflowActionItemFormFieldCondition.md new file mode 100644 index 00000000..fc43d9cf --- /dev/null +++ b/docs/NewWorkflowActionItemFormFieldCondition.md @@ -0,0 +1,13 @@ + + +# NewWorkflowActionItemFormFieldCondition + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**NewWorkflowActionItemFormFieldConditionData**](NewWorkflowActionItemFormFieldConditionData.md) | | | + + + diff --git a/docs/NewWorkflowActionItemFormFieldConditionData.md b/docs/NewWorkflowActionItemFormFieldConditionData.md new file mode 100644 index 00000000..bed40154 --- /dev/null +++ b/docs/NewWorkflowActionItemFormFieldConditionData.md @@ -0,0 +1,22 @@ + + +# NewWorkflowActionItemFormFieldConditionData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**NewWorkflowActionItemFormFieldConditionDataAttributes**](NewWorkflowActionItemFormFieldConditionDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| WORKFLOW_ACTION_ITEM_FORM_FIELD_CONDITIONS | "workflow_action_item_form_field_conditions" | + + + diff --git a/docs/NewWorkflowActionItemFormFieldConditionDataAttributes.md b/docs/NewWorkflowActionItemFormFieldConditionDataAttributes.md new file mode 100644 index 00000000..0bbb7d4a --- /dev/null +++ b/docs/NewWorkflowActionItemFormFieldConditionDataAttributes.md @@ -0,0 +1,40 @@ + + +# NewWorkflowActionItemFormFieldConditionDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**formFieldId** | **String** | The custom field for this condition | | +|**actionItemCondition** | [**ActionItemConditionEnum**](#ActionItemConditionEnum) | The trigger condition | | +|**values** | **List<String>** | | [optional] | +|**selectedCatalogEntityIds** | **List<String>** | | [optional] | +|**selectedFunctionalityIds** | **List<String>** | | [optional] | +|**selectedGroupIds** | **List<String>** | | [optional] | +|**selectedOptionIds** | **List<String>** | | [optional] | +|**selectedServiceIds** | **List<String>** | | [optional] | +|**selectedUserIds** | **List<Integer>** | | [optional] | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | + + + +## Enum: ActionItemConditionEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + diff --git a/docs/NewWorkflowDataAttributes.md b/docs/NewWorkflowDataAttributes.md index 0cb7655a..0a6dcc66 100644 --- a/docs/NewWorkflowDataAttributes.md +++ b/docs/NewWorkflowDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The title of the workflow | | -|**slug** | **String** | The slug of the workflow | [optional] | |**description** | **String** | The description of the workflow | [optional] | |**command** | **String** | Workflow command | [optional] | |**commandFeedbackEnabled** | **Boolean** | This will notify you back when the workflow is starting | [optional] | diff --git a/docs/NewWorkflowDataAttributesTriggerParams.md b/docs/NewWorkflowDataAttributesTriggerParams.md index 3beea5ad..fdb31bab 100644 --- a/docs/NewWorkflowDataAttributesTriggerParams.md +++ b/docs/NewWorkflowDataAttributesTriggerParams.md @@ -26,6 +26,9 @@ |**incidentConditionFunctionality** | [**IncidentConditionFunctionalityEnum**](#IncidentConditionFunctionalityEnum) | | [optional] | |**incidentConditionGroup** | [**IncidentConditionGroupEnum**](#IncidentConditionGroupEnum) | | [optional] | |**incidentConditionCause** | [**IncidentConditionCauseEnum**](#IncidentConditionCauseEnum) | | [optional] | +|**incidentConditionLabel** | [**IncidentConditionLabelEnum**](#IncidentConditionLabelEnum) | | [optional] | +|**incidentConditionLabelUseRegexp** | **Boolean** | | [optional] | +|**incidentLabels** | **List<String>** | | [optional] | |**incidentPostMortemConditionCause** | [**IncidentPostMortemConditionCauseEnum**](#IncidentPostMortemConditionCauseEnum) | [DEPRECATED] Use incident_condition_cause instead | [optional] | |**incidentConditionSummary** | [**IncidentConditionSummaryEnum**](#IncidentConditionSummaryEnum) | | [optional] | |**incidentConditionStartedAt** | [**IncidentConditionStartedAtEnum**](#IncidentConditionStartedAtEnum) | | [optional] | @@ -53,11 +56,14 @@ |**alertConditionStatusUseRegexp** | **Boolean** | | [optional] | |**alertStatuses** | **List<String>** | | [optional] | |**alertLabels** | **List<String>** | | [optional] | +|**alertConditionUrgency** | [**AlertConditionUrgencyEnum**](#AlertConditionUrgencyEnum) | | [optional] | +|**alertUrgencyIds** | **List<UUID>** | | [optional] | |**alertConditionPayload** | [**AlertConditionPayloadEnum**](#AlertConditionPayloadEnum) | | [optional] | |**alertConditionPayloadUseRegexp** | **Boolean** | | [optional] | |**alertPayload** | **List<String>** | | [optional] | |**alertQueryPayload** | **String** | You can use jsonpath syntax. eg: $.incident.teams[*] | [optional] | |**alertFieldConditions** | [**List<AlertTriggerParamsAlertFieldConditionsInner>**](AlertTriggerParamsAlertFieldConditionsInner.md) | | [optional] | +|**alertPayloadConditions** | [**AlertTriggerParamsAlertPayloadConditions**](AlertTriggerParamsAlertPayloadConditions.md) | | [optional] | |**pulseCondition** | [**PulseConditionEnum**](#PulseConditionEnum) | | [optional] | |**pulseConditionSource** | [**PulseConditionSourceEnum**](#PulseConditionSourceEnum) | | [optional] | |**pulseConditionSourceUseRegexp** | **Boolean** | | [optional] | @@ -324,6 +330,22 @@ +## Enum: IncidentConditionLabelEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + ## Enum: IncidentPostMortemConditionCauseEnum | Name | Value | @@ -564,6 +586,22 @@ +## Enum: AlertConditionUrgencyEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + ## Enum: AlertConditionPayloadEnum | Name | Value | diff --git a/docs/NewWorkflowFormFieldConditionDataAttributes.md b/docs/NewWorkflowFormFieldConditionDataAttributes.md index d5d90472..2618c21f 100644 --- a/docs/NewWorkflowFormFieldConditionDataAttributes.md +++ b/docs/NewWorkflowFormFieldConditionDataAttributes.md @@ -17,6 +17,9 @@ |**selectedOptionIds** | **List<String>** | | [optional] | |**selectedServiceIds** | **List<String>** | | [optional] | |**selectedUserIds** | **List<Integer>** | | [optional] | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | diff --git a/docs/NewWorkflowGroupDataAttributes.md b/docs/NewWorkflowGroupDataAttributes.md index c80533a8..9a2eb080 100644 --- a/docs/NewWorkflowGroupDataAttributes.md +++ b/docs/NewWorkflowGroupDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name` and `kind`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**kind** | [**KindEnum**](#KindEnum) | The kind of the workflow group | [optional] | |**name** | **String** | The name of the workflow group. | | |**description** | **String** | A description of the workflow group. | [optional] | diff --git a/docs/NewWorkflowTaskDataAttributesTaskParams.md b/docs/NewWorkflowTaskDataAttributesTaskParams.md index d01d7edc..03dd2203 100644 --- a/docs/NewWorkflowTaskDataAttributesTaskParams.md +++ b/docs/NewWorkflowTaskDataAttributesTaskParams.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | -|**attributeToQueryBy** | [**AttributeToQueryByEnum**](#AttributeToQueryByEnum) | [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] | | +|**attributeToQueryBy** | [**AttributeToQueryByEnum**](#AttributeToQueryByEnum) | [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] | | |**queryValue** | **String** | Value that attribute_to_query_by to uses to match against | | |**incidentRoleId** | **String** | The role id | | |**assignedToUserId** | **String** | [DEPRECATED] Use assigned_to_user attribute instead. The user id this role is assigned to | [optional] | @@ -22,24 +22,24 @@ |**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | |**postToSlackChannels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**groupIds** | **List<String>** | Array of group/team UUIDs | [optional] | -|**playbookId** | **String** | The playbook id if tab is of an incident playbook | [optional] | +|**playbookId** | **String** | | | |**channel** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**title** | **String** | The task title | | -|**link** | **String** | The tab link. Required if not a playbook tab | [optional] | +|**link** | **String** | The tab link | | |**emoji** | **String** | The bookmark emoji | [optional] | |**groupId** | **String** | The team id | | |**event** | **String** | Incident event description | | |**url** | **String** | | | -|**channels** | [**List<Object>**](Object.md) | | | +|**channels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**dashboards** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | -|**schedule** | [**Object**](Object.md) | | | -|**escalationPolicyTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**scheduleTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**schedule** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**escalationPolicyTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**scheduleTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**service** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | -|**escalationPolicy** | [**Object**](Object.md) | | [optional] | +|**escalationPolicy** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**pagerdutyIncidentId** | **String** | PagerDuty incident id | | |**resolution** | **String** | A message outlining the incident's resolution in PagerDuty | [optional] | |**escalationLevel** | **Integer** | Escalation level of policy attached to incident | [optional] | @@ -47,7 +47,7 @@ |**message** | **String** | | | |**severity** | [**SeverityEnum**](#SeverityEnum) | | [optional] | |**teams** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**users** | [**List<Object>**](Object.md) | | [optional] | +|**users** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**incident** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**pagertreeAlertId** | **String** | The prefix ID of the Pagertree alert | [optional] | |**team** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | @@ -71,15 +71,20 @@ |**template** | [**UpdateDatadogNotebookTaskParamsTemplate**](UpdateDatadogNotebookTaskParamsTemplate.md) | | [optional] | |**postMortemTemplateId** | **String** | Retrospective template to use when updating notebook, if desired | [optional] | |**markPostMortemAsPublished** | **Boolean** | | [optional] | +|**includeOverview** | **Boolean** | | [optional] | +|**includeTimeline** | **Boolean** | | [optional] | +|**includeFollowUps** | **Boolean** | | [optional] | +|**createAsLiveDoc** | **Boolean** | | [optional] | |**subtitle** | **String** | The Coda page subtitle | [optional] | |**folderId** | **String** | The Coda folder id | [optional] | |**doc** | [**CreateCodaPageTaskParamsDoc**](CreateCodaPageTaskParamsDoc.md) | | [optional] | |**namespace** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**parentFolder** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**body** | **String** | The issue body | | -|**repository** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | -|**issueType** | [**IssueTypeEnum**](#IssueTypeEnum) | The issue type | | +|**repository** | [**UpdateGithubIssueTaskParamsRepository**](UpdateGithubIssueTaskParamsRepository.md) | | | |**labels** | **List<String>** | | [optional] | +|**issueType** | [**IssueTypeEnum**](#IssueTypeEnum) | The issue type | | +|**parentIssueNumber** | **String** | The parent issue number for sub-issue linking | [optional] | |**calendar** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**attendees** | **List<String>** | Emails of attendees | [optional] | |**timeZone** | **String** | A valid IANA time zone name. | [optional] | @@ -109,12 +114,13 @@ |**value** | **String** | | | |**parentFolderId** | **String** | The parent folder id | [optional] | |**recordMeeting** | **Boolean** | Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting | [optional] | +|**recordingMode** | [**RecordingModeEnum**](#RecordingModeEnum) | The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) | [optional] | |**subject** | **String** | The ticket subject | | |**conferenceCallInfo** | [**ConferenceCallInfoEnum**](#ConferenceCallInfoEnum) | | [optional] | |**passwordRequired** | **Boolean** | | [optional] | |**severityId** | **String** | | [optional] | |**incidentTypeIds** | **List<String>** | | [optional] | -|**serviceIds** | **List<String>** | Array of service UUIDs | [optional] | +|**serviceIds** | **List<String>** | Array of service UUIDs | | |**functionalityIds** | **List<String>** | Array of functionality UUIDs | [optional] | |**environmentIds** | **List<String>** | | [optional] | |**_private** | **Boolean** | | [optional] | @@ -122,23 +128,32 @@ |**reporterUserEmail** | **String** | The reporter user's email | [optional] | |**projectKey** | **String** | The project key | | |**updatePayload** | **String** | Update payload. Can contain liquid markup and need to be valid JSON | [optional] | +|**retryCount** | **Integer** | Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. | [optional] | +|**retryWaitTime** | **Integer** | Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. | [optional] | |**parentIssueId** | **String** | The parent issue | | |**subtaskIssueType** | [**CreateJiraIssueTaskParamsIssueType**](CreateJiraIssueTaskParamsIssueType.md) | | | -|**state** | [**UpdateLinearIssueTaskParamsState**](UpdateLinearIssueTaskParamsState.md) | | | -|**project** | [**CreateLinearIssueTaskParamsProject**](CreateLinearIssueTaskParamsProject.md) | | [optional] | |**issueId** | **String** | The issue id | | +|**filename** | **String** | The attachment filename | [optional] | +|**ticketId** | **String** | The ticket id | | +|**state** | [**UpdateLinearIssueTaskParamsState**](UpdateLinearIssueTaskParamsState.md) | | | +|**project** | [**CreateLinearIssueTaskParamsProject**](CreateLinearIssueTaskParamsProject.md) | | | |**topic** | **String** | | | |**chatType** | [**ChatTypeEnum**](#ChatTypeEnum) | Type of chat to create | [optional] | |**members** | [**List<CreateMicrosoftTeamsChatTaskParamsMembersInner>**](CreateMicrosoftTeamsChatTaskParamsMembersInner.md) | Array of members to include in the chat | | +|**chat** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**audience** | **String** | Target audience resource name (e.g. audiences/default). Leave blank to make private. | [optional] | +|**spaces** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**text** | **String** | The message text | | +|**threadKey** | **String** | Thread key to reply within a thread. Messages with the same thread key are grouped together | [optional] | +|**attachments** | **String** | Support liquid markup. Needs to be a valid JSON string after liquid is parsed | | |**emails** | **String** | Comma separated list of emails to invite | | |**parentPage** | [**CreateNotionPageTaskParamsParentPage**](CreateNotionPageTaskParamsParentPage.md) | | | |**showTimelineAsTable** | **Boolean** | | [optional] | |**showActionItemsAsTable** | **Boolean** | | [optional] | -|**text** | **String** | The message text | | -|**attachments** | **String** | Support liquid markup. Needs to be a valid JSON string after liquid is parsed | | +|**chats** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**archivation** | [**CreateTrelloCardTaskParamsArchivation**](CreateTrelloCardTaskParamsArchivation.md) | | | |**group** | [**Object**](Object.md) | The group id and display name | [optional] | -|**workflowState** | [**Object**](Object.md) | The workflow state id workflow state name | [optional] | +|**workflowState** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**parentStoryId** | **String** | The parent story | | |**board** | [**CreateTrelloCardTaskParamsBoard**](CreateTrelloCardTaskParamsBoard.md) | | | |**_list** | [**CreateTrelloCardTaskParamsList**](CreateTrelloCardTaskParamsList.md) | | | @@ -154,11 +169,12 @@ |**createAsEmail** | **String** | The email to use if creating as email | [optional] | |**alternativeHosts** | **List<String>** | | [optional] | |**autoRecording** | [**AutoRecordingEnum**](#AutoRecordingEnum) | | [optional] | -|**githubRepositoryNames** | **List<String>** | | [optional] | +|**enableZoomBotAutoJoin** | **Boolean** | Allow the Rootly bot to start recording without waiting for host approval | [optional] | +|**githubRepositoryNames** | **List<String>** | | | |**branch** | **String** | The branch | | |**pastDuration** | **String** | in format '1 minute', '30 days', '3 months', etc | | |**servicesImpactedByIncident** | **Boolean** | | [optional] | -|**gitlabRepositoryNames** | **List<String>** | | [optional] | +|**gitlabRepositoryNames** | **List<String>** | | | |**refs** | **List<String>** | | [optional] | |**sources** | **List<String>** | | [optional] | |**environmentsImpactedByIncident** | **Boolean** | | [optional] | @@ -169,17 +185,19 @@ |**eventMessage** | **String** | | [optional] | |**method** | [**MethodEnum**](#MethodEnum) | HTTP method | [optional] | |**succeedOnStatus** | **String** | HTTP status code expected. Can be a regular expression. Eg: 200, 200|203, 20[0-3] | | -|**slackUsers** | [**List<Object>**](Object.md) | | [optional] | -|**slackUserGroups** | [**List<Object>**](Object.md) | | [optional] | -|**slackEmails** | **String** | Comma separated list of emails to invite to the channel | [optional] | +|**slackUsers** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**slackUserGroups** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**slackEmails** | **String** | | | |**schedules** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**escalations** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**details** | **String** | Details payload. Can contain liquid markup and need to be valid JSON | [optional] | |**alertId** | **String** | Opsgenie Alert ID | | |**opsgenieIncidentId** | **String** | The Opsgenie incident ID, this can also be a Rootly incident variable ex. {{ incident.opsgenie_incident_id }} | | -|**alertUrgencyId** | **String** | Alert urgency ID | [optional] | +|**functionalityTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**alertUrgencyId** | **String** | Alert urgency ID | | |**escalationNote** | **String** | | [optional] | -|**escalationPolicies** | [**List<Object>**](Object.md) | | [optional] | +|**createNewAlert** | **Boolean** | When true, always create a new alert instead of re-paging the alert that triggered the workflow | [optional] | +|**escalationPolicies** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**createNewIncidentOnConflict** | **Boolean** | Rootly only supports linking to a single PagerDuty incident. If this feature is disabled Rootly will add responders from any additional pages to the existing PagerDuty incident that is linked to the Rootly incident. If enabled, Rootly will create a new PagerDuty incident that is not linked to any Rootly incidents | [optional] | |**victorOpsIncidentId** | **String** | The victor_ops incident ID, this can also be a Rootly incident variable ex. {{ incident.victor_ops_incident_id }} | | |**resolutionMessage** | **String** | Resolution message | [optional] | @@ -188,6 +206,7 @@ |**shouldTweet** | **Boolean** | For Statuspage.io integrated pages auto publishes a tweet for your update | [optional] | |**statusPageTemplate** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**statusPageId** | **String** | | | +|**statusPageIds** | **List<String>** | Publishes the update to every listed status page (requires the status-page-v3-limited-bulk-publish feature). When set, it takes precedence over status_page_id and the first entry becomes status_page_id. | [optional] | |**integrationPayload** | **String** | Additional API Payload you can pass to statuspage.io for example. Can contain liquid markup and need to be valid JSON | [optional] | |**commands** | **String** | | | |**privacy** | [**PrivacyEnum**](#PrivacyEnum) | | | @@ -218,6 +237,7 @@ |**tableName** | **String** | The table name | | |**recordId** | **String** | The record id | | |**taskId** | **String** | The task id | | +|**labelsMode** | [**LabelsModeEnum**](#LabelsModeEnum) | How to apply labels. 'replace' (default) overwrites all existing labels. 'append' adds to existing labels without removing them. | [optional] | |**startedAt** | **String** | | [optional] | |**detectedAt** | **String** | | [optional] | |**acknowledgedAt** | **String** | | [optional] | @@ -229,7 +249,6 @@ |**subStatusId** | **String** | Sub-status to update timestamp for | | |**assignedAt** | **String** | Timestamp of when the sub-status was assigned | | |**cardId** | **String** | The card id | | -|**ticketId** | **String** | The ticket id | | |**resource** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**workflow** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**checkWorkflowConditions** | **Boolean** | | [optional] | @@ -238,7 +257,7 @@ |**systemPrompt** | **String** | The system prompt to send to Anthropic (optional) | [optional] | |**prompt** | **String** | The prompt to send to Anthropic | | |**temperature** | **BigDecimal** | Sampling temperature (0.0-1.5). Higher values make output more random. | [optional] | -|**maxTokens** | **Integer** | Maximum number of tokens to generate | [optional] | +|**maxTokens** | **Integer** | Maximum number of tokens to generate. Defaults to 4000 when omitted | [optional] | |**topP** | **BigDecimal** | Nucleus sampling parameter (0.0-1.0) | [optional] | |**reasoningEffort** | [**ReasoningEffortEnum**](#ReasoningEffortEnum) | Constrains effort on reasoning for GPT-5 and o-series models | [optional] | |**reasoningSummary** | [**ReasoningSummaryEnum**](#ReasoningSummaryEnum) | Summary of the reasoning performed by the model for GPT-5 and o-series models | [optional] | @@ -285,8 +304,8 @@ | Name | Value | |---- | -----| | INCIDENT | "incident" | -| POST_MORTEM | "post_mortem" | | ACTION_ITEM | "action_item" | +| POST_MORTEM | "post_mortem" | | PULSE | "pulse" | | ALERT | "alert" | @@ -354,6 +373,17 @@ +## Enum: RecordingModeEnum + +| Name | Value | +|---- | -----| +| SPEAKER_VIEW | "speaker_view" | +| GALLERY_VIEW | "gallery_view" | +| GALLERY_VIEW_V2 | "gallery_view_v2" | +| AUDIO_ONLY | "audio_only" | + + + ## Enum: ConferenceCallInfoEnum | Name | Value | @@ -464,6 +494,15 @@ +## Enum: LabelsModeEnum + +| Name | Value | +|---- | -----| +| REPLACE | "replace" | +| APPEND | "append" | + + + ## Enum: ReasoningEffortEnum | Name | Value | diff --git a/docs/OnCallPayReport.md b/docs/OnCallPayReport.md index 47cdd7e6..4f3b5e41 100644 --- a/docs/OnCallPayReport.md +++ b/docs/OnCallPayReport.md @@ -22,7 +22,8 @@ |**hasSingleRate** | **Boolean** | Whether a single rate is applied to all users. | [optional] | |**enabledGranularTimeBreakdown** | **Boolean** | Whether granular time breakdown is enabled. | [optional] | |**lastGeneratedAt** | **OffsetDateTime** | When the report was last generated. | [optional] | -|**timeZone** | **String** | The team's IANA timezone used to interpret start_date and end_date. | [optional] | +|**timeZone** | **String** | The IANA timezone used to compute day and weekend boundaries for this report. Defaults to the team's timezone. | [optional] | +|**useRespondersTimeZone** | **Boolean** | When true, each responder's personal timezone is used for their pay calculation; otherwise the report-wide time_zone is used. | [optional] | |**csvFileUrl** | **URI** | Download URL for the generated CSV report. Null until the report is generated. | [optional] | |**xlsxFileUrl** | **URI** | Download URL for the generated XLSX report. Null until the report is generated. | [optional] | |**createdAt** | **OffsetDateTime** | | | diff --git a/docs/OnCallPayReportList.md b/docs/OnCallPayReportList.md index b56490da..d6e090a5 100644 --- a/docs/OnCallPayReportList.md +++ b/docs/OnCallPayReportList.md @@ -10,6 +10,7 @@ |**data** | [**List<OnCallPayReportResponseData>**](OnCallPayReportResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OnCallPayReportResponse.md b/docs/OnCallPayReportResponse.md index 7f4f2fc3..1a4d0417 100644 --- a/docs/OnCallPayReportResponse.md +++ b/docs/OnCallPayReportResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**OnCallPayReportResponseData**](OnCallPayReportResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OnCallRole.md b/docs/OnCallRole.md index 4ea5c21e..b249dd35 100644 --- a/docs/OnCallRole.md +++ b/docs/OnCallRole.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The role name. | | -|**slug** | **String** | The role slug. | | +|**slug** | **String** | The role slug. | [optional] [readonly] | |**systemRole** | [**List<SystemRoleEnum>**](#List<SystemRoleEnum>) | The kind of role | [optional] | |**alertSourcesPermissions** | [**List<AlertSourcesPermissionsEnum>**](#List<AlertSourcesPermissionsEnum>) | | [optional] | |**alertUrgencyPermissions** | [**List<AlertUrgencyPermissionsEnum>**](#List<AlertUrgencyPermissionsEnum>) | | [optional] | @@ -30,8 +30,10 @@ |**scheduleOverridePermissions** | [**List<ScheduleOverridePermissionsEnum>**](#List<ScheduleOverridePermissionsEnum>) | | [optional] | |**schedulesPermissions** | [**List<SchedulesPermissionsEnum>**](#List<SchedulesPermissionsEnum>) | | [optional] | |**servicesPermissions** | [**List<ServicesPermissionsEnum>**](#List<ServicesPermissionsEnum>) | | [optional] | +|**functionalitiesPermissions** | [**List<FunctionalitiesPermissionsEnum>**](#List<FunctionalitiesPermissionsEnum>) | | [optional] | |**webhooksPermissions** | [**List<WebhooksPermissionsEnum>**](#List<WebhooksPermissionsEnum>) | | [optional] | |**workflowsPermissions** | [**List<WorkflowsPermissionsEnum>**](#List<WorkflowsPermissionsEnum>) | | [optional] | +|**catalogsPermissions** | [**List<CatalogsPermissionsEnum>**](#List<CatalogsPermissionsEnum>) | | [optional] | |**createdAt** | **String** | | | |**updatedAt** | **String** | | | @@ -130,6 +132,7 @@ | CREATE | "create" | | UPDATE | "update" | | READ | "read" | +| DELETE | "delete" | @@ -260,6 +263,17 @@ +## Enum: List<FunctionalitiesPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + ## Enum: List<WebhooksPermissionsEnum> | Name | Value | @@ -282,3 +296,14 @@ +## Enum: List<CatalogsPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + diff --git a/docs/OnCallRoleList.md b/docs/OnCallRoleList.md index 01625e9a..e6c712a6 100644 --- a/docs/OnCallRoleList.md +++ b/docs/OnCallRoleList.md @@ -10,6 +10,7 @@ |**data** | [**List<OnCallRoleResponseData>**](OnCallRoleResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OnCallRoleResponse.md b/docs/OnCallRoleResponse.md index f9a59042..f0eb6e75 100644 --- a/docs/OnCallRoleResponse.md +++ b/docs/OnCallRoleResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**OnCallRoleResponseData**](OnCallRoleResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OnCallShadowResponse.md b/docs/OnCallShadowResponse.md index da7a037d..a068e8a0 100644 --- a/docs/OnCallShadowResponse.md +++ b/docs/OnCallShadowResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**OnCallShadowResponseData**](OnCallShadowResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OnCallShadowsList.md b/docs/OnCallShadowsList.md index e918f3de..d444a6f0 100644 --- a/docs/OnCallShadowsList.md +++ b/docs/OnCallShadowsList.md @@ -10,6 +10,7 @@ |**data** | [**List<OnCallShadowsListDataInner>**](OnCallShadowsListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OnCallsApi.md b/docs/OnCallsApi.md index 1d4b13ca..a338ced8 100644 --- a/docs/OnCallsApi.md +++ b/docs/OnCallsApi.md @@ -9,7 +9,7 @@ All URIs are relative to *https://api.rootly.com* # **listOncalls** -> listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes) +> OncallList listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes) List on-calls @@ -38,16 +38,17 @@ public class Example { String include = "user"; // String | comma separated if needed. eg: user,schedule String since = "since_example"; // String | Start of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to current time. String until = "until_example"; // String | End of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to 'since' time. - Boolean earliest = true; // Boolean | When true, returns only the first on-call user per escalation policy level + Boolean earliest = true; // Boolean | When true, returns only the first on-call entry per escalation policy path and level String timeZone = "timeZone_example"; // String | Timezone for response times (e.g., America/New_York). Defaults to UTC. String filterEscalationPolicyIds = "filterEscalationPolicyIds_example"; // String | Comma-separated escalation policy IDs String filterScheduleIds = "filterScheduleIds_example"; // String | Comma-separated schedule IDs String filterUserIds = "filterUserIds_example"; // String | Comma-separated user IDs String filterServiceIds = "filterServiceIds_example"; // String | Comma-separated service IDs String filterGroupIds = "filterGroupIds_example"; // String | Comma-separated group IDs (teams) - String filterNotificationTypes = "filterNotificationTypes_example"; // String | Comma-separated notification types to include. One or both of: audible, quiet. When present, oncalls are returned from every non-deferral escalation path whose notification_type is in the filter, sorted audible-first. When absent, only the default path's oncalls are returned (existing behavior). + String filterNotificationTypes = "filterNotificationTypes_example"; // String | Comma-separated notification types to include. One or both of: audible, quiet. When omitted, returns oncalls from all non-deferral escalation paths. When provided, limits results to matching notification types and sorts audible-first. try { - apiInstance.listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes); + OncallList result = apiInstance.listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes); + System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling OnCallsApi#listOncalls"); System.err.println("Status code: " + e.getCode()); @@ -66,18 +67,18 @@ public class Example { | **include** | **String**| comma separated if needed. eg: user,schedule | [optional] [enum: user, schedule, escalation_policy] | | **since** | **String**| Start of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to current time. | [optional] | | **until** | **String**| End of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to 'since' time. | [optional] | -| **earliest** | **Boolean**| When true, returns only the first on-call user per escalation policy level | [optional] | +| **earliest** | **Boolean**| When true, returns only the first on-call entry per escalation policy path and level | [optional] | | **timeZone** | **String**| Timezone for response times (e.g., America/New_York). Defaults to UTC. | [optional] | | **filterEscalationPolicyIds** | **String**| Comma-separated escalation policy IDs | [optional] | | **filterScheduleIds** | **String**| Comma-separated schedule IDs | [optional] | | **filterUserIds** | **String**| Comma-separated user IDs | [optional] | | **filterServiceIds** | **String**| Comma-separated service IDs | [optional] | | **filterGroupIds** | **String**| Comma-separated group IDs (teams) | [optional] | -| **filterNotificationTypes** | **String**| Comma-separated notification types to include. One or both of: audible, quiet. When present, oncalls are returned from every non-deferral escalation path whose notification_type is in the filter, sorted audible-first. When absent, only the default path's oncalls are returned (existing behavior). | [optional] | +| **filterNotificationTypes** | **String**| Comma-separated notification types to include. One or both of: audible, quiet. When omitted, returns oncalls from all non-deferral escalation paths. When provided, limits results to matching notification types and sorts audible-first. | [optional] | ### Return type -null (empty response body) +[**OncallList**](OncallList.md) ### Authorization diff --git a/docs/Oncall.md b/docs/Oncall.md new file mode 100644 index 00000000..754c3b86 --- /dev/null +++ b/docs/Oncall.md @@ -0,0 +1,33 @@ + + +# Oncall + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**escalationPolicyId** | **String** | ID of the escalation policy | | +|**escalationPolicyName** | **String** | Name of the escalation policy | | +|**escalationPolicyPathId** | **String** | ID of the escalation policy path | [optional] | +|**escalationPolicyPathName** | **String** | Name of the escalation policy path | [optional] | +|**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | Notification type of the escalation path (audible or quiet) | [optional] | +|**isDefaultPath** | **Boolean** | Whether this is the default escalation path | [optional] | +|**escalationLevel** | **Integer** | Level within the escalation policy | [optional] | +|**scheduleId** | **String** | ID of the schedule | [optional] | +|**scheduleName** | **String** | Name of the schedule | [optional] | +|**userId** | **Integer** | ID of the on-call user | | +|**startsAt** | **OffsetDateTime** | Start datetime of the on-call shift | | +|**endsAt** | **OffsetDateTime** | End datetime of the on-call shift | | + + + +## Enum: NotificationTypeEnum + +| Name | Value | +|---- | -----| +| AUDIBLE | "audible" | +| QUIET | "quiet" | + + + diff --git a/docs/OncallList.md b/docs/OncallList.md new file mode 100644 index 00000000..dff64f1b --- /dev/null +++ b/docs/OncallList.md @@ -0,0 +1,14 @@ + + +# OncallList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<OncallListDataInner>**](OncallListDataInner.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/OncallListDataInner.md b/docs/OncallListDataInner.md new file mode 100644 index 00000000..ef774aff --- /dev/null +++ b/docs/OncallListDataInner.md @@ -0,0 +1,24 @@ + + +# OncallListDataInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the on-call entry | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**Oncall**](Oncall.md) | | | +|**relationships** | [**OncallRelationships**](OncallRelationships.md) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| ON_CALL_RESOURCES | "on_call_resources" | + + + diff --git a/docs/OncallRelationships.md b/docs/OncallRelationships.md new file mode 100644 index 00000000..4d3bfff9 --- /dev/null +++ b/docs/OncallRelationships.md @@ -0,0 +1,15 @@ + + +# OncallRelationships + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**user** | [**OncallRelationshipsUser**](OncallRelationshipsUser.md) | | [optional] | +|**schedule** | [**OncallRelationshipsSchedule**](OncallRelationshipsSchedule.md) | | [optional] | +|**escalationPolicy** | [**OncallRelationshipsEscalationPolicy**](OncallRelationshipsEscalationPolicy.md) | | [optional] | + + + diff --git a/docs/OncallRelationshipsEscalationPolicy.md b/docs/OncallRelationshipsEscalationPolicy.md new file mode 100644 index 00000000..08b02b8f --- /dev/null +++ b/docs/OncallRelationshipsEscalationPolicy.md @@ -0,0 +1,13 @@ + + +# OncallRelationshipsEscalationPolicy + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**OncallRelationshipsEscalationPolicyData**](OncallRelationshipsEscalationPolicyData.md) | | [optional] | + + + diff --git a/docs/OncallRelationshipsEscalationPolicyData.md b/docs/OncallRelationshipsEscalationPolicyData.md new file mode 100644 index 00000000..b494bd06 --- /dev/null +++ b/docs/OncallRelationshipsEscalationPolicyData.md @@ -0,0 +1,22 @@ + + +# OncallRelationshipsEscalationPolicyData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| ESCALATION_POLICIES | "escalation_policies" | + + + diff --git a/docs/OncallRelationshipsSchedule.md b/docs/OncallRelationshipsSchedule.md new file mode 100644 index 00000000..33791363 --- /dev/null +++ b/docs/OncallRelationshipsSchedule.md @@ -0,0 +1,13 @@ + + +# OncallRelationshipsSchedule + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**OncallRelationshipsScheduleData**](OncallRelationshipsScheduleData.md) | | [optional] | + + + diff --git a/docs/OncallRelationshipsScheduleData.md b/docs/OncallRelationshipsScheduleData.md new file mode 100644 index 00000000..e962fe97 --- /dev/null +++ b/docs/OncallRelationshipsScheduleData.md @@ -0,0 +1,22 @@ + + +# OncallRelationshipsScheduleData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| SCHEDULES | "schedules" | + + + diff --git a/docs/OncallRelationshipsUser.md b/docs/OncallRelationshipsUser.md new file mode 100644 index 00000000..d2639af7 --- /dev/null +++ b/docs/OncallRelationshipsUser.md @@ -0,0 +1,13 @@ + + +# OncallRelationshipsUser + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**OncallRelationshipsUserData**](OncallRelationshipsUserData.md) | | [optional] | + + + diff --git a/docs/OncallRelationshipsUserData.md b/docs/OncallRelationshipsUserData.md new file mode 100644 index 00000000..ba2cc79f --- /dev/null +++ b/docs/OncallRelationshipsUserData.md @@ -0,0 +1,22 @@ + + +# OncallRelationshipsUserData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| USERS | "users" | + + + diff --git a/docs/OverrideShiftList.md b/docs/OverrideShiftList.md index 7168a4e1..b10dc3e6 100644 --- a/docs/OverrideShiftList.md +++ b/docs/OverrideShiftList.md @@ -10,6 +10,7 @@ |**data** | [**List<OverrideShiftResponseData>**](OverrideShiftResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OverrideShiftResponse.md b/docs/OverrideShiftResponse.md index 61a7ecec..c6b1d9e2 100644 --- a/docs/OverrideShiftResponse.md +++ b/docs/OverrideShiftResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**OverrideShiftResponseData**](OverrideShiftResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/OverrideShiftsApi.md b/docs/OverrideShiftsApi.md index db25a8eb..275d28ac 100644 --- a/docs/OverrideShiftsApi.md +++ b/docs/OverrideShiftsApi.md @@ -18,7 +18,7 @@ All URIs are relative to *https://api.rootly.com* creates an override shift -Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. +Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. This endpoint is idempotent: re-sending an identical override (same user and same start/end time) returns the existing override with a 200 status and does not recreate it. ### Example ```java @@ -81,6 +81,7 @@ public class Example { |-------------|-------------|------------------| | **201** | returns assignee relationship when schedule nesting enabled | - | | **422** | cannot create schedule-based override shift | - | +| **200** | returns the existing override without recreating it | - | | **401** | responds with unauthorized for invalid token | - | @@ -89,7 +90,7 @@ public class Example { Delete an on call shadow configuration -Delete a specific on call shadow configuration by id +Delete a specific on call shadow configuration by id. Future shadows are hard-deleted. Active shadows (started in the past) have their end time truncated to preserve historical data. ### Example ```java @@ -148,7 +149,8 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | override shift deleted | - | +| **200** | active shadow is preserved with truncated end time | - | +| **422** | shadow period already ended | - | | **404** | resource not found | - | diff --git a/docs/PageJsmopsOnCallRespondersTaskParams.md b/docs/PageJsmopsOnCallRespondersTaskParams.md index f8bcbb27..f54f773a 100644 --- a/docs/PageJsmopsOnCallRespondersTaskParams.md +++ b/docs/PageJsmopsOnCallRespondersTaskParams.md @@ -32,7 +32,6 @@ | P3 | "P3" | | P1 | "P1" | | P2 | "P2" | -| P32 | "P3" | | P4 | "P4" | | P5 | "P5" | | AUTO | "auto" | diff --git a/docs/PageRootlyOnCallRespondersTaskParams.md b/docs/PageRootlyOnCallRespondersTaskParams.md index 3a441587..818cdeb4 100644 --- a/docs/PageRootlyOnCallRespondersTaskParams.md +++ b/docs/PageRootlyOnCallRespondersTaskParams.md @@ -12,10 +12,12 @@ |**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**alertUrgencyId** | **String** | Alert urgency ID | [optional] | +|**functionalityTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**alertUrgencyId** | **String** | Alert urgency ID | | |**summary** | **String** | Alert title | | |**description** | **String** | Alert description | [optional] | |**escalationNote** | **String** | | [optional] | +|**createNewAlert** | **Boolean** | When true, always create a new alert instead of re-paging the alert that triggered the workflow | [optional] | diff --git a/docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf.md b/docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf.md new file mode 100644 index 00000000..28dd8034 --- /dev/null +++ b/docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf.md @@ -0,0 +1,13 @@ + + +# PageVictorOpsOnCallRespondersTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**users** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.md b/docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.md new file mode 100644 index 00000000..f31b8077 --- /dev/null +++ b/docs/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.md @@ -0,0 +1,13 @@ + + +# PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**escalationPolicies** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/PlaybookList.md b/docs/PlaybookList.md index 8513ea77..1eb530bb 100644 --- a/docs/PlaybookList.md +++ b/docs/PlaybookList.md @@ -10,6 +10,7 @@ |**data** | [**List<PlaybookResponseData>**](PlaybookResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PlaybookResponse.md b/docs/PlaybookResponse.md index 6f685d08..b4282810 100644 --- a/docs/PlaybookResponse.md +++ b/docs/PlaybookResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**PlaybookResponseData**](PlaybookResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PlaybookTaskList.md b/docs/PlaybookTaskList.md index 76a4eab5..d0baf72c 100644 --- a/docs/PlaybookTaskList.md +++ b/docs/PlaybookTaskList.md @@ -10,6 +10,7 @@ |**data** | [**List<PlaybookTaskResponseData>**](PlaybookTaskResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PlaybookTaskResponse.md b/docs/PlaybookTaskResponse.md index 11a0ed10..b98634fa 100644 --- a/docs/PlaybookTaskResponse.md +++ b/docs/PlaybookTaskResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**PlaybookTaskResponseData**](PlaybookTaskResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PostMortemTemplate.md b/docs/PostMortemTemplate.md index c83dad34..b652a002 100644 --- a/docs/PostMortemTemplate.md +++ b/docs/PostMortemTemplate.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the postmortem template | | -|**slug** | **String** | The slugified name of the postmortem template | [optional] | +|**slug** | **String** | The slugified name of the postmortem template | [optional] [readonly] | |**_default** | **Boolean** | Default selected template when editing a postmortem | [optional] | |**content** | **String** | The postmortem template. Liquid syntax and markdown are supported | [optional] | |**contentHtml** | **String** | The postmortem template in HTML format with TipTap blocks support. Supports followup and timeline components. Liquid syntax is supported. | [optional] | diff --git a/docs/PostMortemTemplateList.md b/docs/PostMortemTemplateList.md index 640fe15d..9b005751 100644 --- a/docs/PostMortemTemplateList.md +++ b/docs/PostMortemTemplateList.md @@ -10,6 +10,7 @@ |**data** | [**List<PostMortemTemplateResponseData>**](PostMortemTemplateResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PostMortemTemplateResponse.md b/docs/PostMortemTemplateResponse.md index a1e8d3fa..38312063 100644 --- a/docs/PostMortemTemplateResponse.md +++ b/docs/PostMortemTemplateResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**PostMortemTemplateResponseData**](PostMortemTemplateResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PostMortemTriggerParams.md b/docs/PostMortemTriggerParams.md index 76a000f9..332fe3d1 100644 --- a/docs/PostMortemTriggerParams.md +++ b/docs/PostMortemTriggerParams.md @@ -26,6 +26,9 @@ |**incidentConditionFunctionality** | [**IncidentConditionFunctionalityEnum**](#IncidentConditionFunctionalityEnum) | | [optional] | |**incidentConditionGroup** | [**IncidentConditionGroupEnum**](#IncidentConditionGroupEnum) | | [optional] | |**incidentConditionCause** | [**IncidentConditionCauseEnum**](#IncidentConditionCauseEnum) | | [optional] | +|**incidentConditionLabel** | [**IncidentConditionLabelEnum**](#IncidentConditionLabelEnum) | | [optional] | +|**incidentConditionLabelUseRegexp** | **Boolean** | | [optional] | +|**incidentLabels** | **List<String>** | | [optional] | |**incidentPostMortemConditionCause** | [**IncidentPostMortemConditionCauseEnum**](#IncidentPostMortemConditionCauseEnum) | [DEPRECATED] Use incident_condition_cause instead | [optional] | |**incidentConditionSummary** | [**IncidentConditionSummaryEnum**](#IncidentConditionSummaryEnum) | | [optional] | |**incidentConditionStartedAt** | [**IncidentConditionStartedAtEnum**](#IncidentConditionStartedAtEnum) | | [optional] | @@ -284,6 +287,22 @@ +## Enum: IncidentConditionLabelEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + ## Enum: IncidentPostMortemConditionCauseEnum | Name | Value | diff --git a/docs/PublishIncidentTaskParams.md b/docs/PublishIncidentTaskParams.md index 4a2eb365..7d2a2f52 100644 --- a/docs/PublishIncidentTaskParams.md +++ b/docs/PublishIncidentTaskParams.md @@ -16,6 +16,7 @@ |**shouldTweet** | **Boolean** | For Statuspage.io integrated pages auto publishes a tweet for your update | [optional] | |**statusPageTemplate** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**statusPageId** | **String** | | | +|**statusPageIds** | **List<String>** | Publishes the update to every listed status page (requires the status-page-v3-limited-bulk-publish feature). When set, it takes precedence over status_page_id and the first entry becomes status_page_id. | [optional] | |**integrationPayload** | **String** | Additional API Payload you can pass to statuspage.io for example. Can contain liquid markup and need to be valid JSON | [optional] | diff --git a/docs/PulseList.md b/docs/PulseList.md index fd5eb389..8660cbe6 100644 --- a/docs/PulseList.md +++ b/docs/PulseList.md @@ -10,6 +10,7 @@ |**data** | [**List<PulseResponseData>**](PulseResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PulseResponse.md b/docs/PulseResponse.md index 592d6240..75b9bed4 100644 --- a/docs/PulseResponse.md +++ b/docs/PulseResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**PulseResponseData**](PulseResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/PulsesApi.md b/docs/PulsesApi.md index 653739a6..1709c3bd 100644 --- a/docs/PulsesApi.md +++ b/docs/PulsesApi.md @@ -149,7 +149,7 @@ public class Example { # **listPulses** -> PulseList listPulses(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize) +> PulseList listPulses(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterRefsEq, filterRefsNotEq, filterRefsIn, filterRefsNotIn, pageNumber, pageSize) List pulses @@ -193,10 +193,30 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSourceEq = "filterSourceEq_example"; // String | + String filterSourceNotEq = "filterSourceNotEq_example"; // String | + String filterSourceIn = "filterSourceIn_example"; // String | + String filterSourceNotIn = "filterSourceNotIn_example"; // String | + String filterServicesEq = "filterServicesEq_example"; // String | + String filterServicesNotEq = "filterServicesNotEq_example"; // String | + String filterServicesIn = "filterServicesIn_example"; // String | + String filterServicesNotIn = "filterServicesNotIn_example"; // String | + String filterEnvironmentsEq = "filterEnvironmentsEq_example"; // String | + String filterEnvironmentsNotEq = "filterEnvironmentsNotEq_example"; // String | + String filterEnvironmentsIn = "filterEnvironmentsIn_example"; // String | + String filterEnvironmentsNotIn = "filterEnvironmentsNotIn_example"; // String | + String filterLabelsEq = "filterLabelsEq_example"; // String | + String filterLabelsNotEq = "filterLabelsNotEq_example"; // String | + String filterLabelsIn = "filterLabelsIn_example"; // String | + String filterLabelsNotIn = "filterLabelsNotIn_example"; // String | + String filterRefsEq = "filterRefsEq_example"; // String | + String filterRefsNotEq = "filterRefsNotEq_example"; // String | + String filterRefsIn = "filterRefsIn_example"; // String | + String filterRefsNotIn = "filterRefsNotIn_example"; // String | Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | try { - PulseList result = apiInstance.listPulses(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + PulseList result = apiInstance.listPulses(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterRefsEq, filterRefsNotEq, filterRefsIn, filterRefsNotIn, pageNumber, pageSize); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling PulsesApi#listPulses"); @@ -231,6 +251,26 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSourceEq** | **String**| | [optional] | +| **filterSourceNotEq** | **String**| | [optional] | +| **filterSourceIn** | **String**| | [optional] | +| **filterSourceNotIn** | **String**| | [optional] | +| **filterServicesEq** | **String**| | [optional] | +| **filterServicesNotEq** | **String**| | [optional] | +| **filterServicesIn** | **String**| | [optional] | +| **filterServicesNotIn** | **String**| | [optional] | +| **filterEnvironmentsEq** | **String**| | [optional] | +| **filterEnvironmentsNotEq** | **String**| | [optional] | +| **filterEnvironmentsIn** | **String**| | [optional] | +| **filterEnvironmentsNotIn** | **String**| | [optional] | +| **filterLabelsEq** | **String**| | [optional] | +| **filterLabelsNotEq** | **String**| | [optional] | +| **filterLabelsIn** | **String**| | [optional] | +| **filterLabelsNotIn** | **String**| | [optional] | +| **filterRefsEq** | **String**| | [optional] | +| **filterRefsNotEq** | **String**| | [optional] | +| **filterRefsIn** | **String**| | [optional] | +| **filterRefsNotIn** | **String**| | [optional] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | diff --git a/docs/Receipt.md b/docs/Receipt.md new file mode 100644 index 00000000..0ab7daad --- /dev/null +++ b/docs/Receipt.md @@ -0,0 +1,37 @@ + + +# Receipt + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**state** | [**StateEnum**](#StateEnum) | Delivery state of the receipt. | | +|**reason** | [**ReasonEnum**](#ReasonEnum) | Reason a receipt failed. Present when state is failed. | [optional] | +|**resourceType** | **String** | Type of the referenced resource (present when set). | [optional] | +|**resourceId** | **String** | ID of the referenced resource (present when set). | [optional] | + + + +## Enum: StateEnum + +| Name | Value | +|---- | -----| +| PENDING | "pending" | +| DONE | "done" | +| FAILED | "failed" | + + + +## Enum: ReasonEnum + +| Name | Value | +|---- | -----| +| NO_ROUTE_MATCHED | "no_route_matched" | +| DEDUPLICATED | "deduplicated" | +| SUPPRESSED | "suppressed" | +| VALIDATION_ERROR | "validation_error" | + + + diff --git a/docs/RenameGoogleChatSpaceTaskParams.md b/docs/RenameGoogleChatSpaceTaskParams.md new file mode 100644 index 00000000..7f600e21 --- /dev/null +++ b/docs/RenameGoogleChatSpaceTaskParams.md @@ -0,0 +1,23 @@ + + +# RenameGoogleChatSpaceTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**space** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**title** | **String** | | | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| RENAME_GOOGLE_CHAT_SPACE | "rename_google_chat_space" | + + + diff --git a/docs/RetrospectiveConfigurationList.md b/docs/RetrospectiveConfigurationList.md index af1d8649..17649553 100644 --- a/docs/RetrospectiveConfigurationList.md +++ b/docs/RetrospectiveConfigurationList.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**List<RetrospectiveConfigurationListDataInner>**](RetrospectiveConfigurationListDataInner.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveConfigurationResponse.md b/docs/RetrospectiveConfigurationResponse.md index 99109bab..cb8eb36d 100644 --- a/docs/RetrospectiveConfigurationResponse.md +++ b/docs/RetrospectiveConfigurationResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**RetrospectiveConfigurationResponseData**](RetrospectiveConfigurationResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveProcessGroupList.md b/docs/RetrospectiveProcessGroupList.md index e7daf364..5609f7ce 100644 --- a/docs/RetrospectiveProcessGroupList.md +++ b/docs/RetrospectiveProcessGroupList.md @@ -10,6 +10,7 @@ |**data** | [**List<RetrospectiveProcessGroupResponseData>**](RetrospectiveProcessGroupResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveProcessGroupResponse.md b/docs/RetrospectiveProcessGroupResponse.md index 6771204e..1ecf05ba 100644 --- a/docs/RetrospectiveProcessGroupResponse.md +++ b/docs/RetrospectiveProcessGroupResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**RetrospectiveProcessGroupResponseData**](RetrospectiveProcessGroupResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveProcessGroupStepList.md b/docs/RetrospectiveProcessGroupStepList.md index 6566d824..134c18b1 100644 --- a/docs/RetrospectiveProcessGroupStepList.md +++ b/docs/RetrospectiveProcessGroupStepList.md @@ -10,6 +10,7 @@ |**data** | [**List<RetrospectiveProcessGroupStepResponseData>**](RetrospectiveProcessGroupStepResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveProcessGroupStepResponse.md b/docs/RetrospectiveProcessGroupStepResponse.md index 95662591..09f9094b 100644 --- a/docs/RetrospectiveProcessGroupStepResponse.md +++ b/docs/RetrospectiveProcessGroupStepResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**RetrospectiveProcessGroupStepResponseData**](RetrospectiveProcessGroupStepResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveProcessList.md b/docs/RetrospectiveProcessList.md index 041028c2..1cb56188 100644 --- a/docs/RetrospectiveProcessList.md +++ b/docs/RetrospectiveProcessList.md @@ -10,6 +10,7 @@ |**data** | [**List<RetrospectiveProcessListDataInner>**](RetrospectiveProcessListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveProcessResponse.md b/docs/RetrospectiveProcessResponse.md index 28495d9b..c5fa874f 100644 --- a/docs/RetrospectiveProcessResponse.md +++ b/docs/RetrospectiveProcessResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**RetrospectiveProcessResponseData**](RetrospectiveProcessResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveStep.md b/docs/RetrospectiveStep.md index 688f1607..271d2fe3 100644 --- a/docs/RetrospectiveStep.md +++ b/docs/RetrospectiveStep.md @@ -9,7 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**retrospectiveProcessId** | **String** | | | |**title** | **String** | The name of the step | | -|**slug** | **String** | The slug of the step | [optional] | +|**slug** | **String** | The slug of the step | [optional] [readonly] | |**description** | **String** | The description of the step | [optional] | |**incidentRoleId** | **String** | Users assigned to the selected incident role will be the default owners for this step | [optional] | |**dueAfterDays** | **Integer** | Due date in days | [optional] | diff --git a/docs/RetrospectiveStepList.md b/docs/RetrospectiveStepList.md index 550a8ed6..422eebb1 100644 --- a/docs/RetrospectiveStepList.md +++ b/docs/RetrospectiveStepList.md @@ -10,6 +10,7 @@ |**data** | [**List<RetrospectiveStepResponseData>**](RetrospectiveStepResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RetrospectiveStepResponse.md b/docs/RetrospectiveStepResponse.md index 9568c6f4..3ecf43bc 100644 --- a/docs/RetrospectiveStepResponse.md +++ b/docs/RetrospectiveStepResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**RetrospectiveStepResponseData**](RetrospectiveStepResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/Role.md b/docs/Role.md index 44d06c64..0946e534 100644 --- a/docs/Role.md +++ b/docs/Role.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The role name. | | -|**slug** | **String** | The role slug. | | +|**slug** | **String** | The role slug. | [optional] [readonly] | |**incidentPermissionSetId** | **String** | Associated incident permissions set. | [optional] | |**isDeletable** | **Boolean** | Whether the role can be deleted. | [optional] | |**isEditable** | **Boolean** | Whether the role can be edited. | [optional] | @@ -38,6 +38,13 @@ |**statusPagesPermissions** | [**List<StatusPagesPermissionsEnum>**](#List<StatusPagesPermissionsEnum>) | | [optional] | |**webhooksPermissions** | [**List<WebhooksPermissionsEnum>**](#List<WebhooksPermissionsEnum>) | | [optional] | |**workflowsPermissions** | [**List<WorkflowsPermissionsEnum>**](#List<WorkflowsPermissionsEnum>) | | [optional] | +|**catalogsPermissions** | [**List<CatalogsPermissionsEnum>**](#List<CatalogsPermissionsEnum>) | | [optional] | +|**subStatusesPermissions** | [**List<SubStatusesPermissionsEnum>**](#List<SubStatusesPermissionsEnum>) | | [optional] | +|**edgeConnectorPermissions** | [**List<EdgeConnectorPermissionsEnum>**](#List<EdgeConnectorPermissionsEnum>) | | [optional] | +|**slasPermissions** | [**List<SlasPermissionsEnum>**](#List<SlasPermissionsEnum>) | | [optional] | +|**pagingPermissions** | [**List<PagingPermissionsEnum>**](#List<PagingPermissionsEnum>) | | [optional] | +|**incidentCommunicationPermissions** | [**List<IncidentCommunicationPermissionsEnum>**](#List<IncidentCommunicationPermissionsEnum>) | | [optional] | +|**communicationPermissions** | [**List<CommunicationPermissionsEnum>**](#List<CommunicationPermissionsEnum>) | | [optional] | |**createdAt** | **String** | | | |**updatedAt** | **String** | | | @@ -326,3 +333,81 @@ +## Enum: List<CatalogsPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<SubStatusesPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<EdgeConnectorPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<SlasPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<PagingPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<IncidentCommunicationPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | +| SEND | "send" | + + + +## Enum: List<CommunicationPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + diff --git a/docs/RoleList.md b/docs/RoleList.md index 81ae58c2..b524c639 100644 --- a/docs/RoleList.md +++ b/docs/RoleList.md @@ -10,6 +10,7 @@ |**data** | [**List<RoleResponseData>**](RoleResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/RoleResponse.md b/docs/RoleResponse.md index da172bf4..2dd0377e 100644 --- a/docs/RoleResponse.md +++ b/docs/RoleResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**RoleResponseData**](RoleResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/Schedule.md b/docs/Schedule.md index 5718c6ff..6e43d136 100644 --- a/docs/Schedule.md +++ b/docs/Schedule.md @@ -14,8 +14,30 @@ |**slackChannel** | [**ScheduleSlackChannel**](ScheduleSlackChannel.md) | | [optional] | |**ownerGroupIds** | **List<String>** | Owning teams. | [optional] | |**ownerUserId** | **Integer** | ID of user assigned as owner of the schedule | | +|**syncLinearEnabled** | **Boolean** | Whether the schedule is synced with Linear | [optional] | +|**includeShadowsInSlackNotifications** | **Boolean** | Whether shadow users are included in Slack notifications and user group syncing. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftStartNotificationsEnabled** | **Boolean** | Whether shift-start notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftUpdateNotificationsEnabled** | **Boolean** | Whether shift-update notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftReportEnabled** | **Boolean** | Whether the weekly shift summary report is enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftReportDayOfWeek** | [**ShiftReportDayOfWeekEnum**](#ShiftReportDayOfWeekEnum) | Day of week the weekly shift summary is sent | [optional] | +|**shiftReportTimeOfDay** | **String** | Time of day the weekly shift summary is sent, in HH:MM 24-hour format | [optional] | +|**shiftReportTimeZone** | **String** | IANA time zone used for the weekly shift summary | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | +## Enum: ShiftReportDayOfWeekEnum + +| Name | Value | +|---- | -----| +| MONDAY | "monday" | +| TUESDAY | "tuesday" | +| WEDNESDAY | "wednesday" | +| THURSDAY | "thursday" | +| FRIDAY | "friday" | +| SATURDAY | "saturday" | +| SUNDAY | "sunday" | + + + diff --git a/docs/ScheduleList.md b/docs/ScheduleList.md index b4b029f5..2d5c0b27 100644 --- a/docs/ScheduleList.md +++ b/docs/ScheduleList.md @@ -10,6 +10,7 @@ |**data** | [**List<ScheduleListDataInner>**](ScheduleListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ScheduleResponse.md b/docs/ScheduleResponse.md index 7393e8f2..84fbd162 100644 --- a/docs/ScheduleResponse.md +++ b/docs/ScheduleResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ScheduleResponseData**](ScheduleResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ScheduleRotation.md b/docs/ScheduleRotation.md index b092140a..92788832 100644 --- a/docs/ScheduleRotation.md +++ b/docs/ScheduleRotation.md @@ -17,8 +17,8 @@ |**activeTimeAttributes** | [**List<NewScheduleRotationDataAttributesActiveTimeAttributesInner>**](NewScheduleRotationDataAttributesActiveTimeAttributesInner.md) | Schedule rotation's active times | [optional] | |**timeZone** | **String** | A valid IANA time zone name. | [optional] | |**scheduleRotationableAttributes** | [**NewScheduleRotationDataAttributesScheduleRotationableAttributes**](NewScheduleRotationDataAttributesScheduleRotationableAttributes.md) | | | -|**startTime** | **LocalDate** | ISO8601 date and time when rotation starts. Shifts will only be created after this time. | [optional] | -|**endTime** | **LocalDate** | ISO8601 date and time when rotation ends. Shifts will only be created before this time. | [optional] | +|**startTime** | **OffsetDateTime** | RFC3339 date-time when rotation starts. Shifts will only be created after this time. | [optional] | +|**endTime** | **OffsetDateTime** | RFC3339 date-time when rotation ends. Shifts will only be created before this time. | [optional] | diff --git a/docs/ScheduleRotationActiveDayList.md b/docs/ScheduleRotationActiveDayList.md index dd687c54..a2ceb8f4 100644 --- a/docs/ScheduleRotationActiveDayList.md +++ b/docs/ScheduleRotationActiveDayList.md @@ -10,6 +10,7 @@ |**data** | [**List<ScheduleRotationActiveDayListDataInner>**](ScheduleRotationActiveDayListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ScheduleRotationActiveDayResponse.md b/docs/ScheduleRotationActiveDayResponse.md index 7040af97..554c2230 100644 --- a/docs/ScheduleRotationActiveDayResponse.md +++ b/docs/ScheduleRotationActiveDayResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ScheduleRotationActiveDayResponseData**](ScheduleRotationActiveDayResponseData.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ScheduleRotationList.md b/docs/ScheduleRotationList.md index 0d64ae1c..5b2e03d1 100644 --- a/docs/ScheduleRotationList.md +++ b/docs/ScheduleRotationList.md @@ -10,6 +10,7 @@ |**data** | [**List<ScheduleRotationResponseData>**](ScheduleRotationResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ScheduleRotationResponse.md b/docs/ScheduleRotationResponse.md index abca003c..f4428448 100644 --- a/docs/ScheduleRotationResponse.md +++ b/docs/ScheduleRotationResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ScheduleRotationResponseData**](ScheduleRotationResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ScheduleRotationUserList.md b/docs/ScheduleRotationUserList.md index 02226d0c..15eec879 100644 --- a/docs/ScheduleRotationUserList.md +++ b/docs/ScheduleRotationUserList.md @@ -10,6 +10,7 @@ |**data** | [**List<ScheduleRotationUserListDataInner>**](ScheduleRotationUserListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ScheduleRotationUserResponse.md b/docs/ScheduleRotationUserResponse.md index fe090032..615f7ae9 100644 --- a/docs/ScheduleRotationUserResponse.md +++ b/docs/ScheduleRotationUserResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ScheduleRotationUserListDataInner**](ScheduleRotationUserListDataInner.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/SchedulesApi.md b/docs/SchedulesApi.md index 580d8987..9bc559e3 100644 --- a/docs/SchedulesApi.md +++ b/docs/SchedulesApi.md @@ -218,7 +218,7 @@ public class Example { # **listSchedules** -> ScheduleList listSchedules(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize) +> ScheduleList listSchedules(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize) List schedules @@ -247,14 +247,23 @@ public class Example { String include = "include_example"; // String | String filterSearch = "filterSearch_example"; // String | String filterName = "filterName_example"; // String | + String filterTeamIds = "filterTeamIds_example"; // String | Filter schedules by owning team IDs. Comma-separate multiple values. String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterTeamIdsEq = "filterTeamIdsEq_example"; // String | + String filterTeamIdsNotEq = "filterTeamIdsNotEq_example"; // String | + String filterTeamIdsIn = "filterTeamIdsIn_example"; // String | + String filterTeamIdsNotIn = "filterTeamIdsNotIn_example"; // String | Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | try { - ScheduleList result = apiInstance.listSchedules(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + ScheduleList result = apiInstance.listSchedules(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling SchedulesApi#listSchedules"); @@ -274,10 +283,19 @@ public class Example { | **include** | **String**| | [optional] | | **filterSearch** | **String**| | [optional] | | **filterName** | **String**| | [optional] | +| **filterTeamIds** | **String**| Filter schedules by owning team IDs. Comma-separate multiple values. | [optional] | | **filterCreatedAtGt** | **String**| | [optional] | | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterTeamIdsEq** | **String**| | [optional] | +| **filterTeamIdsNotEq** | **String**| | [optional] | +| **filterTeamIdsIn** | **String**| | [optional] | +| **filterTeamIdsNotIn** | **String**| | [optional] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | diff --git a/docs/SendGoogleChatAttachmentsTaskParams.md b/docs/SendGoogleChatAttachmentsTaskParams.md new file mode 100644 index 00000000..c91d9404 --- /dev/null +++ b/docs/SendGoogleChatAttachmentsTaskParams.md @@ -0,0 +1,23 @@ + + +# SendGoogleChatAttachmentsTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**spaces** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**attachments** | **String** | | | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| SEND_GOOGLE_CHAT_ATTACHMENTS | "send_google_chat_attachments" | + + + diff --git a/docs/SendGoogleChatMessageTaskParams.md b/docs/SendGoogleChatMessageTaskParams.md new file mode 100644 index 00000000..714219a6 --- /dev/null +++ b/docs/SendGoogleChatMessageTaskParams.md @@ -0,0 +1,24 @@ + + +# SendGoogleChatMessageTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**spaces** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**text** | **String** | | | +|**threadKey** | **String** | Thread key to reply within a thread. Messages with the same thread key are grouped together | [optional] | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| SEND_GOOGLE_CHAT_MESSAGE | "send_google_chat_message" | + + + diff --git a/docs/SendMicrosoftTeamsBlocksTaskParams.md b/docs/SendMicrosoftTeamsBlocksTaskParams.md index bb8fb59b..4819a1e3 100644 --- a/docs/SendMicrosoftTeamsBlocksTaskParams.md +++ b/docs/SendMicrosoftTeamsBlocksTaskParams.md @@ -7,16 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | -|**attachments** | **String** | Support liquid markup. Needs to be a valid JSON string after liquid is parsed | | - - - -## Enum: TaskTypeEnum - -| Name | Value | -|---- | -----| -| SEND_MICROSOFT_TEAMS_BLOCKS | "send_microsoft_teams_blocks" | +|**channels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | diff --git a/docs/SendMicrosoftTeamsMessageTaskParams.md b/docs/SendMicrosoftTeamsMessageTaskParams.md index c2051741..52309748 100644 --- a/docs/SendMicrosoftTeamsMessageTaskParams.md +++ b/docs/SendMicrosoftTeamsMessageTaskParams.md @@ -7,17 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | -|**channels** | [**List<Object>**](Object.md) | | [optional] | -|**text** | **String** | The message text | | - - - -## Enum: TaskTypeEnum - -| Name | Value | -|---- | -----| -| SEND_MICROSOFT_TEAMS_MESSAGE | "send_microsoft_teams_message" | +|**channels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | diff --git a/docs/SendSlackMessageTaskParamsAnyOf.md b/docs/SendSlackMessageTaskParamsAnyOf.md new file mode 100644 index 00000000..3d91c6df --- /dev/null +++ b/docs/SendSlackMessageTaskParamsAnyOf.md @@ -0,0 +1,13 @@ + + +# SendSlackMessageTaskParamsAnyOf + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**channels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | + + + diff --git a/docs/Service.md b/docs/Service.md index 37f596aa..6e04fdba 100644 --- a/docs/Service.md +++ b/docs/Service.md @@ -8,9 +8,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the service | | -|**slug** | **String** | The slug of the service | [optional] | +|**slug** | **String** | The slug of the service | [optional] [readonly] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | How this service is managed (provenance): web, api, terraform, etc. Read-only. | [optional] | |**description** | **String** | The description of the service | [optional] | -|**publicDescription** | **String** | The public description of the service | [optional] | +|**publicDescription** | **String** | The status page description of the service | [optional] | |**notifyEmails** | **List<String>** | Emails attached to the service | [optional] | |**color** | **String** | The hex color of the service | [optional] | |**position** | **Integer** | Position of the service | [optional] | @@ -39,8 +40,23 @@ |**alertBroadcastChannel** | [**ServiceAlertBroadcastChannel**](ServiceAlertBroadcastChannel.md) | | [optional] | |**incidentBroadcastEnabled** | **Boolean** | Enable incidents to be broadcasted to a specific channel | [optional] | |**incidentBroadcastChannel** | [**ServiceIncidentBroadcastChannel**](ServiceIncidentBroadcastChannel.md) | | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this service. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + diff --git a/docs/ServiceList.md b/docs/ServiceList.md index cdc9ada4..7f70abf3 100644 --- a/docs/ServiceList.md +++ b/docs/ServiceList.md @@ -10,6 +10,7 @@ |**data** | [**List<ServiceResponseData>**](ServiceResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ServiceResponse.md b/docs/ServiceResponse.md index 7b7f2969..898cf6dd 100644 --- a/docs/ServiceResponse.md +++ b/docs/ServiceResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ServiceResponseData**](ServiceResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ServicesApi.md b/docs/ServicesApi.md index fe4b815e..158cc1a8 100644 --- a/docs/ServicesApi.md +++ b/docs/ServicesApi.md @@ -4,15 +4,157 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**bulkDeleteServices**](ServicesApi.md#bulkDeleteServices) | **POST** /v1/services/bulk_delete | Bulk delete Services | +| [**bulkUpsertServices**](ServicesApi.md#bulkUpsertServices) | **POST** /v1/services/bulk_upsert | Bulk upsert Services | | [**createService**](ServicesApi.md#createService) | **POST** /v1/services | Creates a service | +| [**createServiceCatalogProperty**](ServicesApi.md#createServiceCatalogProperty) | **POST** /v1/services/properties | Creates a Catalog Property | | [**deleteService**](ServicesApi.md#deleteService) | **DELETE** /v1/services/{id} | Delete a service | | [**getService**](ServicesApi.md#getService) | **GET** /v1/services/{id} | Retrieves a service | | [**getServiceIncidentsChart**](ServicesApi.md#getServiceIncidentsChart) | **GET** /v1/services/{id}/incidents_chart | Get service incidents chart | | [**getServiceUptimeChart**](ServicesApi.md#getServiceUptimeChart) | **GET** /v1/services/{id}/uptime_chart | Get service uptime chart | +| [**listServiceCatalogProperties**](ServicesApi.md#listServiceCatalogProperties) | **GET** /v1/services/properties | List Catalog Properties | | [**listServices**](ServicesApi.md#listServices) | **GET** /v1/services | List services | | [**updateService**](ServicesApi.md#updateService) | **PUT** /v1/services/{id} | Update a service | + +# **bulkDeleteServices** +> BulkDestroyServicesResponse bulkDeleteServices(bulkDestroyServices) + +Bulk delete Services + +Delete services by external_id list, or prune by managed_by source. Two mutually exclusive modes. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ServicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ServicesApi apiInstance = new ServicesApi(defaultClient); + BulkDestroyServices bulkDestroyServices = new BulkDestroyServices(); // BulkDestroyServices | + try { + BulkDestroyServicesResponse result = apiInstance.bulkDeleteServices(bulkDestroyServices); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServicesApi#bulkDeleteServices"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkDestroyServices** | [**BulkDestroyServices**](BulkDestroyServices.md)| | | + +### Return type + +[**BulkDestroyServicesResponse**](BulkDestroyServicesResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records deleted successfully | - | +| **422** | validation or partial-failure error | - | +| **401** | unauthorized | - | + + +# **bulkUpsertServices** +> BulkUpsertServicesResponse bulkUpsertServices(bulkUpsertServices) + +Bulk upsert Services + +Create or update multiple services by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ServicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ServicesApi apiInstance = new ServicesApi(defaultClient); + BulkUpsertServices bulkUpsertServices = new BulkUpsertServices(); // BulkUpsertServices | + try { + BulkUpsertServicesResponse result = apiInstance.bulkUpsertServices(bulkUpsertServices); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServicesApi#bulkUpsertServices"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkUpsertServices** | [**BulkUpsertServices**](BulkUpsertServices.md)| | | + +### Return type + +[**BulkUpsertServicesResponse**](BulkUpsertServicesResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records upserted successfully | - | +| **422** | validation or record-level error | - | +| **401** | unauthorized | - | + # **createService** > ServiceResponse createService(newService) @@ -82,6 +224,75 @@ public class Example { | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | + +# **createServiceCatalogProperty** +> CatalogPropertyResponse createServiceCatalogProperty(newCatalogProperty) + +Creates a Catalog Property + +Creates a new Catalog Property from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ServicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ServicesApi apiInstance = new ServicesApi(defaultClient); + NewCatalogProperty newCatalogProperty = new NewCatalogProperty(); // NewCatalogProperty | + try { + CatalogPropertyResponse result = apiInstance.createServiceCatalogProperty(newCatalogProperty); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServicesApi#createServiceCatalogProperty"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newCatalogProperty** | [**NewCatalogProperty**](NewCatalogProperty.md)| | | + +### Return type + +[**CatalogPropertyResponse**](CatalogPropertyResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | catalog_property created ignores wrong catalog_type attribute | - | +| **422** | exceeds max fields per catalog | - | +| **401** | responds with unauthorized for invalid token | - | + # **deleteService** > ServiceResponse deleteService(id) @@ -220,7 +431,7 @@ public class Example { # **getServiceIncidentsChart** -> Object getServiceIncidentsChart(id, period) +> IncidentsChartResponse getServiceIncidentsChart(id, period) Get service incidents chart @@ -249,7 +460,7 @@ public class Example { GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | String period = "period_example"; // String | try { - Object result = apiInstance.getServiceIncidentsChart(id, period); + IncidentsChartResponse result = apiInstance.getServiceIncidentsChart(id, period); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServicesApi#getServiceIncidentsChart"); @@ -271,7 +482,7 @@ public class Example { ### Return type -**Object** +[**IncidentsChartResponse**](IncidentsChartResponse.md) ### Authorization @@ -290,7 +501,7 @@ public class Example { # **getServiceUptimeChart** -> Object getServiceUptimeChart(id, period) +> UptimeChartResponse getServiceUptimeChart(id, period) Get service uptime chart @@ -319,7 +530,7 @@ public class Example { GetAlertFieldIdParameter id = new GetAlertFieldIdParameter(); // GetAlertFieldIdParameter | String period = "period_example"; // String | try { - Object result = apiInstance.getServiceUptimeChart(id, period); + UptimeChartResponse result = apiInstance.getServiceUptimeChart(id, period); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServicesApi#getServiceUptimeChart"); @@ -341,7 +552,7 @@ public class Example { ### Return type -**Object** +[**UptimeChartResponse**](UptimeChartResponse.md) ### Authorization @@ -358,9 +569,96 @@ public class Example { | **200** | success | - | | **404** | resource not found | - | + +# **listServiceCatalogProperties** +> CatalogPropertyList listServiceCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) + +List Catalog Properties + +List Service Catalog Properties + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ServicesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ServicesApi apiInstance = new ServicesApi(defaultClient); + String include = "catalog"; // String | comma separated if needed. eg: catalog + String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + String filterSlug = "filterSlug_example"; // String | + String filterName = "filterName_example"; // String | + String filterKind = "filterKind_example"; // String | + String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | + String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | + String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | + String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + try { + CatalogPropertyList result = apiInstance.listServiceCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServicesApi#listServiceCatalogProperties"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include** | **String**| comma separated if needed. eg: catalog | [optional] [enum: catalog] | +| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | +| **filterSlug** | **String**| | [optional] | +| **filterName** | **String**| | [optional] | +| **filterKind** | **String**| | [optional] | +| **filterCreatedAtGt** | **String**| | [optional] | +| **filterCreatedAtGte** | **String**| | [optional] | +| **filterCreatedAtLt** | **String**| | [optional] | +| **filterCreatedAtLte** | **String**| | [optional] | + +### Return type + +[**CatalogPropertyList**](CatalogPropertyList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + # **listServices** -> ServiceList listServices(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> ServiceList listServices(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort) List services @@ -402,9 +700,25 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterAlertBroadcastEnabledEq = "filterAlertBroadcastEnabledEq_example"; // String | + String filterAlertBroadcastEnabledNotEq = "filterAlertBroadcastEnabledNotEq_example"; // String | + String filterAlertBroadcastEnabledIn = "filterAlertBroadcastEnabledIn_example"; // String | + String filterAlertBroadcastEnabledNotIn = "filterAlertBroadcastEnabledNotIn_example"; // String | + String filterIncidentBroadcastEnabledEq = "filterIncidentBroadcastEnabledEq_example"; // String | + String filterIncidentBroadcastEnabledNotEq = "filterIncidentBroadcastEnabledNotEq_example"; // String | + String filterIncidentBroadcastEnabledIn = "filterIncidentBroadcastEnabledIn_example"; // String | + String filterIncidentBroadcastEnabledNotIn = "filterIncidentBroadcastEnabledNotIn_example"; // String | String sort = "sort_example"; // String | try { - ServiceList result = apiInstance.listServices(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + ServiceList result = apiInstance.listServices(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServicesApi#listServices"); @@ -437,6 +751,22 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterAlertBroadcastEnabledEq** | **String**| | [optional] | +| **filterAlertBroadcastEnabledNotEq** | **String**| | [optional] | +| **filterAlertBroadcastEnabledIn** | **String**| | [optional] | +| **filterAlertBroadcastEnabledNotIn** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledEq** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledNotEq** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledIn** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/SeveritiesApi.md b/docs/SeveritiesApi.md index b9f9b51c..681c0274 100644 --- a/docs/SeveritiesApi.md +++ b/docs/SeveritiesApi.md @@ -218,7 +218,7 @@ public class Example { # **listSeverities** -> SeverityList listSeverities(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> SeverityList listSeverities(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort) List severities @@ -256,9 +256,25 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterSeverityEq = "filterSeverityEq_example"; // String | + String filterSeverityNotEq = "filterSeverityNotEq_example"; // String | + String filterSeverityIn = "filterSeverityIn_example"; // String | + String filterSeverityNotIn = "filterSeverityNotIn_example"; // String | + String filterColorEq = "filterColorEq_example"; // String | + String filterColorNotEq = "filterColorNotEq_example"; // String | + String filterColorIn = "filterColorIn_example"; // String | + String filterColorNotIn = "filterColorNotIn_example"; // String | String sort = "sort_example"; // String | try { - SeverityList result = apiInstance.listSeverities(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + SeverityList result = apiInstance.listSeverities(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling SeveritiesApi#listSeverities"); @@ -287,6 +303,22 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterSeverityEq** | **String**| | [optional] | +| **filterSeverityNotEq** | **String**| | [optional] | +| **filterSeverityIn** | **String**| | [optional] | +| **filterSeverityNotIn** | **String**| | [optional] | +| **filterColorEq** | **String**| | [optional] | +| **filterColorNotEq** | **String**| | [optional] | +| **filterColorIn** | **String**| | [optional] | +| **filterColorNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/Severity.md b/docs/Severity.md index 46e97fd3..d7b31ea7 100644 --- a/docs/Severity.md +++ b/docs/Severity.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the severity | | -|**slug** | **String** | The slug of the severity | [optional] | +|**slug** | **String** | The slug of the severity | [optional] [readonly] | |**description** | **String** | The description of the severity | [optional] | |**severity** | [**SeverityEnum**](#SeverityEnum) | The severity of the severity | [optional] | |**color** | **String** | The hex color of the severity | [optional] | diff --git a/docs/SeverityList.md b/docs/SeverityList.md index 8b222e5e..fdd14c45 100644 --- a/docs/SeverityList.md +++ b/docs/SeverityList.md @@ -10,6 +10,7 @@ |**data** | [**List<SeverityResponseData>**](SeverityResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/SeverityResponse.md b/docs/SeverityResponse.md index a58c8c99..cd3db3c0 100644 --- a/docs/SeverityResponse.md +++ b/docs/SeverityResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**SeverityResponseData**](SeverityResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/Shift.md b/docs/Shift.md index 05e5fb94..64101c05 100644 --- a/docs/Shift.md +++ b/docs/Shift.md @@ -12,6 +12,7 @@ |**startsAt** | **String** | Start datetime of shift | | |**endsAt** | **String** | End datetime of shift | | |**isOverride** | **Boolean** | Denotes shift is an override shift | | +|**isShadow** | **Boolean** | Denotes shift is a shadow shift | | |**userId** | **Integer** | ID of user on shift | [optional] | diff --git a/docs/ShiftCoverageRequest.md b/docs/ShiftCoverageRequest.md new file mode 100644 index 00000000..9cdaee17 --- /dev/null +++ b/docs/ShiftCoverageRequest.md @@ -0,0 +1,24 @@ + + +# ShiftCoverageRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**scheduleId** | **String** | ID of schedule | | +|**shiftId** | **String** | ID of the shift being covered | | +|**originalShiftUserId** | **Integer** | ID of the user whose shift is being covered | | +|**createdByUserId** | **Integer** | ID of the user who created the coverage request | | +|**startsAt** | **String** | Start datetime of the coverage request | | +|**endsAt** | **String** | End datetime of the coverage request | | +|**createdAt** | **String** | Date of creation | [optional] | +|**updatedAt** | **String** | Date of last update | [optional] | +|**schedule** | [**ScheduleResponse**](ScheduleResponse.md) | Schedule metadata | [optional] | +|**shift** | [**Shift**](Shift.md) | Shift metadata | [optional] | +|**originalShiftUser** | [**UserResponse**](UserResponse.md) | User whose shift is being covered | [optional] | +|**createdByUser** | [**UserResponse**](UserResponse.md) | User who created the coverage request | [optional] | + + + diff --git a/docs/ShiftCoverageRequestList.md b/docs/ShiftCoverageRequestList.md new file mode 100644 index 00000000..565f32d7 --- /dev/null +++ b/docs/ShiftCoverageRequestList.md @@ -0,0 +1,16 @@ + + +# ShiftCoverageRequestList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<ShiftCoverageRequestResponseData>**](ShiftCoverageRequestResponseData.md) | | | +|**links** | [**Links**](Links.md) | | [optional] | +|**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/ShiftCoverageRequestResponse.md b/docs/ShiftCoverageRequestResponse.md new file mode 100644 index 00000000..d687e1ce --- /dev/null +++ b/docs/ShiftCoverageRequestResponse.md @@ -0,0 +1,14 @@ + + +# ShiftCoverageRequestResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**ShiftCoverageRequestResponseData**](ShiftCoverageRequestResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/ShiftCoverageRequestResponseData.md b/docs/ShiftCoverageRequestResponseData.md new file mode 100644 index 00000000..9c1a2edb --- /dev/null +++ b/docs/ShiftCoverageRequestResponseData.md @@ -0,0 +1,23 @@ + + +# ShiftCoverageRequestResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the coverage request | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**ShiftCoverageRequest**](ShiftCoverageRequest.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| SHIFT_COVERAGE_REQUESTS | "shift_coverage_requests" | + + + diff --git a/docs/ShiftCoverageRequestsApi.md b/docs/ShiftCoverageRequestsApi.md new file mode 100644 index 00000000..ff954d9a --- /dev/null +++ b/docs/ShiftCoverageRequestsApi.md @@ -0,0 +1,283 @@ +# ShiftCoverageRequestsApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createShiftCoverageRequest**](ShiftCoverageRequestsApi.md#createShiftCoverageRequest) | **POST** /v1/schedules/{schedule_id}/shift_coverage_requests | creates shift coverage requests | +| [**deleteShiftCoverageRequest**](ShiftCoverageRequestsApi.md#deleteShiftCoverageRequest) | **DELETE** /v1/shift_coverage_requests/{id} | deletes a shift coverage request | +| [**getShiftCoverageRequest**](ShiftCoverageRequestsApi.md#getShiftCoverageRequest) | **GET** /v1/shift_coverage_requests/{id} | retrieves a shift coverage request | +| [**listShiftCoverageRequests**](ShiftCoverageRequestsApi.md#listShiftCoverageRequests) | **GET** /v1/schedules/{schedule_id}/shift_coverage_requests | list shift coverage requests | + + + +# **createShiftCoverageRequest** +> ShiftCoverageRequestList createShiftCoverageRequest(scheduleId, newShiftCoverageRequest) + +creates shift coverage requests + +Creates coverage requests for the shifts overlapping the requested time range. A range can span multiple consecutive shifts (e.g. across a handoff), so one or more coverage requests may be created; the response is always a list. A coverage request broadcasts to schedule members so someone can volunteer to cover the shift. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ShiftCoverageRequestsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ShiftCoverageRequestsApi apiInstance = new ShiftCoverageRequestsApi(defaultClient); + String scheduleId = "scheduleId_example"; // String | + NewShiftCoverageRequest newShiftCoverageRequest = new NewShiftCoverageRequest(); // NewShiftCoverageRequest | + try { + ShiftCoverageRequestList result = apiInstance.createShiftCoverageRequest(scheduleId, newShiftCoverageRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ShiftCoverageRequestsApi#createShiftCoverageRequest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **scheduleId** | **String**| | | +| **newShiftCoverageRequest** | [**NewShiftCoverageRequest**](NewShiftCoverageRequest.md)| | | + +### Return type + +[**ShiftCoverageRequestList**](ShiftCoverageRequestList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | without override permission, can request coverage for own shift | - | +| **422** | without override permission, cannot request coverage for another user's shift | - | + + +# **deleteShiftCoverageRequest** +> ShiftCoverageRequestResponse deleteShiftCoverageRequest(id) + +deletes a shift coverage request + +Deletes a shift coverage request. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ShiftCoverageRequestsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ShiftCoverageRequestsApi apiInstance = new ShiftCoverageRequestsApi(defaultClient); + String id = "id_example"; // String | + try { + ShiftCoverageRequestResponse result = apiInstance.deleteShiftCoverageRequest(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ShiftCoverageRequestsApi#deleteShiftCoverageRequest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**ShiftCoverageRequestResponse**](ShiftCoverageRequestResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | shift_coverage_request deleted | - | + + +# **getShiftCoverageRequest** +> ShiftCoverageRequestResponse getShiftCoverageRequest(id) + +retrieves a shift coverage request + +Retrieves a specific shift coverage request. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ShiftCoverageRequestsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ShiftCoverageRequestsApi apiInstance = new ShiftCoverageRequestsApi(defaultClient); + String id = "id_example"; // String | + try { + ShiftCoverageRequestResponse result = apiInstance.getShiftCoverageRequest(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ShiftCoverageRequestsApi#getShiftCoverageRequest"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**ShiftCoverageRequestResponse**](ShiftCoverageRequestResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | shift_coverage_request found | - | + + +# **listShiftCoverageRequests** +> ShiftCoverageRequestList listShiftCoverageRequests(scheduleId) + +list shift coverage requests + +List active shift coverage requests for a schedule. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.ShiftCoverageRequestsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + ShiftCoverageRequestsApi apiInstance = new ShiftCoverageRequestsApi(defaultClient); + String scheduleId = "scheduleId_example"; // String | + try { + ShiftCoverageRequestList result = apiInstance.listShiftCoverageRequests(scheduleId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ShiftCoverageRequestsApi#listShiftCoverageRequests"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **scheduleId** | **String**| | | + +### Return type + +[**ShiftCoverageRequestList**](ShiftCoverageRequestList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | shift_coverage_requests listed | - | + diff --git a/docs/ShiftList.md b/docs/ShiftList.md index 7da89339..eb1461f0 100644 --- a/docs/ShiftList.md +++ b/docs/ShiftList.md @@ -8,6 +8,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**List<ShiftListDataInner>**](ShiftListDataInner.md) | | | +|**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ShiftOverrideResponse.md b/docs/ShiftOverrideResponse.md index 3dbcdef3..e1412383 100644 --- a/docs/ShiftOverrideResponse.md +++ b/docs/ShiftOverrideResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**ShiftOverrideResponseData**](ShiftOverrideResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/ShiftRelationships.md b/docs/ShiftRelationships.md index a79ae2ef..162e8652 100644 --- a/docs/ShiftRelationships.md +++ b/docs/ShiftRelationships.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**shiftOverride** | [**ShiftRelationshipsShiftOverride**](ShiftRelationshipsShiftOverride.md) | | [optional] | -|**user** | [**ShiftRelationshipsUser**](ShiftRelationshipsUser.md) | | [optional] | +|**user** | [**OncallRelationshipsUser**](OncallRelationshipsUser.md) | | [optional] | |**assignee** | [**ShiftRelationshipsAssignee**](ShiftRelationshipsAssignee.md) | | [optional] | diff --git a/docs/ShiftsApi.md b/docs/ShiftsApi.md index 69612d74..9ccd734a 100644 --- a/docs/ShiftsApi.md +++ b/docs/ShiftsApi.md @@ -82,7 +82,7 @@ public class Example { # **listShifts** -> ShiftList listShifts(include, from, to, userIds, scheduleIds) +> ShiftList listShifts(include, from, to, userIds, scheduleIds, pageNumber, pageSize) List shifts @@ -113,8 +113,10 @@ public class Example { String to = "to_example"; // String | End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01T00:00:00+00:00) List userIds = Arrays.asList(); // List | List scheduleIds = Arrays.asList(); // List | + Integer pageNumber = 56; // Integer | Page number (defaults to 1) + Integer pageSize = 56; // Integer | Number of shifts per page (defaults to 50, max 1000) try { - ShiftList result = apiInstance.listShifts(include, from, to, userIds, scheduleIds); + ShiftList result = apiInstance.listShifts(include, from, to, userIds, scheduleIds, pageNumber, pageSize); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ShiftsApi#listShifts"); @@ -131,11 +133,13 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **include** | **String**| comma separated if needed. eg: shift_override,user. Note: `user` is deprecated, use `assignee` instead. | [optional] [enum: shift_override, user, assignee] | +| **include** | **String**| comma separated if needed. eg: shift_override,user. Note: `user` is deprecated, use `assignee` instead. | [optional] [enum: shift_override, user, assignee, shift_shadow] | | **from** | **String**| Start range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01T00:00:00+00:00) | [optional] | | **to** | **String**| End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01T00:00:00+00:00) | [optional] | | **userIds** | [**List<Integer>**](Integer.md)| | [optional] | | **scheduleIds** | [**List<String>**](String.md)| | [optional] | +| **pageNumber** | **Integer**| Page number (defaults to 1) | [optional] | +| **pageSize** | **Integer**| Number of shifts per page (defaults to 50, max 1000) | [optional] | ### Return type diff --git a/docs/SlaList.md b/docs/SlaList.md index 79c37c5b..86df46fc 100644 --- a/docs/SlaList.md +++ b/docs/SlaList.md @@ -10,6 +10,7 @@ |**data** | [**List<SlaResponseData>**](SlaResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/SlaResponse.md b/docs/SlaResponse.md index 995317e5..d878a86b 100644 --- a/docs/SlaResponse.md +++ b/docs/SlaResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**SlaResponseData**](SlaResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/SlackChannel.md b/docs/SlackChannel.md new file mode 100644 index 00000000..d9fe7407 --- /dev/null +++ b/docs/SlackChannel.md @@ -0,0 +1,18 @@ + + +# SlackChannel + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | | | +|**slackChannelName** | **String** | | | +|**slackChannelId** | **String** | | | +|**slackTeamId** | **String** | | | +|**createdAt** | **String** | | | +|**updatedAt** | **String** | | | + + + diff --git a/docs/SlasApi.md b/docs/SlasApi.md index f99a879e..337e6cbb 100644 --- a/docs/SlasApi.md +++ b/docs/SlasApi.md @@ -218,7 +218,7 @@ public class Example { # **listSLAs** -> SlaList listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> SlaList listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort) List SLAs @@ -253,9 +253,17 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | String sort = "sort_example"; // String | try { - SlaList result = apiInstance.listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + SlaList result = apiInstance.listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling SlasApi#listSLAs"); @@ -281,6 +289,14 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/StartSessionRequest.md b/docs/StartSessionRequest.md new file mode 100644 index 00000000..ac42cc44 --- /dev/null +++ b/docs/StartSessionRequest.md @@ -0,0 +1,25 @@ + + +# StartSessionRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**platform** | [**PlatformEnum**](#PlatformEnum) | Meeting platform | [optional] | +|**title** | **String** | Human-readable label for the recording session | [optional] | + + + +## Enum: PlatformEnum + +| Name | Value | +|---- | -----| +| ZOOM | "zoom" | +| GOOGLE_MEET | "google_meet" | +| MICROSOFT_TEAMS | "microsoft_teams" | +| WEBEX | "webex" | + + + diff --git a/docs/StartSessionResponse.md b/docs/StartSessionResponse.md new file mode 100644 index 00000000..61cea9f1 --- /dev/null +++ b/docs/StartSessionResponse.md @@ -0,0 +1,13 @@ + + +# StartSessionResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**StartSessionResponseData**](StartSessionResponseData.md) | | [optional] | + + + diff --git a/docs/StartSessionResponseData.md b/docs/StartSessionResponseData.md new file mode 100644 index 00000000..1180693b --- /dev/null +++ b/docs/StartSessionResponseData.md @@ -0,0 +1,15 @@ + + +# StartSessionResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**sessionId** | **UUID** | Meeting recording UUID | | +|**streamToken** | **String** | Token for the desktop client to stream audio | | +|**meetingRecordingId** | **UUID** | Meeting recording UUID | | + + + diff --git a/docs/Status.md b/docs/Status.md index 9a077873..a4165d7d 100644 --- a/docs/Status.md +++ b/docs/Status.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | | | -|**slug** | **String** | | | +|**slug** | **String** | | [optional] [readonly] | |**description** | **String** | | [optional] | |**color** | **String** | | | |**enabled** | **Boolean** | | | diff --git a/docs/StatusList.md b/docs/StatusList.md index 0e2740d3..cf98f38d 100644 --- a/docs/StatusList.md +++ b/docs/StatusList.md @@ -10,6 +10,7 @@ |**data** | [**List<StatusResponseData>**](StatusResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/StatusPage.md b/docs/StatusPage.md index 85889f9f..7ea6b169 100644 --- a/docs/StatusPage.md +++ b/docs/StatusPage.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**title** | **String** | The title of the status page | | -|**slug** | **String** | The slug of the status page | [optional] | +|**slug** | **String** | The slug of the status page | [optional] [readonly] | |**publicTitle** | **String** | The public title of the status page | [optional] | |**description** | **String** | The description of the status page | [optional] | |**publicDescription** | **String** | The public description of the status page | [optional] | @@ -27,6 +27,7 @@ |**samlIdpCert** | **String** | SAML IdP certificate | [optional] | |**samlIdpCertFingerprint** | **String** | SAML IdP certificate fingerprint | [optional] | |**samlNameIdentifierFormat** | [**SamlNameIdentifierFormatEnum**](#SamlNameIdentifierFormatEnum) | SAML name identifier format | [optional] | +|**sectionOrder** | [**List<SectionOrderEnum>**](#List<SectionOrderEnum>) | Order of sections on the status page | [optional] | |**websiteUrl** | **String** | Website URL | [optional] | |**websitePrivacyUrl** | **String** | Website Privacy URL | [optional] | |**websiteSupportUrl** | **String** | Website Support URL | [optional] | @@ -36,6 +37,7 @@ |**serviceIds** | **List<String>** | Services attached to the status page | [optional] | |**functionalityIds** | **List<String>** | Functionalities attached to the status page | [optional] | |**externalDomainNames** | **List<String>** | External domain names attached to the status page | [optional] | +|**cnameRecords** | **Map<String, String>** | CNAME records mapping external domain names to their DNS target values. These are populated asynchronously after setting external_domain_names. | [optional] [readonly] | |**enabled** | **Boolean** | Enabled / Disable the status page | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | @@ -73,3 +75,13 @@ +## Enum: List<SectionOrderEnum> + +| Name | Value | +|---- | -----| +| MAINTENANCE | "maintenance" | +| SYSTEM_STATUS | "system_status" | +| INCIDENTS | "incidents" | + + + diff --git a/docs/StatusPageAnnouncement.md b/docs/StatusPageAnnouncement.md new file mode 100644 index 00000000..398c6cc9 --- /dev/null +++ b/docs/StatusPageAnnouncement.md @@ -0,0 +1,19 @@ + + +# StatusPageAnnouncement + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**statusPageId** | **String** | ID of the status page the announcement was posted to | | +|**title** | **String** | Title of the announcement | | +|**body** | **String** | Body of the announcement | | +|**userId** | **Integer** | ID of the user who posted the announcement | [optional] | +|**publishedAt** | **String** | Date the announcement was published | | +|**createdAt** | **String** | Date of creation | | +|**updatedAt** | **String** | Date of last update | | + + + diff --git a/docs/StatusPageAnnouncementList.md b/docs/StatusPageAnnouncementList.md new file mode 100644 index 00000000..8a80ad16 --- /dev/null +++ b/docs/StatusPageAnnouncementList.md @@ -0,0 +1,16 @@ + + +# StatusPageAnnouncementList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<StatusPageAnnouncementResponseData>**](StatusPageAnnouncementResponseData.md) | | | +|**links** | [**Links**](Links.md) | | | +|**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/StatusPageAnnouncementResponse.md b/docs/StatusPageAnnouncementResponse.md new file mode 100644 index 00000000..d77debc6 --- /dev/null +++ b/docs/StatusPageAnnouncementResponse.md @@ -0,0 +1,14 @@ + + +# StatusPageAnnouncementResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**StatusPageAnnouncementResponseData**](StatusPageAnnouncementResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/StatusPageAnnouncementResponseData.md b/docs/StatusPageAnnouncementResponseData.md new file mode 100644 index 00000000..04c8a0ed --- /dev/null +++ b/docs/StatusPageAnnouncementResponseData.md @@ -0,0 +1,23 @@ + + +# StatusPageAnnouncementResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the status page announcement | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**StatusPageAnnouncement**](StatusPageAnnouncement.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_ANNOUNCEMENTS | "status_page_announcements" | + + + diff --git a/docs/StatusPageAnnouncementsApi.md b/docs/StatusPageAnnouncementsApi.md new file mode 100644 index 00000000..fb0ac049 --- /dev/null +++ b/docs/StatusPageAnnouncementsApi.md @@ -0,0 +1,363 @@ +# StatusPageAnnouncementsApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createStatusPageAnnouncement**](StatusPageAnnouncementsApi.md#createStatusPageAnnouncement) | **POST** /v1/status-pages/{status_page_id}/announcements | Creates a status page announcement | +| [**deleteStatusPageAnnouncement**](StatusPageAnnouncementsApi.md#deleteStatusPageAnnouncement) | **DELETE** /v1/announcements/{id} | Delete a status page announcement | +| [**getStatusPageAnnouncement**](StatusPageAnnouncementsApi.md#getStatusPageAnnouncement) | **GET** /v1/announcements/{id} | Retrieves a status page announcement | +| [**listStatusPageAnnouncements**](StatusPageAnnouncementsApi.md#listStatusPageAnnouncements) | **GET** /v1/status-pages/{status_page_id}/announcements | List status page announcements | +| [**updateStatusPageAnnouncement**](StatusPageAnnouncementsApi.md#updateStatusPageAnnouncement) | **PUT** /v1/announcements/{id} | Update a status page announcement | + + + +# **createStatusPageAnnouncement** +> StatusPageAnnouncementResponse createStatusPageAnnouncement(statusPageId, newStatusPageAnnouncement) + +Creates a status page announcement + +Posts an announcement to a status page and notifies its subscribers unless notify_subscribers is false + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageAnnouncementsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageAnnouncementsApi apiInstance = new StatusPageAnnouncementsApi(defaultClient); + String statusPageId = "statusPageId_example"; // String | + NewStatusPageAnnouncement newStatusPageAnnouncement = new NewStatusPageAnnouncement(); // NewStatusPageAnnouncement | + try { + StatusPageAnnouncementResponse result = apiInstance.createStatusPageAnnouncement(statusPageId, newStatusPageAnnouncement); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageAnnouncementsApi#createStatusPageAnnouncement"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **statusPageId** | **String**| | | +| **newStatusPageAnnouncement** | [**NewStatusPageAnnouncement**](NewStatusPageAnnouncement.md)| | | + +### Return type + +[**StatusPageAnnouncementResponse**](StatusPageAnnouncementResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | status_page_announcement created without notifying subscribers | - | +| **422** | invalid request | - | +| **401** | responds with unauthorized for invalid token | - | + + +# **deleteStatusPageAnnouncement** +> StatusPageAnnouncementResponse deleteStatusPageAnnouncement(id) + +Delete a status page announcement + +Delete a specific status page announcement by id + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageAnnouncementsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageAnnouncementsApi apiInstance = new StatusPageAnnouncementsApi(defaultClient); + String id = "id_example"; // String | + try { + StatusPageAnnouncementResponse result = apiInstance.deleteStatusPageAnnouncement(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageAnnouncementsApi#deleteStatusPageAnnouncement"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**StatusPageAnnouncementResponse**](StatusPageAnnouncementResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | status_page_announcement deleted | - | +| **404** | resource not found | - | + + +# **getStatusPageAnnouncement** +> StatusPageAnnouncementResponse getStatusPageAnnouncement(id) + +Retrieves a status page announcement + +Retrieves a specific status page announcement by id + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageAnnouncementsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageAnnouncementsApi apiInstance = new StatusPageAnnouncementsApi(defaultClient); + String id = "id_example"; // String | + try { + StatusPageAnnouncementResponse result = apiInstance.getStatusPageAnnouncement(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageAnnouncementsApi#getStatusPageAnnouncement"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**StatusPageAnnouncementResponse**](StatusPageAnnouncementResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | status page announcement found | - | +| **404** | resource not found | - | + + +# **listStatusPageAnnouncements** +> StatusPageAnnouncementList listStatusPageAnnouncements(statusPageId, include, pageNumber, pageSize) + +List status page announcements + +List status page announcements + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageAnnouncementsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageAnnouncementsApi apiInstance = new StatusPageAnnouncementsApi(defaultClient); + String statusPageId = "statusPageId_example"; // String | + String include = "include_example"; // String | + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + try { + StatusPageAnnouncementList result = apiInstance.listStatusPageAnnouncements(statusPageId, include, pageNumber, pageSize); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageAnnouncementsApi#listStatusPageAnnouncements"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **statusPageId** | **String**| | | +| **include** | **String**| | [optional] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | + +### Return type + +[**StatusPageAnnouncementList**](StatusPageAnnouncementList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + + +# **updateStatusPageAnnouncement** +> StatusPageAnnouncementResponse updateStatusPageAnnouncement(id, updateStatusPageAnnouncement) + +Update a status page announcement + +Update a specific status page announcement by id + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageAnnouncementsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageAnnouncementsApi apiInstance = new StatusPageAnnouncementsApi(defaultClient); + String id = "id_example"; // String | + UpdateStatusPageAnnouncement updateStatusPageAnnouncement = new UpdateStatusPageAnnouncement(); // UpdateStatusPageAnnouncement | + try { + StatusPageAnnouncementResponse result = apiInstance.updateStatusPageAnnouncement(id, updateStatusPageAnnouncement); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageAnnouncementsApi#updateStatusPageAnnouncement"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **updateStatusPageAnnouncement** | [**UpdateStatusPageAnnouncement**](UpdateStatusPageAnnouncement.md)| | | + +### Return type + +[**StatusPageAnnouncementResponse**](StatusPageAnnouncementResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | status_page_announcement updated | - | +| **404** | resource not found | - | + diff --git a/docs/StatusPageComponent.md b/docs/StatusPageComponent.md new file mode 100644 index 00000000..02260e25 --- /dev/null +++ b/docs/StatusPageComponent.md @@ -0,0 +1,35 @@ + + +# StatusPageComponent + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**statusPageId** | **String** | | | +|**statusPageComponentGroupId** | **String** | ID of the component group the component belongs to | [optional] | +|**name** | **String** | Name of the component (derived from the source for catalog-backed components) | [optional] | +|**description** | **String** | Description of the component (derived from the source for catalog-backed components) | [optional] | +|**position** | **Integer** | Position of the component | | +|**sourceType** | **String** | Catalog source type backing the component (null for ad-hoc components) | [optional] | +|**sourceId** | **String** | ID of the catalog source backing the component (null for ad-hoc components) | [optional] | +|**status** | [**StatusEnum**](#StatusEnum) | Latest recorded status of the component | [optional] | +|**createdAt** | **OffsetDateTime** | Date of creation | | +|**updatedAt** | **OffsetDateTime** | Date of last update | | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| OPERATIONAL | "operational" | +| DEGRADED_PERFORMANCE | "degraded_performance" | +| PARTIAL_OUTAGE | "partial_outage" | +| MAJOR_OUTAGE | "major_outage" | +| MAINTENANCE | "maintenance" | +| IMPACTED | "impacted" | + + + diff --git a/docs/StatusPageComponentGroup.md b/docs/StatusPageComponentGroup.md new file mode 100644 index 00000000..2b437706 --- /dev/null +++ b/docs/StatusPageComponentGroup.md @@ -0,0 +1,19 @@ + + +# StatusPageComponentGroup + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**statusPageId** | **String** | | | +|**name** | **String** | Name of the component group | | +|**description** | **String** | Description of the component group | [optional] | +|**position** | **Integer** | Position of the group on the status page's top-level list | | +|**collapsedByDefault** | **Boolean** | Whether the group renders collapsed on the public page | [optional] | +|**createdAt** | **OffsetDateTime** | Date of creation | | +|**updatedAt** | **OffsetDateTime** | Date of last update | | + + + diff --git a/docs/StatusPageComponentGroupList.md b/docs/StatusPageComponentGroupList.md new file mode 100644 index 00000000..301c26c7 --- /dev/null +++ b/docs/StatusPageComponentGroupList.md @@ -0,0 +1,16 @@ + + +# StatusPageComponentGroupList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<StatusPageComponentGroupResponseData>**](StatusPageComponentGroupResponseData.md) | | | +|**links** | [**Links**](Links.md) | | | +|**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/StatusPageComponentGroupResponse.md b/docs/StatusPageComponentGroupResponse.md new file mode 100644 index 00000000..d905bce4 --- /dev/null +++ b/docs/StatusPageComponentGroupResponse.md @@ -0,0 +1,14 @@ + + +# StatusPageComponentGroupResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**StatusPageComponentGroupResponseData**](StatusPageComponentGroupResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/StatusPageComponentGroupResponseData.md b/docs/StatusPageComponentGroupResponseData.md new file mode 100644 index 00000000..19265b01 --- /dev/null +++ b/docs/StatusPageComponentGroupResponseData.md @@ -0,0 +1,23 @@ + + +# StatusPageComponentGroupResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the status page component group | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**StatusPageComponentGroup**](StatusPageComponentGroup.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_COMPONENT_GROUPS | "status_page_component_groups" | + + + diff --git a/docs/StatusPageComponentGroupsApi.md b/docs/StatusPageComponentGroupsApi.md new file mode 100644 index 00000000..ef835ce2 --- /dev/null +++ b/docs/StatusPageComponentGroupsApi.md @@ -0,0 +1,363 @@ +# StatusPageComponentGroupsApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createStatusPageComponentGroup**](StatusPageComponentGroupsApi.md#createStatusPageComponentGroup) | **POST** /v1/status-pages/{status_page_id}/component-groups | Creates a status page component group | +| [**deleteStatusPageComponentGroup**](StatusPageComponentGroupsApi.md#deleteStatusPageComponentGroup) | **DELETE** /v1/component-groups/{id} | Delete a status page component group | +| [**getStatusPageComponentGroup**](StatusPageComponentGroupsApi.md#getStatusPageComponentGroup) | **GET** /v1/component-groups/{id} | Retrieves a status page component group | +| [**listStatusPageComponentGroups**](StatusPageComponentGroupsApi.md#listStatusPageComponentGroups) | **GET** /v1/status-pages/{status_page_id}/component-groups | List status page component groups | +| [**updateStatusPageComponentGroup**](StatusPageComponentGroupsApi.md#updateStatusPageComponentGroup) | **PUT** /v1/component-groups/{id} | Update a status page component group | + + + +# **createStatusPageComponentGroup** +> StatusPageComponentGroupResponse createStatusPageComponentGroup(statusPageId, newStatusPageComponentGroup) + +Creates a status page component group + +Creates a new status page component group from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentGroupsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentGroupsApi apiInstance = new StatusPageComponentGroupsApi(defaultClient); + String statusPageId = "statusPageId_example"; // String | + NewStatusPageComponentGroup newStatusPageComponentGroup = new NewStatusPageComponentGroup(); // NewStatusPageComponentGroup | + try { + StatusPageComponentGroupResponse result = apiInstance.createStatusPageComponentGroup(statusPageId, newStatusPageComponentGroup); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentGroupsApi#createStatusPageComponentGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **statusPageId** | **String**| | | +| **newStatusPageComponentGroup** | [**NewStatusPageComponentGroup**](NewStatusPageComponentGroup.md)| | | + +### Return type + +[**StatusPageComponentGroupResponse**](StatusPageComponentGroupResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | component group created | - | +| **422** | invalid request | - | +| **401** | responds with unauthorized for invalid token | - | + + +# **deleteStatusPageComponentGroup** +> deleteStatusPageComponentGroup(id) + +Delete a status page component group + +Delete a status page component group together with its components + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentGroupsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentGroupsApi apiInstance = new StatusPageComponentGroupsApi(defaultClient); + String id = "id_example"; // String | + try { + apiInstance.deleteStatusPageComponentGroup(id); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentGroupsApi#deleteStatusPageComponentGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +null (empty response body) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | group deleted along with its member components | - | + + +# **getStatusPageComponentGroup** +> StatusPageComponentGroupResponse getStatusPageComponentGroup(id, include) + +Retrieves a status page component group + +Retrieves a status page component group + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentGroupsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentGroupsApi apiInstance = new StatusPageComponentGroupsApi(defaultClient); + String id = "id_example"; // String | + String include = "include_example"; // String | + try { + StatusPageComponentGroupResponse result = apiInstance.getStatusPageComponentGroup(id, include); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentGroupsApi#getStatusPageComponentGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **include** | **String**| | [optional] | + +### Return type + +[**StatusPageComponentGroupResponse**](StatusPageComponentGroupResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | +| **404** | responds with not found for another team's token | - | + + +# **listStatusPageComponentGroups** +> StatusPageComponentGroupList listStatusPageComponentGroups(statusPageId, include, pageNumber, pageSize) + +List status page component groups + +List status page component groups + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentGroupsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentGroupsApi apiInstance = new StatusPageComponentGroupsApi(defaultClient); + String statusPageId = "statusPageId_example"; // String | + String include = "include_example"; // String | + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + try { + StatusPageComponentGroupList result = apiInstance.listStatusPageComponentGroups(statusPageId, include, pageNumber, pageSize); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentGroupsApi#listStatusPageComponentGroups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **statusPageId** | **String**| | | +| **include** | **String**| | [optional] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | + +### Return type + +[**StatusPageComponentGroupList**](StatusPageComponentGroupList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + + +# **updateStatusPageComponentGroup** +> StatusPageComponentGroupResponse updateStatusPageComponentGroup(id, updateStatusPageComponentGroup) + +Update a status page component group + +Update a status page component group + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentGroupsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentGroupsApi apiInstance = new StatusPageComponentGroupsApi(defaultClient); + String id = "id_example"; // String | + UpdateStatusPageComponentGroup updateStatusPageComponentGroup = new UpdateStatusPageComponentGroup(); // UpdateStatusPageComponentGroup | + try { + StatusPageComponentGroupResponse result = apiInstance.updateStatusPageComponentGroup(id, updateStatusPageComponentGroup); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentGroupsApi#updateStatusPageComponentGroup"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **updateStatusPageComponentGroup** | [**UpdateStatusPageComponentGroup**](UpdateStatusPageComponentGroup.md)| | | + +### Return type + +[**StatusPageComponentGroupResponse**](StatusPageComponentGroupResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | component group reordered | - | +| **422** | invalid request | - | + diff --git a/docs/StatusPageComponentList.md b/docs/StatusPageComponentList.md new file mode 100644 index 00000000..3bb3f295 --- /dev/null +++ b/docs/StatusPageComponentList.md @@ -0,0 +1,16 @@ + + +# StatusPageComponentList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<StatusPageComponentResponseData>**](StatusPageComponentResponseData.md) | | | +|**links** | [**Links**](Links.md) | | | +|**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/StatusPageComponentResponse.md b/docs/StatusPageComponentResponse.md new file mode 100644 index 00000000..ee7634b8 --- /dev/null +++ b/docs/StatusPageComponentResponse.md @@ -0,0 +1,14 @@ + + +# StatusPageComponentResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**StatusPageComponentResponseData**](StatusPageComponentResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/StatusPageComponentResponseData.md b/docs/StatusPageComponentResponseData.md new file mode 100644 index 00000000..c1c406b1 --- /dev/null +++ b/docs/StatusPageComponentResponseData.md @@ -0,0 +1,23 @@ + + +# StatusPageComponentResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the status page component | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**StatusPageComponent**](StatusPageComponent.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_COMPONENTS | "status_page_components" | + + + diff --git a/docs/StatusPageComponentsApi.md b/docs/StatusPageComponentsApi.md new file mode 100644 index 00000000..74c74d49 --- /dev/null +++ b/docs/StatusPageComponentsApi.md @@ -0,0 +1,363 @@ +# StatusPageComponentsApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createStatusPageComponent**](StatusPageComponentsApi.md#createStatusPageComponent) | **POST** /v1/status-pages/{status_page_id}/components | Creates a status page component | +| [**deleteStatusPageComponent**](StatusPageComponentsApi.md#deleteStatusPageComponent) | **DELETE** /v1/components/{id} | Delete a status page component | +| [**getStatusPageComponent**](StatusPageComponentsApi.md#getStatusPageComponent) | **GET** /v1/components/{id} | Retrieves a status page component | +| [**listStatusPageComponents**](StatusPageComponentsApi.md#listStatusPageComponents) | **GET** /v1/status-pages/{status_page_id}/components | List status page components | +| [**updateStatusPageComponent**](StatusPageComponentsApi.md#updateStatusPageComponent) | **PUT** /v1/components/{id} | Update a status page component | + + + +# **createStatusPageComponent** +> StatusPageComponentResponse createStatusPageComponent(statusPageId, newStatusPageComponent) + +Creates a status page component + +Creates a new status page component from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentsApi apiInstance = new StatusPageComponentsApi(defaultClient); + String statusPageId = "statusPageId_example"; // String | + NewStatusPageComponent newStatusPageComponent = new NewStatusPageComponent(); // NewStatusPageComponent | + try { + StatusPageComponentResponse result = apiInstance.createStatusPageComponent(statusPageId, newStatusPageComponent); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentsApi#createStatusPageComponent"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **statusPageId** | **String**| | | +| **newStatusPageComponent** | [**NewStatusPageComponent**](NewStatusPageComponent.md)| | | + +### Return type + +[**StatusPageComponentResponse**](StatusPageComponentResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | catalog-backed component created | - | +| **422** | invalid request | - | +| **401** | responds with unauthorized for invalid token | - | + + +# **deleteStatusPageComponent** +> deleteStatusPageComponent(id) + +Delete a status page component + +Delete a status page component + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentsApi apiInstance = new StatusPageComponentsApi(defaultClient); + String id = "id_example"; // String | + try { + apiInstance.deleteStatusPageComponent(id); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentsApi#deleteStatusPageComponent"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +null (empty response body) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | catalog-backed component detached, source and catalog left intact | - | + + +# **getStatusPageComponent** +> StatusPageComponentResponse getStatusPageComponent(id, include) + +Retrieves a status page component + +Retrieves a status page component + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentsApi apiInstance = new StatusPageComponentsApi(defaultClient); + String id = "id_example"; // String | + String include = "include_example"; // String | + try { + StatusPageComponentResponse result = apiInstance.getStatusPageComponent(id, include); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentsApi#getStatusPageComponent"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **include** | **String**| | [optional] | + +### Return type + +[**StatusPageComponentResponse**](StatusPageComponentResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | +| **404** | responds with not found for another team's token | - | + + +# **listStatusPageComponents** +> StatusPageComponentList listStatusPageComponents(statusPageId, include, pageNumber, pageSize) + +List status page components + +List status page components + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentsApi apiInstance = new StatusPageComponentsApi(defaultClient); + String statusPageId = "statusPageId_example"; // String | + String include = "include_example"; // String | + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + try { + StatusPageComponentList result = apiInstance.listStatusPageComponents(statusPageId, include, pageNumber, pageSize); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentsApi#listStatusPageComponents"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **statusPageId** | **String**| | | +| **include** | **String**| | [optional] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | + +### Return type + +[**StatusPageComponentList**](StatusPageComponentList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + + +# **updateStatusPageComponent** +> StatusPageComponentResponse updateStatusPageComponent(id, updateStatusPageComponent) + +Update a status page component + +Update a status page component + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.StatusPageComponentsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + StatusPageComponentsApi apiInstance = new StatusPageComponentsApi(defaultClient); + String id = "id_example"; // String | + UpdateStatusPageComponent updateStatusPageComponent = new UpdateStatusPageComponent(); // UpdateStatusPageComponent | + try { + StatusPageComponentResponse result = apiInstance.updateStatusPageComponent(id, updateStatusPageComponent); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling StatusPageComponentsApi#updateStatusPageComponent"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **updateStatusPageComponent** | [**UpdateStatusPageComponent**](UpdateStatusPageComponent.md)| | | + +### Return type + +[**StatusPageComponentResponse**](StatusPageComponentResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | catalog-backed component ignores name and description overrides | - | +| **422** | invalid position rejected | - | + diff --git a/docs/StatusPageList.md b/docs/StatusPageList.md index b65423ea..fda566b1 100644 --- a/docs/StatusPageList.md +++ b/docs/StatusPageList.md @@ -10,6 +10,7 @@ |**data** | [**List<StatusPageResponseData>**](StatusPageResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/StatusPageResponse.md b/docs/StatusPageResponse.md index 15314578..e3f969f5 100644 --- a/docs/StatusPageResponse.md +++ b/docs/StatusPageResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**StatusPageResponseData**](StatusPageResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/StatusPageTemplate.md b/docs/StatusPageTemplate.md index 5f548a86..ac4cd96d 100644 --- a/docs/StatusPageTemplate.md +++ b/docs/StatusPageTemplate.md @@ -9,6 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**statusPageId** | **String** | | | |**title** | **String** | Title of the template | | +|**updateTitle** | **String** | Title that will be used for the status page update | [optional] | |**body** | **String** | Description of the event the template will populate | | |**updateStatus** | **String** | Status of the event the template will populate | [optional] | |**kind** | [**KindEnum**](#KindEnum) | The kind of the status page template | [optional] | diff --git a/docs/StatusPageTemplateList.md b/docs/StatusPageTemplateList.md index 80e52bff..6cf68024 100644 --- a/docs/StatusPageTemplateList.md +++ b/docs/StatusPageTemplateList.md @@ -10,6 +10,7 @@ |**data** | [**List<StatusPageTemplateListDataInner>**](StatusPageTemplateListDataInner.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/StatusPageTemplateResponse.md b/docs/StatusPageTemplateResponse.md index 3a9639cb..8fb69af4 100644 --- a/docs/StatusPageTemplateResponse.md +++ b/docs/StatusPageTemplateResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**StatusPageTemplateResponseData**](StatusPageTemplateResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/StatusPagesApi.md b/docs/StatusPagesApi.md index 5319eb5f..446d1e74 100644 --- a/docs/StatusPagesApi.md +++ b/docs/StatusPagesApi.md @@ -218,7 +218,7 @@ public class Example { # **listStatusPages** -> StatusPageList listStatusPages(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> StatusPageList listStatusPages(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort) List status pages @@ -254,9 +254,17 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | String sort = "sort_example"; // String | try { - StatusPageList result = apiInstance.listStatusPages(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + StatusPageList result = apiInstance.listStatusPages(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling StatusPagesApi#listStatusPages"); @@ -283,6 +291,14 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type @@ -370,6 +386,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | status page SAML updated | - | +| **200** | external_domain_names persisted | - | +| **422** | invalid section_order | - | | **404** | resource not found | - | diff --git a/docs/StatusResponse.md b/docs/StatusResponse.md index b9b9a516..9058bf54 100644 --- a/docs/StatusResponse.md +++ b/docs/StatusResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**StatusResponseData**](StatusResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/SubStatus.md b/docs/SubStatus.md index 2971608b..fc08020a 100644 --- a/docs/SubStatus.md +++ b/docs/SubStatus.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | | | -|**slug** | **String** | | [optional] | +|**slug** | **String** | | [optional] [readonly] | |**description** | **String** | | [optional] | |**parentStatus** | [**ParentStatusEnum**](#ParentStatusEnum) | | | |**position** | **Integer** | | [optional] | diff --git a/docs/SubStatusList.md b/docs/SubStatusList.md index 3d24ea15..6a872d97 100644 --- a/docs/SubStatusList.md +++ b/docs/SubStatusList.md @@ -10,6 +10,7 @@ |**data** | [**List<SubStatusResponseData>**](SubStatusResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/SubStatusResponse.md b/docs/SubStatusResponse.md index 2391bc41..b3a62875 100644 --- a/docs/SubStatusResponse.md +++ b/docs/SubStatusResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**SubStatusResponseData**](SubStatusResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/Team.md b/docs/Team.md index 50f7c739..2823cfa0 100644 --- a/docs/Team.md +++ b/docs/Team.md @@ -8,8 +8,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the team | | -|**slug** | **String** | | [optional] | +|**slug** | **String** | | [optional] [readonly] | +|**managedBy** | [**ManagedByEnum**](#ManagedByEnum) | How this team is managed (provenance): web, api, terraform, etc. Read-only. | [optional] | |**description** | **String** | The description of the team | [optional] | +|**publicDescription** | **String** | The status page description of the team | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the team | [optional] | |**color** | **String** | The hex color of the team | [optional] | |**position** | **Integer** | Position of the team | [optional] | @@ -34,8 +36,35 @@ |**incidentBroadcastEnabled** | **Boolean** | Enable incidents to be broadcasted to a specific channel | [optional] | |**incidentBroadcastChannel** | [**ServiceIncidentBroadcastChannel**](ServiceIncidentBroadcastChannel.md) | | [optional] | |**autoAddMembersWhenAttached** | **Boolean** | Auto add members to incident channel when team is attached | [optional] | +|**autoAddMembersScope** | [**AutoAddMembersScopeEnum**](#AutoAddMembersScopeEnum) | Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this team. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | +## Enum: ManagedByEnum + +| Name | Value | +|---- | -----| +| WEB | "web" | +| ADMIN_WEB | "admin_web" | +| API | "api" | +| TERRAFORM | "terraform" | +| PULUMI | "pulumi" | +| BACKSTAGE | "backstage" | +| CATALOG_SYNC | "catalog_sync" | + + + +## Enum: AutoAddMembersScopeEnum + +| Name | Value | +|---- | -----| +| OFF | "off" | +| PUBLIC_ONLY | "public_only" | +| PUBLIC_AND_TEST | "public_and_test" | +| ALL | "all" | + + + diff --git a/docs/TeamList.md b/docs/TeamList.md index a429281f..3fad363e 100644 --- a/docs/TeamList.md +++ b/docs/TeamList.md @@ -10,6 +10,7 @@ |**data** | [**List<TeamResponseData>**](TeamResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/TeamResponse.md b/docs/TeamResponse.md index 77abb0b0..9f1afc77 100644 --- a/docs/TeamResponse.md +++ b/docs/TeamResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**TeamResponseData**](TeamResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/TeamsApi.md b/docs/TeamsApi.md index bc4f0317..933f5979 100644 --- a/docs/TeamsApi.md +++ b/docs/TeamsApi.md @@ -4,14 +4,225 @@ All URIs are relative to *https://api.rootly.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| +| [**bulkDeleteGroups**](TeamsApi.md#bulkDeleteGroups) | **POST** /v1/teams/bulk_delete | Bulk delete Teams | +| [**bulkUpsertGroups**](TeamsApi.md#bulkUpsertGroups) | **POST** /v1/teams/bulk_upsert | Bulk upsert Teams | +| [**createGroupCatalogProperty**](TeamsApi.md#createGroupCatalogProperty) | **POST** /v1/teams/properties | Creates a Catalog Property | | [**createTeam**](TeamsApi.md#createTeam) | **POST** /v1/teams | Creates a team | | [**deleteTeam**](TeamsApi.md#deleteTeam) | **DELETE** /v1/teams/{id} | Delete a team | | [**getTeam**](TeamsApi.md#getTeam) | **GET** /v1/teams/{id} | Retrieves a team | | [**getTeamIncidentsChart**](TeamsApi.md#getTeamIncidentsChart) | **GET** /v1/teams/{id}/incidents_chart | Get team incidents chart | +| [**listGroupCatalogProperties**](TeamsApi.md#listGroupCatalogProperties) | **GET** /v1/teams/properties | List Catalog Properties | | [**listTeams**](TeamsApi.md#listTeams) | **GET** /v1/teams | List teams | | [**updateTeam**](TeamsApi.md#updateTeam) | **PUT** /v1/teams/{id} | Update a team | + +# **bulkDeleteGroups** +> BulkDestroyTeamsResponse bulkDeleteGroups(bulkDestroyTeams) + +Bulk delete Teams + +Delete teams by external_id list, or prune by managed_by source. Two mutually exclusive modes. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.TeamsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + TeamsApi apiInstance = new TeamsApi(defaultClient); + BulkDestroyTeams bulkDestroyTeams = new BulkDestroyTeams(); // BulkDestroyTeams | + try { + BulkDestroyTeamsResponse result = apiInstance.bulkDeleteGroups(bulkDestroyTeams); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TeamsApi#bulkDeleteGroups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkDestroyTeams** | [**BulkDestroyTeams**](BulkDestroyTeams.md)| | | + +### Return type + +[**BulkDestroyTeamsResponse**](BulkDestroyTeamsResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records deleted successfully | - | +| **422** | validation or partial-failure error | - | +| **401** | unauthorized | - | + + +# **bulkUpsertGroups** +> BulkUpsertTeamsResponse bulkUpsertGroups(bulkUpsertTeams) + +Bulk upsert Teams + +Create or update multiple teams by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.TeamsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + TeamsApi apiInstance = new TeamsApi(defaultClient); + BulkUpsertTeams bulkUpsertTeams = new BulkUpsertTeams(); // BulkUpsertTeams | + try { + BulkUpsertTeamsResponse result = apiInstance.bulkUpsertGroups(bulkUpsertTeams); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TeamsApi#bulkUpsertGroups"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **bulkUpsertTeams** | [**BulkUpsertTeams**](BulkUpsertTeams.md)| | | + +### Return type + +[**BulkUpsertTeamsResponse**](BulkUpsertTeamsResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | records upserted successfully | - | +| **422** | validation or record-level error | - | +| **401** | unauthorized | - | + + +# **createGroupCatalogProperty** +> CatalogPropertyResponse createGroupCatalogProperty(newCatalogProperty) + +Creates a Catalog Property + +Creates a new Catalog Property from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.TeamsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + TeamsApi apiInstance = new TeamsApi(defaultClient); + NewCatalogProperty newCatalogProperty = new NewCatalogProperty(); // NewCatalogProperty | + try { + CatalogPropertyResponse result = apiInstance.createGroupCatalogProperty(newCatalogProperty); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TeamsApi#createGroupCatalogProperty"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newCatalogProperty** | [**NewCatalogProperty**](NewCatalogProperty.md)| | | + +### Return type + +[**CatalogPropertyResponse**](CatalogPropertyResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | catalog_property created ignores wrong catalog_type attribute | - | +| **422** | exceeds max fields per catalog | - | +| **401** | responds with unauthorized for invalid token | - | + # **createTeam** > TeamResponse createTeam(newTeam) @@ -198,7 +409,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **id** | [**GetTeamIdParameter**](.md)| | | -| **include** | **String**| comma separated if needed. eg: users | [optional] [enum: users] | +| **include** | **String**| comma separated if needed. eg: users | [optional] [enum: users, schedules, escalation_policies] | ### Return type @@ -221,7 +432,7 @@ public class Example { # **getTeamIncidentsChart** -> Object getTeamIncidentsChart(id, period) +> IncidentsChartResponse getTeamIncidentsChart(id, period) Get team incidents chart @@ -250,7 +461,7 @@ public class Example { String id = "id_example"; // String | String period = "period_example"; // String | try { - Object result = apiInstance.getTeamIncidentsChart(id, period); + IncidentsChartResponse result = apiInstance.getTeamIncidentsChart(id, period); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling TeamsApi#getTeamIncidentsChart"); @@ -272,7 +483,7 @@ public class Example { ### Return type -**Object** +[**IncidentsChartResponse**](IncidentsChartResponse.md) ### Authorization @@ -289,9 +500,96 @@ public class Example { | **200** | success | - | | **404** | resource not found | - | + +# **listGroupCatalogProperties** +> CatalogPropertyList listGroupCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) + +List Catalog Properties + +List Group Catalog Properties + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.TeamsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + TeamsApi apiInstance = new TeamsApi(defaultClient); + String include = "catalog"; // String | comma separated if needed. eg: catalog + String sort = "created_at"; // String | comma separated if needed. eg: created_at,updated_at + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + String filterSlug = "filterSlug_example"; // String | + String filterName = "filterName_example"; // String | + String filterKind = "filterKind_example"; // String | + String filterCreatedAtGt = "filterCreatedAtGt_example"; // String | + String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | + String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | + String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + try { + CatalogPropertyList result = apiInstance.listGroupCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling TeamsApi#listGroupCatalogProperties"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include** | **String**| comma separated if needed. eg: catalog | [optional] [enum: catalog] | +| **sort** | **String**| comma separated if needed. eg: created_at,updated_at | [optional] [enum: created_at, -created_at, updated_at, -updated_at, position, -position] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | +| **filterSlug** | **String**| | [optional] | +| **filterName** | **String**| | [optional] | +| **filterKind** | **String**| | [optional] | +| **filterCreatedAtGt** | **String**| | [optional] | +| **filterCreatedAtGte** | **String**| | [optional] | +| **filterCreatedAtLt** | **String**| | [optional] | +| **filterCreatedAtLte** | **String**| | [optional] | + +### Return type + +[**CatalogPropertyList**](CatalogPropertyList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + # **listTeams** -> TeamList listTeams(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort) +> TeamList listTeams(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort) List teams @@ -334,9 +632,29 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterColorEq = "filterColorEq_example"; // String | + String filterColorNotEq = "filterColorNotEq_example"; // String | + String filterColorIn = "filterColorIn_example"; // String | + String filterColorNotIn = "filterColorNotIn_example"; // String | + String filterAlertBroadcastEnabledEq = "filterAlertBroadcastEnabledEq_example"; // String | + String filterAlertBroadcastEnabledNotEq = "filterAlertBroadcastEnabledNotEq_example"; // String | + String filterAlertBroadcastEnabledIn = "filterAlertBroadcastEnabledIn_example"; // String | + String filterAlertBroadcastEnabledNotIn = "filterAlertBroadcastEnabledNotIn_example"; // String | + String filterIncidentBroadcastEnabledEq = "filterIncidentBroadcastEnabledEq_example"; // String | + String filterIncidentBroadcastEnabledNotEq = "filterIncidentBroadcastEnabledNotEq_example"; // String | + String filterIncidentBroadcastEnabledIn = "filterIncidentBroadcastEnabledIn_example"; // String | + String filterIncidentBroadcastEnabledNotIn = "filterIncidentBroadcastEnabledNotIn_example"; // String | String sort = "sort_example"; // String | try { - TeamList result = apiInstance.listTeams(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + TeamList result = apiInstance.listTeams(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling TeamsApi#listTeams"); @@ -353,7 +671,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **include** | **String**| comma separated if needed. eg: users | [optional] [enum: users] | +| **include** | **String**| comma separated if needed. eg: users | [optional] [enum: users, schedules, escalation_policies] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | | **filterSearch** | **String**| | [optional] | @@ -370,6 +688,26 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterColorEq** | **String**| | [optional] | +| **filterColorNotEq** | **String**| | [optional] | +| **filterColorIn** | **String**| | [optional] | +| **filterColorNotIn** | **String**| | [optional] | +| **filterAlertBroadcastEnabledEq** | **String**| | [optional] | +| **filterAlertBroadcastEnabledNotEq** | **String**| | [optional] | +| **filterAlertBroadcastEnabledIn** | **String**| | [optional] | +| **filterAlertBroadcastEnabledNotIn** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledEq** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledNotEq** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledIn** | **String**| | [optional] | +| **filterIncidentBroadcastEnabledNotIn** | **String**| | [optional] | | **sort** | **String**| | [optional] | ### Return type diff --git a/docs/TriggerWorkflowTaskParams.md b/docs/TriggerWorkflowTaskParams.md index 46d0e977..09d8482c 100644 --- a/docs/TriggerWorkflowTaskParams.md +++ b/docs/TriggerWorkflowTaskParams.md @@ -9,7 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | |**kind** | [**KindEnum**](#KindEnum) | | | -|**attributeToQueryBy** | [**AttributeToQueryByEnum**](#AttributeToQueryByEnum) | [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] | | +|**attributeToQueryBy** | [**AttributeToQueryByEnum**](#AttributeToQueryByEnum) | [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] | | |**resource** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**workflow** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**checkWorkflowConditions** | **Boolean** | | [optional] | @@ -29,8 +29,8 @@ | Name | Value | |---- | -----| | INCIDENT | "incident" | -| POST_MORTEM | "post_mortem" | | ACTION_ITEM | "action_item" | +| POST_MORTEM | "post_mortem" | | PULSE | "pulse" | | ALERT | "alert" | diff --git a/docs/UpdateAlertData.md b/docs/UpdateAlertData.md index 12593bf0..015d8063 100644 --- a/docs/UpdateAlertData.md +++ b/docs/UpdateAlertData.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | | |**attributes** | [**UpdateAlertDataAttributes**](UpdateAlertDataAttributes.md) | | | diff --git a/docs/UpdateAlertDataAttributes.md b/docs/UpdateAlertDataAttributes.md index 9b703275..20851ee4 100644 --- a/docs/UpdateAlertDataAttributes.md +++ b/docs/UpdateAlertDataAttributes.md @@ -8,11 +8,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**noise** | [**NoiseEnum**](#NoiseEnum) | Whether the alert is marked as noise | [optional] | -|**source** | [**SourceEnum**](#SourceEnum) | The source of the alert | [optional] | +|**source** | **String** | Deprecated. Accepted for backwards compatibility; new clients should omit. Defaults to `api`. | [optional] | |**summary** | **String** | The summary of the alert | [optional] | |**description** | **String** | The description of the alert | [optional] | |**serviceIds** | **List<String>** | The Service IDs to attach to the alert | [optional] | |**groupIds** | **List<String>** | The Group IDs to attach to the alert | [optional] | +|**functionalityIds** | **List<String>** | The Functionality IDs to attach to the alert | [optional] | |**environmentIds** | **List<String>** | The Environment IDs to attach to the alert | [optional] | |**startedAt** | **OffsetDateTime** | Alert start datetime | [optional] | |**endedAt** | **OffsetDateTime** | Alert end datetime | [optional] | @@ -35,53 +36,3 @@ -## Enum: SourceEnum - -| Name | Value | -|---- | -----| -| ROOTLY | "rootly" | -| MANUAL | "manual" | -| API | "api" | -| HEARTBEAT | "heartbeat" | -| WEB | "web" | -| SLACK | "slack" | -| EMAIL | "email" | -| WORKFLOW | "workflow" | -| LIVE_CALL_ROUTING | "live_call_routing" | -| MOBILE | "mobile" | -| PAGERDUTY | "pagerduty" | -| OPSGENIE | "opsgenie" | -| VICTOROPS | "victorops" | -| PAGERTREE | "pagertree" | -| DATADOG | "datadog" | -| NOBL9 | "nobl9" | -| ZENDESK | "zendesk" | -| ASANA | "asana" | -| CLICKUP | "clickup" | -| SENTRY | "sentry" | -| ROLLBAR | "rollbar" | -| JIRA | "jira" | -| HONEYCOMB | "honeycomb" | -| SERVICE_NOW | "service_now" | -| LINEAR | "linear" | -| GRAFANA | "grafana" | -| ALERTMANAGER | "alertmanager" | -| GOOGLE_CLOUD | "google_cloud" | -| GENERIC_WEBHOOK | "generic_webhook" | -| CLOUD_WATCH | "cloud_watch" | -| AZURE | "azure" | -| SPLUNK | "splunk" | -| CHRONOSPHERE | "chronosphere" | -| APP_OPTICS | "app_optics" | -| BUG_SNAG | "bug_snag" | -| MONTE_CARLO | "monte_carlo" | -| NAGIOS | "nagios" | -| PRTG | "prtg" | -| CATCHPOINT | "catchpoint" | -| APP_DYNAMICS | "app_dynamics" | -| CHECKLY | "checkly" | -| NEW_RELIC | "new_relic" | -| GITLAB | "gitlab" | - - - diff --git a/docs/UpdateAlertFieldDataAttributes.md b/docs/UpdateAlertFieldDataAttributes.md index be450b76..d9a0d6f3 100644 --- a/docs/UpdateAlertFieldDataAttributes.md +++ b/docs/UpdateAlertFieldDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the alert field | [optional] | diff --git a/docs/UpdateAlertGroupDataAttributes.md b/docs/UpdateAlertGroupDataAttributes.md index 2ae6fc31..ab62a43b 100644 --- a/docs/UpdateAlertGroupDataAttributes.md +++ b/docs/UpdateAlertGroupDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the alert group | [optional] | |**description** | **String** | The description of the alert group | [optional] | |**timeWindow** | **Integer** | The length of time an Alert Group should stay open and accept new alerts | [optional] | diff --git a/docs/UpdateAlertRetriggerRule.md b/docs/UpdateAlertRetriggerRule.md new file mode 100644 index 00000000..723197e6 --- /dev/null +++ b/docs/UpdateAlertRetriggerRule.md @@ -0,0 +1,13 @@ + + +# UpdateAlertRetriggerRule + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UpdateAlertRetriggerRuleData**](UpdateAlertRetriggerRuleData.md) | | | + + + diff --git a/docs/UpdateAlertRetriggerRuleData.md b/docs/UpdateAlertRetriggerRuleData.md new file mode 100644 index 00000000..4ff9bf07 --- /dev/null +++ b/docs/UpdateAlertRetriggerRuleData.md @@ -0,0 +1,22 @@ + + +# UpdateAlertRetriggerRuleData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**UpdateAlertRetriggerRuleDataAttributes**](UpdateAlertRetriggerRuleDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| ALERT_RETRIGGER_RULES | "alert_retrigger_rules" | + + + diff --git a/docs/UpdateAlertRetriggerRuleDataAttributes.md b/docs/UpdateAlertRetriggerRuleDataAttributes.md new file mode 100644 index 00000000..529b4596 --- /dev/null +++ b/docs/UpdateAlertRetriggerRuleDataAttributes.md @@ -0,0 +1,47 @@ + + +# UpdateAlertRetriggerRuleDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | A human-readable name for the rule | [optional] | +|**matchMode** | [**MatchModeEnum**](#MatchModeEnum) | Whether all or any of the conditions must match | [optional] | +|**timeoutMinutes** | [**TimeoutMinutesEnum**](#TimeoutMinutesEnum) | Re-trigger the alert this many minutes after acknowledgment. Null means never re-trigger. | [optional] | +|**position** | **Integer** | The position of the rule for ordering evaluation | [optional] | +|**conditions** | [**List<NewAlertRetriggerRuleDataAttributesConditionsInner>**](NewAlertRetriggerRuleDataAttributesConditionsInner.md) | The full desired set of conditions; replaces the rule's existing conditions. An empty array applies to every alert. | [optional] | + + + +## Enum: MatchModeEnum + +| Name | Value | +|---- | -----| +| MATCH_ALL_RULES | "match-all-rules" | +| MATCH_ANY_RULE | "match-any-rule" | + + + +## Enum: TimeoutMinutesEnum + +| Name | Value | +|---- | -----| +| NUMBER_10 | 10 | +| NUMBER_20 | 20 | +| NUMBER_30 | 30 | +| NUMBER_40 | 40 | +| NUMBER_50 | 50 | +| NUMBER_60 | 60 | +| NUMBER_90 | 90 | +| NUMBER_120 | 120 | +| NUMBER_180 | 180 | +| NUMBER_240 | 240 | +| NUMBER_300 | 300 | +| NUMBER_360 | 360 | +| NUMBER_720 | 720 | +| NUMBER_1440 | 1440 | + + + diff --git a/docs/UpdateAlertRouteDataAttributes.md b/docs/UpdateAlertRouteDataAttributes.md index 6ecd72fe..a2275c5f 100644 --- a/docs/UpdateAlertRouteDataAttributes.md +++ b/docs/UpdateAlertRouteDataAttributes.md @@ -11,7 +11,7 @@ |**enabled** | **Boolean** | Whether the alert route is enabled | [optional] | |**alertsSourceIds** | **List<UUID>** | | [optional] | |**owningTeamIds** | **List<UUID>** | | [optional] | -|**rules** | [**List<UpdateAlertRouteDataAttributesRulesInner>**](UpdateAlertRouteDataAttributesRulesInner.md) | | [optional] | +|**rules** | [**List<NewAlertRouteDataAttributesRulesInner>**](NewAlertRouteDataAttributesRulesInner.md) | | [optional] | diff --git a/docs/UpdateAlertRoutingRuleDataAttributesDestination.md b/docs/UpdateAlertRoutingRuleDataAttributesDestination.md index f10aaf96..6798c56b 100644 --- a/docs/UpdateAlertRoutingRuleDataAttributesDestination.md +++ b/docs/UpdateAlertRoutingRuleDataAttributesDestination.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target | [optional] | +|**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. | [optional] | |**targetId** | **UUID** | The ID of the target | [optional] | @@ -18,6 +18,7 @@ |---- | -----| | SERVICE | "Service" | | GROUP | "Group" | +| FUNCTIONALITY | "Functionality" | | ESCALATION_POLICY | "EscalationPolicy" | diff --git a/docs/UpdateAlertUrgencyDataAttributes.md b/docs/UpdateAlertUrgencyDataAttributes.md index 89d26fe2..7e680f46 100644 --- a/docs/UpdateAlertUrgencyDataAttributes.md +++ b/docs/UpdateAlertUrgencyDataAttributes.md @@ -10,6 +10,7 @@ |**name** | **String** | The name of the alert urgency | [optional] | |**description** | **String** | The description of the alert urgency | [optional] | |**position** | **Integer** | Position of the alert urgency | [optional] | +|**retriggerTimeoutMinutes** | **Integer** | Re-trigger acknowledged alerts of this urgency after N minutes; null inherits the workspace default, negative = never. | [optional] | diff --git a/docs/UpdateAlertsSourceDataAttributes.md b/docs/UpdateAlertsSourceDataAttributes.md index 38663de7..6fabc863 100644 --- a/docs/UpdateAlertsSourceDataAttributes.md +++ b/docs/UpdateAlertsSourceDataAttributes.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the alert source | [optional] | +|**enabled** | **Boolean** | Whether the alert source is enabled. Disabled sources do not create alerts from incoming events. | [optional] | |**sourceType** | [**SourceTypeEnum**](#SourceTypeEnum) | The alert source type | [optional] | |**alertUrgencyId** | **String** | ID for the default alert urgency assigned to this alert source | [optional] | |**deduplicateAlertsByKey** | **Boolean** | Toggle alert deduplication using deduplication key. If enabled, deduplication_key_kind and deduplication_key_path are required. | [optional] | @@ -30,13 +31,16 @@ | EMAIL | "email" | | APP_DYNAMICS | "app_dynamics" | | CATCHPOINT | "catchpoint" | +| CLOUDFLARE | "cloudflare" | | DATADOG | "datadog" | +| DYNATRACE | "dynatrace" | | ALERTMANAGER | "alertmanager" | | GOOGLE_CLOUD | "google_cloud" | | GRAFANA | "grafana" | | SENTRY | "sentry" | | GENERIC_WEBHOOK | "generic_webhook" | | CLOUD_WATCH | "cloud_watch" | +| AWS_SNS | "aws_sns" | | CHECKLY | "checkly" | | AZURE | "azure" | | NEW_RELIC | "new_relic" | diff --git a/docs/UpdateCatalogChecklistTemplateDataAttributes.md b/docs/UpdateCatalogChecklistTemplateDataAttributes.md index fbde1735..8ac11ca6 100644 --- a/docs/UpdateCatalogChecklistTemplateDataAttributes.md +++ b/docs/UpdateCatalogChecklistTemplateDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the checklist template | [optional] | |**description** | **String** | The description of the checklist template | [optional] | |**fields** | [**List<NewCatalogChecklistTemplateDataAttributesFieldsInner>**](NewCatalogChecklistTemplateDataAttributesFieldsInner.md) | Template fields. Position is determined by array order. Replaces all existing fields. | [optional] | diff --git a/docs/UpdateCatalogDataAttributes.md b/docs/UpdateCatalogDataAttributes.md index eeaa8033..b8602d93 100644 --- a/docs/UpdateCatalogDataAttributes.md +++ b/docs/UpdateCatalogDataAttributes.md @@ -7,10 +7,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | [optional] | |**description** | **String** | | [optional] | |**icon** | [**IconEnum**](#IconEnum) | | [optional] | |**position** | **Integer** | Default position of the catalog when displayed in a list. | [optional] | +|**externalId** | **String** | An external identifier for this catalog. Must be unique within the team. | [optional] | diff --git a/docs/UpdateCatalogEntityDataAttributes.md b/docs/UpdateCatalogEntityDataAttributes.md index d34d73ba..f4f37acb 100644 --- a/docs/UpdateCatalogEntityDataAttributes.md +++ b/docs/UpdateCatalogEntityDataAttributes.md @@ -7,9 +7,14 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | [optional] | |**description** | **String** | | [optional] | +|**publicDescription** | **String** | The status page description of the catalog entity | [optional] | |**position** | **Integer** | Default position of the item when displayed in a list. | [optional] | +|**backstageId** | **String** | The Backstage entity ID this catalog entity is linked to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog entity. Must be unique within the catalog. | [optional] | +|**properties** | [**List<NewCatalogEntityDataAttributesPropertiesInner>**](NewCatalogEntityDataAttributesPropertiesInner.md) | Array of property values for this catalog entity | [optional] | diff --git a/docs/UpdateCatalogEntityProperty.md b/docs/UpdateCatalogEntityProperty.md index c9600f07..66197cd3 100644 --- a/docs/UpdateCatalogEntityProperty.md +++ b/docs/UpdateCatalogEntityProperty.md @@ -2,6 +2,7 @@ # UpdateCatalogEntityProperty +**Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. ## Properties diff --git a/docs/UpdateCatalogEntityPropertyDataAttributes.md b/docs/UpdateCatalogEntityPropertyDataAttributes.md index a781160b..efc6261a 100644 --- a/docs/UpdateCatalogEntityPropertyDataAttributes.md +++ b/docs/UpdateCatalogEntityPropertyDataAttributes.md @@ -18,6 +18,7 @@ |---- | -----| | TEXT | "text" | | CATALOG_ENTITY | "catalog_entity" | +| SLACK | "slack" | diff --git a/docs/UpdateCatalogFieldData.md b/docs/UpdateCatalogFieldData.md index b2717732..a6e50ab7 100644 --- a/docs/UpdateCatalogFieldData.md +++ b/docs/UpdateCatalogFieldData.md @@ -16,7 +16,7 @@ | Name | Value | |---- | -----| -| CATALOG_FIELDS | "catalog_fields" | +| CATALOG_PROPERTIES | "catalog_properties" | diff --git a/docs/UpdateCatalogFieldDataAttributes.md b/docs/UpdateCatalogFieldDataAttributes.md index 2b13f08a..40382f59 100644 --- a/docs/UpdateCatalogFieldDataAttributes.md +++ b/docs/UpdateCatalogFieldDataAttributes.md @@ -7,11 +7,14 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | [optional] | -|**slug** | **String** | | [optional] | |**kind** | [**KindEnum**](#KindEnum) | | [optional] | |**kindCatalogId** | **String** | Restricts values to items of specified catalog. | [optional] | |**position** | **Integer** | Default position of the item when displayed in a list. | [optional] | +|**required** | **Boolean** | Whether the field is required. | [optional] | +|**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The type of catalog the field belongs to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog field. Must be unique within the scope. | [optional] | @@ -21,6 +24,28 @@ |---- | -----| | TEXT | "text" | | REFERENCE | "reference" | +| BOOLEAN | "boolean" | +| SERVICE | "service" | +| FUNCTIONALITY | "functionality" | +| ENVIRONMENT | "environment" | +| GROUP | "group" | +| CAUSE | "cause" | +| INCIDENT_TYPE | "incident_type" | +| USER | "user" | + + + +## Enum: CatalogTypeEnum + +| Name | Value | +|---- | -----| +| CATALOG | "catalog" | +| CAUSE | "cause" | +| ENVIRONMENT | "environment" | +| FUNCTIONALITY | "functionality" | +| INCIDENT_TYPE | "incident_type" | +| SERVICE | "service" | +| TEAM | "team" | diff --git a/docs/UpdateCatalogPropertyDataAttributes.md b/docs/UpdateCatalogPropertyDataAttributes.md index 7428435f..b61acb05 100644 --- a/docs/UpdateCatalogPropertyDataAttributes.md +++ b/docs/UpdateCatalogPropertyDataAttributes.md @@ -7,12 +7,14 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | [optional] | |**kind** | [**KindEnum**](#KindEnum) | | [optional] | |**kindCatalogId** | **String** | Restricts values to items of specified catalog. | [optional] | |**position** | **Integer** | Default position of the item when displayed in a list. | [optional] | |**required** | **Boolean** | Whether the property is required. | [optional] | |**catalogType** | [**CatalogTypeEnum**](#CatalogTypeEnum) | The type of catalog the property belongs to. | [optional] | +|**externalId** | **String** | An external identifier for this catalog property. Must be unique within the scope. | [optional] | @@ -23,7 +25,6 @@ | TEXT | "text" | | REFERENCE | "reference" | | BOOLEAN | "boolean" | -| REFERENCE2 | "reference" | | SERVICE | "service" | | FUNCTIONALITY | "functionality" | | ENVIRONMENT | "environment" | diff --git a/docs/UpdateCauseDataAttributes.md b/docs/UpdateCauseDataAttributes.md index 14177b48..369f3285 100644 --- a/docs/UpdateCauseDataAttributes.md +++ b/docs/UpdateCauseDataAttributes.md @@ -7,9 +7,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the cause | [optional] | |**description** | **String** | The description of the cause | [optional] | +|**publicDescription** | **String** | The status page description of the cause | [optional] | |**position** | **Integer** | Position of the cause | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this cause. | [optional] | diff --git a/docs/UpdateCommunicationsStageDataAttributes.md b/docs/UpdateCommunicationsStageDataAttributes.md index c2ccc0b1..1f32d34c 100644 --- a/docs/UpdateCommunicationsStageDataAttributes.md +++ b/docs/UpdateCommunicationsStageDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the communications stage | [optional] | |**description** | **String** | The description of the communications stage | [optional] | |**position** | **Integer** | Position of the communications stage | [optional] | diff --git a/docs/UpdateCommunicationsTypeDataAttributes.md b/docs/UpdateCommunicationsTypeDataAttributes.md index 342ea77c..34f5c3ce 100644 --- a/docs/UpdateCommunicationsTypeDataAttributes.md +++ b/docs/UpdateCommunicationsTypeDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the communications type | [optional] | |**description** | **String** | The description of the communications type | [optional] | |**color** | **String** | The color of the communications type | [optional] | diff --git a/docs/UpdateConfluencePageTaskParams.md b/docs/UpdateConfluencePageTaskParams.md index b4094b80..0adb471b 100644 --- a/docs/UpdateConfluencePageTaskParams.md +++ b/docs/UpdateConfluencePageTaskParams.md @@ -8,11 +8,15 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**integration** | [**CreateConfluencePageTaskParamsIntegration**](CreateConfluencePageTaskParamsIntegration.md) | | [optional] | |**fileId** | **String** | The Confluence page ID | | |**title** | **String** | The Confluence page title | [optional] | |**content** | **String** | The Confluence page content | [optional] | |**postMortemTemplateId** | **String** | Retrospective template to use when updating page, if desired | [optional] | |**template** | [**UpdateConfluencePageTaskParamsTemplate**](UpdateConfluencePageTaskParamsTemplate.md) | | [optional] | +|**includeOverview** | **Boolean** | | [optional] | +|**includeTimeline** | **Boolean** | | [optional] | +|**includeFollowUps** | **Boolean** | | [optional] | diff --git a/docs/UpdateCustomFieldDataAttributes.md b/docs/UpdateCustomFieldDataAttributes.md index 1e1f4be3..6549a089 100644 --- a/docs/UpdateCustomFieldDataAttributes.md +++ b/docs/UpdateCustomFieldDataAttributes.md @@ -8,7 +8,6 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**label** | **String** | The name of the custom_field | [optional] | -|**slug** | **String** | The slug of the custom_field | [optional] | |**description** | **String** | The description of the custom_field | [optional] | |**shown** | [**List<ShownEnum>**](#List<ShownEnum>) | | [optional] | |**required** | [**List<RequiredEnum>**](#List<RequiredEnum>) | | [optional] | diff --git a/docs/UpdateCustomFormDataAttributes.md b/docs/UpdateCustomFormDataAttributes.md index e6b53c5b..777a9583 100644 --- a/docs/UpdateCustomFormDataAttributes.md +++ b/docs/UpdateCustomFormDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the custom form. | [optional] | -|**slug** | **String** | The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. | [optional] | |**description** | **String** | | [optional] | |**enabled** | **Boolean** | | [optional] | |**command** | **String** | The Slack command used to trigger this form. | [optional] | diff --git a/docs/UpdateEdgeConnector.md b/docs/UpdateEdgeConnector.md index 47743e02..33e7ae4c 100644 --- a/docs/UpdateEdgeConnector.md +++ b/docs/UpdateEdgeConnector.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**edgeConnector** | [**V1EdgeConnectorsIdPatchRequestEdgeConnector**](V1EdgeConnectorsIdPatchRequestEdgeConnector.md) | | | +|**edgeConnector** | [**UpdateEdgeConnectorEdgeConnector**](UpdateEdgeConnectorEdgeConnector.md) | | | diff --git a/docs/UpdateEdgeConnectorAction.md b/docs/UpdateEdgeConnectorAction.md index 0e68d2eb..2ce3853d 100644 --- a/docs/UpdateEdgeConnectorAction.md +++ b/docs/UpdateEdgeConnectorAction.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**action** | [**V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction**](V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction.md) | | | +|**action** | [**UpdateEdgeConnectorActionRequestAction**](UpdateEdgeConnectorActionRequestAction.md) | | | diff --git a/docs/UpdateEdgeConnectorEdgeConnector.md b/docs/UpdateEdgeConnectorEdgeConnector.md new file mode 100644 index 00000000..ad91a48c --- /dev/null +++ b/docs/UpdateEdgeConnectorEdgeConnector.md @@ -0,0 +1,25 @@ + + +# UpdateEdgeConnectorEdgeConnector + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | | [optional] | +|**description** | **String** | | [optional] | +|**status** | [**StatusEnum**](#StatusEnum) | | [optional] | +|**subscriptions** | **List<String>** | | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| ACTIVE | "active" | +| PAUSED | "paused" | + + + diff --git a/docs/UpdateEdgeConnectorRequestDataAttributes.md b/docs/UpdateEdgeConnectorRequestDataAttributes.md index 23a8749c..6b2d821d 100644 --- a/docs/UpdateEdgeConnectorRequestDataAttributes.md +++ b/docs/UpdateEdgeConnectorRequestDataAttributes.md @@ -11,6 +11,7 @@ |**description** | **String** | | [optional] | |**status** | [**StatusEnum**](#StatusEnum) | | [optional] | |**subscriptions** | **List<String>** | | [optional] | +|**filters** | **Object** | Event filters | [optional] | diff --git a/docs/UpdateEnvironmentDataAttributes.md b/docs/UpdateEnvironmentDataAttributes.md index a36acdd8..d2c072ea 100644 --- a/docs/UpdateEnvironmentDataAttributes.md +++ b/docs/UpdateEnvironmentDataAttributes.md @@ -7,13 +7,17 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the environment | [optional] | |**description** | **String** | The description of the environment | [optional] | +|**publicDescription** | **String** | The status page description of the environment | [optional] | |**color** | **String** | The hex color of the environment | [optional] | |**position** | **Integer** | Position of the environment | [optional] | +|**externalId** | **String** | The external id associated to this environment | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the environment | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this environment | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this environment | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this environment. | [optional] | diff --git a/docs/UpdateEscalationPolicyLevelDataAttributes.md b/docs/UpdateEscalationPolicyLevelDataAttributes.md index 5fda5398..745ade58 100644 --- a/docs/UpdateEscalationPolicyLevelDataAttributes.md +++ b/docs/UpdateEscalationPolicyLevelDataAttributes.md @@ -7,11 +7,15 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**delay** | **Integer** | Delay before notification targets will be alerted. | [optional] | +|**delay** | **Integer** | Delay before notifying targets in the next Escalation Level. | [optional] | |**position** | **Integer** | Position of the escalation policy level | [optional] | |**escalationPolicyPathId** | **String** | The ID of the dynamic escalation policy path the level will belong to. If nothing is specified it will add the level to your default path. | [optional] | |**pagingStrategyConfigurationStrategy** | [**PagingStrategyConfigurationStrategyEnum**](#PagingStrategyConfigurationStrategyEnum) | | [optional] | |**pagingStrategyConfigurationScheduleStrategy** | [**PagingStrategyConfigurationScheduleStrategyEnum**](#PagingStrategyConfigurationScheduleStrategyEnum) | | [optional] | +|**pagingStrategyConfigurationRepeats** | **Integer** | Number of times to rotate through the roster (cycle-based round robin). | [optional] | +|**pagingStrategyConfigurationRepeatsMode** | [**PagingStrategyConfigurationRepeatsModeEnum**](#PagingStrategyConfigurationRepeatsModeEnum) | Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. | [optional] | +|**pagingStrategyConfigurationRotationScope** | [**PagingStrategyConfigurationRotationScopeEnum**](#PagingStrategyConfigurationRotationScopeEnum) | Scope of rotation ordering: active rotation members only, or entire schedule. | [optional] | +|**pagingStrategyConfigurationPageUsersCount** | **Integer** | Number of users to page at a time (cycle-based round robin). | [optional] | |**notificationTargetParams** | [**List<UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner>**](UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md) | Escalation level's notification targets | [optional] | @@ -36,3 +40,21 @@ +## Enum: PagingStrategyConfigurationRepeatsModeEnum + +| Name | Value | +|---- | -----| +| USERS | "users" | +| ALL | "all" | + + + +## Enum: PagingStrategyConfigurationRotationScopeEnum + +| Name | Value | +|---- | -----| +| ACTIVE_ROTATION | "active_rotation" | +| ENTIRE_SCHEDULE | "entire_schedule" | + + + diff --git a/docs/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md b/docs/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md index 5da10caf..0be6b493 100644 --- a/docs/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md +++ b/docs/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.md @@ -21,6 +21,7 @@ | USER | "user" | | SCHEDULE | "schedule" | | SLACK_CHANNEL | "slack_channel" | +| MICROSOFT_TEAMS_CHANNEL | "microsoft_teams_channel" | | SERVICE | "service" | diff --git a/docs/UpdateEscalationPolicyPathDataAttributes.md b/docs/UpdateEscalationPolicyPathDataAttributes.md index 77c79e2f..eff04409 100644 --- a/docs/UpdateEscalationPolicyPathDataAttributes.md +++ b/docs/UpdateEscalationPolicyPathDataAttributes.md @@ -9,12 +9,16 @@ |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the escalation path | [optional] | |**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | Position of the escalation policy level | [optional] | +|**pathType** | [**PathTypeEnum**](#PathTypeEnum) | The type of escalation path. Cannot be changed after creation. | [optional] | +|**afterDeferralBehavior** | [**AfterDeferralBehaviorEnum**](#AfterDeferralBehaviorEnum) | What happens after a deferral path finishes. | [optional] | +|**afterDeferralPathId** | **String** | The escalation path to execute after this deferral path when after_deferral_behavior is execute_path. | [optional] | |**_default** | **Boolean** | Whether this escalation path is the default path | [optional] | |**matchMode** | [**MatchModeEnum**](#MatchModeEnum) | How path rules are matched. | [optional] | |**position** | **Integer** | The position of this path in the paths for this EP. | [optional] | |**repeat** | **Boolean** | Whether this path should be repeated until someone acknowledges the alert | [optional] | |**repeatCount** | **Integer** | The number of times this path will be executed until someone acknowledges the alert | [optional] | |**initialDelay** | **Integer** | Initial delay for escalation path in minutes. Maximum 1 week (10080). | [optional] | +|**retriggerTimeoutMinutes** | **Integer** | Re-trigger acknowledged alerts on this path after N minutes; null inherits the urgency/workspace default, negative = never. | [optional] | |**rules** | [**List<UpdateEscalationPolicyPathDataAttributesRulesInner>**](UpdateEscalationPolicyPathDataAttributesRulesInner.md) | Escalation path conditions | [optional] | |**timeRestrictionTimeZone** | [**TimeRestrictionTimeZoneEnum**](#TimeRestrictionTimeZoneEnum) | Time zone used for time restrictions. | [optional] | |**timeRestrictions** | [**List<UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner>**](UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner.md) | If time restrictions are set, alerts will follow this path when they arrive within the specified time ranges and meet the rules. | [optional] | @@ -30,6 +34,24 @@ +## Enum: PathTypeEnum + +| Name | Value | +|---- | -----| +| ESCALATION | "escalation" | +| DEFERRAL | "deferral" | + + + +## Enum: AfterDeferralBehaviorEnum + +| Name | Value | +|---- | -----| +| RE_EVALUATE | "re_evaluate" | +| EXECUTE_PATH | "execute_path" | + + + ## Enum: MatchModeEnum | Name | Value | @@ -72,7 +94,6 @@ | GUADALAJARA | "Guadalajara" | | AMERICA_MEXICO_CITY | "America/Mexico_City" | | MEXICO_CITY | "Mexico City" | -| AMERICA_MEXICO_CITY2 | "America/Mexico_City" | | MONTERREY | "Monterrey" | | AMERICA_MONTERREY | "America/Monterrey" | | SASKATCHEWAN | "Saskatchewan" | @@ -86,7 +107,6 @@ | LIMA | "Lima" | | AMERICA_LIMA | "America/Lima" | | QUITO | "Quito" | -| AMERICA_LIMA2 | "America/Lima" | | ATLANTIC_TIME_CANADA_ | "Atlantic Time (Canada)" | | AMERICA_HALIFAX | "America/Halifax" | | CARACAS | "Caracas" | @@ -117,16 +137,11 @@ | ATLANTIC_AZORES | "Atlantic/Azores" | | CAPE_VERDE_IS_ | "Cape Verde Is." | | ATLANTIC_CAPE_VERDE | "Atlantic/Cape_Verde" | -| CASABLANCA | "Casablanca" | -| AFRICA_CASABLANCA | "Africa/Casablanca" | -| DUBLIN | "Dublin" | -| EUROPE_DUBLIN | "Europe/Dublin" | | EDINBURGH | "Edinburgh" | | EUROPE_LONDON | "Europe/London" | | LISBON | "Lisbon" | | EUROPE_LISBON | "Europe/Lisbon" | | LONDON | "London" | -| EUROPE_LONDON2 | "Europe/London" | | MONROVIA | "Monrovia" | | AFRICA_MONROVIA | "Africa/Monrovia" | | UTC | "UTC" | @@ -145,8 +160,12 @@ | EUROPE_BRUSSELS | "Europe/Brussels" | | BUDAPEST | "Budapest" | | EUROPE_BUDAPEST | "Europe/Budapest" | +| CASABLANCA | "Casablanca" | +| AFRICA_CASABLANCA | "Africa/Casablanca" | | COPENHAGEN | "Copenhagen" | | EUROPE_COPENHAGEN | "Europe/Copenhagen" | +| DUBLIN | "Dublin" | +| EUROPE_DUBLIN | "Europe/Dublin" | | LJUBLJANA | "Ljubljana" | | EUROPE_LJUBLJANA | "Europe/Ljubljana" | | MADRID | "Madrid" | @@ -172,7 +191,6 @@ | ZAGREB | "Zagreb" | | EUROPE_ZAGREB | "Europe/Zagreb" | | ZURICH | "Zurich" | -| EUROPE_ZURICH2 | "Europe/Zurich" | | ATHENS | "Athens" | | EUROPE_ATHENS | "Europe/Athens" | | BUCHAREST | "Bucharest" | @@ -214,7 +232,6 @@ | RIYADH | "Riyadh" | | ASIA_RIYADH | "Asia/Riyadh" | | ST_PETERSBURG | "St. Petersburg" | -| EUROPE_MOSCOW2 | "Europe/Moscow" | | VOLGOGRAD | "Volgograd" | | EUROPE_VOLGOGRAD | "Europe/Volgograd" | | TEHRAN | "Tehran" | @@ -224,7 +241,6 @@ | BAKU | "Baku" | | ASIA_BAKU | "Asia/Baku" | | MUSCAT | "Muscat" | -| ASIA_MUSCAT2 | "Asia/Muscat" | | SAMARA | "Samara" | | EUROPE_SAMARA | "Europe/Samara" | | TBILISI | "Tbilisi" | @@ -236,23 +252,18 @@ | ALMATY | "Almaty" | | ASIA_ALMATY | "Asia/Almaty" | | ASTANA | "Astana" | -| ASIA_ALMATY2 | "Asia/Almaty" | | EKATERINBURG | "Ekaterinburg" | | ASIA_YEKATERINBURG | "Asia/Yekaterinburg" | | ISLAMABAD | "Islamabad" | | ASIA_KARACHI | "Asia/Karachi" | | KARACHI | "Karachi" | -| ASIA_KARACHI2 | "Asia/Karachi" | | TASHKENT | "Tashkent" | | ASIA_TASHKENT | "Asia/Tashkent" | | CHENNAI | "Chennai" | | ASIA_KOLKATA | "Asia/Kolkata" | | KOLKATA | "Kolkata" | -| ASIA_KOLKATA2 | "Asia/Kolkata" | | MUMBAI | "Mumbai" | -| ASIA_KOLKATA3 | "Asia/Kolkata" | | NEW_DELHI | "New Delhi" | -| ASIA_KOLKATA4 | "Asia/Kolkata" | | SRI_JAYAWARDENEPURA | "Sri Jayawardenepura" | | ASIA_COLOMBO | "Asia/Colombo" | | KATHMANDU | "Kathmandu" | @@ -266,7 +277,6 @@ | BANGKOK | "Bangkok" | | ASIA_BANGKOK | "Asia/Bangkok" | | HANOI | "Hanoi" | -| ASIA_BANGKOK2 | "Asia/Bangkok" | | JAKARTA | "Jakarta" | | ASIA_JAKARTA | "Asia/Jakarta" | | KRASNOYARSK | "Krasnoyarsk" | @@ -294,11 +304,9 @@ | OSAKA | "Osaka" | | ASIA_TOKYO | "Asia/Tokyo" | | SAPPORO | "Sapporo" | -| ASIA_TOKYO2 | "Asia/Tokyo" | | SEOUL | "Seoul" | | ASIA_SEOUL | "Asia/Seoul" | | TOKYO | "Tokyo" | -| ASIA_TOKYO3 | "Asia/Tokyo" | | YAKUTSK | "Yakutsk" | | ASIA_YAKUTSK | "Asia/Yakutsk" | | ADELAIDE | "Adelaide" | @@ -338,7 +346,6 @@ | MARSHALL_IS_ | "Marshall Is." | | PACIFIC_MAJURO | "Pacific/Majuro" | | WELLINGTON | "Wellington" | -| PACIFIC_AUCKLAND2 | "Pacific/Auckland" | | CHATHAM_IS_ | "Chatham Is." | | PACIFIC_CHATHAM | "Pacific/Chatham" | | NUKU_ALOFA | "Nuku'alofa" | @@ -347,6 +354,22 @@ | PACIFIC_APIA | "Pacific/Apia" | | TOKELAU_IS_ | "Tokelau Is." | | PACIFIC_FAKAOFO | "Pacific/Fakaofo" | +| AMERICA_ADAK | "America/Adak" | +| AMERICA_ATKA | "America/Atka" | +| US_ALEUTIAN | "US/Aleutian" | +| AMERICA_VANCOUVER | "America/Vancouver" | +| CANADA_PACIFIC | "Canada/Pacific" | +| AMERICA_MIQUELON | "America/Miquelon" | +| AUSTRALIA_EUCLA | "Australia/Eucla" | +| AUSTRALIA_LHI | "Australia/LHI" | +| AUSTRALIA_LORD_HOWE | "Australia/Lord_Howe" | +| CHILE_EASTER_ISLAND | "Chile/EasterIsland" | +| PACIFIC_EASTER | "Pacific/Easter" | +| PACIFIC_GAMBIER | "Pacific/Gambier" | +| PACIFIC_PITCAIRN | "Pacific/Pitcairn" | +| PACIFIC_MARQUESAS | "Pacific/Marquesas" | +| PACIFIC_KIRITIMATI | "Pacific/Kiritimati" | +| PACIFIC_NORFOLK | "Pacific/Norfolk" | diff --git a/docs/UpdateEscalationPolicyPathDataAttributesRulesInner.md b/docs/UpdateEscalationPolicyPathDataAttributesRulesInner.md index 4d770409..6e50ac03 100644 --- a/docs/UpdateEscalationPolicyPathDataAttributesRulesInner.md +++ b/docs/UpdateEscalationPolicyPathDataAttributesRulesInner.md @@ -11,8 +11,14 @@ |**urgencyIds** | **List<String>** | Alert urgency ids for which this escalation path should be used | | |**withinWorkingHour** | **Boolean** | Whether the escalation path should be used within working hours | | |**jsonPath** | **String** | JSON path to extract value from payload | | -|**operator** | [**OperatorEnum**](#OperatorEnum) | How JSON path value should be matched | | -|**value** | **String** | Value with which JSON path value should be matched | | +|**operator** | [**OperatorEnum**](#OperatorEnum) | Whether the alert must (or must not) have related incidents | | +|**value** | **String** | Value with which JSON path value should be matched | [optional] | +|**values** | **List<String>** | Alert source values to match against (e.g., manual, datadog) | | +|**fieldableType** | **String** | The type of the fieldable (e.g., AlertField) | | +|**fieldableId** | **String** | The ID of the alert field | | +|**serviceIds** | **List<String>** | Service ids for which this escalation path should be used | | +|**timeZone** | [**TimeZoneEnum**](#TimeZoneEnum) | Time zone for the deferral window | | +|**timeBlocks** | [**List<NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner>**](NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.md) | Time windows during which alerts are deferred | | @@ -20,7 +26,7 @@ | Name | Value | |---- | -----| -| JSON_PATH | "json_path" | +| RELATED_INCIDENTS | "related_incidents" | @@ -28,10 +34,320 @@ | Name | Value | |---- | -----| -| IS | "is" | -| IS_NOT | "is_not" | -| CONTAINS | "contains" | -| DOES_NOT_CONTAIN | "does_not_contain" | +| IS_SET | "is_set" | +| IS_NOT_SET | "is_not_set" | + + + +## Enum: TimeZoneEnum + +| Name | Value | +|---- | -----| +| INTERNATIONAL_DATE_LINE_WEST | "International Date Line West" | +| ETC_GMT_12 | "Etc/GMT+12" | +| AMERICAN_SAMOA | "American Samoa" | +| PACIFIC_PAGO_PAGO | "Pacific/Pago_Pago" | +| MIDWAY_ISLAND | "Midway Island" | +| PACIFIC_MIDWAY | "Pacific/Midway" | +| HAWAII | "Hawaii" | +| PACIFIC_HONOLULU | "Pacific/Honolulu" | +| ALASKA | "Alaska" | +| AMERICA_JUNEAU | "America/Juneau" | +| PACIFIC_TIME_US_CANADA_ | "Pacific Time (US & Canada)" | +| AMERICA_LOS_ANGELES | "America/Los_Angeles" | +| TIJUANA | "Tijuana" | +| AMERICA_TIJUANA | "America/Tijuana" | +| ARIZONA | "Arizona" | +| AMERICA_PHOENIX | "America/Phoenix" | +| MAZATLAN | "Mazatlan" | +| AMERICA_MAZATLAN | "America/Mazatlan" | +| MOUNTAIN_TIME_US_CANADA_ | "Mountain Time (US & Canada)" | +| AMERICA_DENVER | "America/Denver" | +| CENTRAL_AMERICA | "Central America" | +| AMERICA_GUATEMALA | "America/Guatemala" | +| CENTRAL_TIME_US_CANADA_ | "Central Time (US & Canada)" | +| AMERICA_CHICAGO | "America/Chicago" | +| CHIHUAHUA | "Chihuahua" | +| AMERICA_CHIHUAHUA | "America/Chihuahua" | +| GUADALAJARA | "Guadalajara" | +| AMERICA_MEXICO_CITY | "America/Mexico_City" | +| MEXICO_CITY | "Mexico City" | +| MONTERREY | "Monterrey" | +| AMERICA_MONTERREY | "America/Monterrey" | +| SASKATCHEWAN | "Saskatchewan" | +| AMERICA_REGINA | "America/Regina" | +| BOGOTA | "Bogota" | +| AMERICA_BOGOTA | "America/Bogota" | +| EASTERN_TIME_US_CANADA_ | "Eastern Time (US & Canada)" | +| AMERICA_NEW_YORK | "America/New_York" | +| INDIANA_EAST_ | "Indiana (East)" | +| AMERICA_INDIANA_INDIANAPOLIS | "America/Indiana/Indianapolis" | +| LIMA | "Lima" | +| AMERICA_LIMA | "America/Lima" | +| QUITO | "Quito" | +| ATLANTIC_TIME_CANADA_ | "Atlantic Time (Canada)" | +| AMERICA_HALIFAX | "America/Halifax" | +| CARACAS | "Caracas" | +| AMERICA_CARACAS | "America/Caracas" | +| GEORGETOWN | "Georgetown" | +| AMERICA_GUYANA | "America/Guyana" | +| LA_PAZ | "La Paz" | +| AMERICA_LA_PAZ | "America/La_Paz" | +| PUERTO_RICO | "Puerto Rico" | +| AMERICA_PUERTO_RICO | "America/Puerto_Rico" | +| SANTIAGO | "Santiago" | +| AMERICA_SANTIAGO | "America/Santiago" | +| NEWFOUNDLAND | "Newfoundland" | +| AMERICA_ST_JOHNS | "America/St_Johns" | +| ASUNCION | "Asuncion" | +| AMERICA_ASUNCION | "America/Asuncion" | +| BRASILIA | "Brasilia" | +| AMERICA_SAO_PAULO | "America/Sao_Paulo" | +| BUENOS_AIRES | "Buenos Aires" | +| AMERICA_ARGENTINA_BUENOS_AIRES | "America/Argentina/Buenos_Aires" | +| MONTEVIDEO | "Montevideo" | +| AMERICA_MONTEVIDEO | "America/Montevideo" | +| GREENLAND | "Greenland" | +| AMERICA_NUUK | "America/Nuuk" | +| MID_ATLANTIC | "Mid-Atlantic" | +| ATLANTIC_SOUTH_GEORGIA | "Atlantic/South_Georgia" | +| AZORES | "Azores" | +| ATLANTIC_AZORES | "Atlantic/Azores" | +| CAPE_VERDE_IS_ | "Cape Verde Is." | +| ATLANTIC_CAPE_VERDE | "Atlantic/Cape_Verde" | +| EDINBURGH | "Edinburgh" | +| EUROPE_LONDON | "Europe/London" | +| LISBON | "Lisbon" | +| EUROPE_LISBON | "Europe/Lisbon" | +| LONDON | "London" | +| MONROVIA | "Monrovia" | +| AFRICA_MONROVIA | "Africa/Monrovia" | +| UTC | "UTC" | +| ETC_UTC | "Etc/UTC" | +| AMSTERDAM | "Amsterdam" | +| EUROPE_AMSTERDAM | "Europe/Amsterdam" | +| BELGRADE | "Belgrade" | +| EUROPE_BELGRADE | "Europe/Belgrade" | +| BERLIN | "Berlin" | +| EUROPE_BERLIN | "Europe/Berlin" | +| BERN | "Bern" | +| EUROPE_ZURICH | "Europe/Zurich" | +| BRATISLAVA | "Bratislava" | +| EUROPE_BRATISLAVA | "Europe/Bratislava" | +| BRUSSELS | "Brussels" | +| EUROPE_BRUSSELS | "Europe/Brussels" | +| BUDAPEST | "Budapest" | +| EUROPE_BUDAPEST | "Europe/Budapest" | +| CASABLANCA | "Casablanca" | +| AFRICA_CASABLANCA | "Africa/Casablanca" | +| COPENHAGEN | "Copenhagen" | +| EUROPE_COPENHAGEN | "Europe/Copenhagen" | +| DUBLIN | "Dublin" | +| EUROPE_DUBLIN | "Europe/Dublin" | +| LJUBLJANA | "Ljubljana" | +| EUROPE_LJUBLJANA | "Europe/Ljubljana" | +| MADRID | "Madrid" | +| EUROPE_MADRID | "Europe/Madrid" | +| PARIS | "Paris" | +| EUROPE_PARIS | "Europe/Paris" | +| PRAGUE | "Prague" | +| EUROPE_PRAGUE | "Europe/Prague" | +| ROME | "Rome" | +| EUROPE_ROME | "Europe/Rome" | +| SARAJEVO | "Sarajevo" | +| EUROPE_SARAJEVO | "Europe/Sarajevo" | +| SKOPJE | "Skopje" | +| EUROPE_SKOPJE | "Europe/Skopje" | +| STOCKHOLM | "Stockholm" | +| EUROPE_STOCKHOLM | "Europe/Stockholm" | +| VIENNA | "Vienna" | +| EUROPE_VIENNA | "Europe/Vienna" | +| WARSAW | "Warsaw" | +| EUROPE_WARSAW | "Europe/Warsaw" | +| WEST_CENTRAL_AFRICA | "West Central Africa" | +| AFRICA_ALGIERS | "Africa/Algiers" | +| ZAGREB | "Zagreb" | +| EUROPE_ZAGREB | "Europe/Zagreb" | +| ZURICH | "Zurich" | +| ATHENS | "Athens" | +| EUROPE_ATHENS | "Europe/Athens" | +| BUCHAREST | "Bucharest" | +| EUROPE_BUCHAREST | "Europe/Bucharest" | +| CAIRO | "Cairo" | +| AFRICA_CAIRO | "Africa/Cairo" | +| HARARE | "Harare" | +| AFRICA_HARARE | "Africa/Harare" | +| HELSINKI | "Helsinki" | +| EUROPE_HELSINKI | "Europe/Helsinki" | +| JERUSALEM | "Jerusalem" | +| ASIA_JERUSALEM | "Asia/Jerusalem" | +| KALININGRAD | "Kaliningrad" | +| EUROPE_KALININGRAD | "Europe/Kaliningrad" | +| KYIV | "Kyiv" | +| EUROPE_KIEV | "Europe/Kiev" | +| PRETORIA | "Pretoria" | +| AFRICA_JOHANNESBURG | "Africa/Johannesburg" | +| RIGA | "Riga" | +| EUROPE_RIGA | "Europe/Riga" | +| SOFIA | "Sofia" | +| EUROPE_SOFIA | "Europe/Sofia" | +| TALLINN | "Tallinn" | +| EUROPE_TALLINN | "Europe/Tallinn" | +| VILNIUS | "Vilnius" | +| EUROPE_VILNIUS | "Europe/Vilnius" | +| BAGHDAD | "Baghdad" | +| ASIA_BAGHDAD | "Asia/Baghdad" | +| ISTANBUL | "Istanbul" | +| EUROPE_ISTANBUL | "Europe/Istanbul" | +| KUWAIT | "Kuwait" | +| ASIA_KUWAIT | "Asia/Kuwait" | +| MINSK | "Minsk" | +| EUROPE_MINSK | "Europe/Minsk" | +| MOSCOW | "Moscow" | +| EUROPE_MOSCOW | "Europe/Moscow" | +| NAIROBI | "Nairobi" | +| AFRICA_NAIROBI | "Africa/Nairobi" | +| RIYADH | "Riyadh" | +| ASIA_RIYADH | "Asia/Riyadh" | +| ST_PETERSBURG | "St. Petersburg" | +| VOLGOGRAD | "Volgograd" | +| EUROPE_VOLGOGRAD | "Europe/Volgograd" | +| TEHRAN | "Tehran" | +| ASIA_TEHRAN | "Asia/Tehran" | +| ABU_DHABI | "Abu Dhabi" | +| ASIA_MUSCAT | "Asia/Muscat" | +| BAKU | "Baku" | +| ASIA_BAKU | "Asia/Baku" | +| MUSCAT | "Muscat" | +| SAMARA | "Samara" | +| EUROPE_SAMARA | "Europe/Samara" | +| TBILISI | "Tbilisi" | +| ASIA_TBILISI | "Asia/Tbilisi" | +| YEREVAN | "Yerevan" | +| ASIA_YEREVAN | "Asia/Yerevan" | +| KABUL | "Kabul" | +| ASIA_KABUL | "Asia/Kabul" | +| ALMATY | "Almaty" | +| ASIA_ALMATY | "Asia/Almaty" | +| ASTANA | "Astana" | +| EKATERINBURG | "Ekaterinburg" | +| ASIA_YEKATERINBURG | "Asia/Yekaterinburg" | +| ISLAMABAD | "Islamabad" | +| ASIA_KARACHI | "Asia/Karachi" | +| KARACHI | "Karachi" | +| TASHKENT | "Tashkent" | +| ASIA_TASHKENT | "Asia/Tashkent" | +| CHENNAI | "Chennai" | +| ASIA_KOLKATA | "Asia/Kolkata" | +| KOLKATA | "Kolkata" | +| MUMBAI | "Mumbai" | +| NEW_DELHI | "New Delhi" | +| SRI_JAYAWARDENEPURA | "Sri Jayawardenepura" | +| ASIA_COLOMBO | "Asia/Colombo" | +| KATHMANDU | "Kathmandu" | +| ASIA_KATHMANDU | "Asia/Kathmandu" | +| DHAKA | "Dhaka" | +| ASIA_DHAKA | "Asia/Dhaka" | +| URUMQI | "Urumqi" | +| ASIA_URUMQI | "Asia/Urumqi" | +| RANGOON | "Rangoon" | +| ASIA_RANGOON | "Asia/Rangoon" | +| BANGKOK | "Bangkok" | +| ASIA_BANGKOK | "Asia/Bangkok" | +| HANOI | "Hanoi" | +| JAKARTA | "Jakarta" | +| ASIA_JAKARTA | "Asia/Jakarta" | +| KRASNOYARSK | "Krasnoyarsk" | +| ASIA_KRASNOYARSK | "Asia/Krasnoyarsk" | +| NOVOSIBIRSK | "Novosibirsk" | +| ASIA_NOVOSIBIRSK | "Asia/Novosibirsk" | +| BEIJING | "Beijing" | +| ASIA_SHANGHAI | "Asia/Shanghai" | +| CHONGQING | "Chongqing" | +| ASIA_CHONGQING | "Asia/Chongqing" | +| HONG_KONG | "Hong Kong" | +| ASIA_HONG_KONG | "Asia/Hong_Kong" | +| IRKUTSK | "Irkutsk" | +| ASIA_IRKUTSK | "Asia/Irkutsk" | +| KUALA_LUMPUR | "Kuala Lumpur" | +| ASIA_KUALA_LUMPUR | "Asia/Kuala_Lumpur" | +| PERTH | "Perth" | +| AUSTRALIA_PERTH | "Australia/Perth" | +| SINGAPORE | "Singapore" | +| ASIA_SINGAPORE | "Asia/Singapore" | +| TAIPEI | "Taipei" | +| ASIA_TAIPEI | "Asia/Taipei" | +| ULAANBAATAR | "Ulaanbaatar" | +| ASIA_ULAANBAATAR | "Asia/Ulaanbaatar" | +| OSAKA | "Osaka" | +| ASIA_TOKYO | "Asia/Tokyo" | +| SAPPORO | "Sapporo" | +| SEOUL | "Seoul" | +| ASIA_SEOUL | "Asia/Seoul" | +| TOKYO | "Tokyo" | +| YAKUTSK | "Yakutsk" | +| ASIA_YAKUTSK | "Asia/Yakutsk" | +| ADELAIDE | "Adelaide" | +| AUSTRALIA_ADELAIDE | "Australia/Adelaide" | +| DARWIN | "Darwin" | +| AUSTRALIA_DARWIN | "Australia/Darwin" | +| BRISBANE | "Brisbane" | +| AUSTRALIA_BRISBANE | "Australia/Brisbane" | +| CANBERRA | "Canberra" | +| AUSTRALIA_CANBERRA | "Australia/Canberra" | +| GUAM | "Guam" | +| PACIFIC_GUAM | "Pacific/Guam" | +| HOBART | "Hobart" | +| AUSTRALIA_HOBART | "Australia/Hobart" | +| MELBOURNE | "Melbourne" | +| AUSTRALIA_MELBOURNE | "Australia/Melbourne" | +| PORT_MORESBY | "Port Moresby" | +| PACIFIC_PORT_MORESBY | "Pacific/Port_Moresby" | +| SYDNEY | "Sydney" | +| AUSTRALIA_SYDNEY | "Australia/Sydney" | +| VLADIVOSTOK | "Vladivostok" | +| ASIA_VLADIVOSTOK | "Asia/Vladivostok" | +| MAGADAN | "Magadan" | +| ASIA_MAGADAN | "Asia/Magadan" | +| NEW_CALEDONIA | "New Caledonia" | +| PACIFIC_NOUMEA | "Pacific/Noumea" | +| SOLOMON_IS_ | "Solomon Is." | +| PACIFIC_GUADALCANAL | "Pacific/Guadalcanal" | +| SREDNEKOLYMSK | "Srednekolymsk" | +| ASIA_SREDNEKOLYMSK | "Asia/Srednekolymsk" | +| AUCKLAND | "Auckland" | +| PACIFIC_AUCKLAND | "Pacific/Auckland" | +| FIJI | "Fiji" | +| PACIFIC_FIJI | "Pacific/Fiji" | +| KAMCHATKA | "Kamchatka" | +| ASIA_KAMCHATKA | "Asia/Kamchatka" | +| MARSHALL_IS_ | "Marshall Is." | +| PACIFIC_MAJURO | "Pacific/Majuro" | +| WELLINGTON | "Wellington" | +| CHATHAM_IS_ | "Chatham Is." | +| PACIFIC_CHATHAM | "Pacific/Chatham" | +| NUKU_ALOFA | "Nuku'alofa" | +| PACIFIC_TONGATAPU | "Pacific/Tongatapu" | +| SAMOA | "Samoa" | +| PACIFIC_APIA | "Pacific/Apia" | +| TOKELAU_IS_ | "Tokelau Is." | +| PACIFIC_FAKAOFO | "Pacific/Fakaofo" | +| AMERICA_ADAK | "America/Adak" | +| AMERICA_ATKA | "America/Atka" | +| US_ALEUTIAN | "US/Aleutian" | +| AMERICA_VANCOUVER | "America/Vancouver" | +| CANADA_PACIFIC | "Canada/Pacific" | +| AMERICA_MIQUELON | "America/Miquelon" | +| AUSTRALIA_EUCLA | "Australia/Eucla" | +| AUSTRALIA_LHI | "Australia/LHI" | +| AUSTRALIA_LORD_HOWE | "Australia/Lord_Howe" | +| CHILE_EASTER_ISLAND | "Chile/EasterIsland" | +| PACIFIC_EASTER | "Pacific/Easter" | +| PACIFIC_GAMBIER | "Pacific/Gambier" | +| PACIFIC_PITCAIRN | "Pacific/Pitcairn" | +| PACIFIC_MARQUESAS | "Pacific/Marquesas" | +| PACIFIC_KIRITIMATI | "Pacific/Kiritimati" | +| PACIFIC_NORFOLK | "Pacific/Norfolk" | diff --git a/docs/UpdateFormFieldDataAttributes.md b/docs/UpdateFormFieldDataAttributes.md index 095f3212..59e27c28 100644 --- a/docs/UpdateFormFieldDataAttributes.md +++ b/docs/UpdateFormFieldDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**kind** | [**KindEnum**](#KindEnum) | The kind of the form field | [optional] | |**inputKind** | [**InputKindEnum**](#InputKindEnum) | The input kind of the form field | [optional] | |**valueKind** | [**ValueKindEnum**](#ValueKindEnum) | The value kind of the form field | [optional] | @@ -18,6 +19,7 @@ |**showOnIncidentDetails** | **Boolean** | Whether the form field is shown on the incident details panel | [optional] | |**enabled** | **Boolean** | Whether the form field is enabled | [optional] | |**defaultValues** | **List<String>** | | [optional] | +|**autoSetByCatalogPropertyId** | **String** | Catalog property ID to auto-set this form field. Only reference-kind catalog properties are supported. | [optional] | @@ -37,6 +39,7 @@ | CAUSES | "causes" | | FUNCTIONALITIES | "functionalities" | | TEAMS | "teams" | +| STATUS | "status" | | VISIBILITY | "visibility" | | MARK_AS_TEST | "mark_as_test" | | MARK_AS_BACKFILLED | "mark_as_backfilled" | @@ -85,6 +88,9 @@ | FUNCTIONALITY | "functionality" | | USER | "user" | | CATALOG_ENTITY | "catalog_entity" | +| ENVIRONMENT | "environment" | +| CAUSE | "cause" | +| INCIDENT_TYPE | "incident_type" | diff --git a/docs/UpdateFormFieldPlacementDataAttributes.md b/docs/UpdateFormFieldPlacementDataAttributes.md index 9a325749..1f564fa9 100644 --- a/docs/UpdateFormFieldPlacementDataAttributes.md +++ b/docs/UpdateFormFieldPlacementDataAttributes.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**formSetId** | **String** | The form set this field is placed in. | [optional] | +|**formSetId** | **String** | The form set this field is placed in. The form set must have the same `resource_type` as the form field, otherwise the request is rejected with 422. | [optional] | |**form** | **String** | The form this field is placed on. | [optional] | |**position** | **Integer** | The position of the field placement. | [optional] | |**required** | **Boolean** | Whether the field is unconditionally required on this form. | [optional] | diff --git a/docs/UpdateFormFieldPositionDataAttributes.md b/docs/UpdateFormFieldPositionDataAttributes.md index 0c8d13e6..f326a7ab 100644 --- a/docs/UpdateFormFieldPositionDataAttributes.md +++ b/docs/UpdateFormFieldPositionDataAttributes.md @@ -34,6 +34,10 @@ | SLACK_INCIDENT_CANCELLATION_FORM | "slack_incident_cancellation_form" | | SLACK_SCHEDULED_INCIDENT_FORM | "slack_scheduled_incident_form" | | SLACK_UPDATE_SCHEDULED_INCIDENT_FORM | "slack_update_scheduled_incident_form" | +| WEB_ACTION_ITEM_FORM | "web_action_item_form" | +| SLACK_ACTION_ITEM_FORM | "slack_action_item_form" | +| WEB_TASK_FORM | "web_task_form" | +| SLACK_TASK_FORM | "slack_task_form" | diff --git a/docs/UpdateFormSetDataAttributes.md b/docs/UpdateFormSetDataAttributes.md index 96af9d02..4b25a96b 100644 --- a/docs/UpdateFormSetDataAttributes.md +++ b/docs/UpdateFormSetDataAttributes.md @@ -7,8 +7,9 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the form set | [optional] | -|**forms** | **List<String>** | The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form` | [optional] | +|**forms** | **List<String>** | The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`, `google_chat_update_incident_form`, `microsoft_teams_new_incident_form` | [optional] | diff --git a/docs/UpdateFunctionalityDataAttributes.md b/docs/UpdateFunctionalityDataAttributes.md index 35aecc7a..f9760172 100644 --- a/docs/UpdateFunctionalityDataAttributes.md +++ b/docs/UpdateFunctionalityDataAttributes.md @@ -7,9 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the functionality | [optional] | |**description** | **String** | The description of the functionality | [optional] | -|**publicDescription** | **String** | The public description of the functionality | [optional] | +|**publicDescription** | **String** | The status page description of the functionality | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the functionality | [optional] | |**color** | **String** | The hex color of the functionality | [optional] | |**position** | **Integer** | Position of the functionality | [optional] | @@ -22,10 +23,12 @@ |**serviceNowCiSysId** | **String** | The Service Now CI sys id associated to this functionality | [optional] | |**environmentIds** | **List<String>** | Environments associated with this functionality | [optional] | |**serviceIds** | **List<String>** | Services associated with this functionality | [optional] | -|**ownerGroupIds** | **List<String>** | Owner Teams associated with this functionality | [optional] | -|**ownerUserIds** | **List<Integer>** | Owner Users associated with this functionality | [optional] | +|**ownerGroupIds** | **List<String>** | Owner Teams associated with this functionality. Empty array removes all; omitting or null leaves unchanged. | [optional] | +|**ownerUserIds** | **List<Integer>** | Owner Users associated with this functionality. Empty array removes all; omitting or null leaves unchanged. | [optional] | +|**escalationPolicyId** | **String** | The escalation policy id of the functionality | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this functionality | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this functionality | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this functionality. | [optional] | diff --git a/docs/UpdateGithubIssueTaskParams.md b/docs/UpdateGithubIssueTaskParams.md index 5ade195d..94a342d4 100644 --- a/docs/UpdateGithubIssueTaskParams.md +++ b/docs/UpdateGithubIssueTaskParams.md @@ -9,9 +9,14 @@ |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | |**issueId** | **String** | The issue id | | +|**repository** | [**UpdateGithubIssueTaskParamsRepository**](UpdateGithubIssueTaskParamsRepository.md) | | [optional] | |**title** | **String** | The issue title | [optional] | |**body** | **String** | The issue body | [optional] | +|**labels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | The issue labels | [optional] | +|**labelsMode** | [**LabelsModeEnum**](#LabelsModeEnum) | How to apply labels. 'replace' (default) overwrites all existing labels. 'append' adds to existing labels without removing them. | [optional] | +|**issueType** | [**CreateGithubIssueTaskParamsIssueType**](CreateGithubIssueTaskParamsIssueType.md) | | [optional] | |**completion** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | @@ -23,3 +28,12 @@ +## Enum: LabelsModeEnum + +| Name | Value | +|---- | -----| +| REPLACE | "replace" | +| APPEND | "append" | + + + diff --git a/docs/UpdateGoogleChatSpaceDescriptionTaskParams.md b/docs/UpdateGoogleChatSpaceDescriptionTaskParams.md new file mode 100644 index 00000000..37a83455 --- /dev/null +++ b/docs/UpdateGoogleChatSpaceDescriptionTaskParams.md @@ -0,0 +1,23 @@ + + +# UpdateGoogleChatSpaceDescriptionTaskParams + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**space** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**description** | **String** | The space description. Supports liquid markup | | + + + +## Enum: TaskTypeEnum + +| Name | Value | +|---- | -----| +| UPDATE_GOOGLE_CHAT_SPACE_DESCRIPTION | "update_google_chat_space_description" | + + + diff --git a/docs/UpdateGoogleDocsPageTaskParams.md b/docs/UpdateGoogleDocsPageTaskParams.md index 86e5fc6c..9436a08b 100644 --- a/docs/UpdateGoogleDocsPageTaskParams.md +++ b/docs/UpdateGoogleDocsPageTaskParams.md @@ -13,6 +13,9 @@ |**content** | **String** | The Google Doc content | [optional] | |**postMortemTemplateId** | **String** | Retrospective template to use when updating page, if desired | [optional] | |**templateId** | **String** | The Google Doc file ID to use as a template. | [optional] | +|**includeOverview** | **Boolean** | | [optional] | +|**includeTimeline** | **Boolean** | | [optional] | +|**includeFollowUps** | **Boolean** | | [optional] | diff --git a/docs/UpdateHeartbeatDataAttributes.md b/docs/UpdateHeartbeatDataAttributes.md index 2fb03cf1..90f139dd 100644 --- a/docs/UpdateHeartbeatDataAttributes.md +++ b/docs/UpdateHeartbeatDataAttributes.md @@ -15,7 +15,8 @@ |**interval** | **Integer** | | [optional] | |**intervalUnit** | [**IntervalUnitEnum**](#IntervalUnitEnum) | | [optional] | |**notificationTargetId** | **String** | | [optional] | -|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | | [optional] | +|**notificationTargetType** | [**NotificationTargetTypeEnum**](#NotificationTargetTypeEnum) | The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. | [optional] | +|**ownerGroupIds** | **List<String>** | List of team IDs that own this heartbeat | [optional] | |**enabled** | **Boolean** | Whether to trigger alerts when heartbeat is expired. | [optional] | @@ -38,6 +39,7 @@ | GROUP | "Group" | | SERVICE | "Service" | | ESCALATION_POLICY | "EscalationPolicy" | +| FUNCTIONALITY | "Functionality" | diff --git a/docs/UpdateIncidentActionItemDataAttributes.md b/docs/UpdateIncidentActionItemDataAttributes.md index 12974fed..e4ee1095 100644 --- a/docs/UpdateIncidentActionItemDataAttributes.md +++ b/docs/UpdateIncidentActionItemDataAttributes.md @@ -18,6 +18,7 @@ |**jiraIssueId** | **String** | The Jira issue ID. | [optional] | |**jiraIssueKey** | **String** | The Jira issue key. | [optional] | |**jiraIssueUrl** | **String** | The Jira issue URL. | [optional] | +|**formFieldSelections** | [**List<NewIncidentActionItemDataAttributesFormFieldSelectionsInner>**](NewIncidentActionItemDataAttributesFormFieldSelectionsInner.md) | Custom field values to set on the action item. Ignored unless custom fields for action items are enabled for the organization. | [optional] | diff --git a/docs/UpdateIncidentFormFieldSelectionDataAttributes.md b/docs/UpdateIncidentFormFieldSelectionDataAttributes.md index 376bb6fd..52b1bebf 100644 --- a/docs/UpdateIncidentFormFieldSelectionDataAttributes.md +++ b/docs/UpdateIncidentFormFieldSelectionDataAttributes.md @@ -14,6 +14,9 @@ |**selectedServiceIds** | **List<String>** | | [optional] | |**selectedFunctionalityIds** | **List<String>** | | [optional] | |**selectedUserIds** | **List<Integer>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | diff --git a/docs/UpdateIncidentPermissionSetDataAttributes.md b/docs/UpdateIncidentPermissionSetDataAttributes.md index 5a473251..5b2b6f38 100644 --- a/docs/UpdateIncidentPermissionSetDataAttributes.md +++ b/docs/UpdateIncidentPermissionSetDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The incident permission set name. | [optional] | -|**slug** | **String** | The incident permission set slug. | [optional] | |**description** | **String** | The incident permission set description. | [optional] | |**privateIncidentPermissions** | [**List<PrivateIncidentPermissionsEnum>**](#List<PrivateIncidentPermissionsEnum>) | | [optional] | |**publicIncidentPermissions** | [**List<PublicIncidentPermissionsEnum>**](#List<PublicIncidentPermissionsEnum>) | | [optional] | diff --git a/docs/UpdateIncidentRoleDataAttributes.md b/docs/UpdateIncidentRoleDataAttributes.md index efb1fea3..d66d5ef6 100644 --- a/docs/UpdateIncidentRoleDataAttributes.md +++ b/docs/UpdateIncidentRoleDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the incident role | [optional] | |**summary** | **String** | The summary of the incident role | [optional] | |**description** | **String** | The description of the incident role | [optional] | diff --git a/docs/UpdateIncidentStatusPageEventDataAttributes.md b/docs/UpdateIncidentStatusPageEventDataAttributes.md index e1f4ab2c..d0d942b7 100644 --- a/docs/UpdateIncidentStatusPageEventDataAttributes.md +++ b/docs/UpdateIncidentStatusPageEventDataAttributes.md @@ -12,6 +12,7 @@ |**status** | [**StatusEnum**](#StatusEnum) | The status of the incident event | [optional] | |**notifySubscribers** | **Boolean** | Notify all status pages subscribers | [optional] | |**shouldTweet** | **Boolean** | For Statuspage.io integrated pages auto publishes a tweet for your update | [optional] | +|**startedAt** | **OffsetDateTime** | When the event started. | [optional] | diff --git a/docs/UpdateIncidentTypeDataAttributes.md b/docs/UpdateIncidentTypeDataAttributes.md index 6306317c..2b5c95c7 100644 --- a/docs/UpdateIncidentTypeDataAttributes.md +++ b/docs/UpdateIncidentTypeDataAttributes.md @@ -7,13 +7,16 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the incident type | [optional] | |**description** | **String** | The description of the incident type | [optional] | +|**publicDescription** | **String** | The status page description of the incident type | [optional] | |**color** | **String** | The hex color of the incident type | [optional] | |**position** | **Integer** | Position of the incident type | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the incident type | [optional] | |**slackChannels** | [**List<NewEnvironmentDataAttributesSlackChannelsInner>**](NewEnvironmentDataAttributesSlackChannelsInner.md) | Slack Channels associated with this incident type | [optional] | |**slackAliases** | [**List<NewEnvironmentDataAttributesSlackAliasesInner>**](NewEnvironmentDataAttributesSlackAliasesInner.md) | Slack Aliases associated with this incident type | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this incident type. | [optional] | diff --git a/docs/UpdateJiraIssueTaskParams.md b/docs/UpdateJiraIssueTaskParams.md index 64642061..a7376e95 100644 --- a/docs/UpdateJiraIssueTaskParams.md +++ b/docs/UpdateJiraIssueTaskParams.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | +|**integration** | [**CreateJiraIssueTaskParamsIntegration**](CreateJiraIssueTaskParamsIntegration.md) | | [optional] | |**issueId** | **String** | The issue id | | |**title** | **String** | The issue title | [optional] | |**description** | **String** | The issue description | [optional] | @@ -20,6 +21,8 @@ |**status** | [**CreateJiraIssueTaskParamsStatus**](CreateJiraIssueTaskParamsStatus.md) | | [optional] | |**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | |**updatePayload** | **String** | Update payload. Can contain liquid markup and need to be valid JSON | [optional] | +|**retryCount** | **Integer** | Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. | [optional] | +|**retryWaitTime** | **Integer** | Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. | [optional] | diff --git a/docs/UpdateLinearIssueTaskParams.md b/docs/UpdateLinearIssueTaskParams.md index 1d465968..b2e88c69 100644 --- a/docs/UpdateLinearIssueTaskParams.md +++ b/docs/UpdateLinearIssueTaskParams.md @@ -16,6 +16,7 @@ |**labels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**priority** | [**CreateJiraIssueTaskParamsPriority**](CreateJiraIssueTaskParamsPriority.md) | | [optional] | |**assignUserEmail** | **String** | The assigned user's email | [optional] | +|**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | diff --git a/docs/UpdateLiveCallRouterDataAttributes.md b/docs/UpdateLiveCallRouterDataAttributes.md index 7f0a0760..39b0a95b 100644 --- a/docs/UpdateLiveCallRouterDataAttributes.md +++ b/docs/UpdateLiveCallRouterDataAttributes.md @@ -14,12 +14,17 @@ |**phoneType** | [**PhoneTypeEnum**](#PhoneTypeEnum) | The phone type of the live_call_router | [optional] | |**voicemailGreeting** | **String** | The voicemail greeting of the live_call_router | [optional] | |**callerGreeting** | **String** | The caller greeting message of the live_call_router | [optional] | +|**unavailableResponderMessage** | **String** | The message played to the caller when a responder doesn't answer and the call moves on to the next person in the escalation. Leave blank to use the default message. | [optional] | |**waitingMusicUrl** | [**WaitingMusicUrlEnum**](#WaitingMusicUrlEnum) | The waiting music URL of the live_call_router | [optional] | |**sentToVoicemailDelay** | **Integer** | The delay (seconds) after which the caller in redirected to voicemail | [optional] | |**shouldRedirectToVoicemailOnNoAnswer** | **Boolean** | This prompts the caller to choose voicemail or connect live | [optional] | |**escalationLevelDelayInSeconds** | **Integer** | This overrides the delay (seconds) in escalation levels | [optional] | |**shouldAutoResolveAlertOnCallEnd** | **Boolean** | This overrides the delay (seconds) in escalation levels | [optional] | +|**notifyViaSms** | **Boolean** | Whether responders are also notified via SMS when this router pages them | [optional] | +|**notifyViaPushNotification** | **Boolean** | Whether responders are also notified via push notification when this router pages them | [optional] | +|**informationalNotificationMessage** | **String** | Optional message included in the SMS/push notification. Supports variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name }}. | [optional] | |**alertUrgencyId** | **String** | This is used in escalation paths to determine who to page | [optional] | +|**callingTreeEnabled** | **Boolean** | Whether the live call router is configured as a phone tree, requiring callers to press a key before being connected | [optional] | |**callingTreePrompt** | **String** | The audio instructions callers will hear when they call this number, prompting them to select from available options to route their call | [optional] | |**pagingTargets** | [**List<NewLiveCallRouterDataAttributesPagingTargetsInner>**](NewLiveCallRouterDataAttributesPagingTargetsInner.md) | Paging targets that callers can select from when this live call router is configured as a phone tree. | [optional] | |**escalationPolicyTriggerParams** | [**UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams**](UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md) | | [optional] | @@ -44,6 +49,8 @@ | DE | "DE" | | NL | "NL" | | NZ | "NZ" | +| SE | "SE" | +| CH | "CH" | | GB | "GB" | | US | "US" | diff --git a/docs/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md b/docs/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md index 42cde610..5e059682 100644 --- a/docs/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md +++ b/docs/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **String** | The ID of notification target | | -|**type** | [**TypeEnum**](#TypeEnum) | The type of the notification target | | +|**type** | [**TypeEnum**](#TypeEnum) | The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. | | @@ -19,6 +19,7 @@ | SERVICE | "Service" | | GROUP | "Group" | | ESCALATION_POLICY | "EscalationPolicy" | +| FUNCTIONALITY | "Functionality" | diff --git a/docs/UpdateOnCallPayReportDataAttributes.md b/docs/UpdateOnCallPayReportDataAttributes.md index fa107179..46372ad6 100644 --- a/docs/UpdateOnCallPayReportDataAttributes.md +++ b/docs/UpdateOnCallPayReportDataAttributes.md @@ -10,6 +10,8 @@ |**startDate** | **LocalDate** | The start date for the report period. | [optional] | |**endDate** | **LocalDate** | The end date for the report period. | [optional] | |**scheduleIds** | **List<String>** | List of schedule UUIDs to scope the report. | [optional] | +|**timeZone** | **String** | IANA timezone used to compute day and weekend boundaries. | [optional] | +|**useRespondersTimeZone** | **Boolean** | When true, day and weekend boundaries are computed in each responder's personal timezone instead of the report-wide timezone. | [optional] | diff --git a/docs/UpdateOnCallRoleDataAttributes.md b/docs/UpdateOnCallRoleDataAttributes.md index 130d9af6..db2df981 100644 --- a/docs/UpdateOnCallRoleDataAttributes.md +++ b/docs/UpdateOnCallRoleDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The role name. | [optional] | -|**slug** | **String** | The role slug. | [optional] | |**systemRole** | [**List<SystemRoleEnum>**](#List<SystemRoleEnum>) | The kind of role (user and custom type roles are only editable) | [optional] | |**alertSourcesPermissions** | [**List<AlertSourcesPermissionsEnum>**](#List<AlertSourcesPermissionsEnum>) | | [optional] | |**alertUrgencyPermissions** | [**List<AlertUrgencyPermissionsEnum>**](#List<AlertUrgencyPermissionsEnum>) | | [optional] | @@ -30,8 +30,10 @@ |**scheduleOverridePermissions** | [**List<ScheduleOverridePermissionsEnum>**](#List<ScheduleOverridePermissionsEnum>) | | [optional] | |**schedulesPermissions** | [**List<SchedulesPermissionsEnum>**](#List<SchedulesPermissionsEnum>) | | [optional] | |**servicesPermissions** | [**List<ServicesPermissionsEnum>**](#List<ServicesPermissionsEnum>) | | [optional] | +|**functionalitiesPermissions** | [**List<FunctionalitiesPermissionsEnum>**](#List<FunctionalitiesPermissionsEnum>) | | [optional] | |**webhooksPermissions** | [**List<WebhooksPermissionsEnum>**](#List<WebhooksPermissionsEnum>) | | [optional] | |**workflowsPermissions** | [**List<WorkflowsPermissionsEnum>**](#List<WorkflowsPermissionsEnum>) | | [optional] | +|**catalogsPermissions** | [**List<CatalogsPermissionsEnum>**](#List<CatalogsPermissionsEnum>) | | [optional] | @@ -128,6 +130,7 @@ | CREATE | "create" | | UPDATE | "update" | | READ | "read" | +| DELETE | "delete" | @@ -258,6 +261,17 @@ +## Enum: List<FunctionalitiesPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + ## Enum: List<WebhooksPermissionsEnum> | Name | Value | @@ -280,3 +294,14 @@ +## Enum: List<CatalogsPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + diff --git a/docs/UpdateOpsgenieIncidentTaskParams.md b/docs/UpdateOpsgenieIncidentTaskParams.md index 6a4e7a6b..f46a8c4b 100644 --- a/docs/UpdateOpsgenieIncidentTaskParams.md +++ b/docs/UpdateOpsgenieIncidentTaskParams.md @@ -45,6 +45,7 @@ | P4 | "P4" | | P5 | "P5" | | AUTO | "auto" | +| EMPTY | "" | diff --git a/docs/UpdatePostMortemTemplateDataAttributes.md b/docs/UpdatePostMortemTemplateDataAttributes.md index cf249e4b..d72d7a54 100644 --- a/docs/UpdatePostMortemTemplateDataAttributes.md +++ b/docs/UpdatePostMortemTemplateDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the postmortem template | [optional] | |**_default** | **Boolean** | Default selected template when editing a postmortem | [optional] | |**content** | **String** | The postmortem template. Supports TipTap blocks (followup and timeline components), Liquid syntax, and HTML. Will be sanitized and applied to both content and content_html fields. | [optional] | diff --git a/docs/UpdatePulseData.md b/docs/UpdatePulseData.md index 0a6ac9ec..203f07de 100644 --- a/docs/UpdatePulseData.md +++ b/docs/UpdatePulseData.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**type** | [**TypeEnum**](#TypeEnum) | | [optional] | +|**type** | [**TypeEnum**](#TypeEnum) | | | |**attributes** | [**UpdatePulseDataAttributes**](UpdatePulseDataAttributes.md) | | | diff --git a/docs/UpdateRetrospectiveStepDataAttributes.md b/docs/UpdateRetrospectiveStepDataAttributes.md index 83266e87..68ebab29 100644 --- a/docs/UpdateRetrospectiveStepDataAttributes.md +++ b/docs/UpdateRetrospectiveStepDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**title** | **String** | The name of the step | [optional] | |**description** | **String** | The description of the step | [optional] | |**incidentRoleId** | **String** | Users assigned to the selected incident role will be the default owners for this step | [optional] | diff --git a/docs/UpdateRoleDataAttributes.md b/docs/UpdateRoleDataAttributes.md index 402cda98..dd71f292 100644 --- a/docs/UpdateRoleDataAttributes.md +++ b/docs/UpdateRoleDataAttributes.md @@ -7,9 +7,11 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. Custom role slugs remain accepted temporarily. Stop setting `slug`; it will become read-only and be derived from `name` when this property is removed from the request schema in a future version. | [optional] | |**name** | **String** | The role name. | [optional] | -|**slug** | **String** | The role slug. | [optional] | |**incidentPermissionSetId** | **String** | Associated incident permissions set. | [optional] | +|**isDeletable** | **Boolean** | Whether the role can be deleted. | [optional] | +|**isEditable** | **Boolean** | Whether the role can be edited. | [optional] | |**apiKeysPermissions** | [**List<ApiKeysPermissionsEnum>**](#List<ApiKeysPermissionsEnum>) | | [optional] | |**auditsPermissions** | [**List<AuditsPermissionsEnum>**](#List<AuditsPermissionsEnum>) | | [optional] | |**billingPermissions** | [**List<BillingPermissionsEnum>**](#List<BillingPermissionsEnum>) | | [optional] | @@ -34,6 +36,13 @@ |**statusPagesPermissions** | [**List<StatusPagesPermissionsEnum>**](#List<StatusPagesPermissionsEnum>) | | [optional] | |**webhooksPermissions** | [**List<WebhooksPermissionsEnum>**](#List<WebhooksPermissionsEnum>) | | [optional] | |**workflowsPermissions** | [**List<WorkflowsPermissionsEnum>**](#List<WorkflowsPermissionsEnum>) | | [optional] | +|**catalogsPermissions** | [**List<CatalogsPermissionsEnum>**](#List<CatalogsPermissionsEnum>) | | [optional] | +|**subStatusesPermissions** | [**List<SubStatusesPermissionsEnum>**](#List<SubStatusesPermissionsEnum>) | | [optional] | +|**edgeConnectorPermissions** | [**List<EdgeConnectorPermissionsEnum>**](#List<EdgeConnectorPermissionsEnum>) | | [optional] | +|**slasPermissions** | [**List<SlasPermissionsEnum>**](#List<SlasPermissionsEnum>) | | [optional] | +|**pagingPermissions** | [**List<PagingPermissionsEnum>**](#List<PagingPermissionsEnum>) | | [optional] | +|**incidentCommunicationPermissions** | [**List<IncidentCommunicationPermissionsEnum>**](#List<IncidentCommunicationPermissionsEnum>) | | [optional] | +|**communicationPermissions** | [**List<CommunicationPermissionsEnum>**](#List<CommunicationPermissionsEnum>) | | [optional] | @@ -301,3 +310,81 @@ +## Enum: List<CatalogsPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<SubStatusesPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<EdgeConnectorPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<SlasPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<PagingPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + +## Enum: List<IncidentCommunicationPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | +| SEND | "send" | + + + +## Enum: List<CommunicationPermissionsEnum> + +| Name | Value | +|---- | -----| +| CREATE | "create" | +| READ | "read" | +| UPDATE | "update" | +| DELETE | "delete" | + + + diff --git a/docs/UpdateScheduleDataAttributes.md b/docs/UpdateScheduleDataAttributes.md index 591c5f2c..d4044df0 100644 --- a/docs/UpdateScheduleDataAttributes.md +++ b/docs/UpdateScheduleDataAttributes.md @@ -14,6 +14,28 @@ |**slackChannel** | [**NewScheduleDataAttributesSlackChannel**](NewScheduleDataAttributesSlackChannel.md) | | [optional] | |**ownerGroupIds** | **List<String>** | Owning teams. | [optional] | |**ownerUserId** | **Integer** | ID of the owner of the schedule | [optional] | +|**syncLinearEnabled** | **Boolean** | Whether the schedule is synced with Linear | [optional] | +|**includeShadowsInSlackNotifications** | **Boolean** | Whether shadow users are included in Slack notifications and user group syncing. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftStartNotificationsEnabled** | **Boolean** | Whether shift-start notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftUpdateNotificationsEnabled** | **Boolean** | Whether shift-update notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftReportEnabled** | **Boolean** | Whether the weekly shift summary report is enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. | [optional] | +|**shiftReportDayOfWeek** | [**ShiftReportDayOfWeekEnum**](#ShiftReportDayOfWeekEnum) | Day of week the weekly shift summary is sent | [optional] | +|**shiftReportTimeOfDay** | **String** | Time of day the weekly shift summary is sent, in HH:MM 24-hour format | [optional] | +|**shiftReportTimeZone** | **String** | IANA time zone used for the weekly shift summary | [optional] | + + + +## Enum: ShiftReportDayOfWeekEnum + +| Name | Value | +|---- | -----| +| MONDAY | "monday" | +| TUESDAY | "tuesday" | +| WEDNESDAY | "wednesday" | +| THURSDAY | "thursday" | +| FRIDAY | "friday" | +| SATURDAY | "saturday" | +| SUNDAY | "sunday" | diff --git a/docs/UpdateScheduleRotationDataAttributes.md b/docs/UpdateScheduleRotationDataAttributes.md index da56f357..b45b86a3 100644 --- a/docs/UpdateScheduleRotationDataAttributes.md +++ b/docs/UpdateScheduleRotationDataAttributes.md @@ -16,8 +16,8 @@ |**activeTimeAttributes** | [**List<NewScheduleRotationDataAttributesActiveTimeAttributesInner>**](NewScheduleRotationDataAttributesActiveTimeAttributesInner.md) | Schedule rotation's active times | [optional] | |**timeZone** | **String** | A valid IANA time zone name. | [optional] | |**scheduleRotationableAttributes** | [**NewScheduleRotationDataAttributesScheduleRotationableAttributes**](NewScheduleRotationDataAttributesScheduleRotationableAttributes.md) | | [optional] | -|**startTime** | **String** | ISO8601 date and time when rotation starts. Shifts will only be created after this time. | [optional] | -|**endTime** | **String** | ISO8601 date and time when rotation ends. Shifts will only be created before this time. | [optional] | +|**startTime** | **OffsetDateTime** | RFC3339 date-time when rotation starts. Shifts will only be created after this time. | [optional] | +|**endTime** | **OffsetDateTime** | RFC3339 date-time when rotation ends. Shifts will only be created before this time. | [optional] | |**scheduleRotationMembers** | [**List<NewScheduleRotationDataAttributesScheduleRotationMembersInner>**](NewScheduleRotationDataAttributesScheduleRotationMembersInner.md) | You can only update schedule rotation members if your account has schedule nesting feature enabled | [optional] | diff --git a/docs/UpdateServiceDataAttributes.md b/docs/UpdateServiceDataAttributes.md index 56ce923b..89b4ff43 100644 --- a/docs/UpdateServiceDataAttributes.md +++ b/docs/UpdateServiceDataAttributes.md @@ -7,9 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the service | [optional] | |**description** | **String** | The description of the service | [optional] | -|**publicDescription** | **String** | The public description of the service | [optional] | +|**publicDescription** | **String** | The status page description of the service | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the service | [optional] | |**color** | **String** | The hex color of the service | [optional] | |**position** | **Integer** | Position of the service | [optional] | @@ -25,8 +26,8 @@ |**gitlabRepositoryBranch** | **String** | The GitLab repository branch associated to this service. eg: main | [optional] | |**environmentIds** | **List<String>** | Environments associated with this service | [optional] | |**serviceIds** | **List<String>** | Services dependent on this service | [optional] | -|**ownerGroupIds** | **List<String>** | Owner Teams associated with this service | [optional] | -|**ownerUserIds** | **List<Integer>** | Owner Users associated with this service | [optional] | +|**ownerGroupIds** | **List<String>** | Owner Teams associated with this service. Empty array removes all; omitting or null leaves unchanged. | [optional] | +|**ownerUserIds** | **List<Integer>** | Owner Users associated with this service. Empty array removes all; omitting or null leaves unchanged. | [optional] | |**alertsEmailEnabled** | **Boolean** | Enable alerts through email | [optional] | |**alertUrgencyId** | **String** | The alert urgency id of the service | [optional] | |**escalationPolicyId** | **String** | The escalation policy id of the service | [optional] | @@ -37,6 +38,7 @@ |**alertBroadcastChannel** | [**NewServiceDataAttributesAlertBroadcastChannel**](NewServiceDataAttributesAlertBroadcastChannel.md) | | [optional] | |**incidentBroadcastEnabled** | **Boolean** | Enable incidents to be broadcasted to a specific channel | [optional] | |**incidentBroadcastChannel** | [**NewServiceDataAttributesIncidentBroadcastChannel**](NewServiceDataAttributesIncidentBroadcastChannel.md) | | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this service. | [optional] | diff --git a/docs/UpdateSeverityDataAttributes.md b/docs/UpdateSeverityDataAttributes.md index 45386d53..1d0e6185 100644 --- a/docs/UpdateSeverityDataAttributes.md +++ b/docs/UpdateSeverityDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the severity | [optional] | |**description** | **String** | The description of the severity | [optional] | |**severity** | [**SeverityEnum**](#SeverityEnum) | The severity of the severity | [optional] | diff --git a/docs/UpdateSlaDataAttributes.md b/docs/UpdateSlaDataAttributes.md index d9131a26..a0746a48 100644 --- a/docs/UpdateSlaDataAttributes.md +++ b/docs/UpdateSlaDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the SLA | [optional] | |**description** | **String** | A description of the SLA | [optional] | |**position** | **Integer** | Position of the SLA for ordering | [optional] | diff --git a/docs/UpdateStatusPageAnnouncement.md b/docs/UpdateStatusPageAnnouncement.md new file mode 100644 index 00000000..acbafd85 --- /dev/null +++ b/docs/UpdateStatusPageAnnouncement.md @@ -0,0 +1,13 @@ + + +# UpdateStatusPageAnnouncement + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UpdateStatusPageAnnouncementData**](UpdateStatusPageAnnouncementData.md) | | | + + + diff --git a/docs/UpdateStatusPageAnnouncementData.md b/docs/UpdateStatusPageAnnouncementData.md new file mode 100644 index 00000000..c2c4c5d2 --- /dev/null +++ b/docs/UpdateStatusPageAnnouncementData.md @@ -0,0 +1,22 @@ + + +# UpdateStatusPageAnnouncementData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**UpdateStatusPageAnnouncementDataAttributes**](UpdateStatusPageAnnouncementDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_ANNOUNCEMENTS | "status_page_announcements" | + + + diff --git a/docs/UpdateStatusPageAnnouncementDataAttributes.md b/docs/UpdateStatusPageAnnouncementDataAttributes.md new file mode 100644 index 00000000..4d35a183 --- /dev/null +++ b/docs/UpdateStatusPageAnnouncementDataAttributes.md @@ -0,0 +1,14 @@ + + +# UpdateStatusPageAnnouncementDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**title** | **String** | Title of the announcement | [optional] | +|**body** | **String** | Body of the announcement | [optional] | + + + diff --git a/docs/UpdateStatusPageComponent.md b/docs/UpdateStatusPageComponent.md new file mode 100644 index 00000000..22280115 --- /dev/null +++ b/docs/UpdateStatusPageComponent.md @@ -0,0 +1,13 @@ + + +# UpdateStatusPageComponent + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UpdateStatusPageComponentData**](UpdateStatusPageComponentData.md) | | | + + + diff --git a/docs/UpdateStatusPageComponentData.md b/docs/UpdateStatusPageComponentData.md new file mode 100644 index 00000000..9ca7f15c --- /dev/null +++ b/docs/UpdateStatusPageComponentData.md @@ -0,0 +1,22 @@ + + +# UpdateStatusPageComponentData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**UpdateStatusPageComponentDataAttributes**](UpdateStatusPageComponentDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_COMPONENTS | "status_page_components" | + + + diff --git a/docs/UpdateStatusPageComponentDataAttributes.md b/docs/UpdateStatusPageComponentDataAttributes.md new file mode 100644 index 00000000..38541973 --- /dev/null +++ b/docs/UpdateStatusPageComponentDataAttributes.md @@ -0,0 +1,16 @@ + + +# UpdateStatusPageComponentDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Name of the component (ad-hoc components only) | [optional] | +|**description** | **String** | Description of the component (ad-hoc components only) | [optional] | +|**statusPageComponentGroupId** | **String** | ID of the component group on the same status page (null moves the component to the top level) | [optional] | +|**position** | **Integer** | Position of the component (within its group, or on the page's top-level list when ungrouped) | [optional] | + + + diff --git a/docs/UpdateStatusPageComponentGroup.md b/docs/UpdateStatusPageComponentGroup.md new file mode 100644 index 00000000..59ea3830 --- /dev/null +++ b/docs/UpdateStatusPageComponentGroup.md @@ -0,0 +1,13 @@ + + +# UpdateStatusPageComponentGroup + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UpdateStatusPageComponentGroupData**](UpdateStatusPageComponentGroupData.md) | | | + + + diff --git a/docs/UpdateStatusPageComponentGroupData.md b/docs/UpdateStatusPageComponentGroupData.md new file mode 100644 index 00000000..fa76b1f1 --- /dev/null +++ b/docs/UpdateStatusPageComponentGroupData.md @@ -0,0 +1,22 @@ + + +# UpdateStatusPageComponentGroupData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**UpdateStatusPageComponentGroupDataAttributes**](UpdateStatusPageComponentGroupDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| STATUS_PAGE_COMPONENT_GROUPS | "status_page_component_groups" | + + + diff --git a/docs/UpdateStatusPageComponentGroupDataAttributes.md b/docs/UpdateStatusPageComponentGroupDataAttributes.md new file mode 100644 index 00000000..6ffc8fbe --- /dev/null +++ b/docs/UpdateStatusPageComponentGroupDataAttributes.md @@ -0,0 +1,16 @@ + + +# UpdateStatusPageComponentGroupDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Name of the component group | [optional] | +|**description** | **String** | Description of the component group | [optional] | +|**position** | **Integer** | Position of the group on the status page's top-level list (shared with ungrouped components) | [optional] | +|**collapsedByDefault** | **Boolean** | Whether the group renders collapsed on the public page | [optional] | + + + diff --git a/docs/UpdateStatusPageDataAttributes.md b/docs/UpdateStatusPageDataAttributes.md index bb200875..4828316f 100644 --- a/docs/UpdateStatusPageDataAttributes.md +++ b/docs/UpdateStatusPageDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**title** | **String** | The title of the status page | [optional] | |**publicTitle** | **String** | The public title of the status page | [optional] | |**description** | **String** | The description of the status page | [optional] | @@ -25,6 +26,8 @@ |**samlIdpSloServiceUrl** | **String** | SAML IdP SLO service URL | [optional] | |**samlIdpCert** | **String** | SAML IdP certificate | [optional] | |**samlNameIdentifierFormat** | [**SamlNameIdentifierFormatEnum**](#SamlNameIdentifierFormatEnum) | SAML name identifier format | [optional] | +|**sectionOrder** | [**List<SectionOrderEnum>**](#List<SectionOrderEnum>) | Order of sections on the status page | [optional] | +|**externalDomainNames** | **List<String>** | External domain names attached to the status page | [optional] | |**websiteUrl** | **String** | Website URL | [optional] | |**websitePrivacyUrl** | **String** | Website Privacy URL | [optional] | |**websiteSupportUrl** | **String** | Website Support URL | [optional] | @@ -68,3 +71,13 @@ +## Enum: List<SectionOrderEnum> + +| Name | Value | +|---- | -----| +| MAINTENANCE | "maintenance" | +| SYSTEM_STATUS | "system_status" | +| INCIDENTS | "incidents" | + + + diff --git a/docs/UpdateStatusPageTemplateDataAttributes.md b/docs/UpdateStatusPageTemplateDataAttributes.md index 8022a69c..739aa9bc 100644 --- a/docs/UpdateStatusPageTemplateDataAttributes.md +++ b/docs/UpdateStatusPageTemplateDataAttributes.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**title** | **String** | Title of the template | | +|**updateTitle** | **String** | Title that will be used for the status page update | [optional] | |**body** | **String** | Description of the event the template will populate | | |**updateStatus** | [**UpdateStatusEnum**](#UpdateStatusEnum) | Status of the event the template will populate | [optional] | |**kind** | [**KindEnum**](#KindEnum) | The kind of the status page template | [optional] | diff --git a/docs/UpdateSubStatusDataAttributes.md b/docs/UpdateSubStatusDataAttributes.md index 0c04e1de..293bc8f1 100644 --- a/docs/UpdateSubStatusDataAttributes.md +++ b/docs/UpdateSubStatusDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | | [optional] | -|**slug** | **String** | | [optional] | |**description** | **String** | | [optional] | |**position** | **Integer** | | [optional] | diff --git a/docs/UpdateTeamDataAttributes.md b/docs/UpdateTeamDataAttributes.md index 86fea429..fd7341fd 100644 --- a/docs/UpdateTeamDataAttributes.md +++ b/docs/UpdateTeamDataAttributes.md @@ -7,8 +7,10 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the team | [optional] | |**description** | **String** | The description of the team | [optional] | +|**publicDescription** | **String** | The status page description of the team | [optional] | |**notifyEmails** | **List<String>** | Emails to attach to the team | [optional] | |**color** | **String** | The hex color of the team | [optional] | |**position** | **Integer** | Position of the team | [optional] | @@ -32,6 +34,19 @@ |**incidentBroadcastEnabled** | **Boolean** | Enable incidents to be broadcasted to a specific channel | [optional] | |**incidentBroadcastChannel** | [**NewServiceDataAttributesIncidentBroadcastChannel**](NewServiceDataAttributesIncidentBroadcastChannel.md) | | [optional] | |**autoAddMembersWhenAttached** | **Boolean** | Auto add members to incident channel when team is attached | [optional] | +|**autoAddMembersScope** | [**AutoAddMembersScopeEnum**](#AutoAddMembersScopeEnum) | Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. | [optional] | +|**properties** | [**List<NewCauseDataAttributesPropertiesInner>**](NewCauseDataAttributesPropertiesInner.md) | Array of property values for this team. | [optional] | + + + +## Enum: AutoAddMembersScopeEnum + +| Name | Value | +|---- | -----| +| OFF | "off" | +| PUBLIC_ONLY | "public_only" | +| PUBLIC_AND_TEST | "public_and_test" | +| ALL | "all" | diff --git a/docs/UpdateUserNotificationRuleDataAttributes.md b/docs/UpdateUserNotificationRuleDataAttributes.md index e1a538ea..21ef5262 100644 --- a/docs/UpdateUserNotificationRuleDataAttributes.md +++ b/docs/UpdateUserNotificationRuleDataAttributes.md @@ -27,6 +27,8 @@ | DEVICE | "device" | | NON_CRITICAL_DEVICE | "non_critical_device" | | SLACK | "slack" | +| GOOGLE_CHAT | "google_chat" | +| MICROSOFT_TEAMS | "microsoft_teams" | diff --git a/docs/UpdateWebhooksEndpointDataAttributes.md b/docs/UpdateWebhooksEndpointDataAttributes.md index 43f9ac65..1c91eea2 100644 --- a/docs/UpdateWebhooksEndpointDataAttributes.md +++ b/docs/UpdateWebhooksEndpointDataAttributes.md @@ -7,9 +7,11 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The name of the endpoint | [optional] | |**eventTypes** | [**List<EventTypesEnum>**](#List<EventTypesEnum>) | | [optional] | |**enabled** | **Boolean** | | [optional] | +|**customHeaders** | [**List<NewWebhooksEndpointDataAttributesCustomHeadersInner>**](NewWebhooksEndpointDataAttributesCustomHeadersInner.md) | Custom HTTP headers sent with each delivery. Max 10. Reserved names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected. | [optional] | @@ -40,12 +42,15 @@ | INCIDENT_EVENT_UPDATED | "incident_event.updated" | | INCIDENT_EVENT_DELETED | "incident_event.deleted" | | ALERT_CREATED | "alert.created" | +| ALERT_UPDATED | "alert.updated" | | PULSE_CREATED | "pulse.created" | +| SHIFT_STARTED | "shift.started" | | GENIUS_WORKFLOW_RUN_QUEUED | "genius_workflow_run.queued" | | GENIUS_WORKFLOW_RUN_STARTED | "genius_workflow_run.started" | | GENIUS_WORKFLOW_RUN_COMPLETED | "genius_workflow_run.completed" | | GENIUS_WORKFLOW_RUN_FAILED | "genius_workflow_run.failed" | | GENIUS_WORKFLOW_RUN_CANCELED | "genius_workflow_run.canceled" | +| AUDIT_LOG_CREATED | "audit_log.created" | diff --git a/docs/UpdateWorkflowActionItemFormFieldCondition.md b/docs/UpdateWorkflowActionItemFormFieldCondition.md new file mode 100644 index 00000000..88553ac6 --- /dev/null +++ b/docs/UpdateWorkflowActionItemFormFieldCondition.md @@ -0,0 +1,13 @@ + + +# UpdateWorkflowActionItemFormFieldCondition + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**UpdateWorkflowActionItemFormFieldConditionData**](UpdateWorkflowActionItemFormFieldConditionData.md) | | | + + + diff --git a/docs/UpdateWorkflowActionItemFormFieldConditionData.md b/docs/UpdateWorkflowActionItemFormFieldConditionData.md new file mode 100644 index 00000000..3c41c9ba --- /dev/null +++ b/docs/UpdateWorkflowActionItemFormFieldConditionData.md @@ -0,0 +1,22 @@ + + +# UpdateWorkflowActionItemFormFieldConditionData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**UpdateWorkflowActionItemFormFieldConditionDataAttributes**](UpdateWorkflowActionItemFormFieldConditionDataAttributes.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| WORKFLOW_ACTION_ITEM_FORM_FIELD_CONDITIONS | "workflow_action_item_form_field_conditions" | + + + diff --git a/docs/UpdateWorkflowActionItemFormFieldConditionDataAttributes.md b/docs/UpdateWorkflowActionItemFormFieldConditionDataAttributes.md new file mode 100644 index 00000000..0f24bd22 --- /dev/null +++ b/docs/UpdateWorkflowActionItemFormFieldConditionDataAttributes.md @@ -0,0 +1,39 @@ + + +# UpdateWorkflowActionItemFormFieldConditionDataAttributes + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**actionItemCondition** | [**ActionItemConditionEnum**](#ActionItemConditionEnum) | The trigger condition | [optional] | +|**values** | **List<String>** | | [optional] | +|**selectedCatalogEntityIds** | **List<String>** | | [optional] | +|**selectedFunctionalityIds** | **List<String>** | | [optional] | +|**selectedGroupIds** | **List<String>** | | [optional] | +|**selectedOptionIds** | **List<String>** | | [optional] | +|**selectedServiceIds** | **List<String>** | | [optional] | +|**selectedUserIds** | **List<Integer>** | | [optional] | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | + + + +## Enum: ActionItemConditionEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + diff --git a/docs/UpdateWorkflowData.md b/docs/UpdateWorkflowData.md index b2a5c4db..04441b7a 100644 --- a/docs/UpdateWorkflowData.md +++ b/docs/UpdateWorkflowData.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**id** | **String** | Accepted for JSON:API client compatibility, but ignored. The workflow to update is identified by the id in the path. | [optional] | |**type** | [**TypeEnum**](#TypeEnum) | | | |**attributes** | [**UpdateWorkflowDataAttributes**](UpdateWorkflowDataAttributes.md) | | | diff --git a/docs/UpdateWorkflowDataAttributes.md b/docs/UpdateWorkflowDataAttributes.md index d17170d0..9dcbc6e0 100644 --- a/docs/UpdateWorkflowDataAttributes.md +++ b/docs/UpdateWorkflowDataAttributes.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**name** | **String** | The title of the workflow | [optional] | -|**slug** | **String** | The slug of the workflow | [optional] | |**description** | **String** | The description of the workflow | [optional] | |**command** | **String** | Workflow command | [optional] | |**commandFeedbackEnabled** | **Boolean** | This will notify you back when the workflow is starting | [optional] | diff --git a/docs/UpdateWorkflowFormFieldConditionDataAttributes.md b/docs/UpdateWorkflowFormFieldConditionDataAttributes.md index 4af7c6f3..002ed19e 100644 --- a/docs/UpdateWorkflowFormFieldConditionDataAttributes.md +++ b/docs/UpdateWorkflowFormFieldConditionDataAttributes.md @@ -15,6 +15,9 @@ |**selectedOptionIds** | **List<String>** | | [optional] | |**selectedServiceIds** | **List<String>** | | [optional] | |**selectedUserIds** | **List<Integer>** | | [optional] | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | diff --git a/docs/UpdateWorkflowGroupDataAttributes.md b/docs/UpdateWorkflowGroupDataAttributes.md index cd41ef66..1ce646fd 100644 --- a/docs/UpdateWorkflowGroupDataAttributes.md +++ b/docs/UpdateWorkflowGroupDataAttributes.md @@ -7,6 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| +|**slug** | **String** | Deprecated. `slug` is derived from `name` and `kind`; any submitted value is ignored. This property will be removed from the request schema in a future version. | [optional] | |**kind** | [**KindEnum**](#KindEnum) | The kind of the workflow group | [optional] | |**name** | **String** | The name of the workflow group. | [optional] | |**description** | **String** | A description of the workflow group. | [optional] | diff --git a/docs/UpdateWorkflowTaskDataAttributesTaskParams.md b/docs/UpdateWorkflowTaskDataAttributesTaskParams.md index 403c2c97..cf37e639 100644 --- a/docs/UpdateWorkflowTaskDataAttributesTaskParams.md +++ b/docs/UpdateWorkflowTaskDataAttributesTaskParams.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**taskType** | [**TaskTypeEnum**](#TaskTypeEnum) | | [optional] | -|**attributeToQueryBy** | [**AttributeToQueryByEnum**](#AttributeToQueryByEnum) | [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] | | +|**attributeToQueryBy** | [**AttributeToQueryByEnum**](#AttributeToQueryByEnum) | [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] | | |**queryValue** | **String** | Value that attribute_to_query_by to uses to match against | | |**incidentRoleId** | **String** | The role id | | |**assignedToUserId** | **String** | [DEPRECATED] Use assigned_to_user attribute instead. The user id this role is assigned to | [optional] | @@ -22,24 +22,24 @@ |**customFieldsMapping** | **String** | Custom field mappings. Can contain liquid markup and need to be valid JSON | [optional] | |**postToSlackChannels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**groupIds** | **List<String>** | Array of group/team UUIDs | [optional] | -|**playbookId** | **String** | The playbook id if tab is of an incident playbook | [optional] | +|**playbookId** | **String** | | | |**channel** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**title** | **String** | The task title | | -|**link** | **String** | The tab link. Required if not a playbook tab | [optional] | +|**link** | **String** | The tab link | | |**emoji** | **String** | The bookmark emoji | [optional] | |**groupId** | **String** | The team id | | |**event** | **String** | Incident event description | | |**url** | **String** | | | -|**channels** | [**List<Object>**](Object.md) | | | +|**channels** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**dashboards** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | -|**schedule** | [**Object**](Object.md) | | | -|**escalationPolicyTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**scheduleTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**schedule** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**escalationPolicyTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**serviceTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**userTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**groupTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**scheduleTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**service** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | -|**escalationPolicy** | [**Object**](Object.md) | | [optional] | +|**escalationPolicy** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**pagerdutyIncidentId** | **String** | PagerDuty incident id | | |**resolution** | **String** | A message outlining the incident's resolution in PagerDuty | [optional] | |**escalationLevel** | **Integer** | Escalation level of policy attached to incident | [optional] | @@ -47,7 +47,7 @@ |**message** | **String** | | | |**severity** | [**SeverityEnum**](#SeverityEnum) | | [optional] | |**teams** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | -|**users** | [**List<Object>**](Object.md) | | [optional] | +|**users** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**incident** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**pagertreeAlertId** | **String** | The prefix ID of the Pagertree alert | [optional] | |**team** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | @@ -71,15 +71,20 @@ |**template** | [**UpdateDatadogNotebookTaskParamsTemplate**](UpdateDatadogNotebookTaskParamsTemplate.md) | | [optional] | |**postMortemTemplateId** | **String** | Retrospective template to use when updating notebook, if desired | [optional] | |**markPostMortemAsPublished** | **Boolean** | | [optional] | +|**includeOverview** | **Boolean** | | [optional] | +|**includeTimeline** | **Boolean** | | [optional] | +|**includeFollowUps** | **Boolean** | | [optional] | +|**createAsLiveDoc** | **Boolean** | | [optional] | |**subtitle** | **String** | The Coda page subtitle | [optional] | |**folderId** | **String** | The Coda folder id | [optional] | |**doc** | [**CreateCodaPageTaskParamsDoc**](CreateCodaPageTaskParamsDoc.md) | | [optional] | |**namespace** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**parentFolder** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**body** | **String** | The issue body | | -|**repository** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | -|**issueType** | [**IssueTypeEnum**](#IssueTypeEnum) | The issue type | | +|**repository** | [**UpdateGithubIssueTaskParamsRepository**](UpdateGithubIssueTaskParamsRepository.md) | | | |**labels** | **List<String>** | | [optional] | +|**issueType** | [**IssueTypeEnum**](#IssueTypeEnum) | The issue type | | +|**parentIssueNumber** | **String** | The parent issue number for sub-issue linking | [optional] | |**calendar** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**attendees** | **List<String>** | Emails of attendees | [optional] | |**timeZone** | **String** | A valid IANA time zone name. | [optional] | @@ -109,12 +114,13 @@ |**value** | **String** | | | |**parentFolderId** | **String** | The parent folder id | [optional] | |**recordMeeting** | **Boolean** | Rootly AI will record the meeting and automatically generate a transcript and summary from your meeting | [optional] | +|**recordingMode** | [**RecordingModeEnum**](#RecordingModeEnum) | The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) | [optional] | |**subject** | **String** | The ticket subject | | |**conferenceCallInfo** | [**ConferenceCallInfoEnum**](#ConferenceCallInfoEnum) | | [optional] | |**passwordRequired** | **Boolean** | | [optional] | |**severityId** | **String** | | [optional] | |**incidentTypeIds** | **List<String>** | | [optional] | -|**serviceIds** | **List<String>** | Array of service UUIDs | [optional] | +|**serviceIds** | **List<String>** | Array of service UUIDs | | |**functionalityIds** | **List<String>** | Array of functionality UUIDs | [optional] | |**environmentIds** | **List<String>** | | [optional] | |**_private** | **Boolean** | | [optional] | @@ -122,23 +128,32 @@ |**reporterUserEmail** | **String** | The reporter user's email | [optional] | |**projectKey** | **String** | The project key | | |**updatePayload** | **String** | Update payload. Can contain liquid markup and need to be valid JSON | [optional] | +|**retryCount** | **Integer** | Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. | [optional] | +|**retryWaitTime** | **Integer** | Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. | [optional] | |**parentIssueId** | **String** | The parent issue | | |**subtaskIssueType** | [**CreateJiraIssueTaskParamsIssueType**](CreateJiraIssueTaskParamsIssueType.md) | | | -|**state** | [**UpdateLinearIssueTaskParamsState**](UpdateLinearIssueTaskParamsState.md) | | | -|**project** | [**CreateLinearIssueTaskParamsProject**](CreateLinearIssueTaskParamsProject.md) | | [optional] | |**issueId** | **String** | The issue id | | +|**filename** | **String** | The attachment filename | [optional] | +|**ticketId** | **String** | The ticket id | | +|**state** | [**UpdateLinearIssueTaskParamsState**](UpdateLinearIssueTaskParamsState.md) | | | +|**project** | [**CreateLinearIssueTaskParamsProject**](CreateLinearIssueTaskParamsProject.md) | | | |**topic** | **String** | | | |**chatType** | [**ChatTypeEnum**](#ChatTypeEnum) | Type of chat to create | [optional] | |**members** | [**List<CreateMicrosoftTeamsChatTaskParamsMembersInner>**](CreateMicrosoftTeamsChatTaskParamsMembersInner.md) | Array of members to include in the chat | | +|**chat** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**audience** | **String** | Target audience resource name (e.g. audiences/default). Leave blank to make private. | [optional] | +|**spaces** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**text** | **String** | The message text | | +|**threadKey** | **String** | Thread key to reply within a thread. Messages with the same thread key are grouped together | [optional] | +|**attachments** | **String** | Support liquid markup. Needs to be a valid JSON string after liquid is parsed | | |**emails** | **String** | Comma separated list of emails to invite | | |**parentPage** | [**CreateNotionPageTaskParamsParentPage**](CreateNotionPageTaskParamsParentPage.md) | | | |**showTimelineAsTable** | **Boolean** | | [optional] | |**showActionItemsAsTable** | **Boolean** | | [optional] | -|**text** | **String** | The message text | | -|**attachments** | **String** | Support liquid markup. Needs to be a valid JSON string after liquid is parsed | | +|**chats** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**archivation** | [**CreateTrelloCardTaskParamsArchivation**](CreateTrelloCardTaskParamsArchivation.md) | | | |**group** | [**Object**](Object.md) | The group id and display name | [optional] | -|**workflowState** | [**Object**](Object.md) | The workflow state id workflow state name | [optional] | +|**workflowState** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**parentStoryId** | **String** | The parent story | | |**board** | [**CreateTrelloCardTaskParamsBoard**](CreateTrelloCardTaskParamsBoard.md) | | | |**_list** | [**CreateTrelloCardTaskParamsList**](CreateTrelloCardTaskParamsList.md) | | | @@ -154,11 +169,12 @@ |**createAsEmail** | **String** | The email to use if creating as email | [optional] | |**alternativeHosts** | **List<String>** | | [optional] | |**autoRecording** | [**AutoRecordingEnum**](#AutoRecordingEnum) | | [optional] | -|**githubRepositoryNames** | **List<String>** | | [optional] | +|**enableZoomBotAutoJoin** | **Boolean** | Allow the Rootly bot to start recording without waiting for host approval | [optional] | +|**githubRepositoryNames** | **List<String>** | | | |**branch** | **String** | The branch | | |**pastDuration** | **String** | in format '1 minute', '30 days', '3 months', etc | | |**servicesImpactedByIncident** | **Boolean** | | [optional] | -|**gitlabRepositoryNames** | **List<String>** | | [optional] | +|**gitlabRepositoryNames** | **List<String>** | | | |**refs** | **List<String>** | | [optional] | |**sources** | **List<String>** | | [optional] | |**environmentsImpactedByIncident** | **Boolean** | | [optional] | @@ -169,17 +185,19 @@ |**eventMessage** | **String** | | [optional] | |**method** | [**MethodEnum**](#MethodEnum) | HTTP method | [optional] | |**succeedOnStatus** | **String** | HTTP status code expected. Can be a regular expression. Eg: 200, 200|203, 20[0-3] | | -|**slackUsers** | [**List<Object>**](Object.md) | | [optional] | -|**slackUserGroups** | [**List<Object>**](Object.md) | | [optional] | -|**slackEmails** | **String** | Comma separated list of emails to invite to the channel | [optional] | +|**slackUsers** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**slackUserGroups** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | +|**slackEmails** | **String** | | | |**schedules** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**escalations** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**details** | **String** | Details payload. Can contain liquid markup and need to be valid JSON | [optional] | |**alertId** | **String** | Opsgenie Alert ID | | |**opsgenieIncidentId** | **String** | The Opsgenie incident ID, this can also be a Rootly incident variable ex. {{ incident.opsgenie_incident_id }} | | -|**alertUrgencyId** | **String** | Alert urgency ID | [optional] | +|**functionalityTarget** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | +|**alertUrgencyId** | **String** | Alert urgency ID | | |**escalationNote** | **String** | | [optional] | -|**escalationPolicies** | [**List<Object>**](Object.md) | | [optional] | +|**createNewAlert** | **Boolean** | When true, always create a new alert instead of re-paging the alert that triggered the workflow | [optional] | +|**escalationPolicies** | [**List<AddActionItemTaskParamsPostToSlackChannelsInner>**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**createNewIncidentOnConflict** | **Boolean** | Rootly only supports linking to a single PagerDuty incident. If this feature is disabled Rootly will add responders from any additional pages to the existing PagerDuty incident that is linked to the Rootly incident. If enabled, Rootly will create a new PagerDuty incident that is not linked to any Rootly incidents | [optional] | |**victorOpsIncidentId** | **String** | The victor_ops incident ID, this can also be a Rootly incident variable ex. {{ incident.victor_ops_incident_id }} | | |**resolutionMessage** | **String** | Resolution message | [optional] | @@ -188,6 +206,7 @@ |**shouldTweet** | **Boolean** | For Statuspage.io integrated pages auto publishes a tweet for your update | [optional] | |**statusPageTemplate** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | [optional] | |**statusPageId** | **String** | | | +|**statusPageIds** | **List<String>** | Publishes the update to every listed status page (requires the status-page-v3-limited-bulk-publish feature). When set, it takes precedence over status_page_id and the first entry becomes status_page_id. | [optional] | |**integrationPayload** | **String** | Additional API Payload you can pass to statuspage.io for example. Can contain liquid markup and need to be valid JSON | [optional] | |**commands** | **String** | | | |**privacy** | [**PrivacyEnum**](#PrivacyEnum) | | | @@ -218,6 +237,7 @@ |**tableName** | **String** | The table name | | |**recordId** | **String** | The record id | | |**taskId** | **String** | The task id | | +|**labelsMode** | [**LabelsModeEnum**](#LabelsModeEnum) | How to apply labels. 'replace' (default) overwrites all existing labels. 'append' adds to existing labels without removing them. | [optional] | |**startedAt** | **String** | | [optional] | |**detectedAt** | **String** | | [optional] | |**acknowledgedAt** | **String** | | [optional] | @@ -229,7 +249,6 @@ |**subStatusId** | **String** | Sub-status to update timestamp for | | |**assignedAt** | **String** | Timestamp of when the sub-status was assigned | | |**cardId** | **String** | The card id | | -|**ticketId** | **String** | The ticket id | | |**resource** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**workflow** | [**AddActionItemTaskParamsPostToSlackChannelsInner**](AddActionItemTaskParamsPostToSlackChannelsInner.md) | | | |**checkWorkflowConditions** | **Boolean** | | [optional] | @@ -238,7 +257,7 @@ |**systemPrompt** | **String** | The system prompt to send to Anthropic (optional) | [optional] | |**prompt** | **String** | The prompt to send to Anthropic | | |**temperature** | **BigDecimal** | Sampling temperature (0.0-1.5). Higher values make output more random. | [optional] | -|**maxTokens** | **Integer** | Maximum number of tokens to generate | [optional] | +|**maxTokens** | **Integer** | Maximum number of tokens to generate. Defaults to 4000 when omitted | [optional] | |**topP** | **BigDecimal** | Nucleus sampling parameter (0.0-1.0) | [optional] | |**reasoningEffort** | [**ReasoningEffortEnum**](#ReasoningEffortEnum) | Constrains effort on reasoning for GPT-5 and o-series models | [optional] | |**reasoningSummary** | [**ReasoningSummaryEnum**](#ReasoningSummaryEnum) | Summary of the reasoning performed by the model for GPT-5 and o-series models | [optional] | @@ -285,8 +304,8 @@ | Name | Value | |---- | -----| | INCIDENT | "incident" | -| POST_MORTEM | "post_mortem" | | ACTION_ITEM | "action_item" | +| POST_MORTEM | "post_mortem" | | PULSE | "pulse" | | ALERT | "alert" | @@ -354,6 +373,17 @@ +## Enum: RecordingModeEnum + +| Name | Value | +|---- | -----| +| SPEAKER_VIEW | "speaker_view" | +| GALLERY_VIEW | "gallery_view" | +| GALLERY_VIEW_V2 | "gallery_view_v2" | +| AUDIO_ONLY | "audio_only" | + + + ## Enum: ConferenceCallInfoEnum | Name | Value | @@ -464,6 +494,15 @@ +## Enum: LabelsModeEnum + +| Name | Value | +|---- | -----| +| REPLACE | "replace" | +| APPEND | "append" | + + + ## Enum: ReasoningEffortEnum | Name | Value | diff --git a/docs/UptimeChartResponse.md b/docs/UptimeChartResponse.md new file mode 100644 index 00000000..9b55abaf --- /dev/null +++ b/docs/UptimeChartResponse.md @@ -0,0 +1,13 @@ + + +# UptimeChartResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | **Object** | | | + + + diff --git a/docs/UserEmailAddressList.md b/docs/UserEmailAddressList.md index 59ca97ba..b0235cdb 100644 --- a/docs/UserEmailAddressList.md +++ b/docs/UserEmailAddressList.md @@ -10,6 +10,7 @@ |**data** | [**List<UserEmailAddressResponseData>**](UserEmailAddressResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UserEmailAddressResponse.md b/docs/UserEmailAddressResponse.md index 02c2b150..cb4a149a 100644 --- a/docs/UserEmailAddressResponse.md +++ b/docs/UserEmailAddressResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**UserEmailAddressResponseData**](UserEmailAddressResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UserFlatResponse.md b/docs/UserFlatResponse.md index 76ac745c..afb81171 100644 --- a/docs/UserFlatResponse.md +++ b/docs/UserFlatResponse.md @@ -2,21 +2,26 @@ # UserFlatResponse -Flat user object as returned by serializer +Flat user attributes as returned by UserFlatSerializer (no nested associations) ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**id** | **Integer** | User ID | | -|**email** | **String** | User email | | -|**firstName** | **String** | User first name | [optional] | -|**lastName** | **String** | User last name | [optional] | -|**fullName** | **String** | User full name | [optional] | -|**fullNameWithTeam** | **String** | User full name with team | [optional] | -|**timeZone** | **String** | User time zone | [optional] | -|**createdAt** | **String** | User creation timestamp | | -|**updatedAt** | **String** | User last update timestamp | | +|**name** | **String** | Display name | [optional] | +|**email** | **String** | Email address | | +|**phone** | **String** | Primary phone number | [optional] | +|**phone2** | **String** | Secondary phone number | [optional] | +|**firstName** | **String** | First name | [optional] | +|**lastName** | **String** | Last name | [optional] | +|**preferredName** | **String** | Preferred name | [optional] | +|**fullName** | **String** | Full name | [optional] | +|**fullNameWithTeam** | **String** | Full name with team context | [optional] | +|**slackId** | **String** | Slack user ID | [optional] | +|**timeZone** | **String** | IANA time zone | [optional] | +|**createdAt** | **String** | Date of creation | | +|**updatedAt** | **String** | Date of last update | | diff --git a/docs/UserList.md b/docs/UserList.md index f43f7826..7975d239 100644 --- a/docs/UserList.md +++ b/docs/UserList.md @@ -10,6 +10,7 @@ |**data** | [**List<UserResponseData>**](UserResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UserNotificationRule.md b/docs/UserNotificationRule.md index 28934539..984b0145 100644 --- a/docs/UserNotificationRule.md +++ b/docs/UserNotificationRule.md @@ -15,6 +15,7 @@ |**userSmsNumberId** | **String** | User sms number to which notification to be sent | [optional] | |**userDeviceId** | **String** | User device to which notification to be sent | [optional] | |**enabledContactTypes** | [**List<EnabledContactTypesEnum>**](#List<EnabledContactTypesEnum>) | Contact types for which notification needs to be enabled | [optional] | +|**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | Type of notification rule (audible or quiet). Audible notifications use sound/vibration to alert users, while quiet notifications are silent. | [optional] | |**createdAt** | **String** | Date of creation | [optional] | |**updatedAt** | **String** | Date of last update | [optional] | @@ -30,6 +31,17 @@ | DEVICE | "device" | | NON_CRITICAL_DEVICE | "non_critical_device" | | SLACK | "slack" | +| GOOGLE_CHAT | "google_chat" | +| MICROSOFT_TEAMS | "microsoft_teams" | + + + +## Enum: NotificationTypeEnum + +| Name | Value | +|---- | -----| +| AUDIBLE | "audible" | +| QUIET | "quiet" | diff --git a/docs/UserNotificationRuleList.md b/docs/UserNotificationRuleList.md index 18a6db87..d97e1464 100644 --- a/docs/UserNotificationRuleList.md +++ b/docs/UserNotificationRuleList.md @@ -10,6 +10,7 @@ |**data** | [**List<UserNotificationRuleResponseData>**](UserNotificationRuleResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UserNotificationRuleResponse.md b/docs/UserNotificationRuleResponse.md index 170009d3..121db3ac 100644 --- a/docs/UserNotificationRuleResponse.md +++ b/docs/UserNotificationRuleResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**UserNotificationRuleResponseData**](UserNotificationRuleResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UserPhoneNumberList.md b/docs/UserPhoneNumberList.md index 7d328adb..b9e09801 100644 --- a/docs/UserPhoneNumberList.md +++ b/docs/UserPhoneNumberList.md @@ -10,6 +10,7 @@ |**data** | [**List<UserPhoneNumberResponseData>**](UserPhoneNumberResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UserPhoneNumberResponse.md b/docs/UserPhoneNumberResponse.md index 770b3b66..4f974e48 100644 --- a/docs/UserPhoneNumberResponse.md +++ b/docs/UserPhoneNumberResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**UserPhoneNumberResponseData**](UserPhoneNumberResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UserResponse.md b/docs/UserResponse.md index e821b28f..bccc64b3 100644 --- a/docs/UserResponse.md +++ b/docs/UserResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**UserResponseData**](UserResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/UsersApi.md b/docs/UsersApi.md index f8120485..59438a66 100644 --- a/docs/UsersApi.md +++ b/docs/UsersApi.md @@ -210,7 +210,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | user found with teams, schedules, and notification_rules includes | - | +| **200** | teams include only returns teams from the current team | - | | **404** | resource not found | - | @@ -366,6 +366,6 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | update name and role simultaneously | - | +| **200** | custom role with roles_permissions can update user role (IR-5606) | - | | **404** | returns 404 for on_call_role_id belonging to another team | - | diff --git a/docs/VerifiedDomain.md b/docs/VerifiedDomain.md new file mode 100644 index 00000000..7ac0855f --- /dev/null +++ b/docs/VerifiedDomain.md @@ -0,0 +1,45 @@ + + +# VerifiedDomain + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**domain** | **String** | The domain name | | +|**verificationStatus** | [**VerificationStatusEnum**](#VerificationStatusEnum) | Verification status | | +|**verificationToken** | **String** | The verification token | | +|**txtHost** | **String** | The TXT record hostname to add | [readonly] | +|**txtValue** | **String** | The TXT record value to add | [readonly] | +|**verifiedAt** | **String** | When the domain was first verified | [optional] | +|**lastCheckedAt** | **String** | When the domain was last checked | [optional] | +|**lastCheckPassedAt** | **String** | When the TXT record was last found | [optional] | +|**checkFailuresCount** | **Integer** | Number of consecutive check failures | [optional] | +|**source** | [**SourceEnum**](#SourceEnum) | How the domain was added | [optional] | +|**createdAt** | **String** | Date of creation | | +|**updatedAt** | **String** | Date of last update | | + + + +## Enum: VerificationStatusEnum + +| Name | Value | +|---- | -----| +| PENDING | "pending" | +| VERIFIED | "verified" | +| FAILING | "failing" | +| EXPIRED | "expired" | + + + +## Enum: SourceEnum + +| Name | Value | +|---- | -----| +| MANUAL | "manual" | +| MIGRATION | "migration" | +| OAUTH_AUTO | "oauth_auto" | + + + diff --git a/docs/VerifiedDomainList.md b/docs/VerifiedDomainList.md new file mode 100644 index 00000000..0240f2a9 --- /dev/null +++ b/docs/VerifiedDomainList.md @@ -0,0 +1,16 @@ + + +# VerifiedDomainList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<VerifiedDomainResponseData>**](VerifiedDomainResponseData.md) | | | +|**links** | [**Links**](Links.md) | | | +|**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/VerifiedDomainResponse.md b/docs/VerifiedDomainResponse.md new file mode 100644 index 00000000..f43365b8 --- /dev/null +++ b/docs/VerifiedDomainResponse.md @@ -0,0 +1,14 @@ + + +# VerifiedDomainResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**VerifiedDomainResponseData**](VerifiedDomainResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/VerifiedDomainResponseData.md b/docs/VerifiedDomainResponseData.md new file mode 100644 index 00000000..07ab1208 --- /dev/null +++ b/docs/VerifiedDomainResponseData.md @@ -0,0 +1,23 @@ + + +# VerifiedDomainResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the verified domain | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**VerifiedDomain**](VerifiedDomain.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| VERIFIED_DOMAINS | "verified_domains" | + + + diff --git a/docs/VerifiedDomainsApi.md b/docs/VerifiedDomainsApi.md new file mode 100644 index 00000000..3b58b185 --- /dev/null +++ b/docs/VerifiedDomainsApi.md @@ -0,0 +1,274 @@ +# VerifiedDomainsApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**v1VerifiedDomainsGet**](VerifiedDomainsApi.md#v1VerifiedDomainsGet) | **GET** /v1/verified_domains | List verified domains | +| [**v1VerifiedDomainsIdDelete**](VerifiedDomainsApi.md#v1VerifiedDomainsIdDelete) | **DELETE** /v1/verified_domains/{id} | Delete a verified domain | +| [**v1VerifiedDomainsIdGet**](VerifiedDomainsApi.md#v1VerifiedDomainsIdGet) | **GET** /v1/verified_domains/{id} | Show a verified domain | +| [**v1VerifiedDomainsPost**](VerifiedDomainsApi.md#v1VerifiedDomainsPost) | **POST** /v1/verified_domains | Create a verified domain | + + + +# **v1VerifiedDomainsGet** +> VerifiedDomainList v1VerifiedDomainsGet(pageNumber, pageSize) + +List verified domains + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.VerifiedDomainsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + VerifiedDomainsApi apiInstance = new VerifiedDomainsApi(defaultClient); + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + try { + VerifiedDomainList result = apiInstance.v1VerifiedDomainsGet(pageNumber, pageSize); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VerifiedDomainsApi#v1VerifiedDomainsGet"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | + +### Return type + +[**VerifiedDomainList**](VerifiedDomainList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | verified domains found | - | + + +# **v1VerifiedDomainsIdDelete** +> VerifiedDomainResponse v1VerifiedDomainsIdDelete(id) + +Delete a verified domain + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.VerifiedDomainsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + VerifiedDomainsApi apiInstance = new VerifiedDomainsApi(defaultClient); + String id = "id_example"; // String | + try { + VerifiedDomainResponse result = apiInstance.v1VerifiedDomainsIdDelete(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VerifiedDomainsApi#v1VerifiedDomainsIdDelete"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**VerifiedDomainResponse**](VerifiedDomainResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | verified domain deleted | - | + + +# **v1VerifiedDomainsIdGet** +> VerifiedDomainResponse v1VerifiedDomainsIdGet(id) + +Show a verified domain + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.VerifiedDomainsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + VerifiedDomainsApi apiInstance = new VerifiedDomainsApi(defaultClient); + String id = "id_example"; // String | + try { + VerifiedDomainResponse result = apiInstance.v1VerifiedDomainsIdGet(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VerifiedDomainsApi#v1VerifiedDomainsIdGet"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**VerifiedDomainResponse**](VerifiedDomainResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | verified domain found | - | + + +# **v1VerifiedDomainsPost** +> VerifiedDomainResponse v1VerifiedDomainsPost(newVerifiedDomain) + +Create a verified domain + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.VerifiedDomainsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + VerifiedDomainsApi apiInstance = new VerifiedDomainsApi(defaultClient); + NewVerifiedDomain newVerifiedDomain = new NewVerifiedDomain(); // NewVerifiedDomain | + try { + VerifiedDomainResponse result = apiInstance.v1VerifiedDomainsPost(newVerifiedDomain); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling VerifiedDomainsApi#v1VerifiedDomainsPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newVerifiedDomain** | [**NewVerifiedDomain**](NewVerifiedDomain.md)| | | + +### Return type + +[**VerifiedDomainResponse**](VerifiedDomainResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | verified domain created | - | + diff --git a/docs/WebhooksDeliveriesApi.md b/docs/WebhooksDeliveriesApi.md index ce771b29..4ac4a2b5 100644 --- a/docs/WebhooksDeliveriesApi.md +++ b/docs/WebhooksDeliveriesApi.md @@ -146,7 +146,7 @@ public class Example { # **listWebhooksDeliveries** -> WebhooksDeliveryList listWebhooksDeliveries(endpointId, include, pageNumber, pageSize) +> WebhooksDeliveryList listWebhooksDeliveries(endpointId, include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterDeliveredAtGt, filterDeliveredAtGte, filterDeliveredAtLt, filterDeliveredAtLte) List webhook deliveries @@ -176,8 +176,17 @@ public class Example { String include = "include_example"; // String | Integer pageNumber = 56; // Integer | Integer pageSize = 56; // Integer | + String filterStatus = "filterStatus_example"; // String | Delivery status: pending, success, failed. Comma-separated. Unknown values are ignored; if no valid values remain, the result set is empty. + OffsetDateTime filterCreatedAtGt = OffsetDateTime.now(); // OffsetDateTime | Created after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. + OffsetDateTime filterCreatedAtGte = OffsetDateTime.now(); // OffsetDateTime | Created at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. + OffsetDateTime filterCreatedAtLt = OffsetDateTime.now(); // OffsetDateTime | Created before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. + OffsetDateTime filterCreatedAtLte = OffsetDateTime.now(); // OffsetDateTime | Created at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. + OffsetDateTime filterDeliveredAtGt = OffsetDateTime.now(); // OffsetDateTime | Delivered after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. + OffsetDateTime filterDeliveredAtGte = OffsetDateTime.now(); // OffsetDateTime | Delivered at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. + OffsetDateTime filterDeliveredAtLt = OffsetDateTime.now(); // OffsetDateTime | Delivered before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. + OffsetDateTime filterDeliveredAtLte = OffsetDateTime.now(); // OffsetDateTime | Delivered at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. try { - WebhooksDeliveryList result = apiInstance.listWebhooksDeliveries(endpointId, include, pageNumber, pageSize); + WebhooksDeliveryList result = apiInstance.listWebhooksDeliveries(endpointId, include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterDeliveredAtGt, filterDeliveredAtGte, filterDeliveredAtLt, filterDeliveredAtLte); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling WebhooksDeliveriesApi#listWebhooksDeliveries"); @@ -198,6 +207,15 @@ public class Example { | **include** | **String**| | [optional] | | **pageNumber** | **Integer**| | [optional] | | **pageSize** | **Integer**| | [optional] | +| **filterStatus** | **String**| Delivery status: pending, success, failed. Comma-separated. Unknown values are ignored; if no valid values remain, the result set is empty. | [optional] | +| **filterCreatedAtGt** | **OffsetDateTime**| Created after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | +| **filterCreatedAtGte** | **OffsetDateTime**| Created at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | +| **filterCreatedAtLt** | **OffsetDateTime**| Created before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | +| **filterCreatedAtLte** | **OffsetDateTime**| Created at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | +| **filterDeliveredAtGt** | **OffsetDateTime**| Delivered after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | +| **filterDeliveredAtGte** | **OffsetDateTime**| Delivered at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | +| **filterDeliveredAtLt** | **OffsetDateTime**| Delivered before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | +| **filterDeliveredAtLte** | **OffsetDateTime**| Delivered at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. | [optional] | ### Return type @@ -216,4 +234,5 @@ public class Example { | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | success | - | +| **400** | invalid date filter | - | diff --git a/docs/WebhooksDelivery.md b/docs/WebhooksDelivery.md index 863abe0a..b74a3af1 100644 --- a/docs/WebhooksDelivery.md +++ b/docs/WebhooksDelivery.md @@ -9,9 +9,21 @@ |------------ | ------------- | ------------- | -------------| |**endpointId** | **String** | | | |**payload** | **String** | | | +|**status** | [**StatusEnum**](#StatusEnum) | Delivery status | | +|**responseStatus** | **Integer** | HTTP status code recorded for the delivery attempt. It is null before the first attempt. For SSRF and transport failures, Rootly generates this code because no destination response was received. | | |**deliveredAt** | **String** | | | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| PENDING | "pending" | +| SUCCESS | "success" | +| FAILED | "failed" | + + + diff --git a/docs/WebhooksDeliveryList.md b/docs/WebhooksDeliveryList.md index 357d22b6..e6d605f8 100644 --- a/docs/WebhooksDeliveryList.md +++ b/docs/WebhooksDeliveryList.md @@ -10,6 +10,7 @@ |**data** | [**List<WebhooksDeliveryResponseData>**](WebhooksDeliveryResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WebhooksDeliveryResponse.md b/docs/WebhooksDeliveryResponse.md index 855eb455..f9090c97 100644 --- a/docs/WebhooksDeliveryResponse.md +++ b/docs/WebhooksDeliveryResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WebhooksDeliveryResponseData**](WebhooksDeliveryResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WebhooksEndpoint.md b/docs/WebhooksEndpoint.md index 8ff4bb0b..5329ea3b 100644 --- a/docs/WebhooksEndpoint.md +++ b/docs/WebhooksEndpoint.md @@ -8,11 +8,12 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The name of the endpoint | | -|**slug** | **String** | The slug of the endpoint | | +|**slug** | **String** | The slug of the endpoint | [optional] [readonly] | |**url** | **String** | The URL of the endpoint. | | |**eventTypes** | [**List<EventTypesEnum>**](#List<EventTypesEnum>) | | | |**secret** | **String** | The webhook signing secret used to verify webhook requests. | | |**enabled** | **Boolean** | | | +|**customHeaders** | [**List<NewWebhooksEndpointDataAttributesCustomHeadersInner>**](NewWebhooksEndpointDataAttributesCustomHeadersInner.md) | Custom HTTP headers sent with each delivery. Max 10. Reserved names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected. | [optional] | |**createdAt** | **String** | Date of creation | | |**updatedAt** | **String** | Date of last update | | @@ -45,12 +46,15 @@ | INCIDENT_EVENT_UPDATED | "incident_event.updated" | | INCIDENT_EVENT_DELETED | "incident_event.deleted" | | ALERT_CREATED | "alert.created" | +| ALERT_UPDATED | "alert.updated" | | PULSE_CREATED | "pulse.created" | +| SHIFT_STARTED | "shift.started" | | GENIUS_WORKFLOW_RUN_QUEUED | "genius_workflow_run.queued" | | GENIUS_WORKFLOW_RUN_STARTED | "genius_workflow_run.started" | | GENIUS_WORKFLOW_RUN_COMPLETED | "genius_workflow_run.completed" | | GENIUS_WORKFLOW_RUN_FAILED | "genius_workflow_run.failed" | | GENIUS_WORKFLOW_RUN_CANCELED | "genius_workflow_run.canceled" | +| AUDIT_LOG_CREATED | "audit_log.created" | diff --git a/docs/WebhooksEndpointList.md b/docs/WebhooksEndpointList.md index 28822b11..de59e7e3 100644 --- a/docs/WebhooksEndpointList.md +++ b/docs/WebhooksEndpointList.md @@ -10,6 +10,7 @@ |**data** | [**List<WebhooksEndpointResponseData>**](WebhooksEndpointResponseData.md) | | | |**links** | [**Links**](Links.md) | | [optional] | |**meta** | [**Meta**](Meta.md) | | [optional] | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WebhooksEndpointResponse.md b/docs/WebhooksEndpointResponse.md index 47630e8b..6eb12d69 100644 --- a/docs/WebhooksEndpointResponse.md +++ b/docs/WebhooksEndpointResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WebhooksEndpointResponseData**](WebhooksEndpointResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WebhooksEndpointsApi.md b/docs/WebhooksEndpointsApi.md index 735859a7..dc32b9af 100644 --- a/docs/WebhooksEndpointsApi.md +++ b/docs/WebhooksEndpointsApi.md @@ -76,7 +76,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | webhooks_endpoint created | - | +| **201** | webhooks_endpoint created with custom_headers | - | | **422** | invalid request | - | | **401** | responds with unauthorized for invalid token | - | @@ -358,6 +358,6 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | webhooks_endpoint updated | - | +| **200** | webhooks_endpoint custom_headers cleared with empty array | - | | **404** | hidden endpoint not accessible | - | diff --git a/docs/Workflow.md b/docs/Workflow.md index 16510996..066f0bea 100644 --- a/docs/Workflow.md +++ b/docs/Workflow.md @@ -8,7 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**name** | **String** | The title of the workflow | | -|**slug** | **String** | The slug of the workflow | [optional] | +|**slug** | **String** | The slug of the workflow | [optional] [readonly] | |**description** | **String** | The description of the workflow | [optional] | |**command** | **String** | Workflow command | [optional] | |**commandFeedbackEnabled** | **Boolean** | This will notify you back when the workflow is starting | [optional] | diff --git a/docs/WorkflowActionItemFormFieldCondition.md b/docs/WorkflowActionItemFormFieldCondition.md new file mode 100644 index 00000000..c755d547 --- /dev/null +++ b/docs/WorkflowActionItemFormFieldCondition.md @@ -0,0 +1,41 @@ + + +# WorkflowActionItemFormFieldCondition + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**workflowId** | **String** | The workflow for this condition | | +|**formFieldId** | **String** | The custom field for this condition | | +|**actionItemCondition** | [**ActionItemConditionEnum**](#ActionItemConditionEnum) | The trigger condition | | +|**values** | **List<String>** | | [optional] | +|**selectedCatalogEntityIds** | **List<String>** | | | +|**selectedFunctionalityIds** | **List<String>** | | [optional] | +|**selectedGroupIds** | **List<String>** | | [optional] | +|**selectedOptionIds** | **List<String>** | | | +|**selectedServiceIds** | **List<String>** | | [optional] | +|**selectedUserIds** | **List<Integer>** | | | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | + + + +## Enum: ActionItemConditionEnum + +| Name | Value | +|---- | -----| +| IS | "IS" | +| IS_NOT | "IS NOT" | +| ANY | "ANY" | +| CONTAINS | "CONTAINS" | +| CONTAINS_ALL | "CONTAINS_ALL" | +| CONTAINS_NONE | "CONTAINS_NONE" | +| NONE | "NONE" | +| SET | "SET" | +| UNSET | "UNSET" | + + + diff --git a/docs/WorkflowActionItemFormFieldConditionList.md b/docs/WorkflowActionItemFormFieldConditionList.md new file mode 100644 index 00000000..d2fc3659 --- /dev/null +++ b/docs/WorkflowActionItemFormFieldConditionList.md @@ -0,0 +1,16 @@ + + +# WorkflowActionItemFormFieldConditionList + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**List<WorkflowActionItemFormFieldConditionResponseData>**](WorkflowActionItemFormFieldConditionResponseData.md) | | | +|**links** | [**Links**](Links.md) | | | +|**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/WorkflowActionItemFormFieldConditionResponse.md b/docs/WorkflowActionItemFormFieldConditionResponse.md new file mode 100644 index 00000000..915a04ab --- /dev/null +++ b/docs/WorkflowActionItemFormFieldConditionResponse.md @@ -0,0 +1,14 @@ + + +# WorkflowActionItemFormFieldConditionResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**data** | [**WorkflowActionItemFormFieldConditionResponseData**](WorkflowActionItemFormFieldConditionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | + + + diff --git a/docs/WorkflowActionItemFormFieldConditionResponseData.md b/docs/WorkflowActionItemFormFieldConditionResponseData.md new file mode 100644 index 00000000..60e58025 --- /dev/null +++ b/docs/WorkflowActionItemFormFieldConditionResponseData.md @@ -0,0 +1,23 @@ + + +# WorkflowActionItemFormFieldConditionResponseData + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**id** | **String** | Unique ID of the workflow_action_item_form_field_condition | | +|**type** | [**TypeEnum**](#TypeEnum) | | | +|**attributes** | [**WorkflowActionItemFormFieldCondition**](WorkflowActionItemFormFieldCondition.md) | | | + + + +## Enum: TypeEnum + +| Name | Value | +|---- | -----| +| WORKFLOW_ACTION_ITEM_FORM_FIELD_CONDITIONS | "workflow_action_item_form_field_conditions" | + + + diff --git a/docs/WorkflowActionItemFormFieldConditionsApi.md b/docs/WorkflowActionItemFormFieldConditionsApi.md new file mode 100644 index 00000000..6f2541b3 --- /dev/null +++ b/docs/WorkflowActionItemFormFieldConditionsApi.md @@ -0,0 +1,364 @@ +# WorkflowActionItemFormFieldConditionsApi + +All URIs are relative to *https://api.rootly.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createWorkflowActionItemFormFieldCondition**](WorkflowActionItemFormFieldConditionsApi.md#createWorkflowActionItemFormFieldCondition) | **POST** /v1/workflows/{workflow_id}/action_item_form_field_conditions | Creates a workflow action item form field condition | +| [**deleteWorkflowActionItemFormFieldCondition**](WorkflowActionItemFormFieldConditionsApi.md#deleteWorkflowActionItemFormFieldCondition) | **DELETE** /v1/workflow_action_item_form_field_conditions/{id} | Delete a workflow action item form field condition | +| [**getWorkflowActionItemFormFieldCondition**](WorkflowActionItemFormFieldConditionsApi.md#getWorkflowActionItemFormFieldCondition) | **GET** /v1/workflow_action_item_form_field_conditions/{id} | Retrieves a workflow action item form field condition | +| [**listWorkflowActionItemFormFieldConditions**](WorkflowActionItemFormFieldConditionsApi.md#listWorkflowActionItemFormFieldConditions) | **GET** /v1/workflows/{workflow_id}/action_item_form_field_conditions | List workflow action item form field conditions | +| [**updateWorkflowActionItemFormFieldCondition**](WorkflowActionItemFormFieldConditionsApi.md#updateWorkflowActionItemFormFieldCondition) | **PUT** /v1/workflow_action_item_form_field_conditions/{id} | Update a workflow action item form field condition | + + + +# **createWorkflowActionItemFormFieldCondition** +> WorkflowActionItemFormFieldConditionResponse createWorkflowActionItemFormFieldCondition(workflowId, newWorkflowActionItemFormFieldCondition) + +Creates a workflow action item form field condition + +Creates a new workflow action item form field condition from provided data + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.WorkflowActionItemFormFieldConditionsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + WorkflowActionItemFormFieldConditionsApi apiInstance = new WorkflowActionItemFormFieldConditionsApi(defaultClient); + String workflowId = "workflowId_example"; // String | + NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition = new NewWorkflowActionItemFormFieldCondition(); // NewWorkflowActionItemFormFieldCondition | + try { + WorkflowActionItemFormFieldConditionResponse result = apiInstance.createWorkflowActionItemFormFieldCondition(workflowId, newWorkflowActionItemFormFieldCondition); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling WorkflowActionItemFormFieldConditionsApi#createWorkflowActionItemFormFieldCondition"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **workflowId** | **String**| | | +| **newWorkflowActionItemFormFieldCondition** | [**NewWorkflowActionItemFormFieldCondition**](NewWorkflowActionItemFormFieldCondition.md)| | | + +### Return type + +[**WorkflowActionItemFormFieldConditionResponse**](WorkflowActionItemFormFieldConditionResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | workflow_action_item_form_field_condition created | - | +| **401** | responds with unauthorized for invalid token | - | +| **403** | responds with forbidden when the feature flag is disabled | - | +| **422** | rejects conditions on a non-action-item workflow | - | + + +# **deleteWorkflowActionItemFormFieldCondition** +> WorkflowActionItemFormFieldConditionResponse deleteWorkflowActionItemFormFieldCondition(id) + +Delete a workflow action item form field condition + +Delete a specific workflow action item form field condition by id + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.WorkflowActionItemFormFieldConditionsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + WorkflowActionItemFormFieldConditionsApi apiInstance = new WorkflowActionItemFormFieldConditionsApi(defaultClient); + String id = "id_example"; // String | + try { + WorkflowActionItemFormFieldConditionResponse result = apiInstance.deleteWorkflowActionItemFormFieldCondition(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling WorkflowActionItemFormFieldConditionsApi#deleteWorkflowActionItemFormFieldCondition"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**WorkflowActionItemFormFieldConditionResponse**](WorkflowActionItemFormFieldConditionResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | allows deleting an existing condition when the feature flag is disabled | - | +| **404** | resource not found | - | + + +# **getWorkflowActionItemFormFieldCondition** +> WorkflowActionItemFormFieldConditionResponse getWorkflowActionItemFormFieldCondition(id) + +Retrieves a workflow action item form field condition + +Retrieves a specific workflow action item form field condition by id + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.WorkflowActionItemFormFieldConditionsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + WorkflowActionItemFormFieldConditionsApi apiInstance = new WorkflowActionItemFormFieldConditionsApi(defaultClient); + String id = "id_example"; // String | + try { + WorkflowActionItemFormFieldConditionResponse result = apiInstance.getWorkflowActionItemFormFieldCondition(id); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling WorkflowActionItemFormFieldConditionsApi#getWorkflowActionItemFormFieldCondition"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | + +### Return type + +[**WorkflowActionItemFormFieldConditionResponse**](WorkflowActionItemFormFieldConditionResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | includes native field ids | - | +| **404** | resource not found | - | + + +# **listWorkflowActionItemFormFieldConditions** +> WorkflowActionItemFormFieldConditionList listWorkflowActionItemFormFieldConditions(workflowId, include, pageNumber, pageSize) + +List workflow action item form field conditions + +List workflow action item form field conditions + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.WorkflowActionItemFormFieldConditionsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + WorkflowActionItemFormFieldConditionsApi apiInstance = new WorkflowActionItemFormFieldConditionsApi(defaultClient); + String workflowId = "workflowId_example"; // String | + String include = "include_example"; // String | + Integer pageNumber = 56; // Integer | + Integer pageSize = 56; // Integer | + try { + WorkflowActionItemFormFieldConditionList result = apiInstance.listWorkflowActionItemFormFieldConditions(workflowId, include, pageNumber, pageSize); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling WorkflowActionItemFormFieldConditionsApi#listWorkflowActionItemFormFieldConditions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **workflowId** | **String**| | | +| **include** | **String**| | [optional] | +| **pageNumber** | **Integer**| | [optional] | +| **pageSize** | **Integer**| | [optional] | + +### Return type + +[**WorkflowActionItemFormFieldConditionList**](WorkflowActionItemFormFieldConditionList.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | success | - | + + +# **updateWorkflowActionItemFormFieldCondition** +> WorkflowActionItemFormFieldConditionResponse updateWorkflowActionItemFormFieldCondition(id, updateWorkflowActionItemFormFieldCondition) + +Update a workflow action item form field condition + +Update a specific workflow action item form field condition by id + +### Example +```java +// Import classes: +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.Configuration; +import com.rootly.client.auth.*; +import com.rootly.client.models.*; +import com.rootly.client.api.WorkflowActionItemFormFieldConditionsApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.rootly.com"); + + // Configure HTTP bearer authorization: bearer_auth + HttpBearerAuth bearer_auth = (HttpBearerAuth) defaultClient.getAuthentication("bearer_auth"); + bearer_auth.setBearerToken("BEARER TOKEN"); + + WorkflowActionItemFormFieldConditionsApi apiInstance = new WorkflowActionItemFormFieldConditionsApi(defaultClient); + String id = "id_example"; // String | + UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition = new UpdateWorkflowActionItemFormFieldCondition(); // UpdateWorkflowActionItemFormFieldCondition | + try { + WorkflowActionItemFormFieldConditionResponse result = apiInstance.updateWorkflowActionItemFormFieldCondition(id, updateWorkflowActionItemFormFieldCondition); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling WorkflowActionItemFormFieldConditionsApi#updateWorkflowActionItemFormFieldCondition"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **id** | **String**| | | +| **updateWorkflowActionItemFormFieldCondition** | [**UpdateWorkflowActionItemFormFieldCondition**](UpdateWorkflowActionItemFormFieldCondition.md)| | | + +### Return type + +[**WorkflowActionItemFormFieldConditionResponse**](WorkflowActionItemFormFieldConditionResponse.md) + +### Authorization + +[bearer_auth](../README.md#bearer_auth) + +### HTTP request headers + + - **Content-Type**: application/vnd.api+json + - **Accept**: application/vnd.api+json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | ignores non-allowlisted attributes such as workflow_id | - | +| **404** | resource not found | - | + diff --git a/docs/WorkflowCustomFieldSelectionList.md b/docs/WorkflowCustomFieldSelectionList.md index f9931ea8..59eafe79 100644 --- a/docs/WorkflowCustomFieldSelectionList.md +++ b/docs/WorkflowCustomFieldSelectionList.md @@ -10,6 +10,7 @@ |**data** | [**List<WorkflowCustomFieldSelectionResponseData>**](WorkflowCustomFieldSelectionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowCustomFieldSelectionResponse.md b/docs/WorkflowCustomFieldSelectionResponse.md index baf9e011..14db975a 100644 --- a/docs/WorkflowCustomFieldSelectionResponse.md +++ b/docs/WorkflowCustomFieldSelectionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WorkflowCustomFieldSelectionResponseData**](WorkflowCustomFieldSelectionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowFormFieldCondition.md b/docs/WorkflowFormFieldCondition.md index 93075c0d..d74d1874 100644 --- a/docs/WorkflowFormFieldCondition.md +++ b/docs/WorkflowFormFieldCondition.md @@ -17,6 +17,9 @@ |**selectedOptionIds** | **List<String>** | | | |**selectedServiceIds** | **List<String>** | | [optional] | |**selectedUserIds** | **List<Integer>** | | | +|**selectedCauseIds** | **List<String>** | | [optional] | +|**selectedEnvironmentIds** | **List<String>** | | [optional] | +|**selectedIncidentTypeIds** | **List<String>** | | [optional] | diff --git a/docs/WorkflowFormFieldConditionList.md b/docs/WorkflowFormFieldConditionList.md index 236fa120..7d9fd703 100644 --- a/docs/WorkflowFormFieldConditionList.md +++ b/docs/WorkflowFormFieldConditionList.md @@ -10,6 +10,7 @@ |**data** | [**List<WorkflowFormFieldConditionResponseData>**](WorkflowFormFieldConditionResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowFormFieldConditionResponse.md b/docs/WorkflowFormFieldConditionResponse.md index 87ac6832..1487e458 100644 --- a/docs/WorkflowFormFieldConditionResponse.md +++ b/docs/WorkflowFormFieldConditionResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WorkflowFormFieldConditionResponseData**](WorkflowFormFieldConditionResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowFormFieldConditionsApi.md b/docs/WorkflowFormFieldConditionsApi.md index 30b03552..5460efd3 100644 --- a/docs/WorkflowFormFieldConditionsApi.md +++ b/docs/WorkflowFormFieldConditionsApi.md @@ -78,7 +78,8 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **201** | workflow_form_field_condition created | - | +| **201** | accepts out-of-scope selected ids when scope validation is disabled | - | +| **422** | rejects out-of-scope selected ids when scope validation is enabled | - | | **401** | responds with unauthorized for invalid token | - | @@ -214,7 +215,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | workflow_form_field_condition found | - | +| **200** | includes native field ids | - | | **404** | resource not found | - | @@ -357,6 +358,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | workflow_form_field_condition updated | - | +| **200** | accepts out-of-scope selected ids on update when scope validation is disabled | - | +| **422** | rejects out-of-scope selected ids on update when scope validation is enabled | - | | **404** | resource not found | - | diff --git a/docs/WorkflowGroup.md b/docs/WorkflowGroup.md index 269d0915..9de9e18d 100644 --- a/docs/WorkflowGroup.md +++ b/docs/WorkflowGroup.md @@ -9,7 +9,7 @@ |------------ | ------------- | ------------- | -------------| |**kind** | [**KindEnum**](#KindEnum) | The kind of the workflow group | [optional] | |**name** | **String** | The name of the workflow group. | | -|**slug** | **String** | The slug of the workflow group. | [optional] | +|**slug** | **String** | The slug of the workflow group. | [optional] [readonly] | |**description** | **String** | A description of the workflow group. | [optional] | |**icon** | **String** | An emoji icon displayed next to the workflow group. | [optional] | |**expanded** | **Boolean** | Whether the group is expanded or collapsed. | [optional] | diff --git a/docs/WorkflowGroupList.md b/docs/WorkflowGroupList.md index 74906550..3a5e7c00 100644 --- a/docs/WorkflowGroupList.md +++ b/docs/WorkflowGroupList.md @@ -10,6 +10,7 @@ |**data** | [**List<WorkflowGroupResponseData>**](WorkflowGroupResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowGroupResponse.md b/docs/WorkflowGroupResponse.md index 781c90cc..a1946d52 100644 --- a/docs/WorkflowGroupResponse.md +++ b/docs/WorkflowGroupResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WorkflowGroupResponseData**](WorkflowGroupResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowList.md b/docs/WorkflowList.md index 025cdbbb..ef3f3edf 100644 --- a/docs/WorkflowList.md +++ b/docs/WorkflowList.md @@ -10,6 +10,7 @@ |**data** | [**List<WorkflowResponseData>**](WorkflowResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowResponse.md b/docs/WorkflowResponse.md index 86c681a7..f4530278 100644 --- a/docs/WorkflowResponse.md +++ b/docs/WorkflowResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WorkflowResponseData**](WorkflowResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowRunResponse.md b/docs/WorkflowRunResponse.md index f6117bb2..9b9ae948 100644 --- a/docs/WorkflowRunResponse.md +++ b/docs/WorkflowRunResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WorkflowRunResponseData**](WorkflowRunResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowRunsList.md b/docs/WorkflowRunsList.md index d29743fc..af48b1f6 100644 --- a/docs/WorkflowRunsList.md +++ b/docs/WorkflowRunsList.md @@ -10,6 +10,7 @@ |**data** | [**List<WorkflowRunResponseData>**](WorkflowRunResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowTaskList.md b/docs/WorkflowTaskList.md index 61005503..89df7dac 100644 --- a/docs/WorkflowTaskList.md +++ b/docs/WorkflowTaskList.md @@ -10,6 +10,7 @@ |**data** | [**List<WorkflowTaskResponseData>**](WorkflowTaskResponseData.md) | | | |**links** | [**Links**](Links.md) | | | |**meta** | [**Meta**](Meta.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowTaskResponse.md b/docs/WorkflowTaskResponse.md index a0f233ab..64054450 100644 --- a/docs/WorkflowTaskResponse.md +++ b/docs/WorkflowTaskResponse.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**data** | [**WorkflowTaskResponseData**](WorkflowTaskResponseData.md) | | | +|**included** | [**List<JsonapiIncludedResource>**](JsonapiIncludedResource.md) | | [optional] | diff --git a/docs/WorkflowTasksApi.md b/docs/WorkflowTasksApi.md index ff214e3a..795d391b 100644 --- a/docs/WorkflowTasksApi.md +++ b/docs/WorkflowTasksApi.md @@ -219,7 +219,7 @@ public class Example { # **listWorkflowTasks** -> WorkflowTaskList listWorkflowTasks(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug) +> WorkflowTaskList listWorkflowTasks(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn) List workflow tasks @@ -252,8 +252,16 @@ public class Example { String filterSearch = "filterSearch_example"; // String | String filterName = "filterName_example"; // String | String filterSlug = "filterSlug_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | try { - WorkflowTaskList result = apiInstance.listWorkflowTasks(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug); + WorkflowTaskList result = apiInstance.listWorkflowTasks(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling WorkflowTasksApi#listWorkflowTasks"); @@ -277,6 +285,14 @@ public class Example { | **filterSearch** | **String**| | [optional] | | **filterName** | **String**| | [optional] | | **filterSlug** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | ### Return type diff --git a/docs/WorkflowsApi.md b/docs/WorkflowsApi.md index 1f9c4d78..dffd08f7 100644 --- a/docs/WorkflowsApi.md +++ b/docs/WorkflowsApi.md @@ -220,7 +220,7 @@ public class Example { # **listWorkflows** -> WorkflowList listWorkflows(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte) +> WorkflowList listWorkflows(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn) List workflows @@ -257,8 +257,16 @@ public class Example { String filterCreatedAtGte = "filterCreatedAtGte_example"; // String | String filterCreatedAtLt = "filterCreatedAtLt_example"; // String | String filterCreatedAtLte = "filterCreatedAtLte_example"; // String | + String filterSlugEq = "filterSlugEq_example"; // String | + String filterSlugNotEq = "filterSlugNotEq_example"; // String | + String filterSlugIn = "filterSlugIn_example"; // String | + String filterSlugNotIn = "filterSlugNotIn_example"; // String | + String filterNameEq = "filterNameEq_example"; // String | + String filterNameNotEq = "filterNameNotEq_example"; // String | + String filterNameIn = "filterNameIn_example"; // String | + String filterNameNotIn = "filterNameNotIn_example"; // String | try { - WorkflowList result = apiInstance.listWorkflows(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + WorkflowList result = apiInstance.listWorkflows(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling WorkflowsApi#listWorkflows"); @@ -286,6 +294,14 @@ public class Example { | **filterCreatedAtGte** | **String**| | [optional] | | **filterCreatedAtLt** | **String**| | [optional] | | **filterCreatedAtLte** | **String**| | [optional] | +| **filterSlugEq** | **String**| | [optional] | +| **filterSlugNotEq** | **String**| | [optional] | +| **filterSlugIn** | **String**| | [optional] | +| **filterSlugNotIn** | **String**| | [optional] | +| **filterNameEq** | **String**| | [optional] | +| **filterNameNotEq** | **String**| | [optional] | +| **filterNameIn** | **String**| | [optional] | +| **filterNameNotIn** | **String**| | [optional] | ### Return type @@ -372,7 +388,7 @@ public class Example { ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | can set and clear alert workflow status conditions | - | +| **200** | preserves repeat_condition_* fields when omitted from PATCH payload | - | | **404** | non-admin can't update locked workflow | - | | **403** | non-admin can't update 'locked' attribute | - | diff --git a/pom.xml b/pom.xml index 883e12c5..43c30cf3 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ rootly jar rootly-java - 0.1.0 + 2.0.0 https://github.com/rootlyhq/rootly-java Java client library for Rootly incident management platform diff --git a/src/main/java/com/rootly/client/ApiException.java b/src/main/java/com/rootly/client/ApiException.java index 8255e6c9..68a1030c 100644 --- a/src/main/java/com/rootly/client/ApiException.java +++ b/src/main/java/com/rootly/client/ApiException.java @@ -21,7 +21,7 @@ *

ApiException class.

*/ @SuppressWarnings("serial") -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiException extends Exception { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/rootly/client/Configuration.java b/src/main/java/com/rootly/client/Configuration.java index 395d72a3..8c9c7c43 100644 --- a/src/main/java/com/rootly/client/Configuration.java +++ b/src/main/java/com/rootly/client/Configuration.java @@ -17,7 +17,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Configuration { public static final String VERSION = "v1"; diff --git a/src/main/java/com/rootly/client/JSON.java b/src/main/java/com/rootly/client/JSON.java index b5e5b243..6d72a35a 100644 --- a/src/main/java/com/rootly/client/JSON.java +++ b/src/main/java/com/rootly/client/JSON.java @@ -17,6 +17,8 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonParseException; import com.google.gson.TypeAdapter; +import java.time.Instant; +import java.time.ZoneOffset; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.google.gson.JsonElement; @@ -33,10 +35,8 @@ import java.nio.charset.StandardCharsets; import java.text.DateFormat; import java.text.ParseException; -import java.time.Instant; import java.time.LocalDate; import java.time.OffsetDateTime; -import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.Locale; @@ -100,20 +100,38 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddActionItemTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddActionItemTaskParamsAssignedToUser.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddMicrosoftTeamsChatTabTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddMicrosoftTeamsTabTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddRoleTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddRoleTaskParamsAssignedToUser.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddSlackBookmarkTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf1.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddSubscribers.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddSubscribersData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddSubscribersDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddTeamTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AddToTimelineTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AiChatResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AiChatResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AiChatResponseDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AiChatSessionMessage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AiChatSessionMessageList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Alert.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertAlertFieldValuesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertAlertingTargetsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEvent.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventEscalationTarget.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventEscalationTargetData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventFeedList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventFeedMeta.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventIncident.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventSchedule.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventScheduleEscalationPoliciesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertEventUser.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertField.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertFieldList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertFieldListDataInner.CustomTypeAdapterFactory()); @@ -128,6 +146,11 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRetriggerRule.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRetriggerRuleConditionsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRetriggerRuleList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRetriggerRuleResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRetriggerRuleResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRoute.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRouteList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRouteResponse.CustomTypeAdapterFactory()); @@ -145,6 +168,8 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertRoutingRuleTarget.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertTriggerParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertTriggerParamsAlertFieldConditionsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertTriggerParamsAlertPayloadConditions.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertTriggerParamsAlertPayloadConditionsConditionsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertUrgency.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertUrgencyList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertUrgencyResponse.CustomTypeAdapterFactory()); @@ -153,6 +178,15 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertsSourceList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertsSourceResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertsSourceResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AlertsSourceSourceableAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ApiKey.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ApiKeyList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ApiKeyResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ApiKeyResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ApiKeyWithTokenResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ApiKeyWithTokenResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ApiKeyWithTokenResponseDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ArchiveGoogleChatSpacesTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ArchiveMicrosoftTeamsChannelsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ArchiveSlackChannelsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AssignRoleToUser.CustomTypeAdapterFactory()); @@ -162,6 +196,8 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AttachAlertData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AttachAlertDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AttachDatadogDashboardsTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AttachRetrospectivePdfToFreshserviceTicketTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AttachRetrospectivePdfToJiraIssueTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Audit.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AuditsList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AuditsListDataInner.CustomTypeAdapterFactory()); @@ -171,14 +207,90 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AuthorizationResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleOpsgenieTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRolePagerdutyTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf1.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleRootlyTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf1.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf2.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf3.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf4.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.AutoAssignRoleVictorOpsTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BuiltinField.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDeleteCatalogEntities422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDeleteEnvironments422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDeleteFunctionalities422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDeleteGroups422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDeleteServices422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyCatalogEntities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf1.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyCatalogEntitiesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyEnvironments.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyEnvironmentsOneOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyEnvironmentsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyFunctionalities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyFunctionalitiesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyServices.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyServicesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyTeams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkDestroyTeamsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntities422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntitiesError.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntitiesErrorErrorsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntitiesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertCatalogEntitiesResponseDataInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertEnvironments.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertEnvironments422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertEnvironmentsEntitiesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertEnvironmentsError.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertEnvironmentsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertEnvironmentsResponseDataInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertFunctionalities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertFunctionalities422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertFunctionalitiesEntitiesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertFunctionalitiesError.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertFunctionalitiesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertFunctionalitiesResponseDataInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertGroups422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertServices.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertServices422Response.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertServicesEntitiesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertServicesError.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertServicesResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertServicesResponseDataInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertTeams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertTeamsEntitiesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertTeamsError.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertTeamsResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.BulkUpsertTeamsResponseDataInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CallPeopleTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CancelIncident.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CancelIncidentData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CancelIncidentDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Catalog.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogChecklistTemplate.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogChecklistTemplateFieldsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogChecklistTemplateList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogChecklistTemplateOwnersInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogChecklistTemplateResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogChecklistTemplateResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklist.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistChecklistFieldsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistChecklistFieldsInnerData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistChecklistFieldsInnerDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistChecklistOwnersInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistChecklistOwnersInnerData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistChecklistOwnersInnerDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityChecklistResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityProperty.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogEntityPropertyList.CustomTypeAdapterFactory()); @@ -191,12 +303,17 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogFieldResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogFieldResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogProperty.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogPropertyList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogPropertyResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogPropertyResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CatalogResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Cause.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CauseList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CauseResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CauseResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ChangeGoogleChatSpacePrivacyTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ChangeSlackChannelPrivacyTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsGroup.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsGroupCommunicationExternalGroupMembersInner.CustomTypeAdapterFactory()); @@ -209,6 +326,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsStagesResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplate.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateCommunicationTemplateStagesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateCommunicationTemplateStagesInnerData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateCommunicationType.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CommunicationsTemplateResponseData.CustomTypeAdapterFactory()); @@ -230,10 +351,20 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateConfluencePageTaskParamsIntegration.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateDatadogNotebookTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateDropboxPaperPageTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorActionRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorActionRequestAction.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorActionRequestActionMetadata.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorActionRequestActionMetadataParametersInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorRequestData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorRequestDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateEdgeConnectorRequestDataAttributesFilters.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGithubIssueTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGithubIssueTaskParamsIssueType.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGitlabIssueTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGoToMeetingTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGoogleCalendarEventTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGoogleChatSpaceTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGoogleDocsPageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGoogleDocsPermissionsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateGoogleGeminiChatCompletionTaskParams.CustomTypeAdapterFactory()); @@ -248,6 +379,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateJiraIssueTaskParamsPriority.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateJiraIssueTaskParamsStatus.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateJiraSubtaskTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateJsmopsAlertTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateLinearIssueCommentTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateLinearIssueTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateLinearIssueTaskParamsProject.CustomTypeAdapterFactory()); @@ -274,6 +406,8 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateServiceNowIncidentTaskParamsCompletion.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateSharepointPageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateShortcutStoryTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateShortcutStoryTaskParamsAnyOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateShortcutStoryTaskParamsAnyOf1.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateShortcutTaskTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateSlackChannelTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.CreateSubIncidentTaskParams.CustomTypeAdapterFactory()); @@ -326,6 +460,9 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EnvironmentResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ErrorsList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ErrorsListErrorsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalateAlert.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalateAlertData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalateAlertDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicy.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyLevel.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyLevelList.CustomTypeAdapterFactory()); @@ -338,8 +475,6 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyPathListDataInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyPathResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyPathResponseData.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyPathRulesInner.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyPathRulesInnerAnyOf.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.EscalationPolicyResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.FormField.CustomTypeAdapterFactory()); @@ -377,7 +512,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetAlertFieldIdParameter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetAlertsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetGithubCommitsTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf1.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetGitlabCommitsTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetGitlabCommitsTaskParamsAnyOf.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetPulsesTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetPulsesTaskParamsParentMessageThreadTask.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.GetTeamIdParameter.CustomTypeAdapterFactory()); @@ -386,6 +524,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.HeartbeatResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.HeartbeatResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.HttpClientTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ImportMeetingRecording.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InTriageIncident.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InTriageIncidentData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Incident.CustomTypeAdapterFactory()); @@ -451,6 +590,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentStatusPageEventList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentStatusPageEventResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentStatusPageEventResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentStatusPageEventStatusPageComponentsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentSubStatus.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentSubStatusList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentSubStatusResponse.CustomTypeAdapterFactory()); @@ -460,20 +600,38 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentTypeList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentTypeResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentTypeResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentZoomMeetingGlobalDialInNumbersInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IncidentsChartResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToGoogleChatSpaceTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToMicrosoftTeamsChannelRootlyTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToMicrosoftTeamsChannelTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelOpsgenieTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelPagerdutyTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelRootlyTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf1.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf2.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.InviteToSlackChannelVictorOpsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IpRanges.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IpRangesResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.IpRangesResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.JsonapiIncludedResource.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Links.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.LiveCallRouter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.LiveCallRouterList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.LiveCallRouterResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.LiveCallRouterResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecording.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingDetail.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingDetailAllOfTranscript.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingDetailResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingDetailResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingTranscriptSegment.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MeetingRecordingTranscriptWord.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Meta.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MitigateIncident.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.MitigateIncidentData.CustomTypeAdapterFactory()); @@ -484,6 +642,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertDataAttributesAlertFieldValuesAttributesInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertDataAttributesLabelsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertDataAttributesLabelsInnerValue.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertDataAttributesNotificationTargetsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertEvent.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertEventData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertEventDataAttributes.CustomTypeAdapterFactory()); @@ -496,6 +655,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertGroupDataAttributesAttributesInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertGroupDataAttributesConditionsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertGroupDataAttributesTargetsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertRetriggerRule.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertRetriggerRuleData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertRetriggerRuleDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertRetriggerRuleDataAttributesConditionsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertRoute.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertRouteData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertRouteDataAttributes.CustomTypeAdapterFactory()); @@ -520,24 +683,37 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertsSourceDataAttributesSourceableAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewApiKey.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewApiKeyData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewApiKeyDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAuthorization.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAuthorizationData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewAuthorizationDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalog.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogChecklistTemplate.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogChecklistTemplateData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogChecklistTemplateDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogChecklistTemplateDataAttributesFieldsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogChecklistTemplateDataAttributesOwnersInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogEntity.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogEntityData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogEntityDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogEntityDataAttributesPropertiesInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogEntityProperty.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogEntityPropertyData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogEntityPropertyDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogField.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogFieldData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogFieldDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogProperty.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogPropertyData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCatalogPropertyDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCause.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCauseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCauseDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCauseDataAttributesPropertiesInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCommunicationsGroup.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCommunicationsGroupData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewCommunicationsGroupDataAttributes.CustomTypeAdapterFactory()); @@ -600,9 +776,15 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInner.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewFormField.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewFormFieldData.CustomTypeAdapterFactory()); @@ -635,6 +817,8 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentActionItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentActionItemData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentActionItemDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentCustomFieldSelection.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentCustomFieldSelectionData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentCustomFieldSelectionDataAttributes.CustomTypeAdapterFactory()); @@ -674,6 +858,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentStatusPageEvent.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentStatusPageEventData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentStatusPageEventDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentSubStatus.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentSubStatusData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewIncidentSubStatusDataAttributes.CustomTypeAdapterFactory()); @@ -685,6 +870,9 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewLiveCallRouterDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewLiveCallRouterDataAttributesPagingTargetsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewOnCallPayReport.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewOnCallPayReportData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewOnCallPayReportDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewOnCallRole.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewOnCallRoleData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewOnCallRoleDataAttributes.CustomTypeAdapterFactory()); @@ -760,7 +948,24 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSeverity.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSeverityData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSeverityDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewShiftCoverageRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewShiftCoverageRequestData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewShiftCoverageRequestDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSla.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSlaData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSlaDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSlaDataAttributesConditionsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewSlaDataAttributesNotificationConfigurationsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageAnnouncement.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageAnnouncementData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageAnnouncementDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageComponent.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageComponentData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageComponentDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageComponentGroup.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageComponentGroupData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageComponentGroupDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewStatusPageTemplate.CustomTypeAdapterFactory()); @@ -781,10 +986,17 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewUserPhoneNumber.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewUserPhoneNumberData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewUserPhoneNumberDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewVerifiedDomain.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewVerifiedDomainData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewVerifiedDomainDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWebhooksEndpoint.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWebhooksEndpointData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWebhooksEndpointDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWebhooksEndpointDataAttributesCustomHeadersInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflow.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowActionItemFormFieldCondition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowActionItemFormFieldConditionData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowActionItemFormFieldConditionDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowCustomFieldSelection.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowCustomFieldSelectionData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowCustomFieldSelectionDataAttributes.CustomTypeAdapterFactory()); @@ -810,6 +1022,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowTaskData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowTaskDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.NewWorkflowTaskDataAttributesTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallPayReport.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallPayReportList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallPayReportResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallPayReportResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallRole.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallRoleList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallRoleRelationship.CustomTypeAdapterFactory()); @@ -821,14 +1037,34 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallShadowResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallShadowsList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OnCallShadowsListDataInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Oncall.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallListDataInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallRelationships.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallRelationshipsEscalationPolicy.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallRelationshipsEscalationPolicyData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallRelationshipsSchedule.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallRelationshipsScheduleData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallRelationshipsUser.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OncallRelationshipsUserData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OverrideShift.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OverrideShiftList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OverrideShiftResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.OverrideShiftResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PageJsmopsOnCallRespondersTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PageOpsgenieOnCallRespondersTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PagePagerdutyOnCallRespondersTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PageRootlyOnCallRespondersTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PageVictorOpsOnCallRespondersTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PageVictorOpsOnCallRespondersTaskParamsAnyOf.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PageVictorOpsOnCallRespondersTaskParamsAnyOf1.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PatchAlertRoute.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PatchAlertRouteData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PatchAlertRouteDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PatchAlertRouteDataAttributesRulesInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PatchAlertRouteDataAttributesRulesInnerDestinationsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PhoneVerificationResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Playbook.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PlaybookList.CustomTypeAdapterFactory()); @@ -850,11 +1086,13 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PulseResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PulseResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.PulseTriggerParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Receipt.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RedisClientTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RemoveGoogleDocsPermissionsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RemoveSubscribers.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RemoveSubscribersData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RemoveSubscribersDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RenameGoogleChatSpaceTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RenameMicrosoftTeamsChannelTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RenameSlackChannelTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ResolveAlert.CustomTypeAdapterFactory()); @@ -893,6 +1131,9 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RoleRelationshipData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RoleResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RoleResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RotateApiKey.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RotateApiKeyData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RotateApiKeyDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.RunCommandHerokuTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Schedule.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ScheduleList.CustomTypeAdapterFactory()); @@ -920,10 +1161,14 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SecretResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendDashboardReportTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendEmailTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendGoogleChatAttachmentsTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendGoogleChatMessageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendMicrosoftTeamsBlocksTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendMicrosoftTeamsChatMessageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendMicrosoftTeamsMessageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendSlackBlocksTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendSlackMessageTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendSlackMessageTaskParamsAnyOf.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendSmsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SendWhatsappMessageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Service.CustomTypeAdapterFactory()); @@ -937,6 +1182,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SeverityResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SeverityResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Shift.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftCoverageRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftCoverageRequestList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftCoverageRequestResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftCoverageRequestResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftListDataInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftOverride.CustomTypeAdapterFactory()); @@ -947,16 +1196,39 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftRelationshipsAssigneeData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftRelationshipsShiftOverride.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftRelationshipsShiftOverrideData.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftRelationshipsUser.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.ShiftRelationshipsUserData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SimpleTriggerParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Sla.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SlaConditionsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SlaList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SlaNotificationConfigurationsInner.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SlaResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SlaResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SlackChannel.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SnapshotDatadogGraphTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SnapshotGrafanaDashboardTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SnapshotLookerLookTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SnapshotNewRelicGraphTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SnoozeAlert.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SnoozeAlertData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.SnoozeAlertDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StartSessionRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StartSessionResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StartSessionResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Status.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageAnnouncement.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageAnnouncementList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageAnnouncementResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageAnnouncementResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponent.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponentGroup.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponentGroupList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponentGroupResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponentGroupResponseData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponentList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponentResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageComponentResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.StatusPageResponseData.CustomTypeAdapterFactory()); @@ -997,13 +1269,12 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertGroup.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertGroupData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertGroupDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRetriggerRule.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRetriggerRuleData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRetriggerRuleDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRoute.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRouteData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRouteDataAttributes.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInner.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInnerDestinationsInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRoutingRule.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRoutingRuleData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertRoutingRuleDataAttributes.CustomTypeAdapterFactory()); @@ -1015,12 +1286,18 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertsSource.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertsSourceData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAlertsSourceDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateApiKey.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateApiKeyData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateApiKeyDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAsanaTaskTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAttachedAlertsTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAuthorization.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAuthorizationData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateAuthorizationDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalog.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogChecklistTemplate.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogChecklistTemplateData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogChecklistTemplateDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogEntity.CustomTypeAdapterFactory()); @@ -1032,6 +1309,9 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogField.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogFieldData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogFieldDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogProperty.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogPropertyData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCatalogPropertyDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCause.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCauseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateCauseDataAttributes.CustomTypeAdapterFactory()); @@ -1074,6 +1354,12 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateDropboxPaperPageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnector.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnectorAction.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnectorActionRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnectorActionRequestAction.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnectorEdgeConnector.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnectorRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnectorRequestData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEdgeConnectorRequestDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEnvironment.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEnvironmentData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateEnvironmentDataAttributes.CustomTypeAdapterFactory()); @@ -1114,8 +1400,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateFunctionalityData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateFunctionalityDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateGithubIssueTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateGithubIssueTaskParamsRepository.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateGitlabIssueTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateGoogleCalendarEventTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateGoogleChatSpaceDescriptionTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateGoogleDocsPageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateHeartbeat.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateHeartbeatData.CustomTypeAdapterFactory()); @@ -1187,6 +1475,9 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateMotionTaskTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateNotionPageTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateOnCallPayReport.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateOnCallPayReportData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateOnCallPayReportDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateOnCallRole.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateOnCallRoleData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateOnCallRoleDataAttributes.CustomTypeAdapterFactory()); @@ -1256,8 +1547,20 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateSharepointPageTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateShortcutStoryTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateShortcutTaskTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateSla.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateSlaData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateSlaDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateSlackChannelTopicTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageAnnouncement.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageAnnouncementData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageAnnouncementDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageComponent.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageComponentData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageComponentDataAttributes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageComponentGroup.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageComponentGroupData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageComponentGroupDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateStatusPageTemplate.CustomTypeAdapterFactory()); @@ -1288,6 +1591,9 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWebhooksEndpointData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWebhooksEndpointDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflow.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowActionItemFormFieldCondition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowActionItemFormFieldConditionData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowActionItemFormFieldConditionDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowCustomFieldSelection.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowCustomFieldSelectionData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowCustomFieldSelectionDataAttributes.CustomTypeAdapterFactory()); @@ -1304,6 +1610,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowTaskDataAttributes.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateWorkflowTaskDataAttributesTaskParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UpdateZendeskTicketTaskParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UptimeChartResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.User.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UserEmailAddress.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UserEmailAddressList.CustomTypeAdapterFactory()); @@ -1322,16 +1629,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UserRelationships.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UserResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.UserResponseData.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequest.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsIdPatchRequest.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsIdPatchRequestEdgeConnector.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsPostRequest.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.V1EdgeConnectorsPostRequestEdgeConnector.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.VerifiedDomain.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.VerifiedDomainList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.VerifiedDomainResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.VerifiedDomainResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.VerifyPhoneNumberRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WebhooksDelivery.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WebhooksDeliveryList.CustomTypeAdapterFactory()); @@ -1342,6 +1643,10 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WebhooksEndpointResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WebhooksEndpointResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.Workflow.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WorkflowActionItemFormFieldCondition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WorkflowActionItemFormFieldConditionList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WorkflowActionItemFormFieldConditionResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WorkflowActionItemFormFieldConditionResponseData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WorkflowCustomFieldSelection.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WorkflowCustomFieldSelectionList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.rootly.client.model.WorkflowCustomFieldSelectionResponse.CustomTypeAdapterFactory()); diff --git a/src/main/java/com/rootly/client/Pair.java b/src/main/java/com/rootly/client/Pair.java index 8d15daa8..dc8628dd 100644 --- a/src/main/java/com/rootly/client/Pair.java +++ b/src/main/java/com/rootly/client/Pair.java @@ -13,7 +13,7 @@ package com.rootly.client; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Pair { private String name = ""; private String value = ""; diff --git a/src/main/java/com/rootly/client/ServerConfiguration.java b/src/main/java/com/rootly/client/ServerConfiguration.java index 90066ce5..dc76f72b 100644 --- a/src/main/java/com/rootly/client/ServerConfiguration.java +++ b/src/main/java/com/rootly/client/ServerConfiguration.java @@ -18,7 +18,7 @@ /** * Representing a Server configuration. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ServerConfiguration { public String URL; public String description; diff --git a/src/main/java/com/rootly/client/ServerVariable.java b/src/main/java/com/rootly/client/ServerVariable.java index b7efb72c..ac917d4b 100644 --- a/src/main/java/com/rootly/client/ServerVariable.java +++ b/src/main/java/com/rootly/client/ServerVariable.java @@ -18,7 +18,7 @@ /** * Representing a Server Variable for server URL template substitution. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ServerVariable { public String description; public String defaultValue; diff --git a/src/main/java/com/rootly/client/StringUtil.java b/src/main/java/com/rootly/client/StringUtil.java index 3e9c08ee..7180db64 100644 --- a/src/main/java/com/rootly/client/StringUtil.java +++ b/src/main/java/com/rootly/client/StringUtil.java @@ -16,7 +16,7 @@ import java.util.Collection; import java.util.Iterator; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StringUtil { /** * Check if the given array contains the given value (with case-insensitive comparison). diff --git a/src/main/java/com/rootly/client/api/AiChatApi.java b/src/main/java/com/rootly/client/api/AiChatApi.java new file mode 100644 index 00000000..b9d10b5a --- /dev/null +++ b/src/main/java/com/rootly/client/api/AiChatApi.java @@ -0,0 +1,665 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.AiChatResponse; +import com.rootly.client.model.AiChatSessionMessageList; +import java.util.UUID; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class AiChatApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public AiChatApi() { + this(Configuration.getDefaultApiClient()); + } + + public AiChatApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createAiChat + * @param message Message to send to the AI assistant (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident for context (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert for context (mutually exclusive with incident_id) (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 AI chat response -
403 AI chat not enabled or insufficient scope -
422 invalid request -
+ */ + public okhttp3.Call createAiChatCall(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/ai/chat"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (message != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("message", message)); + } + + if (sessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("session_id", sessionId)); + } + + if (incidentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("incident_id", incidentId)); + } + + if (alertId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alert_id", alertId)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createAiChatValidateBeforeCall(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'message' is set + if (message == null) { + throw new ApiException("Missing the required parameter 'message' when calling createAiChat(Async)"); + } + + return createAiChatCall(message, sessionId, incidentId, alertId, _callback); + + } + + /** + * Send AI chat message + * Send a message to the AI assistant and receive a synchronous reply. Optionally bind the conversation to an incident or alert for context-aware responses. Requires `ai.chat:write` OAuth scope or an API key. + * @param message Message to send to the AI assistant (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident for context (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert for context (mutually exclusive with incident_id) (optional) + * @return AiChatResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 AI chat response -
403 AI chat not enabled or insufficient scope -
422 invalid request -
+ */ + public AiChatResponse createAiChat(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId) throws ApiException { + ApiResponse localVarResp = createAiChatWithHttpInfo(message, sessionId, incidentId, alertId); + return localVarResp.getData(); + } + + /** + * Send AI chat message + * Send a message to the AI assistant and receive a synchronous reply. Optionally bind the conversation to an incident or alert for context-aware responses. Requires `ai.chat:write` OAuth scope or an API key. + * @param message Message to send to the AI assistant (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident for context (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert for context (mutually exclusive with incident_id) (optional) + * @return ApiResponse<AiChatResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 AI chat response -
403 AI chat not enabled or insufficient scope -
422 invalid request -
+ */ + public ApiResponse createAiChatWithHttpInfo(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId) throws ApiException { + okhttp3.Call localVarCall = createAiChatValidateBeforeCall(message, sessionId, incidentId, alertId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Send AI chat message (asynchronously) + * Send a message to the AI assistant and receive a synchronous reply. Optionally bind the conversation to an incident or alert for context-aware responses. Requires `ai.chat:write` OAuth scope or an API key. + * @param message Message to send to the AI assistant (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident for context (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert for context (mutually exclusive with incident_id) (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 AI chat response -
403 AI chat not enabled or insufficient scope -
422 invalid request -
+ */ + public okhttp3.Call createAiChatAsync(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createAiChatValidateBeforeCall(message, sessionId, incidentId, alertId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteAiChatSession + * @param id Session UUID (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
204 session deleted -
404 session not found -
+ */ + public okhttp3.Call deleteAiChatSessionCall(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/ai/chat/sessions/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteAiChatSessionValidateBeforeCall(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteAiChatSession(Async)"); + } + + return deleteAiChatSessionCall(id, _callback); + + } + + /** + * Delete AI chat session + * Permanently deletes an AI chat session and all its messages. Requires `ai.chat:write` OAuth scope or an API key. + * @param id Session UUID (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
204 session deleted -
404 session not found -
+ */ + public void deleteAiChatSession(@jakarta.annotation.Nonnull UUID id) throws ApiException { + deleteAiChatSessionWithHttpInfo(id); + } + + /** + * Delete AI chat session + * Permanently deletes an AI chat session and all its messages. Requires `ai.chat:write` OAuth scope or an API key. + * @param id Session UUID (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
204 session deleted -
404 session not found -
+ */ + public ApiResponse deleteAiChatSessionWithHttpInfo(@jakarta.annotation.Nonnull UUID id) throws ApiException { + okhttp3.Call localVarCall = deleteAiChatSessionValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete AI chat session (asynchronously) + * Permanently deletes an AI chat session and all its messages. Requires `ai.chat:write` OAuth scope or an API key. + * @param id Session UUID (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
204 session deleted -
404 session not found -
+ */ + public okhttp3.Call deleteAiChatSessionAsync(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteAiChatSessionValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for listAiChatSessionMessages + * @param sessionId Session UUID (required) + * @param pageNumber Page number (default 1) (optional) + * @param pageSize Messages per page (max 100, default 50) (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 session messages -
404 session not found -
+ */ + public okhttp3.Call listAiChatSessionMessagesCall(@jakarta.annotation.Nonnull UUID sessionId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/ai/chat/sessions/{session_id}/messages" + .replace("{" + "session_id" + "}", localVarApiClient.escapeString(sessionId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listAiChatSessionMessagesValidateBeforeCall(@jakarta.annotation.Nonnull UUID sessionId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'sessionId' is set + if (sessionId == null) { + throw new ApiException("Missing the required parameter 'sessionId' when calling listAiChatSessionMessages(Async)"); + } + + return listAiChatSessionMessagesCall(sessionId, pageNumber, pageSize, _callback); + + } + + /** + * List AI chat session messages + * Returns the user and assistant message history for a session, paginated and chronologically ordered. Internal tool messages are filtered out. Requires `ai.chat:read` OAuth scope or an API key. + * @param sessionId Session UUID (required) + * @param pageNumber Page number (default 1) (optional) + * @param pageSize Messages per page (max 100, default 50) (optional) + * @return AiChatSessionMessageList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 session messages -
404 session not found -
+ */ + public AiChatSessionMessageList listAiChatSessionMessages(@jakarta.annotation.Nonnull UUID sessionId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listAiChatSessionMessagesWithHttpInfo(sessionId, pageNumber, pageSize); + return localVarResp.getData(); + } + + /** + * List AI chat session messages + * Returns the user and assistant message history for a session, paginated and chronologically ordered. Internal tool messages are filtered out. Requires `ai.chat:read` OAuth scope or an API key. + * @param sessionId Session UUID (required) + * @param pageNumber Page number (default 1) (optional) + * @param pageSize Messages per page (max 100, default 50) (optional) + * @return ApiResponse<AiChatSessionMessageList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 session messages -
404 session not found -
+ */ + public ApiResponse listAiChatSessionMessagesWithHttpInfo(@jakarta.annotation.Nonnull UUID sessionId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listAiChatSessionMessagesValidateBeforeCall(sessionId, pageNumber, pageSize, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List AI chat session messages (asynchronously) + * Returns the user and assistant message history for a session, paginated and chronologically ordered. Internal tool messages are filtered out. Requires `ai.chat:read` OAuth scope or an API key. + * @param sessionId Session UUID (required) + * @param pageNumber Page number (default 1) (optional) + * @param pageSize Messages per page (max 100, default 50) (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 session messages -
404 session not found -
+ */ + public okhttp3.Call listAiChatSessionMessagesAsync(@jakarta.annotation.Nonnull UUID sessionId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listAiChatSessionMessagesValidateBeforeCall(sessionId, pageNumber, pageSize, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for streamAiChat + * @param message Message to send (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert (mutually exclusive with incident_id) (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 SSE event stream -
403 AI chat not enabled -
+ */ + public okhttp3.Call streamAiChatCall(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/ai/chat/stream"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (message != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("message", message)); + } + + if (sessionId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("session_id", sessionId)); + } + + if (incidentId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("incident_id", incidentId)); + } + + if (alertId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("alert_id", alertId)); + } + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call streamAiChatValidateBeforeCall(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'message' is set + if (message == null) { + throw new ApiException("Missing the required parameter 'message' when calling streamAiChat(Async)"); + } + + return streamAiChatCall(message, sessionId, incidentId, alertId, _callback); + + } + + /** + * Stream AI chat response (SSE) + * Send a message and receive the AI response as a Server-Sent Events stream. Optionally bind to an incident or alert for context. Events: `session_id` (initial), `text` (content chunks), `task_update` (tool progress), `error`, `done` (terminal with status). Requires `ai.chat:write` OAuth scope or an API key. + * @param message Message to send (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert (mutually exclusive with incident_id) (optional) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 SSE event stream -
403 AI chat not enabled -
+ */ + public void streamAiChat(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId) throws ApiException { + streamAiChatWithHttpInfo(message, sessionId, incidentId, alertId); + } + + /** + * Stream AI chat response (SSE) + * Send a message and receive the AI response as a Server-Sent Events stream. Optionally bind to an incident or alert for context. Events: `session_id` (initial), `text` (content chunks), `task_update` (tool progress), `error`, `done` (terminal with status). Requires `ai.chat:write` OAuth scope or an API key. + * @param message Message to send (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert (mutually exclusive with incident_id) (optional) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 SSE event stream -
403 AI chat not enabled -
+ */ + public ApiResponse streamAiChatWithHttpInfo(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId) throws ApiException { + okhttp3.Call localVarCall = streamAiChatValidateBeforeCall(message, sessionId, incidentId, alertId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Stream AI chat response (SSE) (asynchronously) + * Send a message and receive the AI response as a Server-Sent Events stream. Optionally bind to an incident or alert for context. Events: `session_id` (initial), `text` (content chunks), `task_update` (tool progress), `error`, `done` (terminal with status). Requires `ai.chat:write` OAuth scope or an API key. + * @param message Message to send (required) + * @param sessionId Resume an existing session (optional) + * @param incidentId Bind session to an incident (mutually exclusive with alert_id) (optional) + * @param alertId Bind session to an alert (mutually exclusive with incident_id) (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 SSE event stream -
403 AI chat not enabled -
+ */ + public okhttp3.Call streamAiChatAsync(@jakarta.annotation.Nonnull String message, @jakarta.annotation.Nullable UUID sessionId, @jakarta.annotation.Nullable UUID incidentId, @jakarta.annotation.Nullable UUID alertId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = streamAiChatValidateBeforeCall(message, sessionId, incidentId, alertId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/AlertEventsApi.java b/src/main/java/com/rootly/client/api/AlertEventsApi.java index 61c9ec8c..3e32ccef 100644 --- a/src/main/java/com/rootly/client/api/AlertEventsApi.java +++ b/src/main/java/com/rootly/client/api/AlertEventsApi.java @@ -27,6 +27,7 @@ import java.io.IOException; +import com.rootly.client.model.AlertEventFeedList; import com.rootly.client.model.AlertEventList; import com.rootly.client.model.AlertEventResponse; import com.rootly.client.model.ErrorsList; @@ -637,6 +638,211 @@ public okhttp3.Call listAlertEventsAsync(@jakarta.annotation.Nonnull String aler localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for listAlertEventsFeed + * @param include (optional) + * @param pageSize Page size (max 50). (optional) + * @param pageAfter Cursor token from the previous response's `meta.next_cursor`. Pass the same `sort` value used to obtain the cursor. (optional) + * @param sort Sort by `created_at`. Defaults to `created_at` (oldest-first). Use `-created_at` for newest-first. (optional) + * @param filterKind (optional) + * @param filterAction (optional) + * @param filterAlertId (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listAlertEventsFeedCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterAction, @jakarta.annotation.Nullable String filterAlertId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/alert_events"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + if (pageAfter != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[after]", pageAfter)); + } + + if (sort != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); + } + + if (filterKind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind)); + } + + if (filterAction != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[action]", filterAction)); + } + + if (filterAlertId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_id]", filterAlertId)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listAlertEventsFeedValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterAction, @jakarta.annotation.Nullable String filterAlertId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + return listAlertEventsFeedCall(include, pageSize, pageAfter, sort, filterKind, filterAction, filterAlertId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + + } + + /** + * List alert events across alerts + * Returns a flat list of alert events across all alerts the requester can access. Designed for periodic polling: use `page[after]` with the `next_cursor` returned in the previous response to stream forward. + * @param include (optional) + * @param pageSize Page size (max 50). (optional) + * @param pageAfter Cursor token from the previous response's `meta.next_cursor`. Pass the same `sort` value used to obtain the cursor. (optional) + * @param sort Sort by `created_at`. Defaults to `created_at` (oldest-first). Use `-created_at` for newest-first. (optional) + * @param filterKind (optional) + * @param filterAction (optional) + * @param filterAlertId (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return AlertEventFeedList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public AlertEventFeedList listAlertEventsFeed(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterAction, @jakarta.annotation.Nullable String filterAlertId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + ApiResponse localVarResp = listAlertEventsFeedWithHttpInfo(include, pageSize, pageAfter, sort, filterKind, filterAction, filterAlertId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + return localVarResp.getData(); + } + + /** + * List alert events across alerts + * Returns a flat list of alert events across all alerts the requester can access. Designed for periodic polling: use `page[after]` with the `next_cursor` returned in the previous response to stream forward. + * @param include (optional) + * @param pageSize Page size (max 50). (optional) + * @param pageAfter Cursor token from the previous response's `meta.next_cursor`. Pass the same `sort` value used to obtain the cursor. (optional) + * @param sort Sort by `created_at`. Defaults to `created_at` (oldest-first). Use `-created_at` for newest-first. (optional) + * @param filterKind (optional) + * @param filterAction (optional) + * @param filterAlertId (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return ApiResponse<AlertEventFeedList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listAlertEventsFeedWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterAction, @jakarta.annotation.Nullable String filterAlertId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + okhttp3.Call localVarCall = listAlertEventsFeedValidateBeforeCall(include, pageSize, pageAfter, sort, filterKind, filterAction, filterAlertId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List alert events across alerts (asynchronously) + * Returns a flat list of alert events across all alerts the requester can access. Designed for periodic polling: use `page[after]` with the `next_cursor` returned in the previous response to stream forward. + * @param include (optional) + * @param pageSize Page size (max 50). (optional) + * @param pageAfter Cursor token from the previous response's `meta.next_cursor`. Pass the same `sort` value used to obtain the cursor. (optional) + * @param sort Sort by `created_at`. Defaults to `created_at` (oldest-first). Use `-created_at` for newest-first. (optional) + * @param filterKind (optional) + * @param filterAction (optional) + * @param filterAlertId (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listAlertEventsFeedAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterAction, @jakarta.annotation.Nullable String filterAlertId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listAlertEventsFeedValidateBeforeCall(include, pageSize, pageAfter, sort, filterKind, filterAction, filterAlertId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for updateAlertEvent * @param id (required) diff --git a/src/main/java/com/rootly/client/api/AlertFieldsApi.java b/src/main/java/com/rootly/client/api/AlertFieldsApi.java index 33068a19..06402210 100644 --- a/src/main/java/com/rootly/client/api/AlertFieldsApi.java +++ b/src/main/java/com/rootly/client/api/AlertFieldsApi.java @@ -223,7 +223,7 @@ public okhttp3.Call createAlertFieldAsync(@jakarta.annotation.Nonnull NewAlertFi Response Details Status Code Description Response Headers 200 custom alert field deleted successfully - - 422 cannot delete alert field with associated records - + 422 cannot delete alert field referenced by escalation path field rules - 404 resource not found - */ @@ -294,7 +294,7 @@ private okhttp3.Call deleteAlertFieldValidateBeforeCall(@jakarta.annotation.Nonn Response Details Status Code Description Response Headers 200 custom alert field deleted successfully - - 422 cannot delete alert field with associated records - + 422 cannot delete alert field referenced by escalation path field rules - 404 resource not found - */ @@ -314,7 +314,7 @@ public AlertFieldResponse deleteAlertField(@jakarta.annotation.Nonnull GetAlertF Response Details Status Code Description Response Headers 200 custom alert field deleted successfully - - 422 cannot delete alert field with associated records - + 422 cannot delete alert field referenced by escalation path field rules - 404 resource not found - */ @@ -336,7 +336,7 @@ public ApiResponse deleteAlertFieldWithHttpInfo(@jakarta.ann Response Details Status Code Description Response Headers 200 custom alert field deleted successfully - - 422 cannot delete alert field with associated records - + 422 cannot delete alert field referenced by escalation path field rules - 404 resource not found - */ @@ -490,6 +490,14 @@ public okhttp3.Call getAlertFieldAsync(@jakarta.annotation.Nonnull GetAlertField * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -501,7 +509,7 @@ public okhttp3.Call getAlertFieldAsync(@jakarta.annotation.Nonnull GetAlertField 200 success - */ - public okhttp3.Call listAlertFieldsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertFieldsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -566,6 +574,38 @@ public okhttp3.Call listAlertFieldsCall(@jakarta.annotation.Nullable String incl localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterKindEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][eq]", filterKindEq)); + } + + if (filterKindNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_eq]", filterKindNotEq)); + } + + if (filterKindIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][in]", filterKindIn)); + } + + if (filterKindNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_in]", filterKindNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -590,8 +630,8 @@ public okhttp3.Call listAlertFieldsCall(@jakarta.annotation.Nullable String incl } @SuppressWarnings("rawtypes") - private okhttp3.Call listAlertFieldsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listAlertFieldsCall(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listAlertFieldsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listAlertFieldsCall(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, sort, _callback); } @@ -608,6 +648,14 @@ private okhttp3.Call listAlertFieldsValidateBeforeCall(@jakarta.annotation.Nulla * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) * @param sort (optional) * @return AlertFieldList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -618,8 +666,8 @@ private okhttp3.Call listAlertFieldsValidateBeforeCall(@jakarta.annotation.Nulla 200 success - */ - public AlertFieldList listAlertFields(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listAlertFieldsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public AlertFieldList listAlertFields(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listAlertFieldsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, sort); return localVarResp.getData(); } @@ -636,6 +684,14 @@ public AlertFieldList listAlertFields(@jakarta.annotation.Nullable String includ * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) * @param sort (optional) * @return ApiResponse<AlertFieldList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -646,8 +702,8 @@ public AlertFieldList listAlertFields(@jakarta.annotation.Nullable String includ 200 success - */ - public ApiResponse listAlertFieldsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listAlertFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listAlertFieldsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listAlertFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -665,6 +721,14 @@ public ApiResponse listAlertFieldsWithHttpInfo(@jakarta.annotati * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -676,9 +740,9 @@ public ApiResponse listAlertFieldsWithHttpInfo(@jakarta.annotati 200 success - */ - public okhttp3.Call listAlertFieldsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertFieldsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAlertFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listAlertFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/AlertGroupsApi.java b/src/main/java/com/rootly/client/api/AlertGroupsApi.java index dc1449e0..04f5d73b 100644 --- a/src/main/java/com/rootly/client/api/AlertGroupsApi.java +++ b/src/main/java/com/rootly/client/api/AlertGroupsApi.java @@ -477,6 +477,14 @@ public okhttp3.Call getAlertGroupAsync(@jakarta.annotation.Nonnull GetAlertField /** * Build call for listAlertGroups * @param include (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -487,7 +495,7 @@ public okhttp3.Call getAlertGroupAsync(@jakarta.annotation.Nonnull GetAlertField 200 success - */ - public okhttp3.Call listAlertGroupsCall(@jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertGroupsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -516,6 +524,38 @@ public okhttp3.Call listAlertGroupsCall(@jakarta.annotation.Nullable String incl localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -536,8 +576,8 @@ public okhttp3.Call listAlertGroupsCall(@jakarta.annotation.Nullable String incl } @SuppressWarnings("rawtypes") - private okhttp3.Call listAlertGroupsValidateBeforeCall(@jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { - return listAlertGroupsCall(include, _callback); + private okhttp3.Call listAlertGroupsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { + return listAlertGroupsCall(include, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, _callback); } @@ -545,6 +585,14 @@ private okhttp3.Call listAlertGroupsValidateBeforeCall(@jakarta.annotation.Nulla * List alert groups * List alert groups * @param include (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @return AlertGroupList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -554,8 +602,8 @@ private okhttp3.Call listAlertGroupsValidateBeforeCall(@jakarta.annotation.Nulla 200 success - */ - public AlertGroupList listAlertGroups(@jakarta.annotation.Nullable String include) throws ApiException { - ApiResponse localVarResp = listAlertGroupsWithHttpInfo(include); + public AlertGroupList listAlertGroups(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn) throws ApiException { + ApiResponse localVarResp = listAlertGroupsWithHttpInfo(include, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); return localVarResp.getData(); } @@ -563,6 +611,14 @@ public AlertGroupList listAlertGroups(@jakarta.annotation.Nullable String includ * List alert groups * List alert groups * @param include (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @return ApiResponse<AlertGroupList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -572,8 +628,8 @@ public AlertGroupList listAlertGroups(@jakarta.annotation.Nullable String includ 200 success - */ - public ApiResponse listAlertGroupsWithHttpInfo(@jakarta.annotation.Nullable String include) throws ApiException { - okhttp3.Call localVarCall = listAlertGroupsValidateBeforeCall(include, null); + public ApiResponse listAlertGroupsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn) throws ApiException { + okhttp3.Call localVarCall = listAlertGroupsValidateBeforeCall(include, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -582,6 +638,14 @@ public ApiResponse listAlertGroupsWithHttpInfo(@jakarta.annotati * List alert groups (asynchronously) * List alert groups * @param include (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -592,9 +656,9 @@ public ApiResponse listAlertGroupsWithHttpInfo(@jakarta.annotati 200 success - */ - public okhttp3.Call listAlertGroupsAsync(@jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertGroupsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAlertGroupsValidateBeforeCall(include, _callback); + okhttp3.Call localVarCall = listAlertGroupsValidateBeforeCall(include, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/AlertRetriggerRulesApi.java b/src/main/java/com/rootly/client/api/AlertRetriggerRulesApi.java new file mode 100644 index 00000000..e4de2780 --- /dev/null +++ b/src/main/java/com/rootly/client/api/AlertRetriggerRulesApi.java @@ -0,0 +1,713 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.AlertRetriggerRuleList; +import com.rootly.client.model.AlertRetriggerRuleResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewAlertRetriggerRule; +import com.rootly.client.model.UpdateAlertRetriggerRule; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class AlertRetriggerRulesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public AlertRetriggerRulesApi() { + this(Configuration.getDefaultApiClient()); + } + + public AlertRetriggerRulesApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createAlertRetriggerRule + * @param newAlertRetriggerRule (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 alert re-trigger rule created -
422 invalid request -
+ */ + public okhttp3.Call createAlertRetriggerRuleCall(@jakarta.annotation.Nonnull NewAlertRetriggerRule newAlertRetriggerRule, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newAlertRetriggerRule; + + // create path and map variables + String localVarPath = "/v1/alert_retrigger_rules"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createAlertRetriggerRuleValidateBeforeCall(@jakarta.annotation.Nonnull NewAlertRetriggerRule newAlertRetriggerRule, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newAlertRetriggerRule' is set + if (newAlertRetriggerRule == null) { + throw new ApiException("Missing the required parameter 'newAlertRetriggerRule' when calling createAlertRetriggerRule(Async)"); + } + + return createAlertRetriggerRuleCall(newAlertRetriggerRule, _callback); + + } + + /** + * Creates an alert re-trigger rule + * + * @param newAlertRetriggerRule (required) + * @return AlertRetriggerRuleResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 alert re-trigger rule created -
422 invalid request -
+ */ + public AlertRetriggerRuleResponse createAlertRetriggerRule(@jakarta.annotation.Nonnull NewAlertRetriggerRule newAlertRetriggerRule) throws ApiException { + ApiResponse localVarResp = createAlertRetriggerRuleWithHttpInfo(newAlertRetriggerRule); + return localVarResp.getData(); + } + + /** + * Creates an alert re-trigger rule + * + * @param newAlertRetriggerRule (required) + * @return ApiResponse<AlertRetriggerRuleResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 alert re-trigger rule created -
422 invalid request -
+ */ + public ApiResponse createAlertRetriggerRuleWithHttpInfo(@jakarta.annotation.Nonnull NewAlertRetriggerRule newAlertRetriggerRule) throws ApiException { + okhttp3.Call localVarCall = createAlertRetriggerRuleValidateBeforeCall(newAlertRetriggerRule, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates an alert re-trigger rule (asynchronously) + * + * @param newAlertRetriggerRule (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 alert re-trigger rule created -
422 invalid request -
+ */ + public okhttp3.Call createAlertRetriggerRuleAsync(@jakarta.annotation.Nonnull NewAlertRetriggerRule newAlertRetriggerRule, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createAlertRetriggerRuleValidateBeforeCall(newAlertRetriggerRule, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteAlertRetriggerRule + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule deleted -
+ */ + public okhttp3.Call deleteAlertRetriggerRuleCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/alert_retrigger_rules/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteAlertRetriggerRuleValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteAlertRetriggerRule(Async)"); + } + + return deleteAlertRetriggerRuleCall(id, _callback); + + } + + /** + * Deletes an alert re-trigger rule + * + * @param id (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule deleted -
+ */ + public void deleteAlertRetriggerRule(@jakarta.annotation.Nonnull String id) throws ApiException { + deleteAlertRetriggerRuleWithHttpInfo(id); + } + + /** + * Deletes an alert re-trigger rule + * + * @param id (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule deleted -
+ */ + public ApiResponse deleteAlertRetriggerRuleWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteAlertRetriggerRuleValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Deletes an alert re-trigger rule (asynchronously) + * + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule deleted -
+ */ + public okhttp3.Call deleteAlertRetriggerRuleAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteAlertRetriggerRuleValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getAlertRetriggerRule + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule found -
+ */ + public okhttp3.Call getAlertRetriggerRuleCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/alert_retrigger_rules/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAlertRetriggerRuleValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getAlertRetriggerRule(Async)"); + } + + return getAlertRetriggerRuleCall(id, _callback); + + } + + /** + * Retrieves an alert re-trigger rule + * + * @param id (required) + * @return AlertRetriggerRuleResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule found -
+ */ + public AlertRetriggerRuleResponse getAlertRetriggerRule(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = getAlertRetriggerRuleWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Retrieves an alert re-trigger rule + * + * @param id (required) + * @return ApiResponse<AlertRetriggerRuleResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule found -
+ */ + public ApiResponse getAlertRetriggerRuleWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = getAlertRetriggerRuleValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Retrieves an alert re-trigger rule (asynchronously) + * + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule found -
+ */ + public okhttp3.Call getAlertRetriggerRuleAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAlertRetriggerRuleValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listAlertRetriggerRules + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rules listed -
+ */ + public okhttp3.Call listAlertRetriggerRulesCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/alert_retrigger_rules"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listAlertRetriggerRulesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return listAlertRetriggerRulesCall(_callback); + + } + + /** + * List alert re-trigger rules + * + * @return AlertRetriggerRuleList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rules listed -
+ */ + public AlertRetriggerRuleList listAlertRetriggerRules() throws ApiException { + ApiResponse localVarResp = listAlertRetriggerRulesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * List alert re-trigger rules + * + * @return ApiResponse<AlertRetriggerRuleList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rules listed -
+ */ + public ApiResponse listAlertRetriggerRulesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = listAlertRetriggerRulesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List alert re-trigger rules (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rules listed -
+ */ + public okhttp3.Call listAlertRetriggerRulesAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listAlertRetriggerRulesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateAlertRetriggerRule + * @param id (required) + * @param updateAlertRetriggerRule (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule updated -
+ */ + public okhttp3.Call updateAlertRetriggerRuleCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateAlertRetriggerRule updateAlertRetriggerRule, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateAlertRetriggerRule; + + // create path and map variables + String localVarPath = "/v1/alert_retrigger_rules/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateAlertRetriggerRuleValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateAlertRetriggerRule updateAlertRetriggerRule, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateAlertRetriggerRule(Async)"); + } + + // verify the required parameter 'updateAlertRetriggerRule' is set + if (updateAlertRetriggerRule == null) { + throw new ApiException("Missing the required parameter 'updateAlertRetriggerRule' when calling updateAlertRetriggerRule(Async)"); + } + + return updateAlertRetriggerRuleCall(id, updateAlertRetriggerRule, _callback); + + } + + /** + * Updates an alert re-trigger rule + * + * @param id (required) + * @param updateAlertRetriggerRule (required) + * @return AlertRetriggerRuleResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule updated -
+ */ + public AlertRetriggerRuleResponse updateAlertRetriggerRule(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateAlertRetriggerRule updateAlertRetriggerRule) throws ApiException { + ApiResponse localVarResp = updateAlertRetriggerRuleWithHttpInfo(id, updateAlertRetriggerRule); + return localVarResp.getData(); + } + + /** + * Updates an alert re-trigger rule + * + * @param id (required) + * @param updateAlertRetriggerRule (required) + * @return ApiResponse<AlertRetriggerRuleResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule updated -
+ */ + public ApiResponse updateAlertRetriggerRuleWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateAlertRetriggerRule updateAlertRetriggerRule) throws ApiException { + okhttp3.Call localVarCall = updateAlertRetriggerRuleValidateBeforeCall(id, updateAlertRetriggerRule, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Updates an alert re-trigger rule (asynchronously) + * + * @param id (required) + * @param updateAlertRetriggerRule (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 alert re-trigger rule updated -
+ */ + public okhttp3.Call updateAlertRetriggerRuleAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateAlertRetriggerRule updateAlertRetriggerRule, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateAlertRetriggerRuleValidateBeforeCall(id, updateAlertRetriggerRule, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/AlertRoutesApi.java b/src/main/java/com/rootly/client/api/AlertRoutesApi.java index 5b273e34..3e93ec33 100644 --- a/src/main/java/com/rootly/client/api/AlertRoutesApi.java +++ b/src/main/java/com/rootly/client/api/AlertRoutesApi.java @@ -32,6 +32,7 @@ import com.rootly.client.model.DeleteAlertRoute200Response; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.NewAlertRoute; +import com.rootly.client.model.PatchAlertRoute; import com.rootly.client.model.UpdateAlertRoute; import java.lang.reflect.Type; @@ -424,7 +425,7 @@ private okhttp3.Call getAlertRouteValidateBeforeCall(@jakarta.annotation.Nonnull /** * Get an alert route - * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Optional Parameters - **show_nested_ids** (query parameter): When set to `true`, the response will include IDs for all nested resources (destinations, condition_groups, conditions). This is useful when you need to reference these nested resources for updates or deletions via PATCH requests. Example: `GET /v1/alert_routes/{id}?show_nested_ids=true` * @param id (required) * @return AlertRouteResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -444,7 +445,7 @@ public AlertRouteResponse getAlertRoute(@jakarta.annotation.Nonnull String id) t /** * Get an alert route - * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Optional Parameters - **show_nested_ids** (query parameter): When set to `true`, the response will include IDs for all nested resources (destinations, condition_groups, conditions). This is useful when you need to reference these nested resources for updates or deletions via PATCH requests. Example: `GET /v1/alert_routes/{id}?show_nested_ids=true` * @param id (required) * @return ApiResponse<AlertRouteResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -465,7 +466,7 @@ public ApiResponse getAlertRouteWithHttpInfo(@jakarta.annota /** * Get an alert route (asynchronously) - * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Optional Parameters - **show_nested_ids** (query parameter): When set to `true`, the response will include IDs for all nested resources (destinations, condition_groups, conditions). This is useful when you need to reference these nested resources for updates or deletions via PATCH requests. Example: `GET /v1/alert_routes/{id}?show_nested_ids=true` * @param id (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -492,6 +493,14 @@ public okhttp3.Call getAlertRouteAsync(@jakarta.annotation.Nonnull String id, fi * @param pageSize (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -504,7 +513,7 @@ public okhttp3.Call getAlertRouteAsync(@jakarta.annotation.Nonnull String id, fi 401 unauthorized - */ - public okhttp3.Call listAlertRoutesCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertRoutesCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -545,6 +554,38 @@ public okhttp3.Call listAlertRoutesCall(@jakarta.annotation.Nullable Integer pag localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -569,8 +610,8 @@ public okhttp3.Call listAlertRoutesCall(@jakarta.annotation.Nullable Integer pag } @SuppressWarnings("rawtypes") - private okhttp3.Call listAlertRoutesValidateBeforeCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listAlertRoutesCall(pageNumber, pageSize, filterSearch, filterName, sort, _callback); + private okhttp3.Call listAlertRoutesValidateBeforeCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listAlertRoutesCall(pageNumber, pageSize, filterSearch, filterName, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); } @@ -581,6 +622,14 @@ private okhttp3.Call listAlertRoutesValidateBeforeCall(@jakarta.annotation.Nulla * @param pageSize (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return AlertRouteList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -592,8 +641,8 @@ private okhttp3.Call listAlertRoutesValidateBeforeCall(@jakarta.annotation.Nulla 401 unauthorized - */ - public AlertRouteList listAlertRoutes(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listAlertRoutesWithHttpInfo(pageNumber, pageSize, filterSearch, filterName, sort); + public AlertRouteList listAlertRoutes(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listAlertRoutesWithHttpInfo(pageNumber, pageSize, filterSearch, filterName, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); return localVarResp.getData(); } @@ -604,6 +653,14 @@ public AlertRouteList listAlertRoutes(@jakarta.annotation.Nullable Integer pageN * @param pageSize (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return ApiResponse<AlertRouteList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -615,8 +672,8 @@ public AlertRouteList listAlertRoutes(@jakarta.annotation.Nullable Integer pageN 401 unauthorized - */ - public ApiResponse listAlertRoutesWithHttpInfo(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listAlertRoutesValidateBeforeCall(pageNumber, pageSize, filterSearch, filterName, sort, null); + public ApiResponse listAlertRoutesWithHttpInfo(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listAlertRoutesValidateBeforeCall(pageNumber, pageSize, filterSearch, filterName, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -628,6 +685,14 @@ public ApiResponse listAlertRoutesWithHttpInfo(@jakarta.annotati * @param pageSize (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -640,13 +705,162 @@ public ApiResponse listAlertRoutesWithHttpInfo(@jakarta.annotati 401 unauthorized - */ - public okhttp3.Call listAlertRoutesAsync(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertRoutesAsync(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAlertRoutesValidateBeforeCall(pageNumber, pageSize, filterSearch, filterName, sort, _callback); + okhttp3.Call localVarCall = listAlertRoutesValidateBeforeCall(pageNumber, pageSize, filterSearch, filterName, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for patchAlertRoute + * @param id (required) + * @param patchAlertRoute (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 delete existing rule by id with _destroy -
422 invalid request -
401 unauthorized -
404 cross-team access denied -
+ */ + public okhttp3.Call patchAlertRouteCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull PatchAlertRoute patchAlertRoute, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = patchAlertRoute; + + // create path and map variables + String localVarPath = "/v1/alert_routes/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call patchAlertRouteValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull PatchAlertRoute patchAlertRoute, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling patchAlertRoute(Async)"); + } + + // verify the required parameter 'patchAlertRoute' is set + if (patchAlertRoute == null) { + throw new ApiException("Missing the required parameter 'patchAlertRoute' when calling patchAlertRoute(Async)"); + } + + return patchAlertRouteCall(id, patchAlertRoute, _callback); + + } + + /** + * Update an alert route + * Updates an alert route. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * @param id (required) + * @param patchAlertRoute (required) + * @return AlertRouteResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 delete existing rule by id with _destroy -
422 invalid request -
401 unauthorized -
404 cross-team access denied -
+ */ + public AlertRouteResponse patchAlertRoute(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull PatchAlertRoute patchAlertRoute) throws ApiException { + ApiResponse localVarResp = patchAlertRouteWithHttpInfo(id, patchAlertRoute); + return localVarResp.getData(); + } + + /** + * Update an alert route + * Updates an alert route. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * @param id (required) + * @param patchAlertRoute (required) + * @return ApiResponse<AlertRouteResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 delete existing rule by id with _destroy -
422 invalid request -
401 unauthorized -
404 cross-team access denied -
+ */ + public ApiResponse patchAlertRouteWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull PatchAlertRoute patchAlertRoute) throws ApiException { + okhttp3.Call localVarCall = patchAlertRouteValidateBeforeCall(id, patchAlertRoute, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update an alert route (asynchronously) + * Updates an alert route. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * @param id (required) + * @param patchAlertRoute (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 delete existing rule by id with _destroy -
422 invalid request -
401 unauthorized -
404 cross-team access denied -
+ */ + public okhttp3.Call patchAlertRouteAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull PatchAlertRoute patchAlertRoute, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = patchAlertRouteValidateBeforeCall(id, patchAlertRoute, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for updateAlertRoute * @param id (required) @@ -727,7 +941,7 @@ private okhttp3.Call updateAlertRouteValidateBeforeCall(@jakarta.annotation.Nonn /** * Update an alert route - * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. + * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ### Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. * @param id (required) * @param updateAlertRoute (required) * @return AlertRouteResponse @@ -748,7 +962,7 @@ public AlertRouteResponse updateAlertRoute(@jakarta.annotation.Nonnull String id /** * Update an alert route - * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. + * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ### Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. * @param id (required) * @param updateAlertRoute (required) * @return ApiResponse<AlertRouteResponse> @@ -770,7 +984,7 @@ public ApiResponse updateAlertRouteWithHttpInfo(@jakarta.ann /** * Update an alert route (asynchronously) - * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. + * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ### Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. * @param id (required) * @param updateAlertRoute (required) * @param _callback The callback to be executed when the API call finishes diff --git a/src/main/java/com/rootly/client/api/AlertRoutingRulesApi.java b/src/main/java/com/rootly/client/api/AlertRoutingRulesApi.java index 5f468ece..3236225f 100644 --- a/src/main/java/com/rootly/client/api/AlertRoutingRulesApi.java +++ b/src/main/java/com/rootly/client/api/AlertRoutingRulesApi.java @@ -485,6 +485,14 @@ public okhttp3.Call getAlertRoutingRuleAsync(@jakarta.annotation.Nonnull GetAler * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -496,7 +504,7 @@ public okhttp3.Call getAlertRoutingRuleAsync(@jakarta.annotation.Nonnull GetAler 200 success - */ - public okhttp3.Call listAlertRoutingRulesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertRoutingRulesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -557,6 +565,38 @@ public okhttp3.Call listAlertRoutingRulesCall(@jakarta.annotation.Nullable Strin localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -581,8 +621,8 @@ public okhttp3.Call listAlertRoutingRulesCall(@jakarta.annotation.Nullable Strin } @SuppressWarnings("rawtypes") - private okhttp3.Call listAlertRoutingRulesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listAlertRoutingRulesCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listAlertRoutingRulesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listAlertRoutingRulesCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); } @@ -598,6 +638,14 @@ private okhttp3.Call listAlertRoutingRulesValidateBeforeCall(@jakarta.annotation * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return AlertRoutingRuleList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -608,8 +656,8 @@ private okhttp3.Call listAlertRoutingRulesValidateBeforeCall(@jakarta.annotation 200 success - */ - public AlertRoutingRuleList listAlertRoutingRules(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listAlertRoutingRulesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public AlertRoutingRuleList listAlertRoutingRules(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listAlertRoutingRulesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); return localVarResp.getData(); } @@ -625,6 +673,14 @@ public AlertRoutingRuleList listAlertRoutingRules(@jakarta.annotation.Nullable S * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return ApiResponse<AlertRoutingRuleList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -635,8 +691,8 @@ public AlertRoutingRuleList listAlertRoutingRules(@jakarta.annotation.Nullable S 200 success - */ - public ApiResponse listAlertRoutingRulesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listAlertRoutingRulesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listAlertRoutingRulesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listAlertRoutingRulesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -653,6 +709,14 @@ public ApiResponse listAlertRoutingRulesWithHttpInfo(@jaka * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -664,9 +728,9 @@ public ApiResponse listAlertRoutingRulesWithHttpInfo(@jaka 200 success - */ - public okhttp3.Call listAlertRoutingRulesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertRoutingRulesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAlertRoutingRulesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listAlertRoutingRulesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/AlertSourcesApi.java b/src/main/java/com/rootly/client/api/AlertSourcesApi.java index a234d9d7..94000420 100644 --- a/src/main/java/com/rootly/client/api/AlertSourcesApi.java +++ b/src/main/java/com/rootly/client/api/AlertSourcesApi.java @@ -87,7 +87,6 @@ public void setCustomBaseUrl(String customBaseUrl) { Response Details Status Code Description Response Headers 201 alert source created with resolution rule - - 400 alert template attribute when alert fields are enabled - 422 invalid request - 401 responds with unauthorized for invalid token - @@ -159,7 +158,6 @@ private okhttp3.Call createAlertsSourceValidateBeforeCall(@jakarta.annotation.No Response Details Status Code Description Response Headers 201 alert source created with resolution rule - - 400 alert template attribute when alert fields are enabled - 422 invalid request - 401 responds with unauthorized for invalid token - @@ -180,7 +178,6 @@ public AlertsSourceResponse createAlertsSource(@jakarta.annotation.Nonnull NewAl Response Details Status Code Description Response Headers 201 alert source created with resolution rule - - 400 alert template attribute when alert fields are enabled - 422 invalid request - 401 responds with unauthorized for invalid token - @@ -203,7 +200,6 @@ public ApiResponse createAlertsSourceWithHttpInfo(@jakarta Response Details Status Code Description Response Headers 201 alert source created with resolution rule - - 400 alert template attribute when alert fields are enabled - 422 invalid request - 401 responds with unauthorized for invalid token - @@ -485,6 +481,8 @@ public okhttp3.Call getAlertsSourceAsync(@jakarta.annotation.Nonnull String id, * @param filterSearch (optional) * @param filterStatuses (optional) * @param filterSourceTypes (optional) + * @param filterName (optional) + * @param filterEnabled (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -496,7 +494,7 @@ public okhttp3.Call getAlertsSourceAsync(@jakarta.annotation.Nonnull String id, 200 success - */ - public okhttp3.Call listAlertsSourcesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertsSourcesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -545,6 +543,14 @@ public okhttp3.Call listAlertsSourcesCall(@jakarta.annotation.Nullable String in localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source_types]", filterSourceTypes)); } + if (filterName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); + } + + if (filterEnabled != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled]", filterEnabled)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -569,8 +575,8 @@ public okhttp3.Call listAlertsSourcesCall(@jakarta.annotation.Nullable String in } @SuppressWarnings("rawtypes") - private okhttp3.Call listAlertsSourcesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listAlertsSourcesCall(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, sort, _callback); + private okhttp3.Call listAlertsSourcesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listAlertsSourcesCall(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, filterName, filterEnabled, sort, _callback); } @@ -583,6 +589,8 @@ private okhttp3.Call listAlertsSourcesValidateBeforeCall(@jakarta.annotation.Nul * @param filterSearch (optional) * @param filterStatuses (optional) * @param filterSourceTypes (optional) + * @param filterName (optional) + * @param filterEnabled (optional) * @param sort (optional) * @return AlertsSourceList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -593,8 +601,8 @@ private okhttp3.Call listAlertsSourcesValidateBeforeCall(@jakarta.annotation.Nul 200 success - */ - public AlertsSourceList listAlertsSources(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listAlertsSourcesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, sort); + public AlertsSourceList listAlertsSources(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listAlertsSourcesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, filterName, filterEnabled, sort); return localVarResp.getData(); } @@ -607,6 +615,8 @@ public AlertsSourceList listAlertsSources(@jakarta.annotation.Nullable String in * @param filterSearch (optional) * @param filterStatuses (optional) * @param filterSourceTypes (optional) + * @param filterName (optional) + * @param filterEnabled (optional) * @param sort (optional) * @return ApiResponse<AlertsSourceList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -617,8 +627,8 @@ public AlertsSourceList listAlertsSources(@jakarta.annotation.Nullable String in 200 success - */ - public ApiResponse listAlertsSourcesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listAlertsSourcesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, sort, null); + public ApiResponse listAlertsSourcesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listAlertsSourcesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, filterName, filterEnabled, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -632,6 +642,8 @@ public ApiResponse listAlertsSourcesWithHttpInfo(@jakarta.anno * @param filterSearch (optional) * @param filterStatuses (optional) * @param filterSourceTypes (optional) + * @param filterName (optional) + * @param filterEnabled (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -643,9 +655,9 @@ public ApiResponse listAlertsSourcesWithHttpInfo(@jakarta.anno 200 success - */ - public okhttp3.Call listAlertsSourcesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertsSourcesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterStatuses, @jakarta.annotation.Nullable String filterSourceTypes, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAlertsSourcesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, sort, _callback); + okhttp3.Call localVarCall = listAlertsSourcesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, filterName, filterEnabled, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -661,7 +673,7 @@ public okhttp3.Call listAlertsSourcesAsync(@jakarta.annotation.Nullable String i - +
Response Details
Status Code Description Response Headers
200 alert source updated -
200 preserves existing alert source field ids -
404 resource not found -
*/ @@ -738,7 +750,7 @@ private okhttp3.Call updateAlertsSourceValidateBeforeCall(@jakarta.annotation.No - +
Response Details
Status Code Description Response Headers
200 alert source updated -
200 preserves existing alert source field ids -
404 resource not found -
*/ @@ -758,7 +770,7 @@ public AlertsSourceResponse updateAlertsSource(@jakarta.annotation.Nonnull Strin - +
Response Details
Status Code Description Response Headers
200 alert source updated -
200 preserves existing alert source field ids -
404 resource not found -
*/ @@ -780,7 +792,7 @@ public ApiResponse updateAlertsSourceWithHttpInfo(@jakarta - +
Response Details
Status Code Description Response Headers
200 alert source updated -
200 preserves existing alert source field ids -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/AlertUrgenciesApi.java b/src/main/java/com/rootly/client/api/AlertUrgenciesApi.java index a8d17ae7..f27ea393 100644 --- a/src/main/java/com/rootly/client/api/AlertUrgenciesApi.java +++ b/src/main/java/com/rootly/client/api/AlertUrgenciesApi.java @@ -484,6 +484,10 @@ public okhttp3.Call getAlertUrgencyAsync(@jakarta.annotation.Nonnull String id, * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -495,7 +499,7 @@ public okhttp3.Call getAlertUrgencyAsync(@jakarta.annotation.Nonnull String id, 200 success - */ - public okhttp3.Call listAlertUrgenciesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertUrgenciesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -556,6 +560,22 @@ public okhttp3.Call listAlertUrgenciesCall(@jakarta.annotation.Nullable String i localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -580,8 +600,8 @@ public okhttp3.Call listAlertUrgenciesCall(@jakarta.annotation.Nullable String i } @SuppressWarnings("rawtypes") - private okhttp3.Call listAlertUrgenciesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listAlertUrgenciesCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listAlertUrgenciesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listAlertUrgenciesCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); } @@ -597,6 +617,10 @@ private okhttp3.Call listAlertUrgenciesValidateBeforeCall(@jakarta.annotation.Nu * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return AlertUrgencyList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -607,8 +631,8 @@ private okhttp3.Call listAlertUrgenciesValidateBeforeCall(@jakarta.annotation.Nu 200 success - */ - public AlertUrgencyList listAlertUrgencies(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listAlertUrgenciesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public AlertUrgencyList listAlertUrgencies(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listAlertUrgenciesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); return localVarResp.getData(); } @@ -624,6 +648,10 @@ public AlertUrgencyList listAlertUrgencies(@jakarta.annotation.Nullable String i * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return ApiResponse<AlertUrgencyList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -634,8 +662,8 @@ public AlertUrgencyList listAlertUrgencies(@jakarta.annotation.Nullable String i 200 success - */ - public ApiResponse listAlertUrgenciesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listAlertUrgenciesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listAlertUrgenciesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listAlertUrgenciesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -652,6 +680,10 @@ public ApiResponse listAlertUrgenciesWithHttpInfo(@jakarta.ann * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -663,9 +695,9 @@ public ApiResponse listAlertUrgenciesWithHttpInfo(@jakarta.ann 200 success - */ - public okhttp3.Call listAlertUrgenciesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertUrgenciesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAlertUrgenciesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listAlertUrgenciesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/AlertsApi.java b/src/main/java/com/rootly/client/api/AlertsApi.java index 51d43312..a42e9cb8 100644 --- a/src/main/java/com/rootly/client/api/AlertsApi.java +++ b/src/main/java/com/rootly/client/api/AlertsApi.java @@ -31,8 +31,11 @@ import com.rootly.client.model.AlertResponse; import com.rootly.client.model.AttachAlert; import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.EscalateAlert; import com.rootly.client.model.NewAlert; +import com.rootly.client.model.Receipt; import com.rootly.client.model.ResolveAlert; +import com.rootly.client.model.SnoozeAlert; import com.rootly.client.model.UpdateAlert; import java.lang.reflect.Type; @@ -489,6 +492,150 @@ public okhttp3.Call createAlertAsync(@jakarta.annotation.Nonnull NewAlert newAle localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for escalateAlert + * @param id (required) + * @param escalateAlert (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 escalates to different EP defaults to level 1 -
422 escalation_policy_level exceeds max -
404 cannot escalate grouped member alert -
400 malformed escalation_policy_id -
+ */ + public okhttp3.Call escalateAlertCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable EscalateAlert escalateAlert, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = escalateAlert; + + // create path and map variables + String localVarPath = "/v1/alerts/{id}/escalate" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call escalateAlertValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable EscalateAlert escalateAlert, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling escalateAlert(Async)"); + } + + return escalateAlertCall(id, escalateAlert, _callback); + + } + + /** + * Escalates an alert + * Escalates a specific alert to the next or specified level in its escalation policy + * @param id (required) + * @param escalateAlert (optional) + * @return AlertResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 escalates to different EP defaults to level 1 -
422 escalation_policy_level exceeds max -
404 cannot escalate grouped member alert -
400 malformed escalation_policy_id -
+ */ + public AlertResponse escalateAlert(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable EscalateAlert escalateAlert) throws ApiException { + ApiResponse localVarResp = escalateAlertWithHttpInfo(id, escalateAlert); + return localVarResp.getData(); + } + + /** + * Escalates an alert + * Escalates a specific alert to the next or specified level in its escalation policy + * @param id (required) + * @param escalateAlert (optional) + * @return ApiResponse<AlertResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 escalates to different EP defaults to level 1 -
422 escalation_policy_level exceeds max -
404 cannot escalate grouped member alert -
400 malformed escalation_policy_id -
+ */ + public ApiResponse escalateAlertWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable EscalateAlert escalateAlert) throws ApiException { + okhttp3.Call localVarCall = escalateAlertValidateBeforeCall(id, escalateAlert, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Escalates an alert (asynchronously) + * Escalates a specific alert to the next or specified level in its escalation policy + * @param id (required) + * @param escalateAlert (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 escalates to different EP defaults to level 1 -
422 escalation_policy_level exceeds max -
404 cannot escalate grouped member alert -
400 malformed escalation_policy_id -
+ */ + public okhttp3.Call escalateAlertAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable EscalateAlert escalateAlert, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = escalateAlertValidateBeforeCall(id, escalateAlert, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for getAlert * @param id (required) @@ -628,6 +775,137 @@ public okhttp3.Call getAlertAsync(@jakarta.annotation.Nonnull String id, @jakart localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for getReceipt + * @param id Receipt ID (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 receipt found -
404 receipt not found -
+ */ + public okhttp3.Call getReceiptCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/alerts/receipts/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getReceiptValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getReceipt(Async)"); + } + + return getReceiptCall(id, _callback); + + } + + /** + * Get a receipt + * Retrieve the delivery receipt for a notification by ID, including its state and (when applicable) failure reason and referenced resource. + * @param id Receipt ID (required) + * @return Receipt + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 receipt found -
404 receipt not found -
+ */ + public Receipt getReceipt(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = getReceiptWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Get a receipt + * Retrieve the delivery receipt for a notification by ID, including its state and (when applicable) failure reason and referenced resource. + * @param id Receipt ID (required) + * @return ApiResponse<Receipt> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 receipt found -
404 receipt not found -
+ */ + public ApiResponse getReceiptWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = getReceiptValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get a receipt (asynchronously) + * Retrieve the delivery receipt for a notification by ID, including its state and (when applicable) failure reason and referenced resource. + * @param id Receipt ID (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 receipt found -
404 receipt not found -
+ */ + public okhttp3.Call getReceiptAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getReceiptValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for listAlerts * @param include comma separated if needed. eg: environments,services,groups (optional) @@ -649,6 +927,35 @@ public okhttp3.Call getAlertAsync(@jakarta.annotation.Nonnull String id, @jakart * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterUpdatedAtGt (optional) + * @param filterUpdatedAtGte (optional) + * @param filterUpdatedAtLt (optional) + * @param filterUpdatedAtLte (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterGroupsEq (optional) + * @param filterGroupsNotEq (optional) + * @param filterGroupsIn (optional) + * @param filterGroupsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback Callback for upload/download progress @@ -661,7 +968,7 @@ public okhttp3.Call getAlertAsync(@jakarta.annotation.Nonnull String id, @jakart 200 returns grouping attributes - */ - public okhttp3.Call listAlertsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterGroupsEq, @jakarta.annotation.Nullable String filterGroupsNotEq, @jakarta.annotation.Nullable String filterGroupsIn, @jakarta.annotation.Nullable String filterGroupsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -762,6 +1069,122 @@ public okhttp3.Call listAlertsCall(@jakarta.annotation.Nullable String include, localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterUpdatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[updated_at][gt]", filterUpdatedAtGt)); + } + + if (filterUpdatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[updated_at][gte]", filterUpdatedAtGte)); + } + + if (filterUpdatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[updated_at][lt]", filterUpdatedAtLt)); + } + + if (filterUpdatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[updated_at][lte]", filterUpdatedAtLte)); + } + + if (filterStatusEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][eq]", filterStatusEq)); + } + + if (filterStatusNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][not_eq]", filterStatusNotEq)); + } + + if (filterStatusIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][in]", filterStatusIn)); + } + + if (filterStatusNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][not_in]", filterStatusNotIn)); + } + + if (filterSourceEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][eq]", filterSourceEq)); + } + + if (filterSourceNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][not_eq]", filterSourceNotEq)); + } + + if (filterSourceIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][in]", filterSourceIn)); + } + + if (filterSourceNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][not_in]", filterSourceNotIn)); + } + + if (filterServicesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][eq]", filterServicesEq)); + } + + if (filterServicesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][not_eq]", filterServicesNotEq)); + } + + if (filterServicesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][in]", filterServicesIn)); + } + + if (filterServicesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][not_in]", filterServicesNotIn)); + } + + if (filterGroupsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[groups][eq]", filterGroupsEq)); + } + + if (filterGroupsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[groups][not_eq]", filterGroupsNotEq)); + } + + if (filterGroupsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[groups][in]", filterGroupsIn)); + } + + if (filterGroupsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[groups][not_in]", filterGroupsNotIn)); + } + + if (filterEnvironmentsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][eq]", filterEnvironmentsEq)); + } + + if (filterEnvironmentsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][not_eq]", filterEnvironmentsNotEq)); + } + + if (filterEnvironmentsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][in]", filterEnvironmentsIn)); + } + + if (filterEnvironmentsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][not_in]", filterEnvironmentsNotIn)); + } + + if (filterLabelsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][eq]", filterLabelsEq)); + } + + if (filterLabelsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][not_eq]", filterLabelsNotEq)); + } + + if (filterLabelsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][in]", filterLabelsIn)); + } + + if (filterLabelsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][not_in]", filterLabelsNotIn)); + } + + if (pageAfter != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[after]", pageAfter)); + } + if (pageNumber != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); } @@ -790,8 +1213,8 @@ public okhttp3.Call listAlertsCall(@jakarta.annotation.Nullable String include, } @SuppressWarnings("rawtypes") - private okhttp3.Call listAlertsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - return listAlertsCall(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + private okhttp3.Call listAlertsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterGroupsEq, @jakarta.annotation.Nullable String filterGroupsNotEq, @jakarta.annotation.Nullable String filterGroupsIn, @jakarta.annotation.Nullable String filterGroupsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + return listAlertsCall(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterGroupsEq, filterGroupsNotEq, filterGroupsIn, filterGroupsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, pageAfter, pageNumber, pageSize, _callback); } @@ -817,6 +1240,35 @@ private okhttp3.Call listAlertsValidateBeforeCall(@jakarta.annotation.Nullable S * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterUpdatedAtGt (optional) + * @param filterUpdatedAtGte (optional) + * @param filterUpdatedAtLt (optional) + * @param filterUpdatedAtLte (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterGroupsEq (optional) + * @param filterGroupsNotEq (optional) + * @param filterGroupsIn (optional) + * @param filterGroupsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return AlertList @@ -828,8 +1280,8 @@ private okhttp3.Call listAlertsValidateBeforeCall(@jakarta.annotation.Nullable S 200 returns grouping attributes - */ - public AlertList listAlerts(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - ApiResponse localVarResp = listAlertsWithHttpInfo(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + public AlertList listAlerts(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterGroupsEq, @jakarta.annotation.Nullable String filterGroupsNotEq, @jakarta.annotation.Nullable String filterGroupsIn, @jakarta.annotation.Nullable String filterGroupsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listAlertsWithHttpInfo(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterGroupsEq, filterGroupsNotEq, filterGroupsIn, filterGroupsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, pageAfter, pageNumber, pageSize); return localVarResp.getData(); } @@ -855,6 +1307,35 @@ public AlertList listAlerts(@jakarta.annotation.Nullable String include, @jakart * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterUpdatedAtGt (optional) + * @param filterUpdatedAtGte (optional) + * @param filterUpdatedAtLt (optional) + * @param filterUpdatedAtLte (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterGroupsEq (optional) + * @param filterGroupsNotEq (optional) + * @param filterGroupsIn (optional) + * @param filterGroupsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return ApiResponse<AlertList> @@ -866,8 +1347,8 @@ public AlertList listAlerts(@jakarta.annotation.Nullable String include, @jakart 200 returns grouping attributes - */ - public ApiResponse listAlertsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - okhttp3.Call localVarCall = listAlertsValidateBeforeCall(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, null); + public ApiResponse listAlertsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterGroupsEq, @jakarta.annotation.Nullable String filterGroupsNotEq, @jakarta.annotation.Nullable String filterGroupsIn, @jakarta.annotation.Nullable String filterGroupsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listAlertsValidateBeforeCall(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterGroupsEq, filterGroupsNotEq, filterGroupsIn, filterGroupsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, pageAfter, pageNumber, pageSize, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -894,6 +1375,35 @@ public ApiResponse listAlertsWithHttpInfo(@jakarta.annotation.Nullabl * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterUpdatedAtGt (optional) + * @param filterUpdatedAtGte (optional) + * @param filterUpdatedAtLt (optional) + * @param filterUpdatedAtLte (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterGroupsEq (optional) + * @param filterGroupsNotEq (optional) + * @param filterGroupsIn (optional) + * @param filterGroupsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback The callback to be executed when the API call finishes @@ -906,9 +1416,9 @@ public ApiResponse listAlertsWithHttpInfo(@jakarta.annotation.Nullabl 200 returns grouping attributes - */ - public okhttp3.Call listAlertsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAlertsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterGroups, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterGroupsEq, @jakarta.annotation.Nullable String filterGroupsNotEq, @jakarta.annotation.Nullable String filterGroupsIn, @jakarta.annotation.Nullable String filterGroupsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAlertsValidateBeforeCall(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + okhttp3.Call localVarCall = listAlertsValidateBeforeCall(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterGroupsEq, filterGroupsNotEq, filterGroupsIn, filterGroupsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, pageAfter, pageNumber, pageSize, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -1059,9 +1569,8 @@ public okhttp3.Call listIncidentAlertsAsync(@jakarta.annotation.Nonnull String i - + -
Response Details
Status Code Description Response Headers
200 resolve acknowledged -
200 resolves open alert -
404 resource not found -
400 cannot resolve open alert -
*/ public okhttp3.Call resolveAlertCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable ResolveAlert resolveAlert, final ApiCallback _callback) throws ApiException { @@ -1132,9 +1641,8 @@ private okhttp3.Call resolveAlertValidateBeforeCall(@jakarta.annotation.Nonnull - + -
Response Details
Status Code Description Response Headers
200 resolve acknowledged -
200 resolves open alert -
404 resource not found -
400 cannot resolve open alert -
*/ public AlertResponse resolveAlert(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable ResolveAlert resolveAlert) throws ApiException { @@ -1153,9 +1661,8 @@ public AlertResponse resolveAlert(@jakarta.annotation.Nonnull String id, @jakart - + -
Response Details
Status Code Description Response Headers
200 resolve acknowledged -
200 resolves open alert -
404 resource not found -
400 cannot resolve open alert -
*/ public ApiResponse resolveAlertWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable ResolveAlert resolveAlert) throws ApiException { @@ -1176,9 +1683,8 @@ public ApiResponse resolveAlertWithHttpInfo(@jakarta.annotation.N - + -
Response Details
Status Code Description Response Headers
200 resolve acknowledged -
200 resolves open alert -
404 resource not found -
400 cannot resolve open alert -
*/ public okhttp3.Call resolveAlertAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable ResolveAlert resolveAlert, final ApiCallback _callback) throws ApiException { @@ -1188,6 +1694,155 @@ public okhttp3.Call resolveAlertAsync(@jakarta.annotation.Nonnull String id, @ja localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for snoozeAlert + * @param id (required) + * @param snoozeAlert (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 alert snoozed -
404 resource not found -
400 invalid delay_minutes -
422 snooze service failure -
+ */ + public okhttp3.Call snoozeAlertCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull SnoozeAlert snoozeAlert, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = snoozeAlert; + + // create path and map variables + String localVarPath = "/v1/alerts/{id}/snooze" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call snoozeAlertValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull SnoozeAlert snoozeAlert, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling snoozeAlert(Async)"); + } + + // verify the required parameter 'snoozeAlert' is set + if (snoozeAlert == null) { + throw new ApiException("Missing the required parameter 'snoozeAlert' when calling snoozeAlert(Async)"); + } + + return snoozeAlertCall(id, snoozeAlert, _callback); + + } + + /** + * Snoozes an alert + * Snoozes a specific alert by id, extending the acknowledgment timeout + * @param id (required) + * @param snoozeAlert (required) + * @return AlertResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 alert snoozed -
404 resource not found -
400 invalid delay_minutes -
422 snooze service failure -
+ */ + public AlertResponse snoozeAlert(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull SnoozeAlert snoozeAlert) throws ApiException { + ApiResponse localVarResp = snoozeAlertWithHttpInfo(id, snoozeAlert); + return localVarResp.getData(); + } + + /** + * Snoozes an alert + * Snoozes a specific alert by id, extending the acknowledgment timeout + * @param id (required) + * @param snoozeAlert (required) + * @return ApiResponse<AlertResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 alert snoozed -
404 resource not found -
400 invalid delay_minutes -
422 snooze service failure -
+ */ + public ApiResponse snoozeAlertWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull SnoozeAlert snoozeAlert) throws ApiException { + okhttp3.Call localVarCall = snoozeAlertValidateBeforeCall(id, snoozeAlert, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Snoozes an alert (asynchronously) + * Snoozes a specific alert by id, extending the acknowledgment timeout + * @param id (required) + * @param snoozeAlert (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
200 alert snoozed -
404 resource not found -
400 invalid delay_minutes -
422 snooze service failure -
+ */ + public okhttp3.Call snoozeAlertAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull SnoozeAlert snoozeAlert, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = snoozeAlertValidateBeforeCall(id, snoozeAlert, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for updateAlert * @param id (required) @@ -1199,7 +1854,7 @@ public okhttp3.Call resolveAlertAsync(@jakarta.annotation.Nonnull String id, @ja - +
Response Details
Status Code Description Response Headers
200 removes existing alert field values and adds new ones -
200 updates one field value and preserves others -
422 invalid request -
*/ @@ -1271,7 +1926,7 @@ private okhttp3.Call updateAlertValidateBeforeCall(@jakarta.annotation.Nonnull S - +
Response Details
Status Code Description Response Headers
200 removes existing alert field values and adds new ones -
200 updates one field value and preserves others -
422 invalid request -
*/ @@ -1291,7 +1946,7 @@ public AlertResponse updateAlert(@jakarta.annotation.Nonnull String id, @jakarta - +
Response Details
Status Code Description Response Headers
200 removes existing alert field values and adds new ones -
200 updates one field value and preserves others -
422 invalid request -
*/ @@ -1313,7 +1968,7 @@ public ApiResponse updateAlertWithHttpInfo(@jakarta.annotation.No - +
Response Details
Status Code Description Response Headers
200 removes existing alert field values and adds new ones -
200 updates one field value and preserves others -
422 invalid request -
*/ diff --git a/src/main/java/com/rootly/client/api/ApiKeysApi.java b/src/main/java/com/rootly/client/api/ApiKeysApi.java index 784b2bd8..1635560d 100644 --- a/src/main/java/com/rootly/client/api/ApiKeysApi.java +++ b/src/main/java/com/rootly/client/api/ApiKeysApi.java @@ -94,7 +94,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createApiKeyCall(@javax.annotation.Nonnull NewApiKey newApiKey, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createApiKeyCall(@jakarta.annotation.Nonnull NewApiKey newApiKey, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -140,7 +140,7 @@ public okhttp3.Call createApiKeyCall(@javax.annotation.Nonnull NewApiKey newApiK } @SuppressWarnings("rawtypes") - private okhttp3.Call createApiKeyValidateBeforeCall(@javax.annotation.Nonnull NewApiKey newApiKey, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createApiKeyValidateBeforeCall(@jakarta.annotation.Nonnull NewApiKey newApiKey, final ApiCallback _callback) throws ApiException { // verify the required parameter 'newApiKey' is set if (newApiKey == null) { throw new ApiException("Missing the required parameter 'newApiKey' when calling createApiKey(Async)"); @@ -165,7 +165,7 @@ private okhttp3.Call createApiKeyValidateBeforeCall(@javax.annotation.Nonnull Ne 401 responds with unauthorized for invalid token - */ - public ApiKeyWithTokenResponse createApiKey(@javax.annotation.Nonnull NewApiKey newApiKey) throws ApiException { + public ApiKeyWithTokenResponse createApiKey(@jakarta.annotation.Nonnull NewApiKey newApiKey) throws ApiException { ApiResponse localVarResp = createApiKeyWithHttpInfo(newApiKey); return localVarResp.getData(); } @@ -185,7 +185,7 @@ public ApiKeyWithTokenResponse createApiKey(@javax.annotation.Nonnull NewApiKey 401 responds with unauthorized for invalid token - */ - public ApiResponse createApiKeyWithHttpInfo(@javax.annotation.Nonnull NewApiKey newApiKey) throws ApiException { + public ApiResponse createApiKeyWithHttpInfo(@jakarta.annotation.Nonnull NewApiKey newApiKey) throws ApiException { okhttp3.Call localVarCall = createApiKeyValidateBeforeCall(newApiKey, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -207,7 +207,7 @@ public ApiResponse createApiKeyWithHttpInfo(@javax.anno 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createApiKeyAsync(@javax.annotation.Nonnull NewApiKey newApiKey, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createApiKeyAsync(@jakarta.annotation.Nonnull NewApiKey newApiKey, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = createApiKeyValidateBeforeCall(newApiKey, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -228,7 +228,7 @@ public okhttp3.Call createApiKeyAsync(@javax.annotation.Nonnull NewApiKey newApi 404 API key not found - */ - public okhttp3.Call deleteApiKeyCall(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteApiKeyCall(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -274,7 +274,7 @@ public okhttp3.Call deleteApiKeyCall(@javax.annotation.Nonnull UUID id, final Ap } @SuppressWarnings("rawtypes") - private okhttp3.Call deleteApiKeyValidateBeforeCall(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteApiKeyValidateBeforeCall(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling deleteApiKey(Async)"); @@ -298,7 +298,7 @@ private okhttp3.Call deleteApiKeyValidateBeforeCall(@javax.annotation.Nonnull UU 404 API key not found - */ - public ApiKeyResponse deleteApiKey(@javax.annotation.Nonnull UUID id) throws ApiException { + public ApiKeyResponse deleteApiKey(@jakarta.annotation.Nonnull UUID id) throws ApiException { ApiResponse localVarResp = deleteApiKeyWithHttpInfo(id); return localVarResp.getData(); } @@ -317,7 +317,7 @@ public ApiKeyResponse deleteApiKey(@javax.annotation.Nonnull UUID id) throws Api 404 API key not found - */ - public ApiResponse deleteApiKeyWithHttpInfo(@javax.annotation.Nonnull UUID id) throws ApiException { + public ApiResponse deleteApiKeyWithHttpInfo(@jakarta.annotation.Nonnull UUID id) throws ApiException { okhttp3.Call localVarCall = deleteApiKeyValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -338,7 +338,7 @@ public ApiResponse deleteApiKeyWithHttpInfo(@javax.annotation.No 404 API key not found - */ - public okhttp3.Call deleteApiKeyAsync(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteApiKeyAsync(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = deleteApiKeyValidateBeforeCall(id, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -360,7 +360,7 @@ public okhttp3.Call deleteApiKeyAsync(@javax.annotation.Nonnull UUID id, final A 404 API key not found - */ - public okhttp3.Call getApiKeyCall(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getApiKeyCall(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -410,7 +410,7 @@ public okhttp3.Call getApiKeyCall(@javax.annotation.Nonnull UUID id, @javax.anno } @SuppressWarnings("rawtypes") - private okhttp3.Call getApiKeyValidateBeforeCall(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getApiKeyValidateBeforeCall(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling getApiKey(Async)"); @@ -435,7 +435,7 @@ private okhttp3.Call getApiKeyValidateBeforeCall(@javax.annotation.Nonnull UUID 404 API key not found - */ - public ApiKeyResponse getApiKey(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include) throws ApiException { + public ApiKeyResponse getApiKey(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nullable String include) throws ApiException { ApiResponse localVarResp = getApiKeyWithHttpInfo(id, include); return localVarResp.getData(); } @@ -455,7 +455,7 @@ public ApiKeyResponse getApiKey(@javax.annotation.Nonnull UUID id, @javax.annota 404 API key not found - */ - public ApiResponse getApiKeyWithHttpInfo(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include) throws ApiException { + public ApiResponse getApiKeyWithHttpInfo(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nullable String include) throws ApiException { okhttp3.Call localVarCall = getApiKeyValidateBeforeCall(id, include, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -477,7 +477,7 @@ public ApiResponse getApiKeyWithHttpInfo(@javax.annotation.Nonnu 404 API key not found - */ - public okhttp3.Call getApiKeyAsync(@javax.annotation.Nonnull UUID id, @javax.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getApiKeyAsync(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getApiKeyValidateBeforeCall(id, include, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -521,7 +521,7 @@ public okhttp3.Call getApiKeyAsync(@javax.annotation.Nonnull UUID id, @javax.ann 401 responds with unauthorized for invalid token - */ - public okhttp3.Call listApiKeysCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterKind, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterUserId, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterRoleId, @javax.annotation.Nullable Boolean filterActive, @javax.annotation.Nullable Boolean filterExpired, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String filterExpiresAtGt, @javax.annotation.Nullable String filterExpiresAtGte, @javax.annotation.Nullable String filterExpiresAtLt, @javax.annotation.Nullable String filterExpiresAtLte, @javax.annotation.Nullable String filterLastUsedAtGt, @javax.annotation.Nullable String filterLastUsedAtGte, @javax.annotation.Nullable String filterLastUsedAtLt, @javax.annotation.Nullable String filterLastUsedAtLte, @javax.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listApiKeysCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterRoleId, @jakarta.annotation.Nullable Boolean filterActive, @jakarta.annotation.Nullable Boolean filterExpired, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterExpiresAtGt, @jakarta.annotation.Nullable String filterExpiresAtGte, @jakarta.annotation.Nullable String filterExpiresAtLt, @jakarta.annotation.Nullable String filterExpiresAtLte, @jakarta.annotation.Nullable String filterLastUsedAtGt, @jakarta.annotation.Nullable String filterLastUsedAtGte, @jakarta.annotation.Nullable String filterLastUsedAtLt, @jakarta.annotation.Nullable String filterLastUsedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -662,7 +662,7 @@ public okhttp3.Call listApiKeysCall(@javax.annotation.Nullable String include, @ } @SuppressWarnings("rawtypes") - private okhttp3.Call listApiKeysValidateBeforeCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterKind, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterUserId, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterRoleId, @javax.annotation.Nullable Boolean filterActive, @javax.annotation.Nullable Boolean filterExpired, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String filterExpiresAtGt, @javax.annotation.Nullable String filterExpiresAtGte, @javax.annotation.Nullable String filterExpiresAtLt, @javax.annotation.Nullable String filterExpiresAtLte, @javax.annotation.Nullable String filterLastUsedAtGt, @javax.annotation.Nullable String filterLastUsedAtGte, @javax.annotation.Nullable String filterLastUsedAtLt, @javax.annotation.Nullable String filterLastUsedAtLte, @javax.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listApiKeysValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterRoleId, @jakarta.annotation.Nullable Boolean filterActive, @jakarta.annotation.Nullable Boolean filterExpired, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterExpiresAtGt, @jakarta.annotation.Nullable String filterExpiresAtGte, @jakarta.annotation.Nullable String filterExpiresAtLt, @jakarta.annotation.Nullable String filterExpiresAtLte, @jakarta.annotation.Nullable String filterLastUsedAtGt, @jakarta.annotation.Nullable String filterLastUsedAtGte, @jakarta.annotation.Nullable String filterLastUsedAtLt, @jakarta.annotation.Nullable String filterLastUsedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { return listApiKeysCall(include, pageNumber, pageSize, filterKind, filterSearch, filterName, filterUserId, filterGroupIds, filterRoleId, filterActive, filterExpired, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterExpiresAtGt, filterExpiresAtGte, filterExpiresAtLt, filterExpiresAtLte, filterLastUsedAtGt, filterLastUsedAtGte, filterLastUsedAtLt, filterLastUsedAtLte, sort, _callback); } @@ -704,7 +704,7 @@ private okhttp3.Call listApiKeysValidateBeforeCall(@javax.annotation.Nullable St 401 responds with unauthorized for invalid token - */ - public ApiKeyList listApiKeys(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterKind, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterUserId, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterRoleId, @javax.annotation.Nullable Boolean filterActive, @javax.annotation.Nullable Boolean filterExpired, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String filterExpiresAtGt, @javax.annotation.Nullable String filterExpiresAtGte, @javax.annotation.Nullable String filterExpiresAtLt, @javax.annotation.Nullable String filterExpiresAtLte, @javax.annotation.Nullable String filterLastUsedAtGt, @javax.annotation.Nullable String filterLastUsedAtGte, @javax.annotation.Nullable String filterLastUsedAtLt, @javax.annotation.Nullable String filterLastUsedAtLte, @javax.annotation.Nullable String sort) throws ApiException { + public ApiKeyList listApiKeys(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterRoleId, @jakarta.annotation.Nullable Boolean filterActive, @jakarta.annotation.Nullable Boolean filterExpired, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterExpiresAtGt, @jakarta.annotation.Nullable String filterExpiresAtGte, @jakarta.annotation.Nullable String filterExpiresAtLt, @jakarta.annotation.Nullable String filterExpiresAtLte, @jakarta.annotation.Nullable String filterLastUsedAtGt, @jakarta.annotation.Nullable String filterLastUsedAtGte, @jakarta.annotation.Nullable String filterLastUsedAtLt, @jakarta.annotation.Nullable String filterLastUsedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { ApiResponse localVarResp = listApiKeysWithHttpInfo(include, pageNumber, pageSize, filterKind, filterSearch, filterName, filterUserId, filterGroupIds, filterRoleId, filterActive, filterExpired, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterExpiresAtGt, filterExpiresAtGte, filterExpiresAtLt, filterExpiresAtLte, filterLastUsedAtGt, filterLastUsedAtGte, filterLastUsedAtLt, filterLastUsedAtLte, sort); return localVarResp.getData(); } @@ -746,7 +746,7 @@ public ApiKeyList listApiKeys(@javax.annotation.Nullable String include, @javax. 401 responds with unauthorized for invalid token - */ - public ApiResponse listApiKeysWithHttpInfo(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterKind, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterUserId, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterRoleId, @javax.annotation.Nullable Boolean filterActive, @javax.annotation.Nullable Boolean filterExpired, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String filterExpiresAtGt, @javax.annotation.Nullable String filterExpiresAtGte, @javax.annotation.Nullable String filterExpiresAtLt, @javax.annotation.Nullable String filterExpiresAtLte, @javax.annotation.Nullable String filterLastUsedAtGt, @javax.annotation.Nullable String filterLastUsedAtGte, @javax.annotation.Nullable String filterLastUsedAtLt, @javax.annotation.Nullable String filterLastUsedAtLte, @javax.annotation.Nullable String sort) throws ApiException { + public ApiResponse listApiKeysWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterRoleId, @jakarta.annotation.Nullable Boolean filterActive, @jakarta.annotation.Nullable Boolean filterExpired, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterExpiresAtGt, @jakarta.annotation.Nullable String filterExpiresAtGte, @jakarta.annotation.Nullable String filterExpiresAtLt, @jakarta.annotation.Nullable String filterExpiresAtLte, @jakarta.annotation.Nullable String filterLastUsedAtGt, @jakarta.annotation.Nullable String filterLastUsedAtGte, @jakarta.annotation.Nullable String filterLastUsedAtLt, @jakarta.annotation.Nullable String filterLastUsedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { okhttp3.Call localVarCall = listApiKeysValidateBeforeCall(include, pageNumber, pageSize, filterKind, filterSearch, filterName, filterUserId, filterGroupIds, filterRoleId, filterActive, filterExpired, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterExpiresAtGt, filterExpiresAtGte, filterExpiresAtLt, filterExpiresAtLte, filterLastUsedAtGt, filterLastUsedAtGte, filterLastUsedAtLt, filterLastUsedAtLte, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -790,7 +790,7 @@ public ApiResponse listApiKeysWithHttpInfo(@javax.annotation.Nullabl 401 responds with unauthorized for invalid token - */ - public okhttp3.Call listApiKeysAsync(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterKind, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterUserId, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterRoleId, @javax.annotation.Nullable Boolean filterActive, @javax.annotation.Nullable Boolean filterExpired, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String filterExpiresAtGt, @javax.annotation.Nullable String filterExpiresAtGte, @javax.annotation.Nullable String filterExpiresAtLt, @javax.annotation.Nullable String filterExpiresAtLte, @javax.annotation.Nullable String filterLastUsedAtGt, @javax.annotation.Nullable String filterLastUsedAtGte, @javax.annotation.Nullable String filterLastUsedAtLt, @javax.annotation.Nullable String filterLastUsedAtLte, @javax.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listApiKeysAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterRoleId, @jakarta.annotation.Nullable Boolean filterActive, @jakarta.annotation.Nullable Boolean filterExpired, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterExpiresAtGt, @jakarta.annotation.Nullable String filterExpiresAtGte, @jakarta.annotation.Nullable String filterExpiresAtLt, @jakarta.annotation.Nullable String filterExpiresAtLte, @jakarta.annotation.Nullable String filterLastUsedAtGt, @jakarta.annotation.Nullable String filterLastUsedAtGte, @jakarta.annotation.Nullable String filterLastUsedAtLt, @jakarta.annotation.Nullable String filterLastUsedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listApiKeysValidateBeforeCall(include, pageNumber, pageSize, filterKind, filterSearch, filterName, filterUserId, filterGroupIds, filterRoleId, filterActive, filterExpired, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterExpiresAtGt, filterExpiresAtGte, filterExpiresAtLt, filterExpiresAtLte, filterLastUsedAtGt, filterLastUsedAtGte, filterLastUsedAtLt, filterLastUsedAtLte, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -812,7 +812,7 @@ public okhttp3.Call listApiKeysAsync(@javax.annotation.Nullable String include, 404 API key not found - */ - public okhttp3.Call rotateApiKeyCall(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey, final ApiCallback _callback) throws ApiException { + public okhttp3.Call rotateApiKeyCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable RotateApiKey rotateApiKey, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -859,7 +859,7 @@ public okhttp3.Call rotateApiKeyCall(@javax.annotation.Nonnull String id, @javax } @SuppressWarnings("rawtypes") - private okhttp3.Call rotateApiKeyValidateBeforeCall(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey, final ApiCallback _callback) throws ApiException { + private okhttp3.Call rotateApiKeyValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable RotateApiKey rotateApiKey, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling rotateApiKey(Async)"); @@ -884,7 +884,7 @@ private okhttp3.Call rotateApiKeyValidateBeforeCall(@javax.annotation.Nonnull St 404 API key not found - */ - public ApiKeyWithTokenResponse rotateApiKey(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey) throws ApiException { + public ApiKeyWithTokenResponse rotateApiKey(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable RotateApiKey rotateApiKey) throws ApiException { ApiResponse localVarResp = rotateApiKeyWithHttpInfo(id, rotateApiKey); return localVarResp.getData(); } @@ -904,7 +904,7 @@ public ApiKeyWithTokenResponse rotateApiKey(@javax.annotation.Nonnull String id, 404 API key not found - */ - public ApiResponse rotateApiKeyWithHttpInfo(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey) throws ApiException { + public ApiResponse rotateApiKeyWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable RotateApiKey rotateApiKey) throws ApiException { okhttp3.Call localVarCall = rotateApiKeyValidateBeforeCall(id, rotateApiKey, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -926,7 +926,7 @@ public ApiResponse rotateApiKeyWithHttpInfo(@javax.anno 404 API key not found - */ - public okhttp3.Call rotateApiKeyAsync(@javax.annotation.Nonnull String id, @javax.annotation.Nullable RotateApiKey rotateApiKey, final ApiCallback _callback) throws ApiException { + public okhttp3.Call rotateApiKeyAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable RotateApiKey rotateApiKey, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = rotateApiKeyValidateBeforeCall(id, rotateApiKey, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -948,7 +948,7 @@ public okhttp3.Call rotateApiKeyAsync(@javax.annotation.Nonnull String id, @java 404 API key not found - */ - public okhttp3.Call updateApiKeyCall(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateApiKeyCall(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nonnull UpdateApiKey updateApiKey, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -995,7 +995,7 @@ public okhttp3.Call updateApiKeyCall(@javax.annotation.Nonnull UUID id, @javax.a } @SuppressWarnings("rawtypes") - private okhttp3.Call updateApiKeyValidateBeforeCall(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey, final ApiCallback _callback) throws ApiException { + private okhttp3.Call updateApiKeyValidateBeforeCall(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nonnull UpdateApiKey updateApiKey, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling updateApiKey(Async)"); @@ -1025,7 +1025,7 @@ private okhttp3.Call updateApiKeyValidateBeforeCall(@javax.annotation.Nonnull UU 404 API key not found - */ - public ApiKeyResponse updateApiKey(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey) throws ApiException { + public ApiKeyResponse updateApiKey(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nonnull UpdateApiKey updateApiKey) throws ApiException { ApiResponse localVarResp = updateApiKeyWithHttpInfo(id, updateApiKey); return localVarResp.getData(); } @@ -1045,7 +1045,7 @@ public ApiKeyResponse updateApiKey(@javax.annotation.Nonnull UUID id, @javax.ann 404 API key not found - */ - public ApiResponse updateApiKeyWithHttpInfo(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey) throws ApiException { + public ApiResponse updateApiKeyWithHttpInfo(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nonnull UpdateApiKey updateApiKey) throws ApiException { okhttp3.Call localVarCall = updateApiKeyValidateBeforeCall(id, updateApiKey, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -1067,7 +1067,7 @@ public ApiResponse updateApiKeyWithHttpInfo(@javax.annotation.No 404 API key not found - */ - public okhttp3.Call updateApiKeyAsync(@javax.annotation.Nonnull UUID id, @javax.annotation.Nonnull UpdateApiKey updateApiKey, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateApiKeyAsync(@jakarta.annotation.Nonnull UUID id, @jakarta.annotation.Nonnull UpdateApiKey updateApiKey, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = updateApiKeyValidateBeforeCall(id, updateApiKey, _callback); Type localVarReturnType = new TypeToken(){}.getType(); diff --git a/src/main/java/com/rootly/client/api/AuditsApi.java b/src/main/java/com/rootly/client/api/AuditsApi.java index 53833bfb..b0507c88 100644 --- a/src/main/java/com/rootly/client/api/AuditsApi.java +++ b/src/main/java/com/rootly/client/api/AuditsApi.java @@ -85,6 +85,22 @@ public void setCustomBaseUrl(String customBaseUrl) { * @param filterApiKeyId (optional) * @param filterSource (optional) * @param filterItemType (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterApiKeyIdEq (optional) + * @param filterApiKeyIdNotEq (optional) + * @param filterApiKeyIdIn (optional) + * @param filterApiKeyIdNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterItemTypeEq (optional) + * @param filterItemTypeNotEq (optional) + * @param filterItemTypeIn (optional) + * @param filterItemTypeNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -96,7 +112,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 200 success - */ - public okhttp3.Call listAuditsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAuditsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterApiKeyIdEq, @jakarta.annotation.Nullable String filterApiKeyIdNotEq, @jakarta.annotation.Nullable String filterApiKeyIdIn, @jakarta.annotation.Nullable String filterApiKeyIdNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterItemTypeEq, @jakarta.annotation.Nullable String filterItemTypeNotEq, @jakarta.annotation.Nullable String filterItemTypeIn, @jakarta.annotation.Nullable String filterItemTypeNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -165,6 +181,70 @@ public okhttp3.Call listAuditsCall(@jakarta.annotation.Nullable String include, localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[item_type]", filterItemType)); } + if (filterUserIdEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][eq]", filterUserIdEq)); + } + + if (filterUserIdNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][not_eq]", filterUserIdNotEq)); + } + + if (filterUserIdIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][in]", filterUserIdIn)); + } + + if (filterUserIdNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][not_in]", filterUserIdNotIn)); + } + + if (filterApiKeyIdEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[api_key_id][eq]", filterApiKeyIdEq)); + } + + if (filterApiKeyIdNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[api_key_id][not_eq]", filterApiKeyIdNotEq)); + } + + if (filterApiKeyIdIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[api_key_id][in]", filterApiKeyIdIn)); + } + + if (filterApiKeyIdNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[api_key_id][not_in]", filterApiKeyIdNotIn)); + } + + if (filterSourceEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][eq]", filterSourceEq)); + } + + if (filterSourceNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][not_eq]", filterSourceNotEq)); + } + + if (filterSourceIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][in]", filterSourceIn)); + } + + if (filterSourceNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][not_in]", filterSourceNotIn)); + } + + if (filterItemTypeEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[item_type][eq]", filterItemTypeEq)); + } + + if (filterItemTypeNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[item_type][not_eq]", filterItemTypeNotEq)); + } + + if (filterItemTypeIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[item_type][in]", filterItemTypeIn)); + } + + if (filterItemTypeNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[item_type][not_in]", filterItemTypeNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -189,8 +269,8 @@ public okhttp3.Call listAuditsCall(@jakarta.annotation.Nullable String include, } @SuppressWarnings("rawtypes") - private okhttp3.Call listAuditsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listAuditsCall(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, sort, _callback); + private okhttp3.Call listAuditsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterApiKeyIdEq, @jakarta.annotation.Nullable String filterApiKeyIdNotEq, @jakarta.annotation.Nullable String filterApiKeyIdIn, @jakarta.annotation.Nullable String filterApiKeyIdNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterItemTypeEq, @jakarta.annotation.Nullable String filterItemTypeNotEq, @jakarta.annotation.Nullable String filterItemTypeIn, @jakarta.annotation.Nullable String filterItemTypeNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listAuditsCall(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterApiKeyIdEq, filterApiKeyIdNotEq, filterApiKeyIdIn, filterApiKeyIdNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterItemTypeEq, filterItemTypeNotEq, filterItemTypeIn, filterItemTypeNotIn, sort, _callback); } @@ -208,6 +288,22 @@ private okhttp3.Call listAuditsValidateBeforeCall(@jakarta.annotation.Nullable S * @param filterApiKeyId (optional) * @param filterSource (optional) * @param filterItemType (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterApiKeyIdEq (optional) + * @param filterApiKeyIdNotEq (optional) + * @param filterApiKeyIdIn (optional) + * @param filterApiKeyIdNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterItemTypeEq (optional) + * @param filterItemTypeNotEq (optional) + * @param filterItemTypeIn (optional) + * @param filterItemTypeNotIn (optional) * @param sort (optional) * @return AuditsList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -218,8 +314,8 @@ private okhttp3.Call listAuditsValidateBeforeCall(@jakarta.annotation.Nullable S 200 success - */ - public AuditsList listAudits(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listAuditsWithHttpInfo(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, sort); + public AuditsList listAudits(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterApiKeyIdEq, @jakarta.annotation.Nullable String filterApiKeyIdNotEq, @jakarta.annotation.Nullable String filterApiKeyIdIn, @jakarta.annotation.Nullable String filterApiKeyIdNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterItemTypeEq, @jakarta.annotation.Nullable String filterItemTypeNotEq, @jakarta.annotation.Nullable String filterItemTypeIn, @jakarta.annotation.Nullable String filterItemTypeNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listAuditsWithHttpInfo(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterApiKeyIdEq, filterApiKeyIdNotEq, filterApiKeyIdIn, filterApiKeyIdNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterItemTypeEq, filterItemTypeNotEq, filterItemTypeIn, filterItemTypeNotIn, sort); return localVarResp.getData(); } @@ -237,6 +333,22 @@ public AuditsList listAudits(@jakarta.annotation.Nullable String include, @jakar * @param filterApiKeyId (optional) * @param filterSource (optional) * @param filterItemType (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterApiKeyIdEq (optional) + * @param filterApiKeyIdNotEq (optional) + * @param filterApiKeyIdIn (optional) + * @param filterApiKeyIdNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterItemTypeEq (optional) + * @param filterItemTypeNotEq (optional) + * @param filterItemTypeIn (optional) + * @param filterItemTypeNotIn (optional) * @param sort (optional) * @return ApiResponse<AuditsList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -247,8 +359,8 @@ public AuditsList listAudits(@jakarta.annotation.Nullable String include, @jakar 200 success - */ - public ApiResponse listAuditsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listAuditsValidateBeforeCall(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, sort, null); + public ApiResponse listAuditsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterApiKeyIdEq, @jakarta.annotation.Nullable String filterApiKeyIdNotEq, @jakarta.annotation.Nullable String filterApiKeyIdIn, @jakarta.annotation.Nullable String filterApiKeyIdNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterItemTypeEq, @jakarta.annotation.Nullable String filterItemTypeNotEq, @jakarta.annotation.Nullable String filterItemTypeIn, @jakarta.annotation.Nullable String filterItemTypeNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listAuditsValidateBeforeCall(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterApiKeyIdEq, filterApiKeyIdNotEq, filterApiKeyIdIn, filterApiKeyIdNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterItemTypeEq, filterItemTypeNotEq, filterItemTypeIn, filterItemTypeNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -267,6 +379,22 @@ public ApiResponse listAuditsWithHttpInfo(@jakarta.annotation.Nullab * @param filterApiKeyId (optional) * @param filterSource (optional) * @param filterItemType (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterApiKeyIdEq (optional) + * @param filterApiKeyIdNotEq (optional) + * @param filterApiKeyIdIn (optional) + * @param filterApiKeyIdNotIn (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterItemTypeEq (optional) + * @param filterItemTypeNotEq (optional) + * @param filterItemTypeIn (optional) + * @param filterItemTypeNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -278,9 +406,9 @@ public ApiResponse listAuditsWithHttpInfo(@jakarta.annotation.Nullab 200 success - */ - public okhttp3.Call listAuditsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAuditsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUserId, @jakarta.annotation.Nullable String filterApiKeyId, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterItemType, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterApiKeyIdEq, @jakarta.annotation.Nullable String filterApiKeyIdNotEq, @jakarta.annotation.Nullable String filterApiKeyIdIn, @jakarta.annotation.Nullable String filterApiKeyIdNotIn, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterItemTypeEq, @jakarta.annotation.Nullable String filterItemTypeNotEq, @jakarta.annotation.Nullable String filterItemTypeIn, @jakarta.annotation.Nullable String filterItemTypeNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAuditsValidateBeforeCall(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, sort, _callback); + okhttp3.Call localVarCall = listAuditsValidateBeforeCall(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterApiKeyIdEq, filterApiKeyIdNotEq, filterApiKeyIdIn, filterApiKeyIdNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterItemTypeEq, filterItemTypeNotEq, filterItemTypeIn, filterItemTypeNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/CatalogChecklistTemplatesApi.java b/src/main/java/com/rootly/client/api/CatalogChecklistTemplatesApi.java index 11833c75..cfbb1b41 100644 --- a/src/main/java/com/rootly/client/api/CatalogChecklistTemplatesApi.java +++ b/src/main/java/com/rootly/client/api/CatalogChecklistTemplatesApi.java @@ -92,7 +92,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createCatalogChecklistTemplateCall(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createCatalogChecklistTemplateCall(@jakarta.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -138,7 +138,7 @@ public okhttp3.Call createCatalogChecklistTemplateCall(@javax.annotation.Nonnull } @SuppressWarnings("rawtypes") - private okhttp3.Call createCatalogChecklistTemplateValidateBeforeCall(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createCatalogChecklistTemplateValidateBeforeCall(@jakarta.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { // verify the required parameter 'newCatalogChecklistTemplate' is set if (newCatalogChecklistTemplate == null) { throw new ApiException("Missing the required parameter 'newCatalogChecklistTemplate' when calling createCatalogChecklistTemplate(Async)"); @@ -163,7 +163,7 @@ private okhttp3.Call createCatalogChecklistTemplateValidateBeforeCall(@javax.ann 401 responds with unauthorized for invalid token - */ - public CatalogChecklistTemplateResponse createCatalogChecklistTemplate(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate) throws ApiException { + public CatalogChecklistTemplateResponse createCatalogChecklistTemplate(@jakarta.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate) throws ApiException { ApiResponse localVarResp = createCatalogChecklistTemplateWithHttpInfo(newCatalogChecklistTemplate); return localVarResp.getData(); } @@ -183,7 +183,7 @@ public CatalogChecklistTemplateResponse createCatalogChecklistTemplate(@javax.an 401 responds with unauthorized for invalid token - */ - public ApiResponse createCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate) throws ApiException { + public ApiResponse createCatalogChecklistTemplateWithHttpInfo(@jakarta.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate) throws ApiException { okhttp3.Call localVarCall = createCatalogChecklistTemplateValidateBeforeCall(newCatalogChecklistTemplate, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -205,7 +205,7 @@ public ApiResponse createCatalogChecklistTempl 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createCatalogChecklistTemplateAsync(@javax.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createCatalogChecklistTemplateAsync(@jakarta.annotation.Nonnull NewCatalogChecklistTemplate newCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = createCatalogChecklistTemplateValidateBeforeCall(newCatalogChecklistTemplate, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -226,7 +226,7 @@ public okhttp3.Call createCatalogChecklistTemplateAsync(@javax.annotation.Nonnul 404 catalog checklist template not found - */ - public okhttp3.Call deleteCatalogChecklistTemplateCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteCatalogChecklistTemplateCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -272,7 +272,7 @@ public okhttp3.Call deleteCatalogChecklistTemplateCall(@javax.annotation.Nonnull } @SuppressWarnings("rawtypes") - private okhttp3.Call deleteCatalogChecklistTemplateValidateBeforeCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteCatalogChecklistTemplateValidateBeforeCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling deleteCatalogChecklistTemplate(Async)"); @@ -296,7 +296,7 @@ private okhttp3.Call deleteCatalogChecklistTemplateValidateBeforeCall(@javax.ann 404 catalog checklist template not found - */ - public CatalogChecklistTemplateResponse deleteCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + public CatalogChecklistTemplateResponse deleteCatalogChecklistTemplate(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { ApiResponse localVarResp = deleteCatalogChecklistTemplateWithHttpInfo(id); return localVarResp.getData(); } @@ -315,7 +315,7 @@ public CatalogChecklistTemplateResponse deleteCatalogChecklistTemplate(@javax.an 404 catalog checklist template not found - */ - public ApiResponse deleteCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + public ApiResponse deleteCatalogChecklistTemplateWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { okhttp3.Call localVarCall = deleteCatalogChecklistTemplateValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -336,7 +336,7 @@ public ApiResponse deleteCatalogChecklistTempl 404 catalog checklist template not found - */ - public okhttp3.Call deleteCatalogChecklistTemplateAsync(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteCatalogChecklistTemplateAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = deleteCatalogChecklistTemplateValidateBeforeCall(id, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -357,7 +357,7 @@ public okhttp3.Call deleteCatalogChecklistTemplateAsync(@javax.annotation.Nonnul 404 resource not found for another team - */ - public okhttp3.Call getCatalogChecklistTemplateCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCatalogChecklistTemplateCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -403,7 +403,7 @@ public okhttp3.Call getCatalogChecklistTemplateCall(@javax.annotation.Nonnull Ge } @SuppressWarnings("rawtypes") - private okhttp3.Call getCatalogChecklistTemplateValidateBeforeCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getCatalogChecklistTemplateValidateBeforeCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling getCatalogChecklistTemplate(Async)"); @@ -427,7 +427,7 @@ private okhttp3.Call getCatalogChecklistTemplateValidateBeforeCall(@javax.annota 404 resource not found for another team - */ - public CatalogChecklistTemplateResponse getCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + public CatalogChecklistTemplateResponse getCatalogChecklistTemplate(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { ApiResponse localVarResp = getCatalogChecklistTemplateWithHttpInfo(id); return localVarResp.getData(); } @@ -446,7 +446,7 @@ public CatalogChecklistTemplateResponse getCatalogChecklistTemplate(@javax.annot 404 resource not found for another team - */ - public ApiResponse getCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + public ApiResponse getCatalogChecklistTemplateWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { okhttp3.Call localVarCall = getCatalogChecklistTemplateValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -467,7 +467,7 @@ public ApiResponse getCatalogChecklistTemplate 404 resource not found for another team - */ - public okhttp3.Call getCatalogChecklistTemplateAsync(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCatalogChecklistTemplateAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getCatalogChecklistTemplateValidateBeforeCall(id, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -498,7 +498,7 @@ public okhttp3.Call getCatalogChecklistTemplateAsync(@javax.annotation.Nonnull G 200 returns empty list for another team - */ - public okhttp3.Call listCatalogChecklistTemplatesCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable String sort, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterCatalogType, @javax.annotation.Nullable String filterScopeType, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogChecklistTemplatesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCatalogType, @jakarta.annotation.Nullable String filterScopeType, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -591,7 +591,7 @@ public okhttp3.Call listCatalogChecklistTemplatesCall(@javax.annotation.Nullable } @SuppressWarnings("rawtypes") - private okhttp3.Call listCatalogChecklistTemplatesValidateBeforeCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable String sort, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterCatalogType, @javax.annotation.Nullable String filterScopeType, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listCatalogChecklistTemplatesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCatalogType, @jakarta.annotation.Nullable String filterScopeType, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { return listCatalogChecklistTemplatesCall(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); } @@ -620,7 +620,7 @@ private okhttp3.Call listCatalogChecklistTemplatesValidateBeforeCall(@javax.anno 200 returns empty list for another team - */ - public CatalogChecklistTemplateList listCatalogChecklistTemplates(@javax.annotation.Nullable String include, @javax.annotation.Nullable String sort, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterCatalogType, @javax.annotation.Nullable String filterScopeType, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte) throws ApiException { + public CatalogChecklistTemplateList listCatalogChecklistTemplates(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCatalogType, @jakarta.annotation.Nullable String filterScopeType, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { ApiResponse localVarResp = listCatalogChecklistTemplatesWithHttpInfo(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); return localVarResp.getData(); } @@ -649,7 +649,7 @@ public CatalogChecklistTemplateList listCatalogChecklistTemplates(@javax.annotat 200 returns empty list for another team - */ - public ApiResponse listCatalogChecklistTemplatesWithHttpInfo(@javax.annotation.Nullable String include, @javax.annotation.Nullable String sort, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterCatalogType, @javax.annotation.Nullable String filterScopeType, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte) throws ApiException { + public ApiResponse listCatalogChecklistTemplatesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCatalogType, @jakarta.annotation.Nullable String filterScopeType, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { okhttp3.Call localVarCall = listCatalogChecklistTemplatesValidateBeforeCall(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -680,7 +680,7 @@ public ApiResponse listCatalogChecklistTemplatesWi 200 returns empty list for another team - */ - public okhttp3.Call listCatalogChecklistTemplatesAsync(@javax.annotation.Nullable String include, @javax.annotation.Nullable String sort, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterCatalogType, @javax.annotation.Nullable String filterScopeType, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogChecklistTemplatesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCatalogType, @jakarta.annotation.Nullable String filterScopeType, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listCatalogChecklistTemplatesValidateBeforeCall(include, sort, pageNumber, pageSize, filterName, filterSlug, filterCatalogType, filterScopeType, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -701,7 +701,7 @@ public okhttp3.Call listCatalogChecklistTemplatesAsync(@javax.annotation.Nullabl 404 resource not found for another team - */ - public okhttp3.Call triggerCatalogChecklistTemplateCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call triggerCatalogChecklistTemplateCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -747,7 +747,7 @@ public okhttp3.Call triggerCatalogChecklistTemplateCall(@javax.annotation.Nonnul } @SuppressWarnings("rawtypes") - private okhttp3.Call triggerCatalogChecklistTemplateValidateBeforeCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call triggerCatalogChecklistTemplateValidateBeforeCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling triggerCatalogChecklistTemplate(Async)"); @@ -770,7 +770,7 @@ private okhttp3.Call triggerCatalogChecklistTemplateValidateBeforeCall(@javax.an 404 resource not found for another team - */ - public void triggerCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + public void triggerCatalogChecklistTemplate(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { triggerCatalogChecklistTemplateWithHttpInfo(id); } @@ -788,7 +788,7 @@ public void triggerCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFi 404 resource not found for another team - */ - public ApiResponse triggerCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + public ApiResponse triggerCatalogChecklistTemplateWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { okhttp3.Call localVarCall = triggerCatalogChecklistTemplateValidateBeforeCall(id, null); return localVarApiClient.execute(localVarCall); } @@ -808,7 +808,7 @@ public ApiResponse triggerCatalogChecklistTemplateWithHttpInfo(@javax.anno 404 resource not found for another team - */ - public okhttp3.Call triggerCatalogChecklistTemplateAsync(@javax.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call triggerCatalogChecklistTemplateAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = triggerCatalogChecklistTemplateValidateBeforeCall(id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); @@ -829,7 +829,7 @@ public okhttp3.Call triggerCatalogChecklistTemplateAsync(@javax.annotation.Nonnu 422 rejects duplicate custom fields on update - */ - public okhttp3.Call updateCatalogChecklistTemplateCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateCatalogChecklistTemplateCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -876,7 +876,7 @@ public okhttp3.Call updateCatalogChecklistTemplateCall(@javax.annotation.Nonnull } @SuppressWarnings("rawtypes") - private okhttp3.Call updateCatalogChecklistTemplateValidateBeforeCall(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { + private okhttp3.Call updateCatalogChecklistTemplateValidateBeforeCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling updateCatalogChecklistTemplate(Async)"); @@ -906,7 +906,7 @@ private okhttp3.Call updateCatalogChecklistTemplateValidateBeforeCall(@javax.ann 422 rejects duplicate custom fields on update - */ - public CatalogChecklistTemplateResponse updateCatalogChecklistTemplate(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate) throws ApiException { + public CatalogChecklistTemplateResponse updateCatalogChecklistTemplate(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate) throws ApiException { ApiResponse localVarResp = updateCatalogChecklistTemplateWithHttpInfo(id, updateCatalogChecklistTemplate); return localVarResp.getData(); } @@ -926,7 +926,7 @@ public CatalogChecklistTemplateResponse updateCatalogChecklistTemplate(@javax.an 422 rejects duplicate custom fields on update - */ - public ApiResponse updateCatalogChecklistTemplateWithHttpInfo(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate) throws ApiException { + public ApiResponse updateCatalogChecklistTemplateWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate) throws ApiException { okhttp3.Call localVarCall = updateCatalogChecklistTemplateValidateBeforeCall(id, updateCatalogChecklistTemplate, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -948,7 +948,7 @@ public ApiResponse updateCatalogChecklistTempl 422 rejects duplicate custom fields on update - */ - public okhttp3.Call updateCatalogChecklistTemplateAsync(@javax.annotation.Nonnull GetAlertFieldIdParameter id, @javax.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateCatalogChecklistTemplateAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull UpdateCatalogChecklistTemplate updateCatalogChecklistTemplate, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = updateCatalogChecklistTemplateValidateBeforeCall(id, updateCatalogChecklistTemplate, _callback); Type localVarReturnType = new TypeToken(){}.getType(); diff --git a/src/main/java/com/rootly/client/api/CatalogEntitiesApi.java b/src/main/java/com/rootly/client/api/CatalogEntitiesApi.java index 9d08a0ad..4f3828e2 100644 --- a/src/main/java/com/rootly/client/api/CatalogEntitiesApi.java +++ b/src/main/java/com/rootly/client/api/CatalogEntitiesApi.java @@ -27,6 +27,12 @@ import java.io.IOException; +import com.rootly.client.model.BulkDeleteCatalogEntities422Response; +import com.rootly.client.model.BulkDestroyCatalogEntities; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponse; +import com.rootly.client.model.BulkUpsertCatalogEntities; +import com.rootly.client.model.BulkUpsertCatalogEntities422Response; +import com.rootly.client.model.BulkUpsertCatalogEntitiesResponse; import com.rootly.client.model.CatalogEntityList; import com.rootly.client.model.CatalogEntityResponse; import com.rootly.client.model.ErrorsList; @@ -77,6 +83,296 @@ public void setCustomBaseUrl(String customBaseUrl) { this.localCustomBaseUrl = customBaseUrl; } + /** + * Build call for bulkDeleteCatalogEntities + * @param catalogId (required) + * @param bulkDestroyCatalogEntities (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteCatalogEntitiesCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkDestroyCatalogEntities bulkDestroyCatalogEntities, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkDestroyCatalogEntities; + + // create path and map variables + String localVarPath = "/v1/catalogs/{catalog_id}/entities/bulk_delete" + .replace("{" + "catalog_id" + "}", localVarApiClient.escapeString(catalogId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkDeleteCatalogEntitiesValidateBeforeCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkDestroyCatalogEntities bulkDestroyCatalogEntities, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'catalogId' is set + if (catalogId == null) { + throw new ApiException("Missing the required parameter 'catalogId' when calling bulkDeleteCatalogEntities(Async)"); + } + + // verify the required parameter 'bulkDestroyCatalogEntities' is set + if (bulkDestroyCatalogEntities == null) { + throw new ApiException("Missing the required parameter 'bulkDestroyCatalogEntities' when calling bulkDeleteCatalogEntities(Async)"); + } + + return bulkDeleteCatalogEntitiesCall(catalogId, bulkDestroyCatalogEntities, _callback); + + } + + /** + * Bulk delete Catalog Entities + * Delete catalog entities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param catalogId (required) + * @param bulkDestroyCatalogEntities (required) + * @return BulkDestroyCatalogEntitiesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public BulkDestroyCatalogEntitiesResponse bulkDeleteCatalogEntities(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkDestroyCatalogEntities bulkDestroyCatalogEntities) throws ApiException { + ApiResponse localVarResp = bulkDeleteCatalogEntitiesWithHttpInfo(catalogId, bulkDestroyCatalogEntities); + return localVarResp.getData(); + } + + /** + * Bulk delete Catalog Entities + * Delete catalog entities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param catalogId (required) + * @param bulkDestroyCatalogEntities (required) + * @return ApiResponse<BulkDestroyCatalogEntitiesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public ApiResponse bulkDeleteCatalogEntitiesWithHttpInfo(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkDestroyCatalogEntities bulkDestroyCatalogEntities) throws ApiException { + okhttp3.Call localVarCall = bulkDeleteCatalogEntitiesValidateBeforeCall(catalogId, bulkDestroyCatalogEntities, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk delete Catalog Entities (asynchronously) + * Delete catalog entities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param catalogId (required) + * @param bulkDestroyCatalogEntities (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteCatalogEntitiesAsync(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkDestroyCatalogEntities bulkDestroyCatalogEntities, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkDeleteCatalogEntitiesValidateBeforeCall(catalogId, bulkDestroyCatalogEntities, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for bulkUpsertCatalogEntities + * @param catalogId (required) + * @param bulkUpsertCatalogEntities (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities upserted successfully -
422 validation or entity-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertCatalogEntitiesCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkUpsertCatalogEntities bulkUpsertCatalogEntities, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkUpsertCatalogEntities; + + // create path and map variables + String localVarPath = "/v1/catalogs/{catalog_id}/entities/bulk_upsert" + .replace("{" + "catalog_id" + "}", localVarApiClient.escapeString(catalogId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkUpsertCatalogEntitiesValidateBeforeCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkUpsertCatalogEntities bulkUpsertCatalogEntities, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'catalogId' is set + if (catalogId == null) { + throw new ApiException("Missing the required parameter 'catalogId' when calling bulkUpsertCatalogEntities(Async)"); + } + + // verify the required parameter 'bulkUpsertCatalogEntities' is set + if (bulkUpsertCatalogEntities == null) { + throw new ApiException("Missing the required parameter 'bulkUpsertCatalogEntities' when calling bulkUpsertCatalogEntities(Async)"); + } + + return bulkUpsertCatalogEntitiesCall(catalogId, bulkUpsertCatalogEntities, _callback); + + } + + /** + * Bulk upsert Catalog Entities + * Create or update multiple catalog entities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. + * @param catalogId (required) + * @param bulkUpsertCatalogEntities (required) + * @return BulkUpsertCatalogEntitiesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities upserted successfully -
422 validation or entity-level error -
401 unauthorized -
+ */ + public BulkUpsertCatalogEntitiesResponse bulkUpsertCatalogEntities(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkUpsertCatalogEntities bulkUpsertCatalogEntities) throws ApiException { + ApiResponse localVarResp = bulkUpsertCatalogEntitiesWithHttpInfo(catalogId, bulkUpsertCatalogEntities); + return localVarResp.getData(); + } + + /** + * Bulk upsert Catalog Entities + * Create or update multiple catalog entities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. + * @param catalogId (required) + * @param bulkUpsertCatalogEntities (required) + * @return ApiResponse<BulkUpsertCatalogEntitiesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities upserted successfully -
422 validation or entity-level error -
401 unauthorized -
+ */ + public ApiResponse bulkUpsertCatalogEntitiesWithHttpInfo(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkUpsertCatalogEntities bulkUpsertCatalogEntities) throws ApiException { + okhttp3.Call localVarCall = bulkUpsertCatalogEntitiesValidateBeforeCall(catalogId, bulkUpsertCatalogEntities, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk upsert Catalog Entities (asynchronously) + * Create or update multiple catalog entities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. + * @param catalogId (required) + * @param bulkUpsertCatalogEntities (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 entities upserted successfully -
422 validation or entity-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertCatalogEntitiesAsync(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull BulkUpsertCatalogEntities bulkUpsertCatalogEntities, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkUpsertCatalogEntitiesValidateBeforeCall(catalogId, bulkUpsertCatalogEntities, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for createCatalogEntity * @param catalogId (required) @@ -88,8 +384,8 @@ public void setCustomBaseUrl(String customBaseUrl) { - - + +
Response Details
Status Code Description Response Headers
201 catalog_entity created -
422 invalid request -
201 catalog_entity created with fields attribute -
422 rejects entity with invalid catalog_field_id -
401 responds with unauthorized for invalid token -
*/ @@ -166,8 +462,8 @@ private okhttp3.Call createCatalogEntityValidateBeforeCall(@jakarta.annotation.N - - + +
Response Details
Status Code Description Response Headers
201 catalog_entity created -
422 invalid request -
201 catalog_entity created with fields attribute -
422 rejects entity with invalid catalog_field_id -
401 responds with unauthorized for invalid token -
*/ @@ -187,8 +483,8 @@ public CatalogEntityResponse createCatalogEntity(@jakarta.annotation.Nonnull Str - - + +
Response Details
Status Code Description Response Headers
201 catalog_entity created -
422 invalid request -
201 catalog_entity created with fields attribute -
422 rejects entity with invalid catalog_field_id -
401 responds with unauthorized for invalid token -
*/ @@ -210,8 +506,8 @@ public ApiResponse createCatalogEntityWithHttpInfo(@jakar - - + +
Response Details
Status Code Description Response Headers
201 catalog_entity created -
422 invalid request -
201 catalog_entity created with fields attribute -
422 rejects entity with invalid catalog_field_id -
401 responds with unauthorized for invalid token -
*/ @@ -499,12 +795,28 @@ public okhttp3.Call getCatalogEntityAsync(@jakarta.annotation.Nonnull GetAlertFi * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterBackstageId (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -515,7 +827,7 @@ public okhttp3.Call getCatalogEntityAsync(@jakarta.annotation.Nonnull GetAlertFi 200 success - */ - public okhttp3.Call listCatalogEntitiesCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogEntitiesCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -557,6 +869,10 @@ public okhttp3.Call listCatalogEntitiesCall(@jakarta.annotation.Nonnull String c localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); } + if (filterSearch != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[search]", filterSearch)); + } + if (filterSlug != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); } @@ -565,6 +881,18 @@ public okhttp3.Call listCatalogEntitiesCall(@jakarta.annotation.Nonnull String c localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); } + if (filterBackstageId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[backstage_id]", filterBackstageId)); + } + + if (filterExternalId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[external_id]", filterExternalId)); + } + + if (filterManagedBy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by]", filterManagedBy)); + } + if (filterCreatedAtGt != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); } @@ -581,6 +909,54 @@ public okhttp3.Call listCatalogEntitiesCall(@jakarta.annotation.Nonnull String c localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterManagedByEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][eq]", filterManagedByEq)); + } + + if (filterManagedByNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][not_eq]", filterManagedByNotEq)); + } + + if (filterManagedByIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][in]", filterManagedByIn)); + } + + if (filterManagedByNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][not_in]", filterManagedByNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -601,13 +977,13 @@ public okhttp3.Call listCatalogEntitiesCall(@jakarta.annotation.Nonnull String c } @SuppressWarnings("rawtypes") - private okhttp3.Call listCatalogEntitiesValidateBeforeCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listCatalogEntitiesValidateBeforeCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn, final ApiCallback _callback) throws ApiException { // verify the required parameter 'catalogId' is set if (catalogId == null) { throw new ApiException("Missing the required parameter 'catalogId' when calling listCatalogEntities(Async)"); } - return listCatalogEntitiesCall(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + return listCatalogEntitiesCall(catalogId, include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn, _callback); } @@ -619,12 +995,28 @@ private okhttp3.Call listCatalogEntitiesValidateBeforeCall(@jakarta.annotation.N * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterBackstageId (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @return CatalogEntityList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -634,8 +1026,8 @@ private okhttp3.Call listCatalogEntitiesValidateBeforeCall(@jakarta.annotation.N 200 success - */ - public CatalogEntityList listCatalogEntities(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - ApiResponse localVarResp = listCatalogEntitiesWithHttpInfo(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + public CatalogEntityList listCatalogEntities(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn) throws ApiException { + ApiResponse localVarResp = listCatalogEntitiesWithHttpInfo(catalogId, include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn); return localVarResp.getData(); } @@ -647,12 +1039,28 @@ public CatalogEntityList listCatalogEntities(@jakarta.annotation.Nonnull String * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterBackstageId (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @return ApiResponse<CatalogEntityList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -662,8 +1070,8 @@ public CatalogEntityList listCatalogEntities(@jakarta.annotation.Nonnull String 200 success - */ - public ApiResponse listCatalogEntitiesWithHttpInfo(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - okhttp3.Call localVarCall = listCatalogEntitiesValidateBeforeCall(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + public ApiResponse listCatalogEntitiesWithHttpInfo(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn) throws ApiException { + okhttp3.Call localVarCall = listCatalogEntitiesValidateBeforeCall(catalogId, include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -676,12 +1084,28 @@ public ApiResponse listCatalogEntitiesWithHttpInfo(@jakarta.a * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterBackstageId (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -692,9 +1116,9 @@ public ApiResponse listCatalogEntitiesWithHttpInfo(@jakarta.a 200 success - */ - public okhttp3.Call listCatalogEntitiesAsync(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogEntitiesAsync(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listCatalogEntitiesValidateBeforeCall(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + okhttp3.Call localVarCall = listCatalogEntitiesValidateBeforeCall(catalogId, include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -710,7 +1134,7 @@ public okhttp3.Call listCatalogEntitiesAsync(@jakarta.annotation.Nonnull String - +
Response Details
Status Code Description Response Headers
200 catalog_entity updated -
200 catalog_entity update replaces existing properties -
404 resource not found -
*/ @@ -787,7 +1211,7 @@ private okhttp3.Call updateCatalogEntityValidateBeforeCall(@jakarta.annotation.N - +
Response Details
Status Code Description Response Headers
200 catalog_entity updated -
200 catalog_entity update replaces existing properties -
404 resource not found -
*/ @@ -807,7 +1231,7 @@ public CatalogEntityResponse updateCatalogEntity(@jakarta.annotation.Nonnull Get - +
Response Details
Status Code Description Response Headers
200 catalog_entity updated -
200 catalog_entity update replaces existing properties -
404 resource not found -
*/ @@ -829,7 +1253,7 @@ public ApiResponse updateCatalogEntityWithHttpInfo(@jakar - +
Response Details
Status Code Description Response Headers
200 catalog_entity updated -
200 catalog_entity update replaces existing properties -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java b/src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java index 70c7bf09..1020dfd2 100644 --- a/src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java +++ b/src/main/java/com/rootly/client/api/CatalogEntityChecklistsApi.java @@ -89,7 +89,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 404 resource not found for another team - */ - public okhttp3.Call getCatalogEntityChecklistCall(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCatalogEntityChecklistCall(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -135,7 +135,7 @@ public okhttp3.Call getCatalogEntityChecklistCall(@javax.annotation.Nonnull UUID } @SuppressWarnings("rawtypes") - private okhttp3.Call getCatalogEntityChecklistValidateBeforeCall(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getCatalogEntityChecklistValidateBeforeCall(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling getCatalogEntityChecklist(Async)"); @@ -159,7 +159,7 @@ private okhttp3.Call getCatalogEntityChecklistValidateBeforeCall(@javax.annotati 404 resource not found for another team - */ - public CatalogEntityChecklistResponse getCatalogEntityChecklist(@javax.annotation.Nonnull UUID id) throws ApiException { + public CatalogEntityChecklistResponse getCatalogEntityChecklist(@jakarta.annotation.Nonnull UUID id) throws ApiException { ApiResponse localVarResp = getCatalogEntityChecklistWithHttpInfo(id); return localVarResp.getData(); } @@ -178,7 +178,7 @@ public CatalogEntityChecklistResponse getCatalogEntityChecklist(@javax.annotatio 404 resource not found for another team - */ - public ApiResponse getCatalogEntityChecklistWithHttpInfo(@javax.annotation.Nonnull UUID id) throws ApiException { + public ApiResponse getCatalogEntityChecklistWithHttpInfo(@jakarta.annotation.Nonnull UUID id) throws ApiException { okhttp3.Call localVarCall = getCatalogEntityChecklistValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -199,7 +199,7 @@ public ApiResponse getCatalogEntityChecklistWith 404 resource not found for another team - */ - public okhttp3.Call getCatalogEntityChecklistAsync(@javax.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCatalogEntityChecklistAsync(@jakarta.annotation.Nonnull UUID id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getCatalogEntityChecklistValidateBeforeCall(id, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -228,7 +228,7 @@ public okhttp3.Call getCatalogEntityChecklistAsync(@javax.annotation.Nonnull UUI 200 returns empty list for another team - */ - public okhttp3.Call listCatalogEntityChecklistsCall(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCatalogChecklistTemplateId, @javax.annotation.Nullable String filterAuditableType, @javax.annotation.Nullable String filterAuditableId, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogEntityChecklistsCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCatalogChecklistTemplateId, @jakarta.annotation.Nullable String filterAuditableType, @jakarta.annotation.Nullable String filterAuditableId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -313,7 +313,7 @@ public okhttp3.Call listCatalogEntityChecklistsCall(@javax.annotation.Nullable I } @SuppressWarnings("rawtypes") - private okhttp3.Call listCatalogEntityChecklistsValidateBeforeCall(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCatalogChecklistTemplateId, @javax.annotation.Nullable String filterAuditableType, @javax.annotation.Nullable String filterAuditableId, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listCatalogEntityChecklistsValidateBeforeCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCatalogChecklistTemplateId, @jakarta.annotation.Nullable String filterAuditableType, @jakarta.annotation.Nullable String filterAuditableId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { return listCatalogEntityChecklistsCall(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); } @@ -340,7 +340,7 @@ private okhttp3.Call listCatalogEntityChecklistsValidateBeforeCall(@javax.annota 200 returns empty list for another team - */ - public CatalogEntityChecklistList listCatalogEntityChecklists(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCatalogChecklistTemplateId, @javax.annotation.Nullable String filterAuditableType, @javax.annotation.Nullable String filterAuditableId, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte) throws ApiException { + public CatalogEntityChecklistList listCatalogEntityChecklists(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCatalogChecklistTemplateId, @jakarta.annotation.Nullable String filterAuditableType, @jakarta.annotation.Nullable String filterAuditableId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { ApiResponse localVarResp = listCatalogEntityChecklistsWithHttpInfo(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); return localVarResp.getData(); } @@ -367,7 +367,7 @@ public CatalogEntityChecklistList listCatalogEntityChecklists(@javax.annotation. 200 returns empty list for another team - */ - public ApiResponse listCatalogEntityChecklistsWithHttpInfo(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCatalogChecklistTemplateId, @javax.annotation.Nullable String filterAuditableType, @javax.annotation.Nullable String filterAuditableId, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte) throws ApiException { + public ApiResponse listCatalogEntityChecklistsWithHttpInfo(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCatalogChecklistTemplateId, @jakarta.annotation.Nullable String filterAuditableType, @jakarta.annotation.Nullable String filterAuditableId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { okhttp3.Call localVarCall = listCatalogEntityChecklistsValidateBeforeCall(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -396,7 +396,7 @@ public ApiResponse listCatalogEntityChecklistsWithHt 200 returns empty list for another team - */ - public okhttp3.Call listCatalogEntityChecklistsAsync(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCatalogChecklistTemplateId, @javax.annotation.Nullable String filterAuditableType, @javax.annotation.Nullable String filterAuditableId, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogEntityChecklistsAsync(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCatalogChecklistTemplateId, @jakarta.annotation.Nullable String filterAuditableType, @jakarta.annotation.Nullable String filterAuditableId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listCatalogEntityChecklistsValidateBeforeCall(pageNumber, pageSize, filterStatus, filterCatalogChecklistTemplateId, filterAuditableType, filterAuditableId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); Type localVarReturnType = new TypeToken(){}.getType(); diff --git a/src/main/java/com/rootly/client/api/CatalogEntityPropertiesApi.java b/src/main/java/com/rootly/client/api/CatalogEntityPropertiesApi.java index 92db0f8d..fa72a159 100644 --- a/src/main/java/com/rootly/client/api/CatalogEntityPropertiesApi.java +++ b/src/main/java/com/rootly/client/api/CatalogEntityPropertiesApi.java @@ -91,7 +91,9 @@ public void setCustomBaseUrl(String customBaseUrl) { 422 invalid request - 401 responds with unauthorized for invalid token - + * @deprecated */ + @Deprecated public okhttp3.Call createCatalogEntityPropertyCall(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nonnull NewCatalogEntityProperty newCatalogEntityProperty, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -138,6 +140,7 @@ public okhttp3.Call createCatalogEntityPropertyCall(@jakarta.annotation.Nonnull return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } + @Deprecated @SuppressWarnings("rawtypes") private okhttp3.Call createCatalogEntityPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nonnull NewCatalogEntityProperty newCatalogEntityProperty, final ApiCallback _callback) throws ApiException { // verify the required parameter 'catalogEntityId' is set @@ -156,7 +159,7 @@ private okhttp3.Call createCatalogEntityPropertyValidateBeforeCall(@jakarta.anno /** * Creates a Catalog Entity Property - * Creates a new Catalog Entity Property from provided data + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Creates a new Catalog Entity Property from provided data. * @param catalogEntityId (required) * @param newCatalogEntityProperty (required) * @return CatalogEntityPropertyResponse @@ -169,7 +172,9 @@ private okhttp3.Call createCatalogEntityPropertyValidateBeforeCall(@jakarta.anno 422 invalid request - 401 responds with unauthorized for invalid token - + * @deprecated */ + @Deprecated public CatalogEntityPropertyResponse createCatalogEntityProperty(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nonnull NewCatalogEntityProperty newCatalogEntityProperty) throws ApiException { ApiResponse localVarResp = createCatalogEntityPropertyWithHttpInfo(catalogEntityId, newCatalogEntityProperty); return localVarResp.getData(); @@ -177,7 +182,7 @@ public CatalogEntityPropertyResponse createCatalogEntityProperty(@jakarta.annota /** * Creates a Catalog Entity Property - * Creates a new Catalog Entity Property from provided data + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Creates a new Catalog Entity Property from provided data. * @param catalogEntityId (required) * @param newCatalogEntityProperty (required) * @return ApiResponse<CatalogEntityPropertyResponse> @@ -190,7 +195,9 @@ public CatalogEntityPropertyResponse createCatalogEntityProperty(@jakarta.annota 422 invalid request - 401 responds with unauthorized for invalid token - + * @deprecated */ + @Deprecated public ApiResponse createCatalogEntityPropertyWithHttpInfo(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nonnull NewCatalogEntityProperty newCatalogEntityProperty) throws ApiException { okhttp3.Call localVarCall = createCatalogEntityPropertyValidateBeforeCall(catalogEntityId, newCatalogEntityProperty, null); Type localVarReturnType = new TypeToken(){}.getType(); @@ -199,7 +206,7 @@ public ApiResponse createCatalogEntityPropertyWit /** * Creates a Catalog Entity Property (asynchronously) - * Creates a new Catalog Entity Property from provided data + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Creates a new Catalog Entity Property from provided data. * @param catalogEntityId (required) * @param newCatalogEntityProperty (required) * @param _callback The callback to be executed when the API call finishes @@ -213,7 +220,9 @@ public ApiResponse createCatalogEntityPropertyWit 422 invalid request - 401 responds with unauthorized for invalid token - + * @deprecated */ + @Deprecated public okhttp3.Call createCatalogEntityPropertyAsync(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nonnull NewCatalogEntityProperty newCatalogEntityProperty, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = createCatalogEntityPropertyValidateBeforeCall(catalogEntityId, newCatalogEntityProperty, _callback); @@ -234,7 +243,9 @@ public okhttp3.Call createCatalogEntityPropertyAsync(@jakarta.annotation.Nonnull 200 catalog_entity_property deleted - 404 resource not found - + * @deprecated */ + @Deprecated public okhttp3.Call deleteCatalogEntityPropertyCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -280,6 +291,7 @@ public okhttp3.Call deleteCatalogEntityPropertyCall(@jakarta.annotation.Nonnull return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } + @Deprecated @SuppressWarnings("rawtypes") private okhttp3.Call deleteCatalogEntityPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set @@ -293,7 +305,7 @@ private okhttp3.Call deleteCatalogEntityPropertyValidateBeforeCall(@jakarta.anno /** * Delete a Catalog Entity Property - * Delete a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Delete a specific Catalog Entity Property by id. * @param id (required) * @return CatalogEntityPropertyResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -304,7 +316,9 @@ private okhttp3.Call deleteCatalogEntityPropertyValidateBeforeCall(@jakarta.anno 200 catalog_entity_property deleted - 404 resource not found - + * @deprecated */ + @Deprecated public CatalogEntityPropertyResponse deleteCatalogEntityProperty(@jakarta.annotation.Nonnull String id) throws ApiException { ApiResponse localVarResp = deleteCatalogEntityPropertyWithHttpInfo(id); return localVarResp.getData(); @@ -312,7 +326,7 @@ public CatalogEntityPropertyResponse deleteCatalogEntityProperty(@jakarta.annota /** * Delete a Catalog Entity Property - * Delete a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Delete a specific Catalog Entity Property by id. * @param id (required) * @return ApiResponse<CatalogEntityPropertyResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -323,7 +337,9 @@ public CatalogEntityPropertyResponse deleteCatalogEntityProperty(@jakarta.annota 200 catalog_entity_property deleted - 404 resource not found - + * @deprecated */ + @Deprecated public ApiResponse deleteCatalogEntityPropertyWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = deleteCatalogEntityPropertyValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); @@ -332,7 +348,7 @@ public ApiResponse deleteCatalogEntityPropertyWit /** * Delete a Catalog Entity Property (asynchronously) - * Delete a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Delete a specific Catalog Entity Property by id. * @param id (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -344,7 +360,9 @@ public ApiResponse deleteCatalogEntityPropertyWit 200 catalog_entity_property deleted - 404 resource not found - + * @deprecated */ + @Deprecated public okhttp3.Call deleteCatalogEntityPropertyAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = deleteCatalogEntityPropertyValidateBeforeCall(id, _callback); @@ -366,7 +384,9 @@ public okhttp3.Call deleteCatalogEntityPropertyAsync(@jakarta.annotation.Nonnull 200 catalog_entity_property found - 404 resource not found - + * @deprecated */ + @Deprecated public okhttp3.Call getCatalogEntityPropertyCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -416,6 +436,7 @@ public okhttp3.Call getCatalogEntityPropertyCall(@jakarta.annotation.Nonnull Str return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } + @Deprecated @SuppressWarnings("rawtypes") private okhttp3.Call getCatalogEntityPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set @@ -429,7 +450,7 @@ private okhttp3.Call getCatalogEntityPropertyValidateBeforeCall(@jakarta.annotat /** * Retrieves a Catalog Entity Property - * Retrieves a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. Retrieves a specific Catalog Entity Property by id. * @param id (required) * @param include comma separated if needed. eg: catalog_entity,catalog_field (optional) * @return CatalogEntityPropertyResponse @@ -441,7 +462,9 @@ private okhttp3.Call getCatalogEntityPropertyValidateBeforeCall(@jakarta.annotat 200 catalog_entity_property found - 404 resource not found - + * @deprecated */ + @Deprecated public CatalogEntityPropertyResponse getCatalogEntityProperty(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { ApiResponse localVarResp = getCatalogEntityPropertyWithHttpInfo(id, include); return localVarResp.getData(); @@ -449,7 +472,7 @@ public CatalogEntityPropertyResponse getCatalogEntityProperty(@jakarta.annotatio /** * Retrieves a Catalog Entity Property - * Retrieves a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. Retrieves a specific Catalog Entity Property by id. * @param id (required) * @param include comma separated if needed. eg: catalog_entity,catalog_field (optional) * @return ApiResponse<CatalogEntityPropertyResponse> @@ -461,7 +484,9 @@ public CatalogEntityPropertyResponse getCatalogEntityProperty(@jakarta.annotatio 200 catalog_entity_property found - 404 resource not found - + * @deprecated */ + @Deprecated public ApiResponse getCatalogEntityPropertyWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { okhttp3.Call localVarCall = getCatalogEntityPropertyValidateBeforeCall(id, include, null); Type localVarReturnType = new TypeToken(){}.getType(); @@ -470,7 +495,7 @@ public ApiResponse getCatalogEntityPropertyWithHt /** * Retrieves a Catalog Entity Property (asynchronously) - * Retrieves a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. Retrieves a specific Catalog Entity Property by id. * @param id (required) * @param include comma separated if needed. eg: catalog_entity,catalog_field (optional) * @param _callback The callback to be executed when the API call finishes @@ -483,7 +508,9 @@ public ApiResponse getCatalogEntityPropertyWithHt 200 catalog_entity_property found - 404 resource not found - + * @deprecated */ + @Deprecated public okhttp3.Call getCatalogEntityPropertyAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getCatalogEntityPropertyValidateBeforeCall(id, include, _callback); @@ -513,7 +540,9 @@ public okhttp3.Call getCatalogEntityPropertyAsync(@jakarta.annotation.Nonnull St Status Code Description Response Headers 200 success - + * @deprecated */ + @Deprecated public okhttp3.Call listCatalogEntityPropertiesCall(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCatalogFieldId, @jakarta.annotation.Nullable String filterKey, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -599,6 +628,7 @@ public okhttp3.Call listCatalogEntityPropertiesCall(@jakarta.annotation.Nonnull return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } + @Deprecated @SuppressWarnings("rawtypes") private okhttp3.Call listCatalogEntityPropertiesValidateBeforeCall(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCatalogFieldId, @jakarta.annotation.Nullable String filterKey, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { // verify the required parameter 'catalogEntityId' is set @@ -612,7 +642,7 @@ private okhttp3.Call listCatalogEntityPropertiesValidateBeforeCall(@jakarta.anno /** * List catalog properties - * List Catalog Entity Properties + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. List Catalog Entity Properties. * @param catalogEntityId (required) * @param include comma separated if needed. eg: catalog_entity,catalog_field (optional) * @param sort comma separated if needed. eg: created_at,updated_at (optional) @@ -632,7 +662,9 @@ private okhttp3.Call listCatalogEntityPropertiesValidateBeforeCall(@jakarta.anno Status Code Description Response Headers 200 success - + * @deprecated */ + @Deprecated public CatalogEntityPropertyList listCatalogEntityProperties(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCatalogFieldId, @jakarta.annotation.Nullable String filterKey, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { ApiResponse localVarResp = listCatalogEntityPropertiesWithHttpInfo(catalogEntityId, include, sort, pageNumber, pageSize, filterCatalogFieldId, filterKey, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); return localVarResp.getData(); @@ -640,7 +672,7 @@ public CatalogEntityPropertyList listCatalogEntityProperties(@jakarta.annotation /** * List catalog properties - * List Catalog Entity Properties + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. List Catalog Entity Properties. * @param catalogEntityId (required) * @param include comma separated if needed. eg: catalog_entity,catalog_field (optional) * @param sort comma separated if needed. eg: created_at,updated_at (optional) @@ -660,7 +692,9 @@ public CatalogEntityPropertyList listCatalogEntityProperties(@jakarta.annotation Status Code Description Response Headers 200 success - + * @deprecated */ + @Deprecated public ApiResponse listCatalogEntityPropertiesWithHttpInfo(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCatalogFieldId, @jakarta.annotation.Nullable String filterKey, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { okhttp3.Call localVarCall = listCatalogEntityPropertiesValidateBeforeCall(catalogEntityId, include, sort, pageNumber, pageSize, filterCatalogFieldId, filterKey, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); Type localVarReturnType = new TypeToken(){}.getType(); @@ -669,7 +703,7 @@ public ApiResponse listCatalogEntityPropertiesWithHtt /** * List catalog properties (asynchronously) - * List Catalog Entity Properties + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. List Catalog Entity Properties. * @param catalogEntityId (required) * @param include comma separated if needed. eg: catalog_entity,catalog_field (optional) * @param sort comma separated if needed. eg: created_at,updated_at (optional) @@ -690,7 +724,9 @@ public ApiResponse listCatalogEntityPropertiesWithHtt Status Code Description Response Headers 200 success - + * @deprecated */ + @Deprecated public okhttp3.Call listCatalogEntityPropertiesAsync(@jakarta.annotation.Nonnull String catalogEntityId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterCatalogFieldId, @jakarta.annotation.Nullable String filterKey, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listCatalogEntityPropertiesValidateBeforeCall(catalogEntityId, include, sort, pageNumber, pageSize, filterCatalogFieldId, filterKey, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); @@ -712,7 +748,9 @@ public okhttp3.Call listCatalogEntityPropertiesAsync(@jakarta.annotation.Nonnull 200 catalog_entity_property updated - 404 resource not found - + * @deprecated */ + @Deprecated public okhttp3.Call updateCatalogEntityPropertyCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogEntityProperty updateCatalogEntityProperty, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -759,6 +797,7 @@ public okhttp3.Call updateCatalogEntityPropertyCall(@jakarta.annotation.Nonnull return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } + @Deprecated @SuppressWarnings("rawtypes") private okhttp3.Call updateCatalogEntityPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogEntityProperty updateCatalogEntityProperty, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set @@ -777,7 +816,7 @@ private okhttp3.Call updateCatalogEntityPropertyValidateBeforeCall(@jakarta.anno /** * Update a Catalog Entity Property - * Update a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Update a specific Catalog Entity Property by id. * @param id (required) * @param updateCatalogEntityProperty (required) * @return CatalogEntityPropertyResponse @@ -789,7 +828,9 @@ private okhttp3.Call updateCatalogEntityPropertyValidateBeforeCall(@jakarta.anno 200 catalog_entity_property updated - 404 resource not found - + * @deprecated */ + @Deprecated public CatalogEntityPropertyResponse updateCatalogEntityProperty(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogEntityProperty updateCatalogEntityProperty) throws ApiException { ApiResponse localVarResp = updateCatalogEntityPropertyWithHttpInfo(id, updateCatalogEntityProperty); return localVarResp.getData(); @@ -797,7 +838,7 @@ public CatalogEntityPropertyResponse updateCatalogEntityProperty(@jakarta.annota /** * Update a Catalog Entity Property - * Update a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Update a specific Catalog Entity Property by id. * @param id (required) * @param updateCatalogEntityProperty (required) * @return ApiResponse<CatalogEntityPropertyResponse> @@ -809,7 +850,9 @@ public CatalogEntityPropertyResponse updateCatalogEntityProperty(@jakarta.annota 200 catalog_entity_property updated - 404 resource not found - + * @deprecated */ + @Deprecated public ApiResponse updateCatalogEntityPropertyWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogEntityProperty updateCatalogEntityProperty) throws ApiException { okhttp3.Call localVarCall = updateCatalogEntityPropertyValidateBeforeCall(id, updateCatalogEntityProperty, null); Type localVarReturnType = new TypeToken(){}.getType(); @@ -818,7 +861,7 @@ public ApiResponse updateCatalogEntityPropertyWit /** * Update a Catalog Entity Property (asynchronously) - * Update a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Update a specific Catalog Entity Property by id. * @param id (required) * @param updateCatalogEntityProperty (required) * @param _callback The callback to be executed when the API call finishes @@ -831,7 +874,9 @@ public ApiResponse updateCatalogEntityPropertyWit 200 catalog_entity_property updated - 404 resource not found - + * @deprecated */ + @Deprecated public okhttp3.Call updateCatalogEntityPropertyAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogEntityProperty updateCatalogEntityProperty, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = updateCatalogEntityPropertyValidateBeforeCall(id, updateCatalogEntityProperty, _callback); diff --git a/src/main/java/com/rootly/client/api/CatalogPropertiesApi.java b/src/main/java/com/rootly/client/api/CatalogPropertiesApi.java index dbaee35b..9a939bfc 100644 --- a/src/main/java/com/rootly/client/api/CatalogPropertiesApi.java +++ b/src/main/java/com/rootly/client/api/CatalogPropertiesApi.java @@ -87,7 +87,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 201 catalog_property created - */ - public okhttp3.Call createCatalogPropertyCall(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createCatalogPropertyCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull NewCatalogField newCatalogField, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -133,7 +133,7 @@ public okhttp3.Call createCatalogPropertyCall(@javax.annotation.Nonnull String c } @SuppressWarnings("rawtypes") - private okhttp3.Call createCatalogPropertyValidateBeforeCall(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull NewCatalogField newCatalogField, final ApiCallback _callback) throws ApiException { // verify the required parameter 'catalogId' is set if (catalogId == null) { throw new ApiException("Missing the required parameter 'catalogId' when calling createCatalogProperty(Async)"); @@ -161,7 +161,7 @@ private okhttp3.Call createCatalogPropertyValidateBeforeCall(@javax.annotation.N 201 catalog_property created - */ - public void createCatalogProperty(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField) throws ApiException { + public void createCatalogProperty(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull NewCatalogField newCatalogField) throws ApiException { createCatalogPropertyWithHttpInfo(catalogId, newCatalogField); } @@ -179,7 +179,7 @@ public void createCatalogProperty(@javax.annotation.Nonnull String catalogId, @j 201 catalog_property created - */ - public ApiResponse createCatalogPropertyWithHttpInfo(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField) throws ApiException { + public ApiResponse createCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull NewCatalogField newCatalogField) throws ApiException { okhttp3.Call localVarCall = createCatalogPropertyValidateBeforeCall(catalogId, newCatalogField, null); return localVarApiClient.execute(localVarCall); } @@ -199,7 +199,7 @@ public ApiResponse createCatalogPropertyWithHttpInfo(@javax.annotation.Non 201 catalog_property created - */ - public okhttp3.Call createCatalogPropertyAsync(@javax.annotation.Nonnull String catalogId, @javax.annotation.Nonnull NewCatalogField newCatalogField, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createCatalogPropertyAsync(@jakarta.annotation.Nonnull String catalogId, @jakarta.annotation.Nonnull NewCatalogField newCatalogField, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = createCatalogPropertyValidateBeforeCall(catalogId, newCatalogField, _callback); localVarApiClient.executeAsync(localVarCall, _callback); @@ -218,7 +218,7 @@ public okhttp3.Call createCatalogPropertyAsync(@javax.annotation.Nonnull String 200 catalog_property deleted - */ - public okhttp3.Call deleteCatalogPropertyCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteCatalogPropertyCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -263,7 +263,7 @@ public okhttp3.Call deleteCatalogPropertyCall(@javax.annotation.Nonnull String i } @SuppressWarnings("rawtypes") - private okhttp3.Call deleteCatalogPropertyValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling deleteCatalogProperty(Async)"); @@ -285,7 +285,7 @@ private okhttp3.Call deleteCatalogPropertyValidateBeforeCall(@javax.annotation.N 200 catalog_property deleted - */ - public void deleteCatalogProperty(@javax.annotation.Nonnull String id) throws ApiException { + public void deleteCatalogProperty(@jakarta.annotation.Nonnull String id) throws ApiException { deleteCatalogPropertyWithHttpInfo(id); } @@ -302,7 +302,7 @@ public void deleteCatalogProperty(@javax.annotation.Nonnull String id) throws Ap 200 catalog_property deleted - */ - public ApiResponse deleteCatalogPropertyWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse deleteCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = deleteCatalogPropertyValidateBeforeCall(id, null); return localVarApiClient.execute(localVarCall); } @@ -321,7 +321,7 @@ public ApiResponse deleteCatalogPropertyWithHttpInfo(@javax.annotation.Non 200 catalog_property deleted - */ - public okhttp3.Call deleteCatalogPropertyAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteCatalogPropertyAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = deleteCatalogPropertyValidateBeforeCall(id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); @@ -340,7 +340,7 @@ public okhttp3.Call deleteCatalogPropertyAsync(@javax.annotation.Nonnull String 200 catalog_property found - */ - public okhttp3.Call getCatalogPropertyCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCatalogPropertyCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -385,7 +385,7 @@ public okhttp3.Call getCatalogPropertyCall(@javax.annotation.Nonnull String id, } @SuppressWarnings("rawtypes") - private okhttp3.Call getCatalogPropertyValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling getCatalogProperty(Async)"); @@ -407,7 +407,7 @@ private okhttp3.Call getCatalogPropertyValidateBeforeCall(@javax.annotation.Nonn 200 catalog_property found - */ - public void getCatalogProperty(@javax.annotation.Nonnull String id) throws ApiException { + public void getCatalogProperty(@jakarta.annotation.Nonnull String id) throws ApiException { getCatalogPropertyWithHttpInfo(id); } @@ -424,7 +424,7 @@ public void getCatalogProperty(@javax.annotation.Nonnull String id) throws ApiEx 200 catalog_property found - */ - public ApiResponse getCatalogPropertyWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse getCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = getCatalogPropertyValidateBeforeCall(id, null); return localVarApiClient.execute(localVarCall); } @@ -443,7 +443,7 @@ public ApiResponse getCatalogPropertyWithHttpInfo(@javax.annotation.Nonnul 200 catalog_property found - */ - public okhttp3.Call getCatalogPropertyAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCatalogPropertyAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getCatalogPropertyValidateBeforeCall(id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); @@ -462,7 +462,7 @@ public okhttp3.Call getCatalogPropertyAsync(@javax.annotation.Nonnull String id, 200 success with catalog_properties type - */ - public okhttp3.Call listCatalogPropertiesCall(@javax.annotation.Nonnull String catalogId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogPropertiesCall(@jakarta.annotation.Nonnull String catalogId, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -507,7 +507,7 @@ public okhttp3.Call listCatalogPropertiesCall(@javax.annotation.Nonnull String c } @SuppressWarnings("rawtypes") - private okhttp3.Call listCatalogPropertiesValidateBeforeCall(@javax.annotation.Nonnull String catalogId, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listCatalogPropertiesValidateBeforeCall(@jakarta.annotation.Nonnull String catalogId, final ApiCallback _callback) throws ApiException { // verify the required parameter 'catalogId' is set if (catalogId == null) { throw new ApiException("Missing the required parameter 'catalogId' when calling listCatalogProperties(Async)"); @@ -529,7 +529,7 @@ private okhttp3.Call listCatalogPropertiesValidateBeforeCall(@javax.annotation.N 200 success with catalog_properties type - */ - public void listCatalogProperties(@javax.annotation.Nonnull String catalogId) throws ApiException { + public void listCatalogProperties(@jakarta.annotation.Nonnull String catalogId) throws ApiException { listCatalogPropertiesWithHttpInfo(catalogId); } @@ -546,7 +546,7 @@ public void listCatalogProperties(@javax.annotation.Nonnull String catalogId) th 200 success with catalog_properties type - */ - public ApiResponse listCatalogPropertiesWithHttpInfo(@javax.annotation.Nonnull String catalogId) throws ApiException { + public ApiResponse listCatalogPropertiesWithHttpInfo(@jakarta.annotation.Nonnull String catalogId) throws ApiException { okhttp3.Call localVarCall = listCatalogPropertiesValidateBeforeCall(catalogId, null); return localVarApiClient.execute(localVarCall); } @@ -565,7 +565,7 @@ public ApiResponse listCatalogPropertiesWithHttpInfo(@javax.annotation.Non 200 success with catalog_properties type - */ - public okhttp3.Call listCatalogPropertiesAsync(@javax.annotation.Nonnull String catalogId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogPropertiesAsync(@jakarta.annotation.Nonnull String catalogId, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listCatalogPropertiesValidateBeforeCall(catalogId, _callback); localVarApiClient.executeAsync(localVarCall, _callback); @@ -585,7 +585,7 @@ public okhttp3.Call listCatalogPropertiesAsync(@javax.annotation.Nonnull String 200 catalog_property updated - */ - public okhttp3.Call updateCatalogPropertyCall(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateCatalogField updateCatalogField, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateCatalogPropertyCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogField updateCatalogField, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -631,7 +631,7 @@ public okhttp3.Call updateCatalogPropertyCall(@javax.annotation.Nonnull String i } @SuppressWarnings("rawtypes") - private okhttp3.Call updateCatalogPropertyValidateBeforeCall(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateCatalogField updateCatalogField, final ApiCallback _callback) throws ApiException { + private okhttp3.Call updateCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogField updateCatalogField, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling updateCatalogProperty(Async)"); @@ -659,7 +659,7 @@ private okhttp3.Call updateCatalogPropertyValidateBeforeCall(@javax.annotation.N 200 catalog_property updated - */ - public void updateCatalogProperty(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateCatalogField updateCatalogField) throws ApiException { + public void updateCatalogProperty(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogField updateCatalogField) throws ApiException { updateCatalogPropertyWithHttpInfo(id, updateCatalogField); } @@ -677,7 +677,7 @@ public void updateCatalogProperty(@javax.annotation.Nonnull String id, @javax.an 200 catalog_property updated - */ - public ApiResponse updateCatalogPropertyWithHttpInfo(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateCatalogField updateCatalogField) throws ApiException { + public ApiResponse updateCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogField updateCatalogField) throws ApiException { okhttp3.Call localVarCall = updateCatalogPropertyValidateBeforeCall(id, updateCatalogField, null); return localVarApiClient.execute(localVarCall); } @@ -697,7 +697,7 @@ public ApiResponse updateCatalogPropertyWithHttpInfo(@javax.annotation.Non 200 catalog_property updated - */ - public okhttp3.Call updateCatalogPropertyAsync(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateCatalogField updateCatalogField, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateCatalogPropertyAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateCatalogField updateCatalogField, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = updateCatalogPropertyValidateBeforeCall(id, updateCatalogField, _callback); localVarApiClient.executeAsync(localVarCall, _callback); diff --git a/src/main/java/com/rootly/client/api/CatalogsApi.java b/src/main/java/com/rootly/client/api/CatalogsApi.java index f103bfc7..e36b233a 100644 --- a/src/main/java/com/rootly/client/api/CatalogsApi.java +++ b/src/main/java/com/rootly/client/api/CatalogsApi.java @@ -480,12 +480,27 @@ public okhttp3.Call getCatalogAsync(@jakarta.annotation.Nonnull GetAlertFieldIdP * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -496,7 +511,7 @@ public okhttp3.Call getCatalogAsync(@jakarta.annotation.Nonnull GetAlertFieldIdP 200 success - */ - public okhttp3.Call listCatalogsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -537,6 +552,10 @@ public okhttp3.Call listCatalogsCall(@jakarta.annotation.Nullable String include localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); } + if (filterSearch != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[search]", filterSearch)); + } + if (filterSlug != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); } @@ -545,6 +564,14 @@ public okhttp3.Call listCatalogsCall(@jakarta.annotation.Nullable String include localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); } + if (filterExternalId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[external_id]", filterExternalId)); + } + + if (filterManagedBy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by]", filterManagedBy)); + } + if (filterCreatedAtGt != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); } @@ -561,6 +588,54 @@ public okhttp3.Call listCatalogsCall(@jakarta.annotation.Nullable String include localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterManagedByEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][eq]", filterManagedByEq)); + } + + if (filterManagedByNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][not_eq]", filterManagedByNotEq)); + } + + if (filterManagedByIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][in]", filterManagedByIn)); + } + + if (filterManagedByNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[managed_by][not_in]", filterManagedByNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -581,8 +656,8 @@ public okhttp3.Call listCatalogsCall(@jakarta.annotation.Nullable String include } @SuppressWarnings("rawtypes") - private okhttp3.Call listCatalogsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { - return listCatalogsCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + private okhttp3.Call listCatalogsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn, final ApiCallback _callback) throws ApiException { + return listCatalogsCall(include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn, _callback); } @@ -593,12 +668,27 @@ private okhttp3.Call listCatalogsValidateBeforeCall(@jakarta.annotation.Nullable * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @return CatalogList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -608,8 +698,8 @@ private okhttp3.Call listCatalogsValidateBeforeCall(@jakarta.annotation.Nullable 200 success - */ - public CatalogList listCatalogs(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - ApiResponse localVarResp = listCatalogsWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + public CatalogList listCatalogs(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn) throws ApiException { + ApiResponse localVarResp = listCatalogsWithHttpInfo(include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn); return localVarResp.getData(); } @@ -620,12 +710,27 @@ public CatalogList listCatalogs(@jakarta.annotation.Nullable String include, @ja * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @return ApiResponse<CatalogList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -635,8 +740,8 @@ public CatalogList listCatalogs(@jakarta.annotation.Nullable String include, @ja 200 success - */ - public ApiResponse listCatalogsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - okhttp3.Call localVarCall = listCatalogsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + public ApiResponse listCatalogsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn) throws ApiException { + okhttp3.Call localVarCall = listCatalogsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -648,12 +753,27 @@ public ApiResponse listCatalogsWithHttpInfo(@jakarta.annotation.Nul * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterSearch (optional) * @param filterSlug (optional) * @param filterName (optional) + * @param filterExternalId (optional) + * @param filterManagedBy (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterManagedByEq (optional) + * @param filterManagedByNotEq (optional) + * @param filterManagedByIn (optional) + * @param filterManagedByNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -664,9 +784,9 @@ public ApiResponse listCatalogsWithHttpInfo(@jakarta.annotation.Nul 200 success - */ - public okhttp3.Call listCatalogsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCatalogsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterManagedBy, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterManagedByEq, @jakarta.annotation.Nullable String filterManagedByNotEq, @jakarta.annotation.Nullable String filterManagedByIn, @jakarta.annotation.Nullable String filterManagedByNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listCatalogsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + okhttp3.Call localVarCall = listCatalogsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/CausesApi.java b/src/main/java/com/rootly/client/api/CausesApi.java index 24aab694..2045152b 100644 --- a/src/main/java/com/rootly/client/api/CausesApi.java +++ b/src/main/java/com/rootly/client/api/CausesApi.java @@ -27,10 +27,13 @@ import java.io.IOException; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.CauseList; import com.rootly.client.model.CauseResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewCause; import com.rootly.client.model.UpdateCause; @@ -212,6 +215,141 @@ public okhttp3.Call createCauseAsync(@jakarta.annotation.Nonnull NewCause newCau localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for createCauseCatalogProperty + * @param newCatalogProperty (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createCauseCatalogPropertyCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newCatalogProperty; + + // create path and map variables + String localVarPath = "/v1/causes/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createCauseCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newCatalogProperty' is set + if (newCatalogProperty == null) { + throw new ApiException("Missing the required parameter 'newCatalogProperty' when calling createCauseCatalogProperty(Async)"); + } + + return createCauseCatalogPropertyCall(newCatalogProperty, _callback); + + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return CatalogPropertyResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public CatalogPropertyResponse createCauseCatalogProperty(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + ApiResponse localVarResp = createCauseCatalogPropertyWithHttpInfo(newCatalogProperty); + return localVarResp.getData(); + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return ApiResponse<CatalogPropertyResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createCauseCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + okhttp3.Call localVarCall = createCauseCatalogPropertyValidateBeforeCall(newCatalogProperty, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a Catalog Property (asynchronously) + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createCauseCatalogPropertyAsync(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createCauseCatalogPropertyValidateBeforeCall(newCatalogProperty, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for deleteCause * @param id (required) @@ -474,6 +612,211 @@ public okhttp3.Call getCauseAsync(@jakarta.annotation.Nonnull GetAlertFieldIdPar localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for listCauseCatalogProperties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listCauseCatalogPropertiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/causes/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (sort != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + if (filterSlug != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); + } + + if (filterName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); + } + + if (filterKind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listCauseCatalogPropertiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + return listCauseCatalogPropertiesCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + + } + + /** + * List Catalog Properties + * List Cause Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return CatalogPropertyList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public CatalogPropertyList listCauseCatalogProperties(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + ApiResponse localVarResp = listCauseCatalogPropertiesWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + return localVarResp.getData(); + } + + /** + * List Catalog Properties + * List Cause Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return ApiResponse<CatalogPropertyList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listCauseCatalogPropertiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + okhttp3.Call localVarCall = listCauseCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List Catalog Properties (asynchronously) + * List Cause Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listCauseCatalogPropertiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listCauseCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for listCauses * @param include (optional) @@ -486,6 +829,14 @@ public okhttp3.Call getCauseAsync(@jakarta.annotation.Nonnull GetAlertFieldIdPar * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -496,7 +847,7 @@ public okhttp3.Call getCauseAsync(@jakarta.annotation.Nonnull GetAlertFieldIdPar 200 success - */ - public okhttp3.Call listCausesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCausesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -561,6 +912,38 @@ public okhttp3.Call listCausesCall(@jakarta.annotation.Nullable String include, localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -581,8 +964,8 @@ public okhttp3.Call listCausesCall(@jakarta.annotation.Nullable String include, } @SuppressWarnings("rawtypes") - private okhttp3.Call listCausesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { - return listCausesCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + private okhttp3.Call listCausesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { + return listCausesCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, _callback); } @@ -599,6 +982,14 @@ private okhttp3.Call listCausesValidateBeforeCall(@jakarta.annotation.Nullable S * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @return CauseList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -608,8 +999,8 @@ private okhttp3.Call listCausesValidateBeforeCall(@jakarta.annotation.Nullable S 200 success - */ - public CauseList listCauses(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - ApiResponse localVarResp = listCausesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + public CauseList listCauses(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn) throws ApiException { + ApiResponse localVarResp = listCausesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); return localVarResp.getData(); } @@ -626,6 +1017,14 @@ public CauseList listCauses(@jakarta.annotation.Nullable String include, @jakart * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @return ApiResponse<CauseList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -635,8 +1034,8 @@ public CauseList listCauses(@jakarta.annotation.Nullable String include, @jakart 200 success - */ - public ApiResponse listCausesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - okhttp3.Call localVarCall = listCausesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + public ApiResponse listCausesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn) throws ApiException { + okhttp3.Call localVarCall = listCausesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -654,6 +1053,14 @@ public ApiResponse listCausesWithHttpInfo(@jakarta.annotation.Nullabl * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -664,9 +1071,9 @@ public ApiResponse listCausesWithHttpInfo(@jakarta.annotation.Nullabl 200 success - */ - public okhttp3.Call listCausesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCausesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listCausesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + okhttp3.Call localVarCall = listCausesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/DeprecatedCustomFieldsApi.java b/src/main/java/com/rootly/client/api/DeprecatedCustomFieldsApi.java index 3e23ea7c..06609747 100644 --- a/src/main/java/com/rootly/client/api/DeprecatedCustomFieldsApi.java +++ b/src/main/java/com/rootly/client/api/DeprecatedCustomFieldsApi.java @@ -522,6 +522,22 @@ public okhttp3.Call getCustomFieldAsync(@jakarta.annotation.Nonnull String id, @ * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterLabelEq (optional) + * @param filterLabelNotEq (optional) + * @param filterLabelIn (optional) + * @param filterLabelNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -534,7 +550,7 @@ public okhttp3.Call getCustomFieldAsync(@jakarta.annotation.Nonnull String id, @ * @deprecated */ @Deprecated - public okhttp3.Call listCustomFieldsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCustomFieldsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterLabelEq, @jakarta.annotation.Nullable String filterLabelNotEq, @jakarta.annotation.Nullable String filterLabelIn, @jakarta.annotation.Nullable String filterLabelNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -607,6 +623,70 @@ public okhttp3.Call listCustomFieldsCall(@jakarta.annotation.Nullable String inc localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterLabelEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[label][eq]", filterLabelEq)); + } + + if (filterLabelNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[label][not_eq]", filterLabelNotEq)); + } + + if (filterLabelIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[label][in]", filterLabelIn)); + } + + if (filterLabelNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[label][not_in]", filterLabelNotIn)); + } + + if (filterKindEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][eq]", filterKindEq)); + } + + if (filterKindNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_eq]", filterKindNotEq)); + } + + if (filterKindIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][in]", filterKindIn)); + } + + if (filterKindNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_in]", filterKindNotIn)); + } + + if (filterEnabledEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][eq]", filterEnabledEq)); + } + + if (filterEnabledNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][not_eq]", filterEnabledNotEq)); + } + + if (filterEnabledIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][in]", filterEnabledIn)); + } + + if (filterEnabledNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][not_in]", filterEnabledNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -628,8 +708,8 @@ public okhttp3.Call listCustomFieldsCall(@jakarta.annotation.Nullable String inc @Deprecated @SuppressWarnings("rawtypes") - private okhttp3.Call listCustomFieldsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { - return listCustomFieldsCall(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + private okhttp3.Call listCustomFieldsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterLabelEq, @jakarta.annotation.Nullable String filterLabelNotEq, @jakarta.annotation.Nullable String filterLabelIn, @jakarta.annotation.Nullable String filterLabelNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, final ApiCallback _callback) throws ApiException { + return listCustomFieldsCall(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterLabelEq, filterLabelNotEq, filterLabelIn, filterLabelNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, _callback); } @@ -648,6 +728,22 @@ private okhttp3.Call listCustomFieldsValidateBeforeCall(@jakarta.annotation.Null * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterLabelEq (optional) + * @param filterLabelNotEq (optional) + * @param filterLabelIn (optional) + * @param filterLabelNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @return CustomFieldList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -659,8 +755,8 @@ private okhttp3.Call listCustomFieldsValidateBeforeCall(@jakarta.annotation.Null * @deprecated */ @Deprecated - public CustomFieldList listCustomFields(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - ApiResponse localVarResp = listCustomFieldsWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + public CustomFieldList listCustomFields(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterLabelEq, @jakarta.annotation.Nullable String filterLabelNotEq, @jakarta.annotation.Nullable String filterLabelIn, @jakarta.annotation.Nullable String filterLabelNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn) throws ApiException { + ApiResponse localVarResp = listCustomFieldsWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterLabelEq, filterLabelNotEq, filterLabelIn, filterLabelNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn); return localVarResp.getData(); } @@ -679,6 +775,22 @@ public CustomFieldList listCustomFields(@jakarta.annotation.Nullable String incl * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterLabelEq (optional) + * @param filterLabelNotEq (optional) + * @param filterLabelIn (optional) + * @param filterLabelNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @return ApiResponse<CustomFieldList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -690,8 +802,8 @@ public CustomFieldList listCustomFields(@jakarta.annotation.Nullable String incl * @deprecated */ @Deprecated - public ApiResponse listCustomFieldsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - okhttp3.Call localVarCall = listCustomFieldsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + public ApiResponse listCustomFieldsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterLabelEq, @jakarta.annotation.Nullable String filterLabelNotEq, @jakarta.annotation.Nullable String filterLabelIn, @jakarta.annotation.Nullable String filterLabelNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn) throws ApiException { + okhttp3.Call localVarCall = listCustomFieldsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterLabelEq, filterLabelNotEq, filterLabelIn, filterLabelNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -711,6 +823,22 @@ public ApiResponse listCustomFieldsWithHttpInfo(@jakarta.annota * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterLabelEq (optional) + * @param filterLabelNotEq (optional) + * @param filterLabelIn (optional) + * @param filterLabelNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -723,9 +851,9 @@ public ApiResponse listCustomFieldsWithHttpInfo(@jakarta.annota * @deprecated */ @Deprecated - public okhttp3.Call listCustomFieldsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listCustomFieldsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterLabel, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterLabelEq, @jakarta.annotation.Nullable String filterLabelNotEq, @jakarta.annotation.Nullable String filterLabelIn, @jakarta.annotation.Nullable String filterLabelNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listCustomFieldsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + okhttp3.Call localVarCall = listCustomFieldsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterLabelEq, filterLabelNotEq, filterLabelIn, filterLabelNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/EdgeConnectorActionsApi.java b/src/main/java/com/rootly/client/api/EdgeConnectorActionsApi.java index db98e3c3..da562ca7 100644 --- a/src/main/java/com/rootly/client/api/EdgeConnectorActionsApi.java +++ b/src/main/java/com/rootly/client/api/EdgeConnectorActionsApi.java @@ -27,9 +27,9 @@ import java.io.IOException; +import com.rootly.client.model.CreateEdgeConnectorActionRequest; import com.rootly.client.model.GetAlertFieldIdParameter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequest; +import com.rootly.client.model.UpdateEdgeConnectorActionRequest; import java.lang.reflect.Type; import java.util.ArrayList; @@ -75,8 +75,9 @@ public void setCustomBaseUrl(String customBaseUrl) { } /** - * Build call for v1EdgeConnectorsEdgeConnectorIdActionsGet + * Build call for createEdgeConnectorAction * @param edgeConnectorId Edge connector ID (required) + * @param createEdgeConnectorActionRequest (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -84,11 +85,11 @@ public void setCustomBaseUrl(String customBaseUrl) { - - + +
Response Details
Status Code Description Response Headers
200 Returns list of actions -
404 Edge connector not found -
201 Action created -
422 Invalid parameters -
*/ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsGetCall(@jakarta.annotation.Nonnull String edgeConnectorId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createEdgeConnectorActionCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable CreateEdgeConnectorActionRequest createEdgeConnectorActionRequest, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -102,7 +103,7 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsGetCall(@jakarta.annot basePath = null; } - Object localVarPostBody = null; + Object localVarPostBody = createEdgeConnectorActionRequest; // create path and map variables String localVarPath = "/v1/edge_connectors/{edge_connector_id}/actions" @@ -122,6 +123,7 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsGetCall(@jakarta.annot } final String[] localVarContentTypes = { + "application/vnd.api+json" }; final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); if (localVarContentType != null) { @@ -129,60 +131,63 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsGetCall(@jakarta.annot } String[] localVarAuthNames = new String[] { "bearer_auth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsGetValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createEdgeConnectorActionValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable CreateEdgeConnectorActionRequest createEdgeConnectorActionRequest, final ApiCallback _callback) throws ApiException { // verify the required parameter 'edgeConnectorId' is set if (edgeConnectorId == null) { - throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling v1EdgeConnectorsEdgeConnectorIdActionsGet(Async)"); + throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling createEdgeConnectorAction(Async)"); } - return v1EdgeConnectorsEdgeConnectorIdActionsGetCall(edgeConnectorId, _callback); + return createEdgeConnectorActionCall(edgeConnectorId, createEdgeConnectorActionRequest, _callback); } /** - * List edge connector actions + * Create edge connector action * * @param edgeConnectorId Edge connector ID (required) + * @param createEdgeConnectorActionRequest (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - - + +
Response Details
Status Code Description Response Headers
200 Returns list of actions -
404 Edge connector not found -
201 Action created -
422 Invalid parameters -
*/ - public void v1EdgeConnectorsEdgeConnectorIdActionsGet(@jakarta.annotation.Nonnull String edgeConnectorId) throws ApiException { - v1EdgeConnectorsEdgeConnectorIdActionsGetWithHttpInfo(edgeConnectorId); + public void createEdgeConnectorAction(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable CreateEdgeConnectorActionRequest createEdgeConnectorActionRequest) throws ApiException { + createEdgeConnectorActionWithHttpInfo(edgeConnectorId, createEdgeConnectorActionRequest); } /** - * List edge connector actions + * Create edge connector action * * @param edgeConnectorId Edge connector ID (required) + * @param createEdgeConnectorActionRequest (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - - + +
Response Details
Status Code Description Response Headers
200 Returns list of actions -
404 Edge connector not found -
201 Action created -
422 Invalid parameters -
*/ - public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsGetWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsGetValidateBeforeCall(edgeConnectorId, null); + public ApiResponse createEdgeConnectorActionWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable CreateEdgeConnectorActionRequest createEdgeConnectorActionRequest) throws ApiException { + okhttp3.Call localVarCall = createEdgeConnectorActionValidateBeforeCall(edgeConnectorId, createEdgeConnectorActionRequest, null); return localVarApiClient.execute(localVarCall); } /** - * List edge connector actions (asynchronously) + * Create edge connector action (asynchronously) * * @param edgeConnectorId Edge connector ID (required) + * @param createEdgeConnectorActionRequest (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -190,18 +195,18 @@ public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsGetWithHttpInfo(@ - - + +
Response Details
Status Code Description Response Headers
200 Returns list of actions -
404 Edge connector not found -
201 Action created -
422 Invalid parameters -
*/ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsGetAsync(@jakarta.annotation.Nonnull String edgeConnectorId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createEdgeConnectorActionAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable CreateEdgeConnectorActionRequest createEdgeConnectorActionRequest, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsGetValidateBeforeCall(edgeConnectorId, _callback); + okhttp3.Call localVarCall = createEdgeConnectorActionValidateBeforeCall(edgeConnectorId, createEdgeConnectorActionRequest, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsEdgeConnectorIdActionsIdDelete + * Build call for deleteEdgeConnectorAction * @param edgeConnectorId Edge connector ID (required) * @param id (required) * @param _callback Callback for upload/download progress @@ -214,7 +219,7 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsGetAsync(@jakarta.anno 200 Action deleted - */ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteEdgeConnectorActionCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -260,18 +265,18 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteCall(@jakarta. } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteEdgeConnectorActionValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'edgeConnectorId' is set if (edgeConnectorId == null) { - throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling v1EdgeConnectorsEdgeConnectorIdActionsIdDelete(Async)"); + throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling deleteEdgeConnectorAction(Async)"); } // verify the required parameter 'id' is set if (id == null) { - throw new ApiException("Missing the required parameter 'id' when calling v1EdgeConnectorsEdgeConnectorIdActionsIdDelete(Async)"); + throw new ApiException("Missing the required parameter 'id' when calling deleteEdgeConnectorAction(Async)"); } - return v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteCall(edgeConnectorId, id, _callback); + return deleteEdgeConnectorActionCall(edgeConnectorId, id, _callback); } @@ -288,8 +293,8 @@ private okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteValidateBefor 200 Action deleted - */ - public void v1EdgeConnectorsEdgeConnectorIdActionsIdDelete(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { - v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteWithHttpInfo(edgeConnectorId, id); + public void deleteEdgeConnectorAction(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + deleteEdgeConnectorActionWithHttpInfo(edgeConnectorId, id); } /** @@ -306,8 +311,8 @@ public void v1EdgeConnectorsEdgeConnectorIdActionsIdDelete(@jakarta.annotation.N 200 Action deleted - */ - public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteValidateBeforeCall(edgeConnectorId, id, null); + public ApiResponse deleteEdgeConnectorActionWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + okhttp3.Call localVarCall = deleteEdgeConnectorActionValidateBeforeCall(edgeConnectorId, id, null); return localVarApiClient.execute(localVarCall); } @@ -326,14 +331,14 @@ public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteWithHttpI 200 Action deleted - */ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteEdgeConnectorActionAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteValidateBeforeCall(edgeConnectorId, id, _callback); + okhttp3.Call localVarCall = deleteEdgeConnectorActionValidateBeforeCall(edgeConnectorId, id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsEdgeConnectorIdActionsIdGet + * Build call for getEdgeConnectorAction * @param edgeConnectorId Edge connector ID (required) * @param id (required) * @param _callback Callback for upload/download progress @@ -347,7 +352,7 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteAsync(@jakarta 404 Action not found - */ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdGetCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getEdgeConnectorActionCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -393,18 +398,18 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdGetCall(@jakarta.ann } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdGetValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getEdgeConnectorActionValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'edgeConnectorId' is set if (edgeConnectorId == null) { - throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling v1EdgeConnectorsEdgeConnectorIdActionsIdGet(Async)"); + throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling getEdgeConnectorAction(Async)"); } // verify the required parameter 'id' is set if (id == null) { - throw new ApiException("Missing the required parameter 'id' when calling v1EdgeConnectorsEdgeConnectorIdActionsIdGet(Async)"); + throw new ApiException("Missing the required parameter 'id' when calling getEdgeConnectorAction(Async)"); } - return v1EdgeConnectorsEdgeConnectorIdActionsIdGetCall(edgeConnectorId, id, _callback); + return getEdgeConnectorActionCall(edgeConnectorId, id, _callback); } @@ -422,8 +427,8 @@ private okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdGetValidateBeforeCa 404 Action not found - */ - public void v1EdgeConnectorsEdgeConnectorIdActionsIdGet(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { - v1EdgeConnectorsEdgeConnectorIdActionsIdGetWithHttpInfo(edgeConnectorId, id); + public void getEdgeConnectorAction(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + getEdgeConnectorActionWithHttpInfo(edgeConnectorId, id); } /** @@ -441,8 +446,8 @@ public void v1EdgeConnectorsEdgeConnectorIdActionsIdGet(@jakarta.annotation.Nonn 404 Action not found - */ - public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsIdGetWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsIdGetValidateBeforeCall(edgeConnectorId, id, null); + public ApiResponse getEdgeConnectorActionWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + okhttp3.Call localVarCall = getEdgeConnectorActionValidateBeforeCall(edgeConnectorId, id, null); return localVarApiClient.execute(localVarCall); } @@ -462,17 +467,15 @@ public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsIdGetWithHttpInfo 404 Action not found - */ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdGetAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getEdgeConnectorActionAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsIdGetValidateBeforeCall(edgeConnectorId, id, _callback); + okhttp3.Call localVarCall = getEdgeConnectorActionValidateBeforeCall(edgeConnectorId, id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsEdgeConnectorIdActionsIdPatch + * Build call for listEdgeConnectorActions * @param edgeConnectorId Edge connector ID (required) - * @param id (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -480,10 +483,11 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdGetAsync(@jakarta.an - + +
Response Details
Status Code Description Response Headers
200 Action updated -
200 Returns list of actions -
404 Edge connector not found -
*/ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdPatchCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEdgeConnectorActionsCall(@jakarta.annotation.Nonnull String edgeConnectorId, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -497,12 +501,11 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdPatchCall(@jakarta.a basePath = null; } - Object localVarPostBody = v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest; + Object localVarPostBody = null; // create path and map variables - String localVarPath = "/v1/edge_connectors/{edge_connector_id}/actions/{id}" - .replace("{" + "edge_connector_id" + "}", localVarApiClient.escapeString(edgeConnectorId.toString())) - .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + String localVarPath = "/v1/edge_connectors/{edge_connector_id}/actions" + .replace("{" + "edge_connector_id" + "}", localVarApiClient.escapeString(edgeConnectorId.toString())); List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); @@ -518,7 +521,6 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdPatchCall(@jakarta.a } final String[] localVarContentTypes = { - "application/vnd.api+json" }; final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); if (localVarContentType != null) { @@ -526,69 +528,60 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdPatchCall(@jakarta.a } String[] localVarAuthNames = new String[] { "bearer_auth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdPatchValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listEdgeConnectorActionsValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, final ApiCallback _callback) throws ApiException { // verify the required parameter 'edgeConnectorId' is set if (edgeConnectorId == null) { - throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling v1EdgeConnectorsEdgeConnectorIdActionsIdPatch(Async)"); + throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling listEdgeConnectorActions(Async)"); } - // verify the required parameter 'id' is set - if (id == null) { - throw new ApiException("Missing the required parameter 'id' when calling v1EdgeConnectorsEdgeConnectorIdActionsIdPatch(Async)"); - } - - return v1EdgeConnectorsEdgeConnectorIdActionsIdPatchCall(edgeConnectorId, id, v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest, _callback); + return listEdgeConnectorActionsCall(edgeConnectorId, _callback); } /** - * Update edge connector action + * List edge connector actions * * @param edgeConnectorId Edge connector ID (required) - * @param id (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - + +
Response Details
Status Code Description Response Headers
200 Action updated -
200 Returns list of actions -
404 Edge connector not found -
*/ - public void v1EdgeConnectorsEdgeConnectorIdActionsIdPatch(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest) throws ApiException { - v1EdgeConnectorsEdgeConnectorIdActionsIdPatchWithHttpInfo(edgeConnectorId, id, v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest); + public void listEdgeConnectorActions(@jakarta.annotation.Nonnull String edgeConnectorId) throws ApiException { + listEdgeConnectorActionsWithHttpInfo(edgeConnectorId); } /** - * Update edge connector action + * List edge connector actions * * @param edgeConnectorId Edge connector ID (required) - * @param id (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - + +
Response Details
Status Code Description Response Headers
200 Action updated -
200 Returns list of actions -
404 Edge connector not found -
*/ - public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsIdPatchWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsIdPatchValidateBeforeCall(edgeConnectorId, id, v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest, null); + public ApiResponse listEdgeConnectorActionsWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId) throws ApiException { + okhttp3.Call localVarCall = listEdgeConnectorActionsValidateBeforeCall(edgeConnectorId, null); return localVarApiClient.execute(localVarCall); } /** - * Update edge connector action (asynchronously) + * List edge connector actions (asynchronously) * * @param edgeConnectorId Edge connector ID (required) - * @param id (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -596,19 +589,21 @@ public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsIdPatchWithHttpIn - + +
Response Details
Status Code Description Response Headers
200 Action updated -
200 Returns list of actions -
404 Edge connector not found -
*/ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdPatchAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEdgeConnectorActionsAsync(@jakarta.annotation.Nonnull String edgeConnectorId, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsIdPatchValidateBeforeCall(edgeConnectorId, id, v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest, _callback); + okhttp3.Call localVarCall = listEdgeConnectorActionsValidateBeforeCall(edgeConnectorId, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsEdgeConnectorIdActionsPost + * Build call for updateEdgeConnectorAction * @param edgeConnectorId Edge connector ID (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsPostRequest (optional) + * @param id (required) + * @param updateEdgeConnectorActionRequest (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -616,11 +611,10 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsIdPatchAsync(@jakarta. - - +
Response Details
Status Code Description Response Headers
201 Action created -
422 Invalid parameters -
200 Action updated -
*/ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsPostCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsPostRequest v1EdgeConnectorsEdgeConnectorIdActionsPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateEdgeConnectorActionCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable UpdateEdgeConnectorActionRequest updateEdgeConnectorActionRequest, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -634,11 +628,12 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsPostCall(@jakarta.anno basePath = null; } - Object localVarPostBody = v1EdgeConnectorsEdgeConnectorIdActionsPostRequest; + Object localVarPostBody = updateEdgeConnectorActionRequest; // create path and map variables - String localVarPath = "/v1/edge_connectors/{edge_connector_id}/actions" - .replace("{" + "edge_connector_id" + "}", localVarApiClient.escapeString(edgeConnectorId.toString())); + String localVarPath = "/v1/edge_connectors/{edge_connector_id}/actions/{id}" + .replace("{" + "edge_connector_id" + "}", localVarApiClient.escapeString(edgeConnectorId.toString())) + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); @@ -662,63 +657,69 @@ public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsPostCall(@jakarta.anno } String[] localVarAuthNames = new String[] { "bearer_auth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsPostValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsPostRequest v1EdgeConnectorsEdgeConnectorIdActionsPostRequest, final ApiCallback _callback) throws ApiException { + private okhttp3.Call updateEdgeConnectorActionValidateBeforeCall(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable UpdateEdgeConnectorActionRequest updateEdgeConnectorActionRequest, final ApiCallback _callback) throws ApiException { // verify the required parameter 'edgeConnectorId' is set if (edgeConnectorId == null) { - throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling v1EdgeConnectorsEdgeConnectorIdActionsPost(Async)"); + throw new ApiException("Missing the required parameter 'edgeConnectorId' when calling updateEdgeConnectorAction(Async)"); + } + + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateEdgeConnectorAction(Async)"); } - return v1EdgeConnectorsEdgeConnectorIdActionsPostCall(edgeConnectorId, v1EdgeConnectorsEdgeConnectorIdActionsPostRequest, _callback); + return updateEdgeConnectorActionCall(edgeConnectorId, id, updateEdgeConnectorActionRequest, _callback); } /** - * Create edge connector action + * Update edge connector action * * @param edgeConnectorId Edge connector ID (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsPostRequest (optional) + * @param id (required) + * @param updateEdgeConnectorActionRequest (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - - +
Response Details
Status Code Description Response Headers
201 Action created -
422 Invalid parameters -
200 Action updated -
*/ - public void v1EdgeConnectorsEdgeConnectorIdActionsPost(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsPostRequest v1EdgeConnectorsEdgeConnectorIdActionsPostRequest) throws ApiException { - v1EdgeConnectorsEdgeConnectorIdActionsPostWithHttpInfo(edgeConnectorId, v1EdgeConnectorsEdgeConnectorIdActionsPostRequest); + public void updateEdgeConnectorAction(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable UpdateEdgeConnectorActionRequest updateEdgeConnectorActionRequest) throws ApiException { + updateEdgeConnectorActionWithHttpInfo(edgeConnectorId, id, updateEdgeConnectorActionRequest); } /** - * Create edge connector action + * Update edge connector action * * @param edgeConnectorId Edge connector ID (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsPostRequest (optional) + * @param id (required) + * @param updateEdgeConnectorActionRequest (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - - +
Response Details
Status Code Description Response Headers
201 Action created -
422 Invalid parameters -
200 Action updated -
*/ - public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsPostWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsPostRequest v1EdgeConnectorsEdgeConnectorIdActionsPostRequest) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsPostValidateBeforeCall(edgeConnectorId, v1EdgeConnectorsEdgeConnectorIdActionsPostRequest, null); + public ApiResponse updateEdgeConnectorActionWithHttpInfo(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable UpdateEdgeConnectorActionRequest updateEdgeConnectorActionRequest) throws ApiException { + okhttp3.Call localVarCall = updateEdgeConnectorActionValidateBeforeCall(edgeConnectorId, id, updateEdgeConnectorActionRequest, null); return localVarApiClient.execute(localVarCall); } /** - * Create edge connector action (asynchronously) + * Update edge connector action (asynchronously) * * @param edgeConnectorId Edge connector ID (required) - * @param v1EdgeConnectorsEdgeConnectorIdActionsPostRequest (optional) + * @param id (required) + * @param updateEdgeConnectorActionRequest (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -726,13 +727,12 @@ public ApiResponse v1EdgeConnectorsEdgeConnectorIdActionsPostWithHttpInfo( - - +
Response Details
Status Code Description Response Headers
201 Action created -
422 Invalid parameters -
200 Action updated -
*/ - public okhttp3.Call v1EdgeConnectorsEdgeConnectorIdActionsPostAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nullable V1EdgeConnectorsEdgeConnectorIdActionsPostRequest v1EdgeConnectorsEdgeConnectorIdActionsPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateEdgeConnectorActionAsync(@jakarta.annotation.Nonnull String edgeConnectorId, @jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable UpdateEdgeConnectorActionRequest updateEdgeConnectorActionRequest, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsEdgeConnectorIdActionsPostValidateBeforeCall(edgeConnectorId, v1EdgeConnectorsEdgeConnectorIdActionsPostRequest, _callback); + okhttp3.Call localVarCall = updateEdgeConnectorActionValidateBeforeCall(edgeConnectorId, id, updateEdgeConnectorActionRequest, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } diff --git a/src/main/java/com/rootly/client/api/EdgeConnectorsApi.java b/src/main/java/com/rootly/client/api/EdgeConnectorsApi.java index 12c500e4..4352c91f 100644 --- a/src/main/java/com/rootly/client/api/EdgeConnectorsApi.java +++ b/src/main/java/com/rootly/client/api/EdgeConnectorsApi.java @@ -27,8 +27,8 @@ import java.io.IOException; -import com.rootly.client.model.V1EdgeConnectorsIdPatchRequest; -import com.rootly.client.model.V1EdgeConnectorsPostRequest; +import com.rootly.client.model.CreateEdgeConnectorRequest; +import com.rootly.client.model.UpdateEdgeConnectorRequest; import java.lang.reflect.Type; import java.util.ArrayList; @@ -74,11 +74,8 @@ public void setCustomBaseUrl(String customBaseUrl) { } /** - * Build call for v1EdgeConnectorsGet - * @param page (optional) - * @param perPage (optional) - * @param status Filter by status (active/paused) (optional) - * @param name Filter by name (partial match) (optional) + * Build call for createEdgeConnector + * @param createEdgeConnectorRequest (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -86,10 +83,11 @@ public void setCustomBaseUrl(String customBaseUrl) { - + +
Response Details
Status Code Description Response Headers
200 Filters by status -
201 Edge connector created -
422 Invalid parameters -
*/ - public okhttp3.Call v1EdgeConnectorsGetCall(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createEdgeConnectorCall(@jakarta.annotation.Nullable CreateEdgeConnectorRequest createEdgeConnectorRequest, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -103,7 +101,7 @@ public okhttp3.Call v1EdgeConnectorsGetCall(@jakarta.annotation.Nullable Integer basePath = null; } - Object localVarPostBody = null; + Object localVarPostBody = createEdgeConnectorRequest; // create path and map variables String localVarPath = "/v1/edge_connectors"; @@ -114,22 +112,6 @@ public okhttp3.Call v1EdgeConnectorsGetCall(@jakarta.annotation.Nullable Integer Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); - if (page != null) { - localVarQueryParams.addAll(localVarApiClient.parameterToPair("page", page)); - } - - if (perPage != null) { - localVarQueryParams.addAll(localVarApiClient.parameterToPair("per_page", perPage)); - } - - if (status != null) { - localVarQueryParams.addAll(localVarApiClient.parameterToPair("status", status)); - } - - if (name != null) { - localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); - } - final String[] localVarAccepts = { }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); @@ -138,6 +120,7 @@ public okhttp3.Call v1EdgeConnectorsGetCall(@jakarta.annotation.Nullable Integer } final String[] localVarContentTypes = { + "application/vnd.api+json" }; final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); if (localVarContentType != null) { @@ -145,62 +128,55 @@ public okhttp3.Call v1EdgeConnectorsGetCall(@jakarta.annotation.Nullable Integer } String[] localVarAuthNames = new String[] { "bearer_auth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsGetValidateBeforeCall(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name, final ApiCallback _callback) throws ApiException { - return v1EdgeConnectorsGetCall(page, perPage, status, name, _callback); + private okhttp3.Call createEdgeConnectorValidateBeforeCall(@jakarta.annotation.Nullable CreateEdgeConnectorRequest createEdgeConnectorRequest, final ApiCallback _callback) throws ApiException { + return createEdgeConnectorCall(createEdgeConnectorRequest, _callback); } /** - * List edge connectors + * Create edge connector * - * @param page (optional) - * @param perPage (optional) - * @param status Filter by status (active/paused) (optional) - * @param name Filter by name (partial match) (optional) + * @param createEdgeConnectorRequest (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - + +
Response Details
Status Code Description Response Headers
200 Filters by status -
201 Edge connector created -
422 Invalid parameters -
*/ - public void v1EdgeConnectorsGet(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name) throws ApiException { - v1EdgeConnectorsGetWithHttpInfo(page, perPage, status, name); + public void createEdgeConnector(@jakarta.annotation.Nullable CreateEdgeConnectorRequest createEdgeConnectorRequest) throws ApiException { + createEdgeConnectorWithHttpInfo(createEdgeConnectorRequest); } /** - * List edge connectors + * Create edge connector * - * @param page (optional) - * @param perPage (optional) - * @param status Filter by status (active/paused) (optional) - * @param name Filter by name (partial match) (optional) + * @param createEdgeConnectorRequest (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - + +
Response Details
Status Code Description Response Headers
200 Filters by status -
201 Edge connector created -
422 Invalid parameters -
*/ - public ApiResponse v1EdgeConnectorsGetWithHttpInfo(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsGetValidateBeforeCall(page, perPage, status, name, null); + public ApiResponse createEdgeConnectorWithHttpInfo(@jakarta.annotation.Nullable CreateEdgeConnectorRequest createEdgeConnectorRequest) throws ApiException { + okhttp3.Call localVarCall = createEdgeConnectorValidateBeforeCall(createEdgeConnectorRequest, null); return localVarApiClient.execute(localVarCall); } /** - * List edge connectors (asynchronously) + * Create edge connector (asynchronously) * - * @param page (optional) - * @param perPage (optional) - * @param status Filter by status (active/paused) (optional) - * @param name Filter by name (partial match) (optional) + * @param createEdgeConnectorRequest (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -208,17 +184,18 @@ public ApiResponse v1EdgeConnectorsGetWithHttpInfo(@jakarta.annotation.Nul - + +
Response Details
Status Code Description Response Headers
200 Filters by status -
201 Edge connector created -
422 Invalid parameters -
*/ - public okhttp3.Call v1EdgeConnectorsGetAsync(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createEdgeConnectorAsync(@jakarta.annotation.Nullable CreateEdgeConnectorRequest createEdgeConnectorRequest, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsGetValidateBeforeCall(page, perPage, status, name, _callback); + okhttp3.Call localVarCall = createEdgeConnectorValidateBeforeCall(createEdgeConnectorRequest, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsIdDelete + * Build call for deleteEdgeConnector * @param id Edge connector ID (required) * @param _callback Callback for upload/download progress * @return Call to execute @@ -230,7 +207,7 @@ public okhttp3.Call v1EdgeConnectorsGetAsync(@jakarta.annotation.Nullable Intege 200 Edge connector deleted - */ - public okhttp3.Call v1EdgeConnectorsIdDeleteCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteEdgeConnectorCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -275,13 +252,13 @@ public okhttp3.Call v1EdgeConnectorsIdDeleteCall(@jakarta.annotation.Nonnull Str } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsIdDeleteValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteEdgeConnectorValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { - throw new ApiException("Missing the required parameter 'id' when calling v1EdgeConnectorsIdDelete(Async)"); + throw new ApiException("Missing the required parameter 'id' when calling deleteEdgeConnector(Async)"); } - return v1EdgeConnectorsIdDeleteCall(id, _callback); + return deleteEdgeConnectorCall(id, _callback); } @@ -297,8 +274,8 @@ private okhttp3.Call v1EdgeConnectorsIdDeleteValidateBeforeCall(@jakarta.annotat 200 Edge connector deleted - */ - public void v1EdgeConnectorsIdDelete(@jakarta.annotation.Nonnull String id) throws ApiException { - v1EdgeConnectorsIdDeleteWithHttpInfo(id); + public void deleteEdgeConnector(@jakarta.annotation.Nonnull String id) throws ApiException { + deleteEdgeConnectorWithHttpInfo(id); } /** @@ -314,8 +291,8 @@ public void v1EdgeConnectorsIdDelete(@jakarta.annotation.Nonnull String id) thro 200 Edge connector deleted - */ - public ApiResponse v1EdgeConnectorsIdDeleteWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsIdDeleteValidateBeforeCall(id, null); + public ApiResponse deleteEdgeConnectorWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteEdgeConnectorValidateBeforeCall(id, null); return localVarApiClient.execute(localVarCall); } @@ -333,14 +310,14 @@ public ApiResponse v1EdgeConnectorsIdDeleteWithHttpInfo(@jakarta.annotatio 200 Edge connector deleted - */ - public okhttp3.Call v1EdgeConnectorsIdDeleteAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteEdgeConnectorAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsIdDeleteValidateBeforeCall(id, _callback); + okhttp3.Call localVarCall = deleteEdgeConnectorValidateBeforeCall(id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsIdGet + * Build call for getEdgeConnector * @param id Edge connector ID (required) * @param _callback Callback for upload/download progress * @return Call to execute @@ -353,7 +330,7 @@ public okhttp3.Call v1EdgeConnectorsIdDeleteAsync(@jakarta.annotation.Nonnull St 404 Edge connector not found - */ - public okhttp3.Call v1EdgeConnectorsIdGetCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getEdgeConnectorCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -398,13 +375,13 @@ public okhttp3.Call v1EdgeConnectorsIdGetCall(@jakarta.annotation.Nonnull String } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsIdGetValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getEdgeConnectorValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { - throw new ApiException("Missing the required parameter 'id' when calling v1EdgeConnectorsIdGet(Async)"); + throw new ApiException("Missing the required parameter 'id' when calling getEdgeConnector(Async)"); } - return v1EdgeConnectorsIdGetCall(id, _callback); + return getEdgeConnectorCall(id, _callback); } @@ -421,8 +398,8 @@ private okhttp3.Call v1EdgeConnectorsIdGetValidateBeforeCall(@jakarta.annotation 404 Edge connector not found - */ - public void v1EdgeConnectorsIdGet(@jakarta.annotation.Nonnull String id) throws ApiException { - v1EdgeConnectorsIdGetWithHttpInfo(id); + public void getEdgeConnector(@jakarta.annotation.Nonnull String id) throws ApiException { + getEdgeConnectorWithHttpInfo(id); } /** @@ -439,8 +416,8 @@ public void v1EdgeConnectorsIdGet(@jakarta.annotation.Nonnull String id) throws 404 Edge connector not found - */ - public ApiResponse v1EdgeConnectorsIdGetWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsIdGetValidateBeforeCall(id, null); + public ApiResponse getEdgeConnectorWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = getEdgeConnectorValidateBeforeCall(id, null); return localVarApiClient.execute(localVarCall); } @@ -459,16 +436,18 @@ public ApiResponse v1EdgeConnectorsIdGetWithHttpInfo(@jakarta.annotation.N 404 Edge connector not found - */ - public okhttp3.Call v1EdgeConnectorsIdGetAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getEdgeConnectorAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsIdGetValidateBeforeCall(id, _callback); + okhttp3.Call localVarCall = getEdgeConnectorValidateBeforeCall(id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsIdPatch - * @param id Edge connector ID (required) - * @param v1EdgeConnectorsIdPatchRequest (optional) + * Build call for listEdgeConnectors + * @param page (optional) + * @param perPage (optional) + * @param status Filter by status (active/paused) (optional) + * @param name Filter by name (partial match) (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -476,11 +455,10 @@ public okhttp3.Call v1EdgeConnectorsIdGetAsync(@jakarta.annotation.Nonnull Strin - - +
Response Details
Status Code Description Response Headers
200 Edge connector updated -
422 Invalid parameters -
200 Filters by status -
*/ - public okhttp3.Call v1EdgeConnectorsIdPatchCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable V1EdgeConnectorsIdPatchRequest v1EdgeConnectorsIdPatchRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEdgeConnectorsCall(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -494,11 +472,10 @@ public okhttp3.Call v1EdgeConnectorsIdPatchCall(@jakarta.annotation.Nonnull Stri basePath = null; } - Object localVarPostBody = v1EdgeConnectorsIdPatchRequest; + Object localVarPostBody = null; // create path and map variables - String localVarPath = "/v1/edge_connectors/{id}" - .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + String localVarPath = "/v1/edge_connectors"; List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); @@ -506,6 +483,22 @@ public okhttp3.Call v1EdgeConnectorsIdPatchCall(@jakarta.annotation.Nonnull Stri Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + if (page != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page", page)); + } + + if (perPage != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("per_page", perPage)); + } + + if (status != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("status", status)); + } + + if (name != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); + } + final String[] localVarAccepts = { }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); @@ -514,7 +507,6 @@ public okhttp3.Call v1EdgeConnectorsIdPatchCall(@jakarta.annotation.Nonnull Stri } final String[] localVarContentTypes = { - "application/vnd.api+json" }; final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); if (localVarContentType != null) { @@ -522,63 +514,62 @@ public okhttp3.Call v1EdgeConnectorsIdPatchCall(@jakarta.annotation.Nonnull Stri } String[] localVarAuthNames = new String[] { "bearer_auth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsIdPatchValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable V1EdgeConnectorsIdPatchRequest v1EdgeConnectorsIdPatchRequest, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'id' is set - if (id == null) { - throw new ApiException("Missing the required parameter 'id' when calling v1EdgeConnectorsIdPatch(Async)"); - } - - return v1EdgeConnectorsIdPatchCall(id, v1EdgeConnectorsIdPatchRequest, _callback); + private okhttp3.Call listEdgeConnectorsValidateBeforeCall(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name, final ApiCallback _callback) throws ApiException { + return listEdgeConnectorsCall(page, perPage, status, name, _callback); } /** - * Update edge connector + * List edge connectors * - * @param id Edge connector ID (required) - * @param v1EdgeConnectorsIdPatchRequest (optional) + * @param page (optional) + * @param perPage (optional) + * @param status Filter by status (active/paused) (optional) + * @param name Filter by name (partial match) (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - - +
Response Details
Status Code Description Response Headers
200 Edge connector updated -
422 Invalid parameters -
200 Filters by status -
*/ - public void v1EdgeConnectorsIdPatch(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable V1EdgeConnectorsIdPatchRequest v1EdgeConnectorsIdPatchRequest) throws ApiException { - v1EdgeConnectorsIdPatchWithHttpInfo(id, v1EdgeConnectorsIdPatchRequest); + public void listEdgeConnectors(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name) throws ApiException { + listEdgeConnectorsWithHttpInfo(page, perPage, status, name); } /** - * Update edge connector + * List edge connectors * - * @param id Edge connector ID (required) - * @param v1EdgeConnectorsIdPatchRequest (optional) + * @param page (optional) + * @param perPage (optional) + * @param status Filter by status (active/paused) (optional) + * @param name Filter by name (partial match) (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - - +
Response Details
Status Code Description Response Headers
200 Edge connector updated -
422 Invalid parameters -
200 Filters by status -
*/ - public ApiResponse v1EdgeConnectorsIdPatchWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable V1EdgeConnectorsIdPatchRequest v1EdgeConnectorsIdPatchRequest) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsIdPatchValidateBeforeCall(id, v1EdgeConnectorsIdPatchRequest, null); + public ApiResponse listEdgeConnectorsWithHttpInfo(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name) throws ApiException { + okhttp3.Call localVarCall = listEdgeConnectorsValidateBeforeCall(page, perPage, status, name, null); return localVarApiClient.execute(localVarCall); } /** - * Update edge connector (asynchronously) + * List edge connectors (asynchronously) * - * @param id Edge connector ID (required) - * @param v1EdgeConnectorsIdPatchRequest (optional) + * @param page (optional) + * @param perPage (optional) + * @param status Filter by status (active/paused) (optional) + * @param name Filter by name (partial match) (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -586,19 +577,19 @@ public ApiResponse v1EdgeConnectorsIdPatchWithHttpInfo(@jakarta.annotation - - +
Response Details
Status Code Description Response Headers
200 Edge connector updated -
422 Invalid parameters -
200 Filters by status -
*/ - public okhttp3.Call v1EdgeConnectorsIdPatchAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable V1EdgeConnectorsIdPatchRequest v1EdgeConnectorsIdPatchRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEdgeConnectorsAsync(@jakarta.annotation.Nullable Integer page, @jakarta.annotation.Nullable Integer perPage, @jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String name, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsIdPatchValidateBeforeCall(id, v1EdgeConnectorsIdPatchRequest, _callback); + okhttp3.Call localVarCall = listEdgeConnectorsValidateBeforeCall(page, perPage, status, name, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** - * Build call for v1EdgeConnectorsPost - * @param v1EdgeConnectorsPostRequest (optional) + * Build call for updateEdgeConnector + * @param id Edge connector ID (required) + * @param updateEdgeConnectorRequest (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -606,11 +597,11 @@ public okhttp3.Call v1EdgeConnectorsIdPatchAsync(@jakarta.annotation.Nonnull Str - +
Response Details
Status Code Description Response Headers
201 Edge connector created -
200 Edge connector updated -
422 Invalid parameters -
*/ - public okhttp3.Call v1EdgeConnectorsPostCall(@jakarta.annotation.Nullable V1EdgeConnectorsPostRequest v1EdgeConnectorsPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateEdgeConnectorCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable UpdateEdgeConnectorRequest updateEdgeConnectorRequest, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -624,10 +615,11 @@ public okhttp3.Call v1EdgeConnectorsPostCall(@jakarta.annotation.Nullable V1Edge basePath = null; } - Object localVarPostBody = v1EdgeConnectorsPostRequest; + Object localVarPostBody = updateEdgeConnectorRequest; // create path and map variables - String localVarPath = "/v1/edge_connectors"; + String localVarPath = "/v1/edge_connectors/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); @@ -651,55 +643,63 @@ public okhttp3.Call v1EdgeConnectorsPostCall(@jakarta.annotation.Nullable V1Edge } String[] localVarAuthNames = new String[] { "bearer_auth" }; - return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } @SuppressWarnings("rawtypes") - private okhttp3.Call v1EdgeConnectorsPostValidateBeforeCall(@jakarta.annotation.Nullable V1EdgeConnectorsPostRequest v1EdgeConnectorsPostRequest, final ApiCallback _callback) throws ApiException { - return v1EdgeConnectorsPostCall(v1EdgeConnectorsPostRequest, _callback); + private okhttp3.Call updateEdgeConnectorValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable UpdateEdgeConnectorRequest updateEdgeConnectorRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateEdgeConnector(Async)"); + } + + return updateEdgeConnectorCall(id, updateEdgeConnectorRequest, _callback); } /** - * Create edge connector + * Update edge connector * - * @param v1EdgeConnectorsPostRequest (optional) + * @param id Edge connector ID (required) + * @param updateEdgeConnectorRequest (optional) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - +
Response Details
Status Code Description Response Headers
201 Edge connector created -
200 Edge connector updated -
422 Invalid parameters -
*/ - public void v1EdgeConnectorsPost(@jakarta.annotation.Nullable V1EdgeConnectorsPostRequest v1EdgeConnectorsPostRequest) throws ApiException { - v1EdgeConnectorsPostWithHttpInfo(v1EdgeConnectorsPostRequest); + public void updateEdgeConnector(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable UpdateEdgeConnectorRequest updateEdgeConnectorRequest) throws ApiException { + updateEdgeConnectorWithHttpInfo(id, updateEdgeConnectorRequest); } /** - * Create edge connector + * Update edge connector * - * @param v1EdgeConnectorsPostRequest (optional) + * @param id Edge connector ID (required) + * @param updateEdgeConnectorRequest (optional) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details - +
Response Details
Status Code Description Response Headers
201 Edge connector created -
200 Edge connector updated -
422 Invalid parameters -
*/ - public ApiResponse v1EdgeConnectorsPostWithHttpInfo(@jakarta.annotation.Nullable V1EdgeConnectorsPostRequest v1EdgeConnectorsPostRequest) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsPostValidateBeforeCall(v1EdgeConnectorsPostRequest, null); + public ApiResponse updateEdgeConnectorWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable UpdateEdgeConnectorRequest updateEdgeConnectorRequest) throws ApiException { + okhttp3.Call localVarCall = updateEdgeConnectorValidateBeforeCall(id, updateEdgeConnectorRequest, null); return localVarApiClient.execute(localVarCall); } /** - * Create edge connector (asynchronously) + * Update edge connector (asynchronously) * - * @param v1EdgeConnectorsPostRequest (optional) + * @param id Edge connector ID (required) + * @param updateEdgeConnectorRequest (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -707,13 +707,13 @@ public ApiResponse v1EdgeConnectorsPostWithHttpInfo(@jakarta.annotation.Nu - +
Response Details
Status Code Description Response Headers
201 Edge connector created -
200 Edge connector updated -
422 Invalid parameters -
*/ - public okhttp3.Call v1EdgeConnectorsPostAsync(@jakarta.annotation.Nullable V1EdgeConnectorsPostRequest v1EdgeConnectorsPostRequest, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateEdgeConnectorAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable UpdateEdgeConnectorRequest updateEdgeConnectorRequest, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = v1EdgeConnectorsPostValidateBeforeCall(v1EdgeConnectorsPostRequest, _callback); + okhttp3.Call localVarCall = updateEdgeConnectorValidateBeforeCall(id, updateEdgeConnectorRequest, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } diff --git a/src/main/java/com/rootly/client/api/EnvironmentsApi.java b/src/main/java/com/rootly/client/api/EnvironmentsApi.java index f40c9810..4324195f 100644 --- a/src/main/java/com/rootly/client/api/EnvironmentsApi.java +++ b/src/main/java/com/rootly/client/api/EnvironmentsApi.java @@ -27,10 +27,19 @@ import java.io.IOException; +import com.rootly.client.model.BulkDeleteEnvironments422Response; +import com.rootly.client.model.BulkDestroyEnvironments; +import com.rootly.client.model.BulkDestroyEnvironmentsResponse; +import com.rootly.client.model.BulkUpsertEnvironments; +import com.rootly.client.model.BulkUpsertEnvironments422Response; +import com.rootly.client.model.BulkUpsertEnvironmentsResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.EnvironmentList; import com.rootly.client.model.EnvironmentResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewEnvironment; import com.rootly.client.model.UpdateEnvironment; @@ -77,6 +86,276 @@ public void setCustomBaseUrl(String customBaseUrl) { this.localCustomBaseUrl = customBaseUrl; } + /** + * Build call for bulkDeleteEnvironments + * @param bulkDestroyEnvironments (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteEnvironmentsCall(@jakarta.annotation.Nonnull BulkDestroyEnvironments bulkDestroyEnvironments, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkDestroyEnvironments; + + // create path and map variables + String localVarPath = "/v1/environments/bulk_delete"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkDeleteEnvironmentsValidateBeforeCall(@jakarta.annotation.Nonnull BulkDestroyEnvironments bulkDestroyEnvironments, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkDestroyEnvironments' is set + if (bulkDestroyEnvironments == null) { + throw new ApiException("Missing the required parameter 'bulkDestroyEnvironments' when calling bulkDeleteEnvironments(Async)"); + } + + return bulkDeleteEnvironmentsCall(bulkDestroyEnvironments, _callback); + + } + + /** + * Bulk delete Environments + * Delete environments by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyEnvironments (required) + * @return BulkDestroyEnvironmentsResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public BulkDestroyEnvironmentsResponse bulkDeleteEnvironments(@jakarta.annotation.Nonnull BulkDestroyEnvironments bulkDestroyEnvironments) throws ApiException { + ApiResponse localVarResp = bulkDeleteEnvironmentsWithHttpInfo(bulkDestroyEnvironments); + return localVarResp.getData(); + } + + /** + * Bulk delete Environments + * Delete environments by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyEnvironments (required) + * @return ApiResponse<BulkDestroyEnvironmentsResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public ApiResponse bulkDeleteEnvironmentsWithHttpInfo(@jakarta.annotation.Nonnull BulkDestroyEnvironments bulkDestroyEnvironments) throws ApiException { + okhttp3.Call localVarCall = bulkDeleteEnvironmentsValidateBeforeCall(bulkDestroyEnvironments, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk delete Environments (asynchronously) + * Delete environments by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyEnvironments (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteEnvironmentsAsync(@jakarta.annotation.Nonnull BulkDestroyEnvironments bulkDestroyEnvironments, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkDeleteEnvironmentsValidateBeforeCall(bulkDestroyEnvironments, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for bulkUpsertEnvironments + * @param bulkUpsertEnvironments (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertEnvironmentsCall(@jakarta.annotation.Nonnull BulkUpsertEnvironments bulkUpsertEnvironments, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkUpsertEnvironments; + + // create path and map variables + String localVarPath = "/v1/environments/bulk_upsert"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkUpsertEnvironmentsValidateBeforeCall(@jakarta.annotation.Nonnull BulkUpsertEnvironments bulkUpsertEnvironments, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkUpsertEnvironments' is set + if (bulkUpsertEnvironments == null) { + throw new ApiException("Missing the required parameter 'bulkUpsertEnvironments' when calling bulkUpsertEnvironments(Async)"); + } + + return bulkUpsertEnvironmentsCall(bulkUpsertEnvironments, _callback); + + } + + /** + * Bulk upsert Environments + * Create or update multiple environments by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertEnvironments (required) + * @return BulkUpsertEnvironmentsResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public BulkUpsertEnvironmentsResponse bulkUpsertEnvironments(@jakarta.annotation.Nonnull BulkUpsertEnvironments bulkUpsertEnvironments) throws ApiException { + ApiResponse localVarResp = bulkUpsertEnvironmentsWithHttpInfo(bulkUpsertEnvironments); + return localVarResp.getData(); + } + + /** + * Bulk upsert Environments + * Create or update multiple environments by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertEnvironments (required) + * @return ApiResponse<BulkUpsertEnvironmentsResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public ApiResponse bulkUpsertEnvironmentsWithHttpInfo(@jakarta.annotation.Nonnull BulkUpsertEnvironments bulkUpsertEnvironments) throws ApiException { + okhttp3.Call localVarCall = bulkUpsertEnvironmentsValidateBeforeCall(bulkUpsertEnvironments, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk upsert Environments (asynchronously) + * Create or update multiple environments by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertEnvironments (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertEnvironmentsAsync(@jakarta.annotation.Nonnull BulkUpsertEnvironments bulkUpsertEnvironments, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkUpsertEnvironmentsValidateBeforeCall(bulkUpsertEnvironments, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for createEnvironment * @param newEnvironment (required) @@ -212,6 +491,141 @@ public okhttp3.Call createEnvironmentAsync(@jakarta.annotation.Nonnull NewEnviro localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for createEnvironmentCatalogProperty + * @param newCatalogProperty (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createEnvironmentCatalogPropertyCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newCatalogProperty; + + // create path and map variables + String localVarPath = "/v1/environments/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createEnvironmentCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newCatalogProperty' is set + if (newCatalogProperty == null) { + throw new ApiException("Missing the required parameter 'newCatalogProperty' when calling createEnvironmentCatalogProperty(Async)"); + } + + return createEnvironmentCatalogPropertyCall(newCatalogProperty, _callback); + + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return CatalogPropertyResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public CatalogPropertyResponse createEnvironmentCatalogProperty(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + ApiResponse localVarResp = createEnvironmentCatalogPropertyWithHttpInfo(newCatalogProperty); + return localVarResp.getData(); + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return ApiResponse<CatalogPropertyResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createEnvironmentCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + okhttp3.Call localVarCall = createEnvironmentCatalogPropertyValidateBeforeCall(newCatalogProperty, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a Catalog Property (asynchronously) + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createEnvironmentCatalogPropertyAsync(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createEnvironmentCatalogPropertyValidateBeforeCall(newCatalogProperty, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for deleteEnvironment * @param id (required) @@ -474,6 +888,211 @@ public okhttp3.Call getEnvironmentAsync(@jakarta.annotation.Nonnull GetAlertFiel localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for listEnvironmentCatalogProperties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listEnvironmentCatalogPropertiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/environments/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (sort != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + if (filterSlug != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); + } + + if (filterName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); + } + + if (filterKind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listEnvironmentCatalogPropertiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + return listEnvironmentCatalogPropertiesCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + + } + + /** + * List Catalog Properties + * List Environment Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return CatalogPropertyList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public CatalogPropertyList listEnvironmentCatalogProperties(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + ApiResponse localVarResp = listEnvironmentCatalogPropertiesWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + return localVarResp.getData(); + } + + /** + * List Catalog Properties + * List Environment Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return ApiResponse<CatalogPropertyList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listEnvironmentCatalogPropertiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + okhttp3.Call localVarCall = listEnvironmentCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List Catalog Properties (asynchronously) + * List Environment Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listEnvironmentCatalogPropertiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listEnvironmentCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for listEnvironments * @param include (optional) @@ -487,6 +1106,18 @@ public okhttp3.Call getEnvironmentAsync(@jakarta.annotation.Nonnull GetAlertFiel * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -498,7 +1129,7 @@ public okhttp3.Call getEnvironmentAsync(@jakarta.annotation.Nonnull GetAlertFiel 200 success - */ - public okhttp3.Call listEnvironmentsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEnvironmentsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -567,6 +1198,54 @@ public okhttp3.Call listEnvironmentsCall(@jakarta.annotation.Nullable String inc localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterColorEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][eq]", filterColorEq)); + } + + if (filterColorNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_eq]", filterColorNotEq)); + } + + if (filterColorIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][in]", filterColorIn)); + } + + if (filterColorNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_in]", filterColorNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -591,8 +1270,8 @@ public okhttp3.Call listEnvironmentsCall(@jakarta.annotation.Nullable String inc } @SuppressWarnings("rawtypes") - private okhttp3.Call listEnvironmentsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listEnvironmentsCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listEnvironmentsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listEnvironmentsCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, _callback); } @@ -610,6 +1289,18 @@ private okhttp3.Call listEnvironmentsValidateBeforeCall(@jakarta.annotation.Null * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @return EnvironmentList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -620,8 +1311,8 @@ private okhttp3.Call listEnvironmentsValidateBeforeCall(@jakarta.annotation.Null 200 success - */ - public EnvironmentList listEnvironments(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listEnvironmentsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public EnvironmentList listEnvironments(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listEnvironmentsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); return localVarResp.getData(); } @@ -639,6 +1330,18 @@ public EnvironmentList listEnvironments(@jakarta.annotation.Nullable String incl * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @return ApiResponse<EnvironmentList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -649,8 +1352,8 @@ public EnvironmentList listEnvironments(@jakarta.annotation.Nullable String incl 200 success - */ - public ApiResponse listEnvironmentsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listEnvironmentsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listEnvironmentsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listEnvironmentsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -669,6 +1372,18 @@ public ApiResponse listEnvironmentsWithHttpInfo(@jakarta.annota * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -680,9 +1395,9 @@ public ApiResponse listEnvironmentsWithHttpInfo(@jakarta.annota 200 success - */ - public okhttp3.Call listEnvironmentsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEnvironmentsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listEnvironmentsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listEnvironmentsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/EscalationPathsApi.java b/src/main/java/com/rootly/client/api/EscalationPathsApi.java index c14413c9..b9a772ff 100644 --- a/src/main/java/com/rootly/client/api/EscalationPathsApi.java +++ b/src/main/java/com/rootly/client/api/EscalationPathsApi.java @@ -495,6 +495,7 @@ public okhttp3.Call getEscalationPathAsync(@jakarta.annotation.Nonnull String id * Build call for listEscalationPaths * @param escalationPolicyId (required) * @param include comma separated if needed. eg: escalation_policy_levels (optional) + * @param filterPathType Filter by path_type. Returns all path types when omitted. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback Callback for upload/download progress @@ -507,7 +508,7 @@ public okhttp3.Call getEscalationPathAsync(@jakarta.annotation.Nonnull String id 200 success - */ - public okhttp3.Call listEscalationPathsCall(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEscalationPathsCall(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterPathType, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -537,6 +538,10 @@ public okhttp3.Call listEscalationPathsCall(@jakarta.annotation.Nonnull String e localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); } + if (filterPathType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[path_type]", filterPathType)); + } + if (pageNumber != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); } @@ -565,13 +570,13 @@ public okhttp3.Call listEscalationPathsCall(@jakarta.annotation.Nonnull String e } @SuppressWarnings("rawtypes") - private okhttp3.Call listEscalationPathsValidateBeforeCall(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listEscalationPathsValidateBeforeCall(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterPathType, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { // verify the required parameter 'escalationPolicyId' is set if (escalationPolicyId == null) { throw new ApiException("Missing the required parameter 'escalationPolicyId' when calling listEscalationPaths(Async)"); } - return listEscalationPathsCall(escalationPolicyId, include, pageNumber, pageSize, _callback); + return listEscalationPathsCall(escalationPolicyId, include, filterPathType, pageNumber, pageSize, _callback); } @@ -580,6 +585,7 @@ private okhttp3.Call listEscalationPathsValidateBeforeCall(@jakarta.annotation.N * List escalation paths * @param escalationPolicyId (required) * @param include comma separated if needed. eg: escalation_policy_levels (optional) + * @param filterPathType Filter by path_type. Returns all path types when omitted. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return EscalationPolicyPathList @@ -591,8 +597,8 @@ private okhttp3.Call listEscalationPathsValidateBeforeCall(@jakarta.annotation.N 200 success - */ - public EscalationPolicyPathList listEscalationPaths(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - ApiResponse localVarResp = listEscalationPathsWithHttpInfo(escalationPolicyId, include, pageNumber, pageSize); + public EscalationPolicyPathList listEscalationPaths(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterPathType, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listEscalationPathsWithHttpInfo(escalationPolicyId, include, filterPathType, pageNumber, pageSize); return localVarResp.getData(); } @@ -601,6 +607,7 @@ public EscalationPolicyPathList listEscalationPaths(@jakarta.annotation.Nonnull * List escalation paths * @param escalationPolicyId (required) * @param include comma separated if needed. eg: escalation_policy_levels (optional) + * @param filterPathType Filter by path_type. Returns all path types when omitted. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return ApiResponse<EscalationPolicyPathList> @@ -612,8 +619,8 @@ public EscalationPolicyPathList listEscalationPaths(@jakarta.annotation.Nonnull 200 success - */ - public ApiResponse listEscalationPathsWithHttpInfo(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - okhttp3.Call localVarCall = listEscalationPathsValidateBeforeCall(escalationPolicyId, include, pageNumber, pageSize, null); + public ApiResponse listEscalationPathsWithHttpInfo(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterPathType, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listEscalationPathsValidateBeforeCall(escalationPolicyId, include, filterPathType, pageNumber, pageSize, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -623,6 +630,7 @@ public ApiResponse listEscalationPathsWithHttpInfo(@ja * List escalation paths * @param escalationPolicyId (required) * @param include comma separated if needed. eg: escalation_policy_levels (optional) + * @param filterPathType Filter by path_type. Returns all path types when omitted. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback The callback to be executed when the API call finishes @@ -635,9 +643,9 @@ public ApiResponse listEscalationPathsWithHttpInfo(@ja 200 success - */ - public okhttp3.Call listEscalationPathsAsync(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEscalationPathsAsync(@jakarta.annotation.Nonnull String escalationPolicyId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterPathType, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listEscalationPathsValidateBeforeCall(escalationPolicyId, include, pageNumber, pageSize, _callback); + okhttp3.Call localVarCall = listEscalationPathsValidateBeforeCall(escalationPolicyId, include, filterPathType, pageNumber, pageSize, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/EscalationPoliciesApi.java b/src/main/java/com/rootly/client/api/EscalationPoliciesApi.java index 27df7bfe..e838487e 100644 --- a/src/main/java/com/rootly/client/api/EscalationPoliciesApi.java +++ b/src/main/java/com/rootly/client/api/EscalationPoliciesApi.java @@ -486,10 +486,19 @@ public okhttp3.Call getEscalationPolicyAsync(@jakarta.annotation.Nonnull String * @param include comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter escalation policies by associated team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback Callback for upload/download progress @@ -502,7 +511,7 @@ public okhttp3.Call getEscalationPolicyAsync(@jakarta.annotation.Nonnull String 200 success - */ - public okhttp3.Call listEscalationPoliciesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEscalationPoliciesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -539,6 +548,10 @@ public okhttp3.Call listEscalationPoliciesCall(@jakarta.annotation.Nullable Stri localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); } + if (filterTeamIds != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids]", filterTeamIds)); + } + if (filterCreatedAtGt != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); } @@ -555,6 +568,38 @@ public okhttp3.Call listEscalationPoliciesCall(@jakarta.annotation.Nullable Stri localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterTeamIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][eq]", filterTeamIdsEq)); + } + + if (filterTeamIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][not_eq]", filterTeamIdsNotEq)); + } + + if (filterTeamIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][in]", filterTeamIdsIn)); + } + + if (filterTeamIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][not_in]", filterTeamIdsNotIn)); + } + if (pageNumber != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); } @@ -583,8 +628,8 @@ public okhttp3.Call listEscalationPoliciesCall(@jakarta.annotation.Nullable Stri } @SuppressWarnings("rawtypes") - private okhttp3.Call listEscalationPoliciesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - return listEscalationPoliciesCall(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + private okhttp3.Call listEscalationPoliciesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + return listEscalationPoliciesCall(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize, _callback); } @@ -594,10 +639,19 @@ private okhttp3.Call listEscalationPoliciesValidateBeforeCall(@jakarta.annotatio * @param include comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter escalation policies by associated team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return EscalationPolicyList @@ -609,8 +663,8 @@ private okhttp3.Call listEscalationPoliciesValidateBeforeCall(@jakarta.annotatio 200 success - */ - public EscalationPolicyList listEscalationPolicies(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - ApiResponse localVarResp = listEscalationPoliciesWithHttpInfo(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + public EscalationPolicyList listEscalationPolicies(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listEscalationPoliciesWithHttpInfo(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize); return localVarResp.getData(); } @@ -620,10 +674,19 @@ public EscalationPolicyList listEscalationPolicies(@jakarta.annotation.Nullable * @param include comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter escalation policies by associated team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return ApiResponse<EscalationPolicyList> @@ -635,8 +698,8 @@ public EscalationPolicyList listEscalationPolicies(@jakarta.annotation.Nullable 200 success - */ - public ApiResponse listEscalationPoliciesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - okhttp3.Call localVarCall = listEscalationPoliciesValidateBeforeCall(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, null); + public ApiResponse listEscalationPoliciesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listEscalationPoliciesValidateBeforeCall(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -647,10 +710,19 @@ public ApiResponse listEscalationPoliciesWithHttpInfo(@jak * @param include comma separated if needed. eg: escalation_policy_levels,escalation_policy_paths (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter escalation policies by associated team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback The callback to be executed when the API call finishes @@ -663,9 +735,9 @@ public ApiResponse listEscalationPoliciesWithHttpInfo(@jak 200 success - */ - public okhttp3.Call listEscalationPoliciesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listEscalationPoliciesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listEscalationPoliciesValidateBeforeCall(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + okhttp3.Call localVarCall = listEscalationPoliciesValidateBeforeCall(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/FormFieldPlacementsApi.java b/src/main/java/com/rootly/client/api/FormFieldPlacementsApi.java index e1a9a76c..ed589fc8 100644 --- a/src/main/java/com/rootly/client/api/FormFieldPlacementsApi.java +++ b/src/main/java/com/rootly/client/api/FormFieldPlacementsApi.java @@ -88,7 +88,7 @@ public void setCustomBaseUrl(String customBaseUrl) { Response Details Status Code Description Response Headers 201 form_field_placement created with non_editable true - - 422 invalid request - + 422 cross-resource placement rejected - 401 responds with unauthorized for invalid token - */ @@ -166,7 +166,7 @@ private okhttp3.Call createFormFieldPlacementValidateBeforeCall(@jakarta.annotat Response Details Status Code Description Response Headers 201 form_field_placement created with non_editable true - - 422 invalid request - + 422 cross-resource placement rejected - 401 responds with unauthorized for invalid token - */ @@ -187,7 +187,7 @@ public FormFieldPlacementResponse createFormFieldPlacement(@jakarta.annotation.N Response Details Status Code Description Response Headers 201 form_field_placement created with non_editable true - - 422 invalid request - + 422 cross-resource placement rejected - 401 responds with unauthorized for invalid token - */ @@ -210,7 +210,7 @@ public ApiResponse createFormFieldPlacementWithHttpI Response Details Status Code Description Response Headers 201 form_field_placement created with non_editable true - - 422 invalid request - + 422 cross-resource placement rejected - 401 responds with unauthorized for invalid token - */ @@ -653,7 +653,8 @@ public okhttp3.Call listFormFieldPlacementsAsync(@jakarta.annotation.Nonnull Str - + +
Response Details
Status Code Description Response Headers
200 form_field_placement updated with non_editable -
200 moves a custom field's placement onto an action item form -
422 rejects re-pointing a placement at another team's form set -
404 resource not found -
*/ @@ -730,7 +731,8 @@ private okhttp3.Call updateFormFieldPlacementValidateBeforeCall(@jakarta.annotat - + +
Response Details
Status Code Description Response Headers
200 form_field_placement updated with non_editable -
200 moves a custom field's placement onto an action item form -
422 rejects re-pointing a placement at another team's form set -
404 resource not found -
*/ @@ -750,7 +752,8 @@ public FormFieldPlacementResponse updateFormFieldPlacement(@jakarta.annotation.N - + +
Response Details
Status Code Description Response Headers
200 form_field_placement updated with non_editable -
200 moves a custom field's placement onto an action item form -
422 rejects re-pointing a placement at another team's form set -
404 resource not found -
*/ @@ -772,7 +775,8 @@ public ApiResponse updateFormFieldPlacementWithHttpI - + +
Response Details
Status Code Description Response Headers
200 form_field_placement updated with non_editable -
200 moves a custom field's placement onto an action item form -
422 rejects re-pointing a placement at another team's form set -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/FormFieldPositionsApi.java b/src/main/java/com/rootly/client/api/FormFieldPositionsApi.java index 096b90ba..c6ac067f 100644 --- a/src/main/java/com/rootly/client/api/FormFieldPositionsApi.java +++ b/src/main/java/com/rootly/client/api/FormFieldPositionsApi.java @@ -87,7 +87,8 @@ public void setCustomBaseUrl(String customBaseUrl) { - + +
Response Details
Status Code Description Response Headers
201 form_field_position created -
201 form_field_position created on an action item form -
422 rejects an action item form when the feature is disabled -
401 responds with unauthorized for invalid token -
*/ @@ -164,7 +165,8 @@ private okhttp3.Call createFormFieldPositionValidateBeforeCall(@jakarta.annotati - + +
Response Details
Status Code Description Response Headers
201 form_field_position created -
201 form_field_position created on an action item form -
422 rejects an action item form when the feature is disabled -
401 responds with unauthorized for invalid token -
*/ @@ -184,7 +186,8 @@ public FormFieldPositionResponse createFormFieldPosition(@jakarta.annotation.Non - + +
Response Details
Status Code Description Response Headers
201 form_field_position created -
201 form_field_position created on an action item form -
422 rejects an action item form when the feature is disabled -
401 responds with unauthorized for invalid token -
*/ @@ -206,7 +209,8 @@ public ApiResponse createFormFieldPositionWithHttpInf - + +
Response Details
Status Code Description Response Headers
201 form_field_position created -
201 form_field_position created on an action item form -
422 rejects an action item form when the feature is disabled -
401 responds with unauthorized for invalid token -
*/ @@ -650,6 +654,7 @@ public okhttp3.Call listFormFieldPositionsAsync(@jakarta.annotation.Nonnull Stri Response Details Status Code Description Response Headers 200 form_field_position updated - + 422 does not error when updating with a nonexistent form_field_id - 404 resource not found - */ @@ -727,6 +732,7 @@ private okhttp3.Call updateFormFieldPositionValidateBeforeCall(@jakarta.annotati Response Details Status Code Description Response Headers 200 form_field_position updated - + 422 does not error when updating with a nonexistent form_field_id - 404 resource not found - */ @@ -747,6 +753,7 @@ public FormFieldPositionResponse updateFormFieldPosition(@jakarta.annotation.Non Response Details Status Code Description Response Headers 200 form_field_position updated - + 422 does not error when updating with a nonexistent form_field_id - 404 resource not found - */ @@ -769,6 +776,7 @@ public ApiResponse updateFormFieldPositionWithHttpInf Response Details Status Code Description Response Headers 200 form_field_position updated - + 422 does not error when updating with a nonexistent form_field_id - 404 resource not found - */ diff --git a/src/main/java/com/rootly/client/api/FormFieldsApi.java b/src/main/java/com/rootly/client/api/FormFieldsApi.java index 0a598f09..b870b58f 100644 --- a/src/main/java/com/rootly/client/api/FormFieldsApi.java +++ b/src/main/java/com/rootly/client/api/FormFieldsApi.java @@ -87,8 +87,8 @@ public void setCustomBaseUrl(String customBaseUrl) { - - + +
Response Details
Status Code Description Response Headers
201 form_field created -
422 invalid request -
201 form_field created with auto_set_by_catalog_property_id -
422 form_field creation fails with auto_set_by_catalog_property_id for catalog fields of different type -
401 responds with unauthorized for invalid token -
*/ @@ -158,8 +158,8 @@ private okhttp3.Call createFormFieldValidateBeforeCall(@jakarta.annotation.Nonnu - - + +
Response Details
Status Code Description Response Headers
201 form_field created -
422 invalid request -
201 form_field created with auto_set_by_catalog_property_id -
422 form_field creation fails with auto_set_by_catalog_property_id for catalog fields of different type -
401 responds with unauthorized for invalid token -
*/ @@ -178,8 +178,8 @@ public FormFieldResponse createFormField(@jakarta.annotation.Nonnull NewFormFiel - - + +
Response Details
Status Code Description Response Headers
201 form_field created -
422 invalid request -
201 form_field created with auto_set_by_catalog_property_id -
422 form_field creation fails with auto_set_by_catalog_property_id for catalog fields of different type -
401 responds with unauthorized for invalid token -
*/ @@ -200,8 +200,8 @@ public ApiResponse createFormFieldWithHttpInfo(@jakarta.annot - - + +
Response Details
Status Code Description Response Headers
201 form_field created -
422 invalid request -
201 form_field created with auto_set_by_catalog_property_id -
422 form_field creation fails with auto_set_by_catalog_property_id for catalog fields of different type -
401 responds with unauthorized for invalid token -
*/ @@ -496,6 +496,22 @@ public okhttp3.Call getFormFieldAsync(@jakarta.annotation.Nonnull GetAlertFieldI * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -506,7 +522,7 @@ public okhttp3.Call getFormFieldAsync(@jakarta.annotation.Nonnull GetAlertFieldI 200 success - */ - public okhttp3.Call listFormFieldsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listFormFieldsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -579,6 +595,70 @@ public okhttp3.Call listFormFieldsCall(@jakarta.annotation.Nullable String inclu localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterKindEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][eq]", filterKindEq)); + } + + if (filterKindNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_eq]", filterKindNotEq)); + } + + if (filterKindIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][in]", filterKindIn)); + } + + if (filterKindNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_in]", filterKindNotIn)); + } + + if (filterEnabledEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][eq]", filterEnabledEq)); + } + + if (filterEnabledNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][not_eq]", filterEnabledNotEq)); + } + + if (filterEnabledIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][in]", filterEnabledIn)); + } + + if (filterEnabledNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][not_in]", filterEnabledNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -599,8 +679,8 @@ public okhttp3.Call listFormFieldsCall(@jakarta.annotation.Nullable String inclu } @SuppressWarnings("rawtypes") - private okhttp3.Call listFormFieldsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { - return listFormFieldsCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + private okhttp3.Call listFormFieldsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, final ApiCallback _callback) throws ApiException { + return listFormFieldsCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, _callback); } @@ -619,6 +699,22 @@ private okhttp3.Call listFormFieldsValidateBeforeCall(@jakarta.annotation.Nullab * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @return FormFieldList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -628,8 +724,8 @@ private okhttp3.Call listFormFieldsValidateBeforeCall(@jakarta.annotation.Nullab 200 success - */ - public FormFieldList listFormFields(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - ApiResponse localVarResp = listFormFieldsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + public FormFieldList listFormFields(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn) throws ApiException { + ApiResponse localVarResp = listFormFieldsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn); return localVarResp.getData(); } @@ -648,6 +744,22 @@ public FormFieldList listFormFields(@jakarta.annotation.Nullable String include, * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @return ApiResponse<FormFieldList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -657,8 +769,8 @@ public FormFieldList listFormFields(@jakarta.annotation.Nullable String include, 200 success - */ - public ApiResponse listFormFieldsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - okhttp3.Call localVarCall = listFormFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + public ApiResponse listFormFieldsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn) throws ApiException { + okhttp3.Call localVarCall = listFormFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -678,6 +790,22 @@ public ApiResponse listFormFieldsWithHttpInfo(@jakarta.annotation * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -688,9 +816,9 @@ public ApiResponse listFormFieldsWithHttpInfo(@jakarta.annotation 200 success - */ - public okhttp3.Call listFormFieldsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listFormFieldsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listFormFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + okhttp3.Call localVarCall = listFormFieldsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/FunctionalitiesApi.java b/src/main/java/com/rootly/client/api/FunctionalitiesApi.java index 5f8c0ffe..ab823d86 100644 --- a/src/main/java/com/rootly/client/api/FunctionalitiesApi.java +++ b/src/main/java/com/rootly/client/api/FunctionalitiesApi.java @@ -27,12 +27,23 @@ import java.io.IOException; +import com.rootly.client.model.BulkDeleteFunctionalities422Response; +import com.rootly.client.model.BulkDestroyFunctionalities; +import com.rootly.client.model.BulkDestroyFunctionalitiesResponse; +import com.rootly.client.model.BulkUpsertFunctionalities; +import com.rootly.client.model.BulkUpsertFunctionalities422Response; +import com.rootly.client.model.BulkUpsertFunctionalitiesResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.FunctionalityList; import com.rootly.client.model.FunctionalityResponse; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.IncidentsChartResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewFunctionality; import com.rootly.client.model.UpdateFunctionality; +import com.rootly.client.model.UptimeChartResponse; import java.lang.reflect.Type; import java.util.ArrayList; @@ -77,6 +88,276 @@ public void setCustomBaseUrl(String customBaseUrl) { this.localCustomBaseUrl = customBaseUrl; } + /** + * Build call for bulkDeleteFunctionalities + * @param bulkDestroyFunctionalities (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteFunctionalitiesCall(@jakarta.annotation.Nonnull BulkDestroyFunctionalities bulkDestroyFunctionalities, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkDestroyFunctionalities; + + // create path and map variables + String localVarPath = "/v1/functionalities/bulk_delete"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkDeleteFunctionalitiesValidateBeforeCall(@jakarta.annotation.Nonnull BulkDestroyFunctionalities bulkDestroyFunctionalities, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkDestroyFunctionalities' is set + if (bulkDestroyFunctionalities == null) { + throw new ApiException("Missing the required parameter 'bulkDestroyFunctionalities' when calling bulkDeleteFunctionalities(Async)"); + } + + return bulkDeleteFunctionalitiesCall(bulkDestroyFunctionalities, _callback); + + } + + /** + * Bulk delete Functionalities + * Delete functionalities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyFunctionalities (required) + * @return BulkDestroyFunctionalitiesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public BulkDestroyFunctionalitiesResponse bulkDeleteFunctionalities(@jakarta.annotation.Nonnull BulkDestroyFunctionalities bulkDestroyFunctionalities) throws ApiException { + ApiResponse localVarResp = bulkDeleteFunctionalitiesWithHttpInfo(bulkDestroyFunctionalities); + return localVarResp.getData(); + } + + /** + * Bulk delete Functionalities + * Delete functionalities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyFunctionalities (required) + * @return ApiResponse<BulkDestroyFunctionalitiesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public ApiResponse bulkDeleteFunctionalitiesWithHttpInfo(@jakarta.annotation.Nonnull BulkDestroyFunctionalities bulkDestroyFunctionalities) throws ApiException { + okhttp3.Call localVarCall = bulkDeleteFunctionalitiesValidateBeforeCall(bulkDestroyFunctionalities, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk delete Functionalities (asynchronously) + * Delete functionalities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyFunctionalities (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteFunctionalitiesAsync(@jakarta.annotation.Nonnull BulkDestroyFunctionalities bulkDestroyFunctionalities, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkDeleteFunctionalitiesValidateBeforeCall(bulkDestroyFunctionalities, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for bulkUpsertFunctionalities + * @param bulkUpsertFunctionalities (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertFunctionalitiesCall(@jakarta.annotation.Nonnull BulkUpsertFunctionalities bulkUpsertFunctionalities, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkUpsertFunctionalities; + + // create path and map variables + String localVarPath = "/v1/functionalities/bulk_upsert"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkUpsertFunctionalitiesValidateBeforeCall(@jakarta.annotation.Nonnull BulkUpsertFunctionalities bulkUpsertFunctionalities, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkUpsertFunctionalities' is set + if (bulkUpsertFunctionalities == null) { + throw new ApiException("Missing the required parameter 'bulkUpsertFunctionalities' when calling bulkUpsertFunctionalities(Async)"); + } + + return bulkUpsertFunctionalitiesCall(bulkUpsertFunctionalities, _callback); + + } + + /** + * Bulk upsert Functionalities + * Create or update multiple functionalities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertFunctionalities (required) + * @return BulkUpsertFunctionalitiesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public BulkUpsertFunctionalitiesResponse bulkUpsertFunctionalities(@jakarta.annotation.Nonnull BulkUpsertFunctionalities bulkUpsertFunctionalities) throws ApiException { + ApiResponse localVarResp = bulkUpsertFunctionalitiesWithHttpInfo(bulkUpsertFunctionalities); + return localVarResp.getData(); + } + + /** + * Bulk upsert Functionalities + * Create or update multiple functionalities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertFunctionalities (required) + * @return ApiResponse<BulkUpsertFunctionalitiesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public ApiResponse bulkUpsertFunctionalitiesWithHttpInfo(@jakarta.annotation.Nonnull BulkUpsertFunctionalities bulkUpsertFunctionalities) throws ApiException { + okhttp3.Call localVarCall = bulkUpsertFunctionalitiesValidateBeforeCall(bulkUpsertFunctionalities, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk upsert Functionalities (asynchronously) + * Create or update multiple functionalities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertFunctionalities (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertFunctionalitiesAsync(@jakarta.annotation.Nonnull BulkUpsertFunctionalities bulkUpsertFunctionalities, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkUpsertFunctionalitiesValidateBeforeCall(bulkUpsertFunctionalities, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for createFunctionality * @param newFunctionality (required) @@ -212,6 +493,141 @@ public okhttp3.Call createFunctionalityAsync(@jakarta.annotation.Nonnull NewFunc localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for createFunctionalityCatalogProperty + * @param newCatalogProperty (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createFunctionalityCatalogPropertyCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newCatalogProperty; + + // create path and map variables + String localVarPath = "/v1/functionalities/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createFunctionalityCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newCatalogProperty' is set + if (newCatalogProperty == null) { + throw new ApiException("Missing the required parameter 'newCatalogProperty' when calling createFunctionalityCatalogProperty(Async)"); + } + + return createFunctionalityCatalogPropertyCall(newCatalogProperty, _callback); + + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return CatalogPropertyResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public CatalogPropertyResponse createFunctionalityCatalogProperty(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + ApiResponse localVarResp = createFunctionalityCatalogPropertyWithHttpInfo(newCatalogProperty); + return localVarResp.getData(); + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return ApiResponse<CatalogPropertyResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createFunctionalityCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + okhttp3.Call localVarCall = createFunctionalityCatalogPropertyValidateBeforeCall(newCatalogProperty, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a Catalog Property (asynchronously) + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createFunctionalityCatalogPropertyAsync(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createFunctionalityCatalogPropertyValidateBeforeCall(newCatalogProperty, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for deleteFunctionality * @param id (required) @@ -559,7 +975,7 @@ private okhttp3.Call getFunctionalityIncidentsChartValidateBeforeCall(@jakarta.a * Get functionality incidents chart * @param id (required) * @param period (required) - * @return Object + * @return IncidentsChartResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -569,8 +985,8 @@ private okhttp3.Call getFunctionalityIncidentsChartValidateBeforeCall(@jakarta.a
404 resource not found -
*/ - public Object getFunctionalityIncidentsChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { - ApiResponse localVarResp = getFunctionalityIncidentsChartWithHttpInfo(id, period); + public IncidentsChartResponse getFunctionalityIncidentsChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { + ApiResponse localVarResp = getFunctionalityIncidentsChartWithHttpInfo(id, period); return localVarResp.getData(); } @@ -579,7 +995,7 @@ public Object getFunctionalityIncidentsChart(@jakarta.annotation.Nonnull GetAler * Get functionality incidents chart * @param id (required) * @param period (required) - * @return ApiResponse<Object> + * @return ApiResponse<IncidentsChartResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -589,9 +1005,9 @@ public Object getFunctionalityIncidentsChart(@jakarta.annotation.Nonnull GetAler
404 resource not found -
*/ - public ApiResponse getFunctionalityIncidentsChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { + public ApiResponse getFunctionalityIncidentsChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { okhttp3.Call localVarCall = getFunctionalityIncidentsChartValidateBeforeCall(id, period, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -611,10 +1027,10 @@ public ApiResponse getFunctionalityIncidentsChartWithHttpInfo(@jakarta.a 404 resource not found - */ - public okhttp3.Call getFunctionalityIncidentsChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getFunctionalityIncidentsChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getFunctionalityIncidentsChartValidateBeforeCall(id, period, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -698,7 +1114,7 @@ private okhttp3.Call getFunctionalityUptimeChartValidateBeforeCall(@jakarta.anno * Get functionality uptime chart * @param id (required) * @param period (optional) - * @return Object + * @return UptimeChartResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -708,8 +1124,8 @@ private okhttp3.Call getFunctionalityUptimeChartValidateBeforeCall(@jakarta.anno
404 resource not found -
*/ - public Object getFunctionalityUptimeChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { - ApiResponse localVarResp = getFunctionalityUptimeChartWithHttpInfo(id, period); + public UptimeChartResponse getFunctionalityUptimeChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { + ApiResponse localVarResp = getFunctionalityUptimeChartWithHttpInfo(id, period); return localVarResp.getData(); } @@ -718,7 +1134,7 @@ public Object getFunctionalityUptimeChart(@jakarta.annotation.Nonnull GetAlertFi * Get functionality uptime chart * @param id (required) * @param period (optional) - * @return ApiResponse<Object> + * @return ApiResponse<UptimeChartResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -728,9 +1144,9 @@ public Object getFunctionalityUptimeChart(@jakarta.annotation.Nonnull GetAlertFi
404 resource not found -
*/ - public ApiResponse getFunctionalityUptimeChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { + public ApiResponse getFunctionalityUptimeChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { okhttp3.Call localVarCall = getFunctionalityUptimeChartValidateBeforeCall(id, period, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -750,10 +1166,10 @@ public ApiResponse getFunctionalityUptimeChartWithHttpInfo(@jakarta.anno 404 resource not found - */ - public okhttp3.Call getFunctionalityUptimeChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getFunctionalityUptimeChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getFunctionalityUptimeChartValidateBeforeCall(id, period, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -773,6 +1189,14 @@ public okhttp3.Call getFunctionalityUptimeChartAsync(@jakarta.annotation.Nonnull * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -784,7 +1208,7 @@ public okhttp3.Call getFunctionalityUptimeChartAsync(@jakarta.annotation.Nonnull 200 success - */ - public okhttp3.Call listFunctionalitiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listFunctionalitiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -865,6 +1289,38 @@ public okhttp3.Call listFunctionalitiesCall(@jakarta.annotation.Nullable String localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -889,8 +1345,8 @@ public okhttp3.Call listFunctionalitiesCall(@jakarta.annotation.Nullable String } @SuppressWarnings("rawtypes") - private okhttp3.Call listFunctionalitiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listFunctionalitiesCall(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listFunctionalitiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listFunctionalitiesCall(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort, _callback); } @@ -911,6 +1367,14 @@ private okhttp3.Call listFunctionalitiesValidateBeforeCall(@jakarta.annotation.N * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @return FunctionalityList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -921,8 +1385,8 @@ private okhttp3.Call listFunctionalitiesValidateBeforeCall(@jakarta.annotation.N 200 success - */ - public FunctionalityList listFunctionalities(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listFunctionalitiesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public FunctionalityList listFunctionalities(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listFunctionalitiesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort); return localVarResp.getData(); } @@ -943,6 +1407,14 @@ public FunctionalityList listFunctionalities(@jakarta.annotation.Nullable String * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @return ApiResponse<FunctionalityList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -953,8 +1425,8 @@ public FunctionalityList listFunctionalities(@jakarta.annotation.Nullable String 200 success - */ - public ApiResponse listFunctionalitiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listFunctionalitiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listFunctionalitiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listFunctionalitiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -976,6 +1448,14 @@ public ApiResponse listFunctionalitiesWithHttpInfo(@jakarta.a * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -987,13 +1467,218 @@ public ApiResponse listFunctionalitiesWithHttpInfo(@jakarta.a 200 success - */ - public okhttp3.Call listFunctionalitiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listFunctionalitiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listFunctionalitiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listFunctionalitiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for listFunctionalityCatalogProperties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listFunctionalityCatalogPropertiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/functionalities/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (sort != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + if (filterSlug != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); + } + + if (filterName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); + } + + if (filterKind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listFunctionalityCatalogPropertiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + return listFunctionalityCatalogPropertiesCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + + } + + /** + * List Catalog Properties + * List Functionality Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return CatalogPropertyList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public CatalogPropertyList listFunctionalityCatalogProperties(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + ApiResponse localVarResp = listFunctionalityCatalogPropertiesWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + return localVarResp.getData(); + } + + /** + * List Catalog Properties + * List Functionality Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return ApiResponse<CatalogPropertyList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listFunctionalityCatalogPropertiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + okhttp3.Call localVarCall = listFunctionalityCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List Catalog Properties (asynchronously) + * List Functionality Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listFunctionalityCatalogPropertiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listFunctionalityCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for updateFunctionality * @param id (required) diff --git a/src/main/java/com/rootly/client/api/IncidentActionItemsApi.java b/src/main/java/com/rootly/client/api/IncidentActionItemsApi.java index 0803907e..8995d719 100644 --- a/src/main/java/com/rootly/client/api/IncidentActionItemsApi.java +++ b/src/main/java/com/rootly/client/api/IncidentActionItemsApi.java @@ -504,6 +504,22 @@ public okhttp3.Call getIncidentActionItemsAsync(@jakarta.annotation.Nonnull Stri * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterPriorityEq (optional) + * @param filterPriorityNotEq (optional) + * @param filterPriorityIn (optional) + * @param filterPriorityNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterIncidentStatusEq (optional) + * @param filterIncidentStatusNotEq (optional) + * @param filterIncidentStatusIn (optional) + * @param filterIncidentStatusNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -515,7 +531,7 @@ public okhttp3.Call getIncidentActionItemsAsync(@jakarta.annotation.Nonnull Stri 200 success - */ - public okhttp3.Call listAllIncidentActionItemsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAllIncidentActionItemsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterPriorityEq, @jakarta.annotation.Nullable String filterPriorityNotEq, @jakarta.annotation.Nullable String filterPriorityIn, @jakarta.annotation.Nullable String filterPriorityNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterIncidentStatusEq, @jakarta.annotation.Nullable String filterIncidentStatusNotEq, @jakarta.annotation.Nullable String filterIncidentStatusIn, @jakarta.annotation.Nullable String filterIncidentStatusNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -616,6 +632,70 @@ public okhttp3.Call listAllIncidentActionItemsCall(@jakarta.annotation.Nullable localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterKindEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][eq]", filterKindEq)); + } + + if (filterKindNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_eq]", filterKindNotEq)); + } + + if (filterKindIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][in]", filterKindIn)); + } + + if (filterKindNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_in]", filterKindNotIn)); + } + + if (filterPriorityEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[priority][eq]", filterPriorityEq)); + } + + if (filterPriorityNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[priority][not_eq]", filterPriorityNotEq)); + } + + if (filterPriorityIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[priority][in]", filterPriorityIn)); + } + + if (filterPriorityNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[priority][not_in]", filterPriorityNotIn)); + } + + if (filterStatusEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][eq]", filterStatusEq)); + } + + if (filterStatusNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][not_eq]", filterStatusNotEq)); + } + + if (filterStatusIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][in]", filterStatusIn)); + } + + if (filterStatusNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][not_in]", filterStatusNotIn)); + } + + if (filterIncidentStatusEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_status][eq]", filterIncidentStatusEq)); + } + + if (filterIncidentStatusNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_status][not_eq]", filterIncidentStatusNotEq)); + } + + if (filterIncidentStatusIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_status][in]", filterIncidentStatusIn)); + } + + if (filterIncidentStatusNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_status][not_in]", filterIncidentStatusNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -640,8 +720,8 @@ public okhttp3.Call listAllIncidentActionItemsCall(@jakarta.annotation.Nullable } @SuppressWarnings("rawtypes") - private okhttp3.Call listAllIncidentActionItemsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listAllIncidentActionItemsCall(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listAllIncidentActionItemsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterPriorityEq, @jakarta.annotation.Nullable String filterPriorityNotEq, @jakarta.annotation.Nullable String filterPriorityIn, @jakarta.annotation.Nullable String filterPriorityNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterIncidentStatusEq, @jakarta.annotation.Nullable String filterIncidentStatusNotEq, @jakarta.annotation.Nullable String filterIncidentStatusIn, @jakarta.annotation.Nullable String filterIncidentStatusNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listAllIncidentActionItemsCall(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterPriorityEq, filterPriorityNotEq, filterPriorityIn, filterPriorityNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterIncidentStatusEq, filterIncidentStatusNotEq, filterIncidentStatusIn, filterIncidentStatusNotIn, sort, _callback); } @@ -667,6 +747,22 @@ private okhttp3.Call listAllIncidentActionItemsValidateBeforeCall(@jakarta.annot * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterPriorityEq (optional) + * @param filterPriorityNotEq (optional) + * @param filterPriorityIn (optional) + * @param filterPriorityNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterIncidentStatusEq (optional) + * @param filterIncidentStatusNotEq (optional) + * @param filterIncidentStatusIn (optional) + * @param filterIncidentStatusNotIn (optional) * @param sort (optional) * @return IncidentActionItemList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -677,8 +773,8 @@ private okhttp3.Call listAllIncidentActionItemsValidateBeforeCall(@jakarta.annot 200 success - */ - public IncidentActionItemList listAllIncidentActionItems(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listAllIncidentActionItemsWithHttpInfo(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public IncidentActionItemList listAllIncidentActionItems(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterPriorityEq, @jakarta.annotation.Nullable String filterPriorityNotEq, @jakarta.annotation.Nullable String filterPriorityIn, @jakarta.annotation.Nullable String filterPriorityNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterIncidentStatusEq, @jakarta.annotation.Nullable String filterIncidentStatusNotEq, @jakarta.annotation.Nullable String filterIncidentStatusIn, @jakarta.annotation.Nullable String filterIncidentStatusNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listAllIncidentActionItemsWithHttpInfo(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterPriorityEq, filterPriorityNotEq, filterPriorityIn, filterPriorityNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterIncidentStatusEq, filterIncidentStatusNotEq, filterIncidentStatusIn, filterIncidentStatusNotIn, sort); return localVarResp.getData(); } @@ -704,6 +800,22 @@ public IncidentActionItemList listAllIncidentActionItems(@jakarta.annotation.Nul * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterPriorityEq (optional) + * @param filterPriorityNotEq (optional) + * @param filterPriorityIn (optional) + * @param filterPriorityNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterIncidentStatusEq (optional) + * @param filterIncidentStatusNotEq (optional) + * @param filterIncidentStatusIn (optional) + * @param filterIncidentStatusNotIn (optional) * @param sort (optional) * @return ApiResponse<IncidentActionItemList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -714,8 +826,8 @@ public IncidentActionItemList listAllIncidentActionItems(@jakarta.annotation.Nul 200 success - */ - public ApiResponse listAllIncidentActionItemsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listAllIncidentActionItemsValidateBeforeCall(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listAllIncidentActionItemsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterPriorityEq, @jakarta.annotation.Nullable String filterPriorityNotEq, @jakarta.annotation.Nullable String filterPriorityIn, @jakarta.annotation.Nullable String filterPriorityNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterIncidentStatusEq, @jakarta.annotation.Nullable String filterIncidentStatusNotEq, @jakarta.annotation.Nullable String filterIncidentStatusIn, @jakarta.annotation.Nullable String filterIncidentStatusNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listAllIncidentActionItemsValidateBeforeCall(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterPriorityEq, filterPriorityNotEq, filterPriorityIn, filterPriorityNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterIncidentStatusEq, filterIncidentStatusNotEq, filterIncidentStatusIn, filterIncidentStatusNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -742,6 +854,22 @@ public ApiResponse listAllIncidentActionItemsWithHttpInf * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterPriorityEq (optional) + * @param filterPriorityNotEq (optional) + * @param filterPriorityIn (optional) + * @param filterPriorityNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterIncidentStatusEq (optional) + * @param filterIncidentStatusNotEq (optional) + * @param filterIncidentStatusIn (optional) + * @param filterIncidentStatusNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -753,9 +881,9 @@ public ApiResponse listAllIncidentActionItemsWithHttpInf 200 success - */ - public okhttp3.Call listAllIncidentActionItemsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listAllIncidentActionItemsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterPriority, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterIncidentStatus, @jakarta.annotation.Nullable String filterIncidentCreatedAtGt, @jakarta.annotation.Nullable String filterIncidentCreatedAtGte, @jakarta.annotation.Nullable String filterIncidentCreatedAtLt, @jakarta.annotation.Nullable String filterIncidentCreatedAtLte, @jakarta.annotation.Nullable String filterDueDateGt, @jakarta.annotation.Nullable String filterDueDateGte, @jakarta.annotation.Nullable String filterDueDateLt, @jakarta.annotation.Nullable String filterDueDateLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterPriorityEq, @jakarta.annotation.Nullable String filterPriorityNotEq, @jakarta.annotation.Nullable String filterPriorityIn, @jakarta.annotation.Nullable String filterPriorityNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterIncidentStatusEq, @jakarta.annotation.Nullable String filterIncidentStatusNotEq, @jakarta.annotation.Nullable String filterIncidentStatusIn, @jakarta.annotation.Nullable String filterIncidentStatusNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listAllIncidentActionItemsValidateBeforeCall(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listAllIncidentActionItemsValidateBeforeCall(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterPriorityEq, filterPriorityNotEq, filterPriorityIn, filterPriorityNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterIncidentStatusEq, filterIncidentStatusNotEq, filterIncidentStatusIn, filterIncidentStatusNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/IncidentRolesApi.java b/src/main/java/com/rootly/client/api/IncidentRolesApi.java index aa97f51a..5e4a02a2 100644 --- a/src/main/java/com/rootly/client/api/IncidentRolesApi.java +++ b/src/main/java/com/rootly/client/api/IncidentRolesApi.java @@ -476,7 +476,6 @@ public okhttp3.Call getIncidentRoleAsync(@jakarta.annotation.Nonnull GetAlertFie } /** * Build call for listIncidentRoles - * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -487,6 +486,18 @@ public okhttp3.Call getIncidentRoleAsync(@jakarta.annotation.Nonnull GetAlertFie * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -498,7 +509,7 @@ public okhttp3.Call getIncidentRoleAsync(@jakarta.annotation.Nonnull GetAlertFie 200 success - */ - public okhttp3.Call listIncidentRolesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listIncidentRolesCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -523,10 +534,6 @@ public okhttp3.Call listIncidentRolesCall(@jakarta.annotation.Nullable String in Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); - if (include != null) { - localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); - } - if (pageNumber != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); } @@ -567,6 +574,54 @@ public okhttp3.Call listIncidentRolesCall(@jakarta.annotation.Nullable String in localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterEnabledEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][eq]", filterEnabledEq)); + } + + if (filterEnabledNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][not_eq]", filterEnabledNotEq)); + } + + if (filterEnabledIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][in]", filterEnabledIn)); + } + + if (filterEnabledNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[enabled][not_in]", filterEnabledNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -591,15 +646,14 @@ public okhttp3.Call listIncidentRolesCall(@jakarta.annotation.Nullable String in } @SuppressWarnings("rawtypes") - private okhttp3.Call listIncidentRolesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listIncidentRolesCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listIncidentRolesValidateBeforeCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listIncidentRolesCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, sort, _callback); } /** * List incident roles * List incident roles - * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -610,6 +664,18 @@ private okhttp3.Call listIncidentRolesValidateBeforeCall(@jakarta.annotation.Nul * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param sort (optional) * @return IncidentRoleList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -620,15 +686,14 @@ private okhttp3.Call listIncidentRolesValidateBeforeCall(@jakarta.annotation.Nul 200 success - */ - public IncidentRoleList listIncidentRoles(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listIncidentRolesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public IncidentRoleList listIncidentRoles(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listIncidentRolesWithHttpInfo(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, sort); return localVarResp.getData(); } /** * List incident roles * List incident roles - * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -639,6 +704,18 @@ public IncidentRoleList listIncidentRoles(@jakarta.annotation.Nullable String in * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param sort (optional) * @return ApiResponse<IncidentRoleList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -649,8 +726,8 @@ public IncidentRoleList listIncidentRoles(@jakarta.annotation.Nullable String in 200 success - */ - public ApiResponse listIncidentRolesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listIncidentRolesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listIncidentRolesWithHttpInfo(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listIncidentRolesValidateBeforeCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -658,7 +735,6 @@ public ApiResponse listIncidentRolesWithHttpInfo(@jakarta.anno /** * List incident roles (asynchronously) * List incident roles - * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -669,6 +745,18 @@ public ApiResponse listIncidentRolesWithHttpInfo(@jakarta.anno * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterEnabledEq (optional) + * @param filterEnabledNotEq (optional) + * @param filterEnabledIn (optional) + * @param filterEnabledNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -680,9 +768,9 @@ public ApiResponse listIncidentRolesWithHttpInfo(@jakarta.anno 200 success - */ - public okhttp3.Call listIncidentRolesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listIncidentRolesAsync(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable Boolean filterEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterEnabledEq, @jakarta.annotation.Nullable String filterEnabledNotEq, @jakarta.annotation.Nullable String filterEnabledIn, @jakarta.annotation.Nullable String filterEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listIncidentRolesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listIncidentRolesValidateBeforeCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/IncidentStatusPageEventsApi.java b/src/main/java/com/rootly/client/api/IncidentStatusPageEventsApi.java index 3e21fa5b..3ef284c1 100644 --- a/src/main/java/com/rootly/client/api/IncidentStatusPageEventsApi.java +++ b/src/main/java/com/rootly/client/api/IncidentStatusPageEventsApi.java @@ -87,7 +87,7 @@ public void setCustomBaseUrl(String customBaseUrl) { - +
Response Details
Status Code Description Response Headers
201 incident_status_page_event created -
201 incident_status_page_event created with component statuses -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -165,7 +165,7 @@ private okhttp3.Call createIncidentStatusPageValidateBeforeCall(@jakarta.annotat - +
Response Details
Status Code Description Response Headers
201 incident_status_page_event created -
201 incident_status_page_event created with component statuses -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -186,7 +186,7 @@ public IncidentStatusPageEventResponse createIncidentStatusPage(@jakarta.annotat - +
Response Details
Status Code Description Response Headers
201 incident_status_page_event created -
201 incident_status_page_event created with component statuses -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -209,7 +209,7 @@ public ApiResponse createIncidentStatusPageWith - +
Response Details
Status Code Description Response Headers
201 incident_status_page_event created -
201 incident_status_page_event created with component statuses -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -645,7 +645,7 @@ public okhttp3.Call listIncidentStatusPagesAsync(@jakarta.annotation.Nonnull Str - +
Response Details
Status Code Description Response Headers
200 incident_status_page_event updated -
200 incident_status_page_event started_at updated -
404 resource not found -
*/ @@ -722,7 +722,7 @@ private okhttp3.Call updateIncidentStatusPageValidateBeforeCall(@jakarta.annotat - +
Response Details
Status Code Description Response Headers
200 incident_status_page_event updated -
200 incident_status_page_event started_at updated -
404 resource not found -
*/ @@ -742,7 +742,7 @@ public IncidentStatusPageEventResponse updateIncidentStatusPage(@jakarta.annotat - +
Response Details
Status Code Description Response Headers
200 incident_status_page_event updated -
200 incident_status_page_event started_at updated -
404 resource not found -
*/ @@ -764,7 +764,7 @@ public ApiResponse updateIncidentStatusPageWith - +
Response Details
Status Code Description Response Headers
200 incident_status_page_event updated -
200 incident_status_page_event started_at updated -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/IncidentTypesApi.java b/src/main/java/com/rootly/client/api/IncidentTypesApi.java index 78e385a3..3b8207af 100644 --- a/src/main/java/com/rootly/client/api/IncidentTypesApi.java +++ b/src/main/java/com/rootly/client/api/IncidentTypesApi.java @@ -27,10 +27,13 @@ import java.io.IOException; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; import com.rootly.client.model.IncidentTypeList; import com.rootly.client.model.IncidentTypeResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewIncidentType; import com.rootly.client.model.UpdateIncidentType; @@ -212,6 +215,141 @@ public okhttp3.Call createIncidentTypeAsync(@jakarta.annotation.Nonnull NewIncid localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for createIncidentTypeCatalogProperty + * @param newCatalogProperty (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createIncidentTypeCatalogPropertyCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newCatalogProperty; + + // create path and map variables + String localVarPath = "/v1/incident_types/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createIncidentTypeCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newCatalogProperty' is set + if (newCatalogProperty == null) { + throw new ApiException("Missing the required parameter 'newCatalogProperty' when calling createIncidentTypeCatalogProperty(Async)"); + } + + return createIncidentTypeCatalogPropertyCall(newCatalogProperty, _callback); + + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return CatalogPropertyResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public CatalogPropertyResponse createIncidentTypeCatalogProperty(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + ApiResponse localVarResp = createIncidentTypeCatalogPropertyWithHttpInfo(newCatalogProperty); + return localVarResp.getData(); + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return ApiResponse<CatalogPropertyResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createIncidentTypeCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + okhttp3.Call localVarCall = createIncidentTypeCatalogPropertyValidateBeforeCall(newCatalogProperty, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a Catalog Property (asynchronously) + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createIncidentTypeCatalogPropertyAsync(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createIncidentTypeCatalogPropertyValidateBeforeCall(newCatalogProperty, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for deleteIncidentType * @param id (required) @@ -474,6 +612,211 @@ public okhttp3.Call getIncidentTypeAsync(@jakarta.annotation.Nonnull GetAlertFie localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for listIncidentTypeCatalogProperties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listIncidentTypeCatalogPropertiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/incident_types/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (sort != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + if (filterSlug != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); + } + + if (filterName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); + } + + if (filterKind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listIncidentTypeCatalogPropertiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + return listIncidentTypeCatalogPropertiesCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + + } + + /** + * List Catalog Properties + * List IncidentType Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return CatalogPropertyList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public CatalogPropertyList listIncidentTypeCatalogProperties(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + ApiResponse localVarResp = listIncidentTypeCatalogPropertiesWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + return localVarResp.getData(); + } + + /** + * List Catalog Properties + * List IncidentType Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return ApiResponse<CatalogPropertyList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listIncidentTypeCatalogPropertiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + okhttp3.Call localVarCall = listIncidentTypeCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List Catalog Properties (asynchronously) + * List IncidentType Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listIncidentTypeCatalogPropertiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listIncidentTypeCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for listIncidentTypes * @param include (optional) @@ -486,6 +829,18 @@ public okhttp3.Call getIncidentTypeAsync(@jakarta.annotation.Nonnull GetAlertFie * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -497,7 +852,7 @@ public okhttp3.Call getIncidentTypeAsync(@jakarta.annotation.Nonnull GetAlertFie 200 success - */ - public okhttp3.Call listIncidentTypesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listIncidentTypesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -562,6 +917,54 @@ public okhttp3.Call listIncidentTypesCall(@jakarta.annotation.Nullable String in localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterColorEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][eq]", filterColorEq)); + } + + if (filterColorNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_eq]", filterColorNotEq)); + } + + if (filterColorIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][in]", filterColorIn)); + } + + if (filterColorNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_in]", filterColorNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -586,8 +989,8 @@ public okhttp3.Call listIncidentTypesCall(@jakarta.annotation.Nullable String in } @SuppressWarnings("rawtypes") - private okhttp3.Call listIncidentTypesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listIncidentTypesCall(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listIncidentTypesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listIncidentTypesCall(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, _callback); } @@ -604,6 +1007,18 @@ private okhttp3.Call listIncidentTypesValidateBeforeCall(@jakarta.annotation.Nul * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @return IncidentTypeList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -614,8 +1029,8 @@ private okhttp3.Call listIncidentTypesValidateBeforeCall(@jakarta.annotation.Nul 200 success - */ - public IncidentTypeList listIncidentTypes(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listIncidentTypesWithHttpInfo(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public IncidentTypeList listIncidentTypes(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listIncidentTypesWithHttpInfo(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); return localVarResp.getData(); } @@ -632,6 +1047,18 @@ public IncidentTypeList listIncidentTypes(@jakarta.annotation.Nullable String in * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @return ApiResponse<IncidentTypeList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -642,8 +1069,8 @@ public IncidentTypeList listIncidentTypes(@jakarta.annotation.Nullable String in 200 success - */ - public ApiResponse listIncidentTypesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listIncidentTypesValidateBeforeCall(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listIncidentTypesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listIncidentTypesValidateBeforeCall(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -661,6 +1088,18 @@ public ApiResponse listIncidentTypesWithHttpInfo(@jakarta.anno * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -672,9 +1111,9 @@ public ApiResponse listIncidentTypesWithHttpInfo(@jakarta.anno 200 success - */ - public okhttp3.Call listIncidentTypesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listIncidentTypesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listIncidentTypesValidateBeforeCall(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listIncidentTypesValidateBeforeCall(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/IncidentsApi.java b/src/main/java/com/rootly/client/api/IncidentsApi.java index 5dc3bceb..bc51e384 100644 --- a/src/main/java/com/rootly/client/api/IncidentsApi.java +++ b/src/main/java/com/rootly/client/api/IncidentsApi.java @@ -775,6 +775,141 @@ public okhttp3.Call deleteIncidentAsync(@jakarta.annotation.Nonnull GetAlertFiel localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for detachFromParentIncident + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 incident detached from parent -
422 incident has no parent -
404 resource not found -
+ */ + public okhttp3.Call detachFromParentIncidentCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/incidents/{id}/detach_from_parent" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call detachFromParentIncidentValidateBeforeCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling detachFromParentIncident(Async)"); + } + + return detachFromParentIncidentCall(id, _callback); + + } + + /** + * Detach an incident from its parent + * Detach a sub-incident from its parent incident + * @param id (required) + * @return IncidentResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 incident detached from parent -
422 incident has no parent -
404 resource not found -
+ */ + public IncidentResponse detachFromParentIncident(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + ApiResponse localVarResp = detachFromParentIncidentWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Detach an incident from its parent + * Detach a sub-incident from its parent incident + * @param id (required) + * @return ApiResponse<IncidentResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 incident detached from parent -
422 incident has no parent -
404 resource not found -
+ */ + public ApiResponse detachFromParentIncidentWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + okhttp3.Call localVarCall = detachFromParentIncidentValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Detach an incident from its parent (asynchronously) + * Detach a sub-incident from its parent incident + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 incident detached from parent -
422 incident has no parent -
404 resource not found -
+ */ + public okhttp3.Call detachFromParentIncidentAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = detachFromParentIncidentValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for getIncident * @param id (required) @@ -916,6 +1051,7 @@ public okhttp3.Call getIncidentAsync(@jakarta.annotation.Nonnull GetAlertFieldId } /** * Build call for listIncidents + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -932,13 +1068,18 @@ public okhttp3.Call getIncidentAsync(@jakarta.annotation.Nonnull GetAlertFieldId * @param filterEnvironmentIds (optional) * @param filterFunctionalities (optional) * @param filterFunctionalityIds (optional) + * @param filterFunctionalityNames (optional) * @param filterServices (optional) * @param filterServiceIds (optional) + * @param filterServiceNames (optional) * @param filterTeams (optional) * @param filterTeamIds (optional) + * @param filterTeamNames (optional) * @param filterCause (optional) * @param filterCauseIds (optional) * @param filterCustomFieldSelectedOptionIds (optional) + * @param filterSlackChannelId (optional) + * @param filterSequentialId Filter by the human-readable incident number (the 123 in INC-123). (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) @@ -975,6 +1116,102 @@ public okhttp3.Call getIncidentAsync(@jakarta.annotation.Nonnull GetAlertFieldId * @param filterInTriageAtGte (optional) * @param filterInTriageAtLt (optional) * @param filterInTriageAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterPrivateEq (optional) + * @param filterPrivateNotEq (optional) + * @param filterPrivateIn (optional) + * @param filterPrivateNotIn (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterSeverityIdEq (optional) + * @param filterSeverityIdNotEq (optional) + * @param filterSeverityIdIn (optional) + * @param filterSeverityIdNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterZendeskTicketIdEq (optional) + * @param filterZendeskTicketIdNotEq (optional) + * @param filterZendeskTicketIdIn (optional) + * @param filterZendeskTicketIdNotIn (optional) + * @param filterSequentialIdEq (optional) + * @param filterSequentialIdNotEq (optional) + * @param filterSequentialIdIn (optional) + * @param filterSequentialIdNotIn (optional) + * @param filterTypesEq (optional) + * @param filterTypesNotEq (optional) + * @param filterTypesIn (optional) + * @param filterTypesNotIn (optional) + * @param filterTypeIdsEq (optional) + * @param filterTypeIdsNotEq (optional) + * @param filterTypeIdsIn (optional) + * @param filterTypeIdsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterEnvironmentIdsEq (optional) + * @param filterEnvironmentIdsNotEq (optional) + * @param filterEnvironmentIdsIn (optional) + * @param filterEnvironmentIdsNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterServiceIdsEq (optional) + * @param filterServiceIdsNotEq (optional) + * @param filterServiceIdsIn (optional) + * @param filterServiceIdsNotIn (optional) + * @param filterServiceNamesEq (optional) + * @param filterServiceNamesNotEq (optional) + * @param filterServiceNamesIn (optional) + * @param filterServiceNamesNotIn (optional) + * @param filterFunctionalitiesEq (optional) + * @param filterFunctionalitiesNotEq (optional) + * @param filterFunctionalitiesIn (optional) + * @param filterFunctionalitiesNotIn (optional) + * @param filterFunctionalityIdsEq (optional) + * @param filterFunctionalityIdsNotEq (optional) + * @param filterFunctionalityIdsIn (optional) + * @param filterFunctionalityIdsNotIn (optional) + * @param filterFunctionalityNamesEq (optional) + * @param filterFunctionalityNamesNotEq (optional) + * @param filterFunctionalityNamesIn (optional) + * @param filterFunctionalityNamesNotIn (optional) + * @param filterCausesEq (optional) + * @param filterCausesNotEq (optional) + * @param filterCausesIn (optional) + * @param filterCausesNotIn (optional) + * @param filterCauseIdsEq (optional) + * @param filterCauseIdsNotEq (optional) + * @param filterCauseIdsIn (optional) + * @param filterCauseIdsNotIn (optional) + * @param filterTeamsEq (optional) + * @param filterTeamsNotEq (optional) + * @param filterTeamsIn (optional) + * @param filterTeamsNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) + * @param filterTeamNamesEq (optional) + * @param filterTeamNamesNotEq (optional) + * @param filterTeamNamesIn (optional) + * @param filterTeamNamesNotIn (optional) * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param include comma separated if needed. eg: sub_statuses,causes,subscribers (optional) * @param _callback Callback for upload/download progress @@ -985,9 +1222,10 @@ public okhttp3.Call getIncidentAsync(@jakarta.annotation.Nonnull GetAlertFieldId Response Details Status Code Description Response Headers 200 success - + 400 malformed date filter - */ - public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterFunctionalityNames, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterServiceNames, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterTeamNames, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterSlackChannelId, @jakarta.annotation.Nullable String filterSequentialId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterPrivateEq, @jakarta.annotation.Nullable String filterPrivateNotEq, @jakarta.annotation.Nullable String filterPrivateIn, @jakarta.annotation.Nullable String filterPrivateNotIn, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterSeverityIdEq, @jakarta.annotation.Nullable String filterSeverityIdNotEq, @jakarta.annotation.Nullable String filterSeverityIdIn, @jakarta.annotation.Nullable String filterSeverityIdNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterZendeskTicketIdEq, @jakarta.annotation.Nullable String filterZendeskTicketIdNotEq, @jakarta.annotation.Nullable String filterZendeskTicketIdIn, @jakarta.annotation.Nullable String filterZendeskTicketIdNotIn, @jakarta.annotation.Nullable String filterSequentialIdEq, @jakarta.annotation.Nullable String filterSequentialIdNotEq, @jakarta.annotation.Nullable String filterSequentialIdIn, @jakarta.annotation.Nullable String filterSequentialIdNotIn, @jakarta.annotation.Nullable String filterTypesEq, @jakarta.annotation.Nullable String filterTypesNotEq, @jakarta.annotation.Nullable String filterTypesIn, @jakarta.annotation.Nullable String filterTypesNotIn, @jakarta.annotation.Nullable String filterTypeIdsEq, @jakarta.annotation.Nullable String filterTypeIdsNotEq, @jakarta.annotation.Nullable String filterTypeIdsIn, @jakarta.annotation.Nullable String filterTypeIdsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterEnvironmentIdsEq, @jakarta.annotation.Nullable String filterEnvironmentIdsNotEq, @jakarta.annotation.Nullable String filterEnvironmentIdsIn, @jakarta.annotation.Nullable String filterEnvironmentIdsNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterServiceIdsEq, @jakarta.annotation.Nullable String filterServiceIdsNotEq, @jakarta.annotation.Nullable String filterServiceIdsIn, @jakarta.annotation.Nullable String filterServiceIdsNotIn, @jakarta.annotation.Nullable String filterServiceNamesEq, @jakarta.annotation.Nullable String filterServiceNamesNotEq, @jakarta.annotation.Nullable String filterServiceNamesIn, @jakarta.annotation.Nullable String filterServiceNamesNotIn, @jakarta.annotation.Nullable String filterFunctionalitiesEq, @jakarta.annotation.Nullable String filterFunctionalitiesNotEq, @jakarta.annotation.Nullable String filterFunctionalitiesIn, @jakarta.annotation.Nullable String filterFunctionalitiesNotIn, @jakarta.annotation.Nullable String filterFunctionalityIdsEq, @jakarta.annotation.Nullable String filterFunctionalityIdsNotEq, @jakarta.annotation.Nullable String filterFunctionalityIdsIn, @jakarta.annotation.Nullable String filterFunctionalityIdsNotIn, @jakarta.annotation.Nullable String filterFunctionalityNamesEq, @jakarta.annotation.Nullable String filterFunctionalityNamesNotEq, @jakarta.annotation.Nullable String filterFunctionalityNamesIn, @jakarta.annotation.Nullable String filterFunctionalityNamesNotIn, @jakarta.annotation.Nullable String filterCausesEq, @jakarta.annotation.Nullable String filterCausesNotEq, @jakarta.annotation.Nullable String filterCausesIn, @jakarta.annotation.Nullable String filterCausesNotIn, @jakarta.annotation.Nullable String filterCauseIdsEq, @jakarta.annotation.Nullable String filterCauseIdsNotEq, @jakarta.annotation.Nullable String filterCauseIdsIn, @jakarta.annotation.Nullable String filterCauseIdsNotIn, @jakarta.annotation.Nullable String filterTeamsEq, @jakarta.annotation.Nullable String filterTeamsNotEq, @jakarta.annotation.Nullable String filterTeamsIn, @jakarta.annotation.Nullable String filterTeamsNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable String filterTeamNamesEq, @jakarta.annotation.Nullable String filterTeamNamesNotEq, @jakarta.annotation.Nullable String filterTeamNamesIn, @jakarta.annotation.Nullable String filterTeamNamesNotIn, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -1012,6 +1250,10 @@ public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageN Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + if (pageAfter != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[after]", pageAfter)); + } + if (pageNumber != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); } @@ -1076,6 +1318,10 @@ public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageN localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_ids]", filterFunctionalityIds)); } + if (filterFunctionalityNames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_names]", filterFunctionalityNames)); + } + if (filterServices != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services]", filterServices)); } @@ -1084,6 +1330,10 @@ public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageN localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_ids]", filterServiceIds)); } + if (filterServiceNames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_names]", filterServiceNames)); + } + if (filterTeams != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[teams]", filterTeams)); } @@ -1092,6 +1342,10 @@ public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageN localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids]", filterTeamIds)); } + if (filterTeamNames != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_names]", filterTeamNames)); + } + if (filterCause != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[cause]", filterCause)); } @@ -1104,6 +1358,14 @@ public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageN localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[custom_field_selected_option_ids]", filterCustomFieldSelectedOptionIds)); } + if (filterSlackChannelId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slack_channel_id]", filterSlackChannelId)); + } + + if (filterSequentialId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[sequential_id]", filterSequentialId)); + } + if (filterCreatedAtGt != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); } @@ -1248,6 +1510,390 @@ public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageN localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[in_triage_at][lte]", filterInTriageAtLte)); } + if (filterKindEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][eq]", filterKindEq)); + } + + if (filterKindNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_eq]", filterKindNotEq)); + } + + if (filterKindIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][in]", filterKindIn)); + } + + if (filterKindNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind][not_in]", filterKindNotIn)); + } + + if (filterStatusEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][eq]", filterStatusEq)); + } + + if (filterStatusNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][not_eq]", filterStatusNotEq)); + } + + if (filterStatusIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][in]", filterStatusIn)); + } + + if (filterStatusNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status][not_in]", filterStatusNotIn)); + } + + if (filterPrivateEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[private][eq]", filterPrivateEq)); + } + + if (filterPrivateNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[private][not_eq]", filterPrivateNotEq)); + } + + if (filterPrivateIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[private][in]", filterPrivateIn)); + } + + if (filterPrivateNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[private][not_in]", filterPrivateNotIn)); + } + + if (filterUserIdEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][eq]", filterUserIdEq)); + } + + if (filterUserIdNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][not_eq]", filterUserIdNotEq)); + } + + if (filterUserIdIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][in]", filterUserIdIn)); + } + + if (filterUserIdNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[user_id][not_in]", filterUserIdNotIn)); + } + + if (filterSeverityEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][eq]", filterSeverityEq)); + } + + if (filterSeverityNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][not_eq]", filterSeverityNotEq)); + } + + if (filterSeverityIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][in]", filterSeverityIn)); + } + + if (filterSeverityNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][not_in]", filterSeverityNotIn)); + } + + if (filterSeverityIdEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity_id][eq]", filterSeverityIdEq)); + } + + if (filterSeverityIdNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity_id][not_eq]", filterSeverityIdNotEq)); + } + + if (filterSeverityIdIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity_id][in]", filterSeverityIdIn)); + } + + if (filterSeverityIdNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity_id][not_in]", filterSeverityIdNotIn)); + } + + if (filterLabelsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][eq]", filterLabelsEq)); + } + + if (filterLabelsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][not_eq]", filterLabelsNotEq)); + } + + if (filterLabelsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][in]", filterLabelsIn)); + } + + if (filterLabelsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][not_in]", filterLabelsNotIn)); + } + + if (filterZendeskTicketIdEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[zendesk_ticket_id][eq]", filterZendeskTicketIdEq)); + } + + if (filterZendeskTicketIdNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[zendesk_ticket_id][not_eq]", filterZendeskTicketIdNotEq)); + } + + if (filterZendeskTicketIdIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[zendesk_ticket_id][in]", filterZendeskTicketIdIn)); + } + + if (filterZendeskTicketIdNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[zendesk_ticket_id][not_in]", filterZendeskTicketIdNotIn)); + } + + if (filterSequentialIdEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[sequential_id][eq]", filterSequentialIdEq)); + } + + if (filterSequentialIdNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[sequential_id][not_eq]", filterSequentialIdNotEq)); + } + + if (filterSequentialIdIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[sequential_id][in]", filterSequentialIdIn)); + } + + if (filterSequentialIdNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[sequential_id][not_in]", filterSequentialIdNotIn)); + } + + if (filterTypesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[types][eq]", filterTypesEq)); + } + + if (filterTypesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[types][not_eq]", filterTypesNotEq)); + } + + if (filterTypesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[types][in]", filterTypesIn)); + } + + if (filterTypesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[types][not_in]", filterTypesNotIn)); + } + + if (filterTypeIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[type_ids][eq]", filterTypeIdsEq)); + } + + if (filterTypeIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[type_ids][not_eq]", filterTypeIdsNotEq)); + } + + if (filterTypeIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[type_ids][in]", filterTypeIdsIn)); + } + + if (filterTypeIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[type_ids][not_in]", filterTypeIdsNotIn)); + } + + if (filterEnvironmentsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][eq]", filterEnvironmentsEq)); + } + + if (filterEnvironmentsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][not_eq]", filterEnvironmentsNotEq)); + } + + if (filterEnvironmentsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][in]", filterEnvironmentsIn)); + } + + if (filterEnvironmentsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][not_in]", filterEnvironmentsNotIn)); + } + + if (filterEnvironmentIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environment_ids][eq]", filterEnvironmentIdsEq)); + } + + if (filterEnvironmentIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environment_ids][not_eq]", filterEnvironmentIdsNotEq)); + } + + if (filterEnvironmentIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environment_ids][in]", filterEnvironmentIdsIn)); + } + + if (filterEnvironmentIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environment_ids][not_in]", filterEnvironmentIdsNotIn)); + } + + if (filterServicesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][eq]", filterServicesEq)); + } + + if (filterServicesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][not_eq]", filterServicesNotEq)); + } + + if (filterServicesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][in]", filterServicesIn)); + } + + if (filterServicesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][not_in]", filterServicesNotIn)); + } + + if (filterServiceIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_ids][eq]", filterServiceIdsEq)); + } + + if (filterServiceIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_ids][not_eq]", filterServiceIdsNotEq)); + } + + if (filterServiceIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_ids][in]", filterServiceIdsIn)); + } + + if (filterServiceIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_ids][not_in]", filterServiceIdsNotIn)); + } + + if (filterServiceNamesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_names][eq]", filterServiceNamesEq)); + } + + if (filterServiceNamesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_names][not_eq]", filterServiceNamesNotEq)); + } + + if (filterServiceNamesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_names][in]", filterServiceNamesIn)); + } + + if (filterServiceNamesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[service_names][not_in]", filterServiceNamesNotIn)); + } + + if (filterFunctionalitiesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionalities][eq]", filterFunctionalitiesEq)); + } + + if (filterFunctionalitiesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionalities][not_eq]", filterFunctionalitiesNotEq)); + } + + if (filterFunctionalitiesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionalities][in]", filterFunctionalitiesIn)); + } + + if (filterFunctionalitiesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionalities][not_in]", filterFunctionalitiesNotIn)); + } + + if (filterFunctionalityIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_ids][eq]", filterFunctionalityIdsEq)); + } + + if (filterFunctionalityIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_ids][not_eq]", filterFunctionalityIdsNotEq)); + } + + if (filterFunctionalityIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_ids][in]", filterFunctionalityIdsIn)); + } + + if (filterFunctionalityIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_ids][not_in]", filterFunctionalityIdsNotIn)); + } + + if (filterFunctionalityNamesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_names][eq]", filterFunctionalityNamesEq)); + } + + if (filterFunctionalityNamesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_names][not_eq]", filterFunctionalityNamesNotEq)); + } + + if (filterFunctionalityNamesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_names][in]", filterFunctionalityNamesIn)); + } + + if (filterFunctionalityNamesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[functionality_names][not_in]", filterFunctionalityNamesNotIn)); + } + + if (filterCausesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[causes][eq]", filterCausesEq)); + } + + if (filterCausesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[causes][not_eq]", filterCausesNotEq)); + } + + if (filterCausesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[causes][in]", filterCausesIn)); + } + + if (filterCausesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[causes][not_in]", filterCausesNotIn)); + } + + if (filterCauseIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[cause_ids][eq]", filterCauseIdsEq)); + } + + if (filterCauseIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[cause_ids][not_eq]", filterCauseIdsNotEq)); + } + + if (filterCauseIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[cause_ids][in]", filterCauseIdsIn)); + } + + if (filterCauseIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[cause_ids][not_in]", filterCauseIdsNotIn)); + } + + if (filterTeamsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[teams][eq]", filterTeamsEq)); + } + + if (filterTeamsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[teams][not_eq]", filterTeamsNotEq)); + } + + if (filterTeamsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[teams][in]", filterTeamsIn)); + } + + if (filterTeamsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[teams][not_in]", filterTeamsNotIn)); + } + + if (filterTeamIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][eq]", filterTeamIdsEq)); + } + + if (filterTeamIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][not_eq]", filterTeamIdsNotEq)); + } + + if (filterTeamIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][in]", filterTeamIdsIn)); + } + + if (filterTeamIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][not_in]", filterTeamIdsNotIn)); + } + + if (filterTeamNamesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_names][eq]", filterTeamNamesEq)); + } + + if (filterTeamNamesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_names][not_eq]", filterTeamNamesNotEq)); + } + + if (filterTeamNamesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_names][in]", filterTeamNamesIn)); + } + + if (filterTeamNamesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_names][not_in]", filterTeamNamesNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -1276,14 +1922,15 @@ public okhttp3.Call listIncidentsCall(@jakarta.annotation.Nullable Integer pageN } @SuppressWarnings("rawtypes") - private okhttp3.Call listIncidentsValidateBeforeCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { - return listIncidentsCall(pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterServices, filterServiceIds, filterTeams, filterTeamIds, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, sort, include, _callback); + private okhttp3.Call listIncidentsValidateBeforeCall(@jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterFunctionalityNames, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterServiceNames, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterTeamNames, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterSlackChannelId, @jakarta.annotation.Nullable String filterSequentialId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterPrivateEq, @jakarta.annotation.Nullable String filterPrivateNotEq, @jakarta.annotation.Nullable String filterPrivateIn, @jakarta.annotation.Nullable String filterPrivateNotIn, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterSeverityIdEq, @jakarta.annotation.Nullable String filterSeverityIdNotEq, @jakarta.annotation.Nullable String filterSeverityIdIn, @jakarta.annotation.Nullable String filterSeverityIdNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterZendeskTicketIdEq, @jakarta.annotation.Nullable String filterZendeskTicketIdNotEq, @jakarta.annotation.Nullable String filterZendeskTicketIdIn, @jakarta.annotation.Nullable String filterZendeskTicketIdNotIn, @jakarta.annotation.Nullable String filterSequentialIdEq, @jakarta.annotation.Nullable String filterSequentialIdNotEq, @jakarta.annotation.Nullable String filterSequentialIdIn, @jakarta.annotation.Nullable String filterSequentialIdNotIn, @jakarta.annotation.Nullable String filterTypesEq, @jakarta.annotation.Nullable String filterTypesNotEq, @jakarta.annotation.Nullable String filterTypesIn, @jakarta.annotation.Nullable String filterTypesNotIn, @jakarta.annotation.Nullable String filterTypeIdsEq, @jakarta.annotation.Nullable String filterTypeIdsNotEq, @jakarta.annotation.Nullable String filterTypeIdsIn, @jakarta.annotation.Nullable String filterTypeIdsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterEnvironmentIdsEq, @jakarta.annotation.Nullable String filterEnvironmentIdsNotEq, @jakarta.annotation.Nullable String filterEnvironmentIdsIn, @jakarta.annotation.Nullable String filterEnvironmentIdsNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterServiceIdsEq, @jakarta.annotation.Nullable String filterServiceIdsNotEq, @jakarta.annotation.Nullable String filterServiceIdsIn, @jakarta.annotation.Nullable String filterServiceIdsNotIn, @jakarta.annotation.Nullable String filterServiceNamesEq, @jakarta.annotation.Nullable String filterServiceNamesNotEq, @jakarta.annotation.Nullable String filterServiceNamesIn, @jakarta.annotation.Nullable String filterServiceNamesNotIn, @jakarta.annotation.Nullable String filterFunctionalitiesEq, @jakarta.annotation.Nullable String filterFunctionalitiesNotEq, @jakarta.annotation.Nullable String filterFunctionalitiesIn, @jakarta.annotation.Nullable String filterFunctionalitiesNotIn, @jakarta.annotation.Nullable String filterFunctionalityIdsEq, @jakarta.annotation.Nullable String filterFunctionalityIdsNotEq, @jakarta.annotation.Nullable String filterFunctionalityIdsIn, @jakarta.annotation.Nullable String filterFunctionalityIdsNotIn, @jakarta.annotation.Nullable String filterFunctionalityNamesEq, @jakarta.annotation.Nullable String filterFunctionalityNamesNotEq, @jakarta.annotation.Nullable String filterFunctionalityNamesIn, @jakarta.annotation.Nullable String filterFunctionalityNamesNotIn, @jakarta.annotation.Nullable String filterCausesEq, @jakarta.annotation.Nullable String filterCausesNotEq, @jakarta.annotation.Nullable String filterCausesIn, @jakarta.annotation.Nullable String filterCausesNotIn, @jakarta.annotation.Nullable String filterCauseIdsEq, @jakarta.annotation.Nullable String filterCauseIdsNotEq, @jakarta.annotation.Nullable String filterCauseIdsIn, @jakarta.annotation.Nullable String filterCauseIdsNotIn, @jakarta.annotation.Nullable String filterTeamsEq, @jakarta.annotation.Nullable String filterTeamsNotEq, @jakarta.annotation.Nullable String filterTeamsIn, @jakarta.annotation.Nullable String filterTeamsNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable String filterTeamNamesEq, @jakarta.annotation.Nullable String filterTeamNamesNotEq, @jakarta.annotation.Nullable String filterTeamNamesIn, @jakarta.annotation.Nullable String filterTeamNamesNotIn, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + return listIncidentsCall(pageAfter, pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterFunctionalityNames, filterServices, filterServiceIds, filterServiceNames, filterTeams, filterTeamIds, filterTeamNames, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterSlackChannelId, filterSequentialId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterPrivateEq, filterPrivateNotEq, filterPrivateIn, filterPrivateNotIn, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterSeverityIdEq, filterSeverityIdNotEq, filterSeverityIdIn, filterSeverityIdNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterZendeskTicketIdEq, filterZendeskTicketIdNotEq, filterZendeskTicketIdIn, filterZendeskTicketIdNotIn, filterSequentialIdEq, filterSequentialIdNotEq, filterSequentialIdIn, filterSequentialIdNotIn, filterTypesEq, filterTypesNotEq, filterTypesIn, filterTypesNotIn, filterTypeIdsEq, filterTypeIdsNotEq, filterTypeIdsIn, filterTypeIdsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterEnvironmentIdsEq, filterEnvironmentIdsNotEq, filterEnvironmentIdsIn, filterEnvironmentIdsNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterServiceIdsEq, filterServiceIdsNotEq, filterServiceIdsIn, filterServiceIdsNotIn, filterServiceNamesEq, filterServiceNamesNotEq, filterServiceNamesIn, filterServiceNamesNotIn, filterFunctionalitiesEq, filterFunctionalitiesNotEq, filterFunctionalitiesIn, filterFunctionalitiesNotIn, filterFunctionalityIdsEq, filterFunctionalityIdsNotEq, filterFunctionalityIdsIn, filterFunctionalityIdsNotIn, filterFunctionalityNamesEq, filterFunctionalityNamesNotEq, filterFunctionalityNamesIn, filterFunctionalityNamesNotIn, filterCausesEq, filterCausesNotEq, filterCausesIn, filterCausesNotIn, filterCauseIdsEq, filterCauseIdsNotEq, filterCauseIdsIn, filterCauseIdsNotIn, filterTeamsEq, filterTeamsNotEq, filterTeamsIn, filterTeamsNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, filterTeamNamesEq, filterTeamNamesNotEq, filterTeamNamesIn, filterTeamNamesNotIn, sort, include, _callback); } /** * List incidents * List incidents + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -1300,13 +1947,18 @@ private okhttp3.Call listIncidentsValidateBeforeCall(@jakarta.annotation.Nullabl * @param filterEnvironmentIds (optional) * @param filterFunctionalities (optional) * @param filterFunctionalityIds (optional) + * @param filterFunctionalityNames (optional) * @param filterServices (optional) * @param filterServiceIds (optional) + * @param filterServiceNames (optional) * @param filterTeams (optional) * @param filterTeamIds (optional) + * @param filterTeamNames (optional) * @param filterCause (optional) * @param filterCauseIds (optional) * @param filterCustomFieldSelectedOptionIds (optional) + * @param filterSlackChannelId (optional) + * @param filterSequentialId Filter by the human-readable incident number (the 123 in INC-123). (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) @@ -1343,6 +1995,102 @@ private okhttp3.Call listIncidentsValidateBeforeCall(@jakarta.annotation.Nullabl * @param filterInTriageAtGte (optional) * @param filterInTriageAtLt (optional) * @param filterInTriageAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterPrivateEq (optional) + * @param filterPrivateNotEq (optional) + * @param filterPrivateIn (optional) + * @param filterPrivateNotIn (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterSeverityIdEq (optional) + * @param filterSeverityIdNotEq (optional) + * @param filterSeverityIdIn (optional) + * @param filterSeverityIdNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterZendeskTicketIdEq (optional) + * @param filterZendeskTicketIdNotEq (optional) + * @param filterZendeskTicketIdIn (optional) + * @param filterZendeskTicketIdNotIn (optional) + * @param filterSequentialIdEq (optional) + * @param filterSequentialIdNotEq (optional) + * @param filterSequentialIdIn (optional) + * @param filterSequentialIdNotIn (optional) + * @param filterTypesEq (optional) + * @param filterTypesNotEq (optional) + * @param filterTypesIn (optional) + * @param filterTypesNotIn (optional) + * @param filterTypeIdsEq (optional) + * @param filterTypeIdsNotEq (optional) + * @param filterTypeIdsIn (optional) + * @param filterTypeIdsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterEnvironmentIdsEq (optional) + * @param filterEnvironmentIdsNotEq (optional) + * @param filterEnvironmentIdsIn (optional) + * @param filterEnvironmentIdsNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterServiceIdsEq (optional) + * @param filterServiceIdsNotEq (optional) + * @param filterServiceIdsIn (optional) + * @param filterServiceIdsNotIn (optional) + * @param filterServiceNamesEq (optional) + * @param filterServiceNamesNotEq (optional) + * @param filterServiceNamesIn (optional) + * @param filterServiceNamesNotIn (optional) + * @param filterFunctionalitiesEq (optional) + * @param filterFunctionalitiesNotEq (optional) + * @param filterFunctionalitiesIn (optional) + * @param filterFunctionalitiesNotIn (optional) + * @param filterFunctionalityIdsEq (optional) + * @param filterFunctionalityIdsNotEq (optional) + * @param filterFunctionalityIdsIn (optional) + * @param filterFunctionalityIdsNotIn (optional) + * @param filterFunctionalityNamesEq (optional) + * @param filterFunctionalityNamesNotEq (optional) + * @param filterFunctionalityNamesIn (optional) + * @param filterFunctionalityNamesNotIn (optional) + * @param filterCausesEq (optional) + * @param filterCausesNotEq (optional) + * @param filterCausesIn (optional) + * @param filterCausesNotIn (optional) + * @param filterCauseIdsEq (optional) + * @param filterCauseIdsNotEq (optional) + * @param filterCauseIdsIn (optional) + * @param filterCauseIdsNotIn (optional) + * @param filterTeamsEq (optional) + * @param filterTeamsNotEq (optional) + * @param filterTeamsIn (optional) + * @param filterTeamsNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) + * @param filterTeamNamesEq (optional) + * @param filterTeamNamesNotEq (optional) + * @param filterTeamNamesIn (optional) + * @param filterTeamNamesNotIn (optional) * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param include comma separated if needed. eg: sub_statuses,causes,subscribers (optional) * @return IncidentList @@ -1352,16 +2100,18 @@ private okhttp3.Call listIncidentsValidateBeforeCall(@jakarta.annotation.Nullabl Response Details Status Code Description Response Headers 200 success - + 400 malformed date filter - */ - public IncidentList listIncidents(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include) throws ApiException { - ApiResponse localVarResp = listIncidentsWithHttpInfo(pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterServices, filterServiceIds, filterTeams, filterTeamIds, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, sort, include); + public IncidentList listIncidents(@jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterFunctionalityNames, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterServiceNames, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterTeamNames, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterSlackChannelId, @jakarta.annotation.Nullable String filterSequentialId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterPrivateEq, @jakarta.annotation.Nullable String filterPrivateNotEq, @jakarta.annotation.Nullable String filterPrivateIn, @jakarta.annotation.Nullable String filterPrivateNotIn, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterSeverityIdEq, @jakarta.annotation.Nullable String filterSeverityIdNotEq, @jakarta.annotation.Nullable String filterSeverityIdIn, @jakarta.annotation.Nullable String filterSeverityIdNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterZendeskTicketIdEq, @jakarta.annotation.Nullable String filterZendeskTicketIdNotEq, @jakarta.annotation.Nullable String filterZendeskTicketIdIn, @jakarta.annotation.Nullable String filterZendeskTicketIdNotIn, @jakarta.annotation.Nullable String filterSequentialIdEq, @jakarta.annotation.Nullable String filterSequentialIdNotEq, @jakarta.annotation.Nullable String filterSequentialIdIn, @jakarta.annotation.Nullable String filterSequentialIdNotIn, @jakarta.annotation.Nullable String filterTypesEq, @jakarta.annotation.Nullable String filterTypesNotEq, @jakarta.annotation.Nullable String filterTypesIn, @jakarta.annotation.Nullable String filterTypesNotIn, @jakarta.annotation.Nullable String filterTypeIdsEq, @jakarta.annotation.Nullable String filterTypeIdsNotEq, @jakarta.annotation.Nullable String filterTypeIdsIn, @jakarta.annotation.Nullable String filterTypeIdsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterEnvironmentIdsEq, @jakarta.annotation.Nullable String filterEnvironmentIdsNotEq, @jakarta.annotation.Nullable String filterEnvironmentIdsIn, @jakarta.annotation.Nullable String filterEnvironmentIdsNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterServiceIdsEq, @jakarta.annotation.Nullable String filterServiceIdsNotEq, @jakarta.annotation.Nullable String filterServiceIdsIn, @jakarta.annotation.Nullable String filterServiceIdsNotIn, @jakarta.annotation.Nullable String filterServiceNamesEq, @jakarta.annotation.Nullable String filterServiceNamesNotEq, @jakarta.annotation.Nullable String filterServiceNamesIn, @jakarta.annotation.Nullable String filterServiceNamesNotIn, @jakarta.annotation.Nullable String filterFunctionalitiesEq, @jakarta.annotation.Nullable String filterFunctionalitiesNotEq, @jakarta.annotation.Nullable String filterFunctionalitiesIn, @jakarta.annotation.Nullable String filterFunctionalitiesNotIn, @jakarta.annotation.Nullable String filterFunctionalityIdsEq, @jakarta.annotation.Nullable String filterFunctionalityIdsNotEq, @jakarta.annotation.Nullable String filterFunctionalityIdsIn, @jakarta.annotation.Nullable String filterFunctionalityIdsNotIn, @jakarta.annotation.Nullable String filterFunctionalityNamesEq, @jakarta.annotation.Nullable String filterFunctionalityNamesNotEq, @jakarta.annotation.Nullable String filterFunctionalityNamesIn, @jakarta.annotation.Nullable String filterFunctionalityNamesNotIn, @jakarta.annotation.Nullable String filterCausesEq, @jakarta.annotation.Nullable String filterCausesNotEq, @jakarta.annotation.Nullable String filterCausesIn, @jakarta.annotation.Nullable String filterCausesNotIn, @jakarta.annotation.Nullable String filterCauseIdsEq, @jakarta.annotation.Nullable String filterCauseIdsNotEq, @jakarta.annotation.Nullable String filterCauseIdsIn, @jakarta.annotation.Nullable String filterCauseIdsNotIn, @jakarta.annotation.Nullable String filterTeamsEq, @jakarta.annotation.Nullable String filterTeamsNotEq, @jakarta.annotation.Nullable String filterTeamsIn, @jakarta.annotation.Nullable String filterTeamsNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable String filterTeamNamesEq, @jakarta.annotation.Nullable String filterTeamNamesNotEq, @jakarta.annotation.Nullable String filterTeamNamesIn, @jakarta.annotation.Nullable String filterTeamNamesNotIn, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include) throws ApiException { + ApiResponse localVarResp = listIncidentsWithHttpInfo(pageAfter, pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterFunctionalityNames, filterServices, filterServiceIds, filterServiceNames, filterTeams, filterTeamIds, filterTeamNames, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterSlackChannelId, filterSequentialId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterPrivateEq, filterPrivateNotEq, filterPrivateIn, filterPrivateNotIn, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterSeverityIdEq, filterSeverityIdNotEq, filterSeverityIdIn, filterSeverityIdNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterZendeskTicketIdEq, filterZendeskTicketIdNotEq, filterZendeskTicketIdIn, filterZendeskTicketIdNotIn, filterSequentialIdEq, filterSequentialIdNotEq, filterSequentialIdIn, filterSequentialIdNotIn, filterTypesEq, filterTypesNotEq, filterTypesIn, filterTypesNotIn, filterTypeIdsEq, filterTypeIdsNotEq, filterTypeIdsIn, filterTypeIdsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterEnvironmentIdsEq, filterEnvironmentIdsNotEq, filterEnvironmentIdsIn, filterEnvironmentIdsNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterServiceIdsEq, filterServiceIdsNotEq, filterServiceIdsIn, filterServiceIdsNotIn, filterServiceNamesEq, filterServiceNamesNotEq, filterServiceNamesIn, filterServiceNamesNotIn, filterFunctionalitiesEq, filterFunctionalitiesNotEq, filterFunctionalitiesIn, filterFunctionalitiesNotIn, filterFunctionalityIdsEq, filterFunctionalityIdsNotEq, filterFunctionalityIdsIn, filterFunctionalityIdsNotIn, filterFunctionalityNamesEq, filterFunctionalityNamesNotEq, filterFunctionalityNamesIn, filterFunctionalityNamesNotIn, filterCausesEq, filterCausesNotEq, filterCausesIn, filterCausesNotIn, filterCauseIdsEq, filterCauseIdsNotEq, filterCauseIdsIn, filterCauseIdsNotIn, filterTeamsEq, filterTeamsNotEq, filterTeamsIn, filterTeamsNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, filterTeamNamesEq, filterTeamNamesNotEq, filterTeamNamesIn, filterTeamNamesNotIn, sort, include); return localVarResp.getData(); } /** * List incidents * List incidents + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -1378,13 +2128,18 @@ public IncidentList listIncidents(@jakarta.annotation.Nullable Integer pageNumbe * @param filterEnvironmentIds (optional) * @param filterFunctionalities (optional) * @param filterFunctionalityIds (optional) + * @param filterFunctionalityNames (optional) * @param filterServices (optional) * @param filterServiceIds (optional) + * @param filterServiceNames (optional) * @param filterTeams (optional) * @param filterTeamIds (optional) + * @param filterTeamNames (optional) * @param filterCause (optional) * @param filterCauseIds (optional) * @param filterCustomFieldSelectedOptionIds (optional) + * @param filterSlackChannelId (optional) + * @param filterSequentialId Filter by the human-readable incident number (the 123 in INC-123). (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) @@ -1421,6 +2176,102 @@ public IncidentList listIncidents(@jakarta.annotation.Nullable Integer pageNumbe * @param filterInTriageAtGte (optional) * @param filterInTriageAtLt (optional) * @param filterInTriageAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterPrivateEq (optional) + * @param filterPrivateNotEq (optional) + * @param filterPrivateIn (optional) + * @param filterPrivateNotIn (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterSeverityIdEq (optional) + * @param filterSeverityIdNotEq (optional) + * @param filterSeverityIdIn (optional) + * @param filterSeverityIdNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterZendeskTicketIdEq (optional) + * @param filterZendeskTicketIdNotEq (optional) + * @param filterZendeskTicketIdIn (optional) + * @param filterZendeskTicketIdNotIn (optional) + * @param filterSequentialIdEq (optional) + * @param filterSequentialIdNotEq (optional) + * @param filterSequentialIdIn (optional) + * @param filterSequentialIdNotIn (optional) + * @param filterTypesEq (optional) + * @param filterTypesNotEq (optional) + * @param filterTypesIn (optional) + * @param filterTypesNotIn (optional) + * @param filterTypeIdsEq (optional) + * @param filterTypeIdsNotEq (optional) + * @param filterTypeIdsIn (optional) + * @param filterTypeIdsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterEnvironmentIdsEq (optional) + * @param filterEnvironmentIdsNotEq (optional) + * @param filterEnvironmentIdsIn (optional) + * @param filterEnvironmentIdsNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterServiceIdsEq (optional) + * @param filterServiceIdsNotEq (optional) + * @param filterServiceIdsIn (optional) + * @param filterServiceIdsNotIn (optional) + * @param filterServiceNamesEq (optional) + * @param filterServiceNamesNotEq (optional) + * @param filterServiceNamesIn (optional) + * @param filterServiceNamesNotIn (optional) + * @param filterFunctionalitiesEq (optional) + * @param filterFunctionalitiesNotEq (optional) + * @param filterFunctionalitiesIn (optional) + * @param filterFunctionalitiesNotIn (optional) + * @param filterFunctionalityIdsEq (optional) + * @param filterFunctionalityIdsNotEq (optional) + * @param filterFunctionalityIdsIn (optional) + * @param filterFunctionalityIdsNotIn (optional) + * @param filterFunctionalityNamesEq (optional) + * @param filterFunctionalityNamesNotEq (optional) + * @param filterFunctionalityNamesIn (optional) + * @param filterFunctionalityNamesNotIn (optional) + * @param filterCausesEq (optional) + * @param filterCausesNotEq (optional) + * @param filterCausesIn (optional) + * @param filterCausesNotIn (optional) + * @param filterCauseIdsEq (optional) + * @param filterCauseIdsNotEq (optional) + * @param filterCauseIdsIn (optional) + * @param filterCauseIdsNotIn (optional) + * @param filterTeamsEq (optional) + * @param filterTeamsNotEq (optional) + * @param filterTeamsIn (optional) + * @param filterTeamsNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) + * @param filterTeamNamesEq (optional) + * @param filterTeamNamesNotEq (optional) + * @param filterTeamNamesIn (optional) + * @param filterTeamNamesNotIn (optional) * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param include comma separated if needed. eg: sub_statuses,causes,subscribers (optional) * @return ApiResponse<IncidentList> @@ -1430,10 +2281,11 @@ public IncidentList listIncidents(@jakarta.annotation.Nullable Integer pageNumbe Response Details Status Code Description Response Headers 200 success - + 400 malformed date filter - */ - public ApiResponse listIncidentsWithHttpInfo(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include) throws ApiException { - okhttp3.Call localVarCall = listIncidentsValidateBeforeCall(pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterServices, filterServiceIds, filterTeams, filterTeamIds, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, sort, include, null); + public ApiResponse listIncidentsWithHttpInfo(@jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterFunctionalityNames, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterServiceNames, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterTeamNames, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterSlackChannelId, @jakarta.annotation.Nullable String filterSequentialId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterPrivateEq, @jakarta.annotation.Nullable String filterPrivateNotEq, @jakarta.annotation.Nullable String filterPrivateIn, @jakarta.annotation.Nullable String filterPrivateNotIn, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterSeverityIdEq, @jakarta.annotation.Nullable String filterSeverityIdNotEq, @jakarta.annotation.Nullable String filterSeverityIdIn, @jakarta.annotation.Nullable String filterSeverityIdNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterZendeskTicketIdEq, @jakarta.annotation.Nullable String filterZendeskTicketIdNotEq, @jakarta.annotation.Nullable String filterZendeskTicketIdIn, @jakarta.annotation.Nullable String filterZendeskTicketIdNotIn, @jakarta.annotation.Nullable String filterSequentialIdEq, @jakarta.annotation.Nullable String filterSequentialIdNotEq, @jakarta.annotation.Nullable String filterSequentialIdIn, @jakarta.annotation.Nullable String filterSequentialIdNotIn, @jakarta.annotation.Nullable String filterTypesEq, @jakarta.annotation.Nullable String filterTypesNotEq, @jakarta.annotation.Nullable String filterTypesIn, @jakarta.annotation.Nullable String filterTypesNotIn, @jakarta.annotation.Nullable String filterTypeIdsEq, @jakarta.annotation.Nullable String filterTypeIdsNotEq, @jakarta.annotation.Nullable String filterTypeIdsIn, @jakarta.annotation.Nullable String filterTypeIdsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterEnvironmentIdsEq, @jakarta.annotation.Nullable String filterEnvironmentIdsNotEq, @jakarta.annotation.Nullable String filterEnvironmentIdsIn, @jakarta.annotation.Nullable String filterEnvironmentIdsNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterServiceIdsEq, @jakarta.annotation.Nullable String filterServiceIdsNotEq, @jakarta.annotation.Nullable String filterServiceIdsIn, @jakarta.annotation.Nullable String filterServiceIdsNotIn, @jakarta.annotation.Nullable String filterServiceNamesEq, @jakarta.annotation.Nullable String filterServiceNamesNotEq, @jakarta.annotation.Nullable String filterServiceNamesIn, @jakarta.annotation.Nullable String filterServiceNamesNotIn, @jakarta.annotation.Nullable String filterFunctionalitiesEq, @jakarta.annotation.Nullable String filterFunctionalitiesNotEq, @jakarta.annotation.Nullable String filterFunctionalitiesIn, @jakarta.annotation.Nullable String filterFunctionalitiesNotIn, @jakarta.annotation.Nullable String filterFunctionalityIdsEq, @jakarta.annotation.Nullable String filterFunctionalityIdsNotEq, @jakarta.annotation.Nullable String filterFunctionalityIdsIn, @jakarta.annotation.Nullable String filterFunctionalityIdsNotIn, @jakarta.annotation.Nullable String filterFunctionalityNamesEq, @jakarta.annotation.Nullable String filterFunctionalityNamesNotEq, @jakarta.annotation.Nullable String filterFunctionalityNamesIn, @jakarta.annotation.Nullable String filterFunctionalityNamesNotIn, @jakarta.annotation.Nullable String filterCausesEq, @jakarta.annotation.Nullable String filterCausesNotEq, @jakarta.annotation.Nullable String filterCausesIn, @jakarta.annotation.Nullable String filterCausesNotIn, @jakarta.annotation.Nullable String filterCauseIdsEq, @jakarta.annotation.Nullable String filterCauseIdsNotEq, @jakarta.annotation.Nullable String filterCauseIdsIn, @jakarta.annotation.Nullable String filterCauseIdsNotIn, @jakarta.annotation.Nullable String filterTeamsEq, @jakarta.annotation.Nullable String filterTeamsNotEq, @jakarta.annotation.Nullable String filterTeamsIn, @jakarta.annotation.Nullable String filterTeamsNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable String filterTeamNamesEq, @jakarta.annotation.Nullable String filterTeamNamesNotEq, @jakarta.annotation.Nullable String filterTeamNamesIn, @jakarta.annotation.Nullable String filterTeamNamesNotIn, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include) throws ApiException { + okhttp3.Call localVarCall = listIncidentsValidateBeforeCall(pageAfter, pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterFunctionalityNames, filterServices, filterServiceIds, filterServiceNames, filterTeams, filterTeamIds, filterTeamNames, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterSlackChannelId, filterSequentialId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterPrivateEq, filterPrivateNotEq, filterPrivateIn, filterPrivateNotIn, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterSeverityIdEq, filterSeverityIdNotEq, filterSeverityIdIn, filterSeverityIdNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterZendeskTicketIdEq, filterZendeskTicketIdNotEq, filterZendeskTicketIdIn, filterZendeskTicketIdNotIn, filterSequentialIdEq, filterSequentialIdNotEq, filterSequentialIdIn, filterSequentialIdNotIn, filterTypesEq, filterTypesNotEq, filterTypesIn, filterTypesNotIn, filterTypeIdsEq, filterTypeIdsNotEq, filterTypeIdsIn, filterTypeIdsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterEnvironmentIdsEq, filterEnvironmentIdsNotEq, filterEnvironmentIdsIn, filterEnvironmentIdsNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterServiceIdsEq, filterServiceIdsNotEq, filterServiceIdsIn, filterServiceIdsNotIn, filterServiceNamesEq, filterServiceNamesNotEq, filterServiceNamesIn, filterServiceNamesNotIn, filterFunctionalitiesEq, filterFunctionalitiesNotEq, filterFunctionalitiesIn, filterFunctionalitiesNotIn, filterFunctionalityIdsEq, filterFunctionalityIdsNotEq, filterFunctionalityIdsIn, filterFunctionalityIdsNotIn, filterFunctionalityNamesEq, filterFunctionalityNamesNotEq, filterFunctionalityNamesIn, filterFunctionalityNamesNotIn, filterCausesEq, filterCausesNotEq, filterCausesIn, filterCausesNotIn, filterCauseIdsEq, filterCauseIdsNotEq, filterCauseIdsIn, filterCauseIdsNotIn, filterTeamsEq, filterTeamsNotEq, filterTeamsIn, filterTeamsNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, filterTeamNamesEq, filterTeamNamesNotEq, filterTeamNamesIn, filterTeamNamesNotIn, sort, include, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1441,6 +2293,7 @@ public ApiResponse listIncidentsWithHttpInfo(@jakarta.annotation.N /** * List incidents (asynchronously) * List incidents + * @param pageAfter The cursor to fetch results using cursor pagination. A cursor is provided in meta.next_cursor in the response. (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param filterSearch (optional) @@ -1457,13 +2310,18 @@ public ApiResponse listIncidentsWithHttpInfo(@jakarta.annotation.N * @param filterEnvironmentIds (optional) * @param filterFunctionalities (optional) * @param filterFunctionalityIds (optional) + * @param filterFunctionalityNames (optional) * @param filterServices (optional) * @param filterServiceIds (optional) + * @param filterServiceNames (optional) * @param filterTeams (optional) * @param filterTeamIds (optional) + * @param filterTeamNames (optional) * @param filterCause (optional) * @param filterCauseIds (optional) * @param filterCustomFieldSelectedOptionIds (optional) + * @param filterSlackChannelId (optional) + * @param filterSequentialId Filter by the human-readable incident number (the 123 in INC-123). (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) @@ -1500,6 +2358,102 @@ public ApiResponse listIncidentsWithHttpInfo(@jakarta.annotation.N * @param filterInTriageAtGte (optional) * @param filterInTriageAtLt (optional) * @param filterInTriageAtLte (optional) + * @param filterKindEq (optional) + * @param filterKindNotEq (optional) + * @param filterKindIn (optional) + * @param filterKindNotIn (optional) + * @param filterStatusEq (optional) + * @param filterStatusNotEq (optional) + * @param filterStatusIn (optional) + * @param filterStatusNotIn (optional) + * @param filterPrivateEq (optional) + * @param filterPrivateNotEq (optional) + * @param filterPrivateIn (optional) + * @param filterPrivateNotIn (optional) + * @param filterUserIdEq (optional) + * @param filterUserIdNotEq (optional) + * @param filterUserIdIn (optional) + * @param filterUserIdNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterSeverityIdEq (optional) + * @param filterSeverityIdNotEq (optional) + * @param filterSeverityIdIn (optional) + * @param filterSeverityIdNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterZendeskTicketIdEq (optional) + * @param filterZendeskTicketIdNotEq (optional) + * @param filterZendeskTicketIdIn (optional) + * @param filterZendeskTicketIdNotIn (optional) + * @param filterSequentialIdEq (optional) + * @param filterSequentialIdNotEq (optional) + * @param filterSequentialIdIn (optional) + * @param filterSequentialIdNotIn (optional) + * @param filterTypesEq (optional) + * @param filterTypesNotEq (optional) + * @param filterTypesIn (optional) + * @param filterTypesNotIn (optional) + * @param filterTypeIdsEq (optional) + * @param filterTypeIdsNotEq (optional) + * @param filterTypeIdsIn (optional) + * @param filterTypeIdsNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterEnvironmentIdsEq (optional) + * @param filterEnvironmentIdsNotEq (optional) + * @param filterEnvironmentIdsIn (optional) + * @param filterEnvironmentIdsNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterServiceIdsEq (optional) + * @param filterServiceIdsNotEq (optional) + * @param filterServiceIdsIn (optional) + * @param filterServiceIdsNotIn (optional) + * @param filterServiceNamesEq (optional) + * @param filterServiceNamesNotEq (optional) + * @param filterServiceNamesIn (optional) + * @param filterServiceNamesNotIn (optional) + * @param filterFunctionalitiesEq (optional) + * @param filterFunctionalitiesNotEq (optional) + * @param filterFunctionalitiesIn (optional) + * @param filterFunctionalitiesNotIn (optional) + * @param filterFunctionalityIdsEq (optional) + * @param filterFunctionalityIdsNotEq (optional) + * @param filterFunctionalityIdsIn (optional) + * @param filterFunctionalityIdsNotIn (optional) + * @param filterFunctionalityNamesEq (optional) + * @param filterFunctionalityNamesNotEq (optional) + * @param filterFunctionalityNamesIn (optional) + * @param filterFunctionalityNamesNotIn (optional) + * @param filterCausesEq (optional) + * @param filterCausesNotEq (optional) + * @param filterCausesIn (optional) + * @param filterCausesNotIn (optional) + * @param filterCauseIdsEq (optional) + * @param filterCauseIdsNotEq (optional) + * @param filterCauseIdsIn (optional) + * @param filterCauseIdsNotIn (optional) + * @param filterTeamsEq (optional) + * @param filterTeamsNotEq (optional) + * @param filterTeamsIn (optional) + * @param filterTeamsNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) + * @param filterTeamNamesEq (optional) + * @param filterTeamNamesNotEq (optional) + * @param filterTeamNamesIn (optional) + * @param filterTeamNamesNotIn (optional) * @param sort comma separated if needed. eg: created_at,updated_at (optional) * @param include comma separated if needed. eg: sub_statuses,causes,subscribers (optional) * @param _callback The callback to be executed when the API call finishes @@ -1510,11 +2464,12 @@ public ApiResponse listIncidentsWithHttpInfo(@jakarta.annotation.N Response Details Status Code Description Response Headers 200 success - + 400 malformed date filter - */ - public okhttp3.Call listIncidentsAsync(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listIncidentsAsync(@jakarta.annotation.Nullable String pageAfter, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterPrivate, @jakarta.annotation.Nullable Integer filterUserId, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterSeverityId, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterTypes, @jakarta.annotation.Nullable String filterTypeIds, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterEnvironmentIds, @jakarta.annotation.Nullable String filterFunctionalities, @jakarta.annotation.Nullable String filterFunctionalityIds, @jakarta.annotation.Nullable String filterFunctionalityNames, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterServiceNames, @jakarta.annotation.Nullable String filterTeams, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterTeamNames, @jakarta.annotation.Nullable String filterCause, @jakarta.annotation.Nullable String filterCauseIds, @jakarta.annotation.Nullable String filterCustomFieldSelectedOptionIds, @jakarta.annotation.Nullable String filterSlackChannelId, @jakarta.annotation.Nullable String filterSequentialId, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterUpdatedAtGt, @jakarta.annotation.Nullable String filterUpdatedAtGte, @jakarta.annotation.Nullable String filterUpdatedAtLt, @jakarta.annotation.Nullable String filterUpdatedAtLte, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterDetectedAtGt, @jakarta.annotation.Nullable String filterDetectedAtGte, @jakarta.annotation.Nullable String filterDetectedAtLt, @jakarta.annotation.Nullable String filterDetectedAtLte, @jakarta.annotation.Nullable String filterAcknowledgedAtGt, @jakarta.annotation.Nullable String filterAcknowledgedAtGte, @jakarta.annotation.Nullable String filterAcknowledgedAtLt, @jakarta.annotation.Nullable String filterAcknowledgedAtLte, @jakarta.annotation.Nullable String filterMitigatedAtGt, @jakarta.annotation.Nullable String filterMitigatedAtGte, @jakarta.annotation.Nullable String filterMitigatedAtLt, @jakarta.annotation.Nullable String filterMitigatedAtLte, @jakarta.annotation.Nullable String filterResolvedAtGt, @jakarta.annotation.Nullable String filterResolvedAtGte, @jakarta.annotation.Nullable String filterResolvedAtLt, @jakarta.annotation.Nullable String filterResolvedAtLte, @jakarta.annotation.Nullable String filterClosedAtGt, @jakarta.annotation.Nullable String filterClosedAtGte, @jakarta.annotation.Nullable String filterClosedAtLt, @jakarta.annotation.Nullable String filterClosedAtLte, @jakarta.annotation.Nullable String filterInTriageAtGt, @jakarta.annotation.Nullable String filterInTriageAtGte, @jakarta.annotation.Nullable String filterInTriageAtLt, @jakarta.annotation.Nullable String filterInTriageAtLte, @jakarta.annotation.Nullable String filterKindEq, @jakarta.annotation.Nullable String filterKindNotEq, @jakarta.annotation.Nullable String filterKindIn, @jakarta.annotation.Nullable String filterKindNotIn, @jakarta.annotation.Nullable String filterStatusEq, @jakarta.annotation.Nullable String filterStatusNotEq, @jakarta.annotation.Nullable String filterStatusIn, @jakarta.annotation.Nullable String filterStatusNotIn, @jakarta.annotation.Nullable String filterPrivateEq, @jakarta.annotation.Nullable String filterPrivateNotEq, @jakarta.annotation.Nullable String filterPrivateIn, @jakarta.annotation.Nullable String filterPrivateNotIn, @jakarta.annotation.Nullable String filterUserIdEq, @jakarta.annotation.Nullable String filterUserIdNotEq, @jakarta.annotation.Nullable String filterUserIdIn, @jakarta.annotation.Nullable String filterUserIdNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterSeverityIdEq, @jakarta.annotation.Nullable String filterSeverityIdNotEq, @jakarta.annotation.Nullable String filterSeverityIdIn, @jakarta.annotation.Nullable String filterSeverityIdNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterZendeskTicketIdEq, @jakarta.annotation.Nullable String filterZendeskTicketIdNotEq, @jakarta.annotation.Nullable String filterZendeskTicketIdIn, @jakarta.annotation.Nullable String filterZendeskTicketIdNotIn, @jakarta.annotation.Nullable String filterSequentialIdEq, @jakarta.annotation.Nullable String filterSequentialIdNotEq, @jakarta.annotation.Nullable String filterSequentialIdIn, @jakarta.annotation.Nullable String filterSequentialIdNotIn, @jakarta.annotation.Nullable String filterTypesEq, @jakarta.annotation.Nullable String filterTypesNotEq, @jakarta.annotation.Nullable String filterTypesIn, @jakarta.annotation.Nullable String filterTypesNotIn, @jakarta.annotation.Nullable String filterTypeIdsEq, @jakarta.annotation.Nullable String filterTypeIdsNotEq, @jakarta.annotation.Nullable String filterTypeIdsIn, @jakarta.annotation.Nullable String filterTypeIdsNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterEnvironmentIdsEq, @jakarta.annotation.Nullable String filterEnvironmentIdsNotEq, @jakarta.annotation.Nullable String filterEnvironmentIdsIn, @jakarta.annotation.Nullable String filterEnvironmentIdsNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterServiceIdsEq, @jakarta.annotation.Nullable String filterServiceIdsNotEq, @jakarta.annotation.Nullable String filterServiceIdsIn, @jakarta.annotation.Nullable String filterServiceIdsNotIn, @jakarta.annotation.Nullable String filterServiceNamesEq, @jakarta.annotation.Nullable String filterServiceNamesNotEq, @jakarta.annotation.Nullable String filterServiceNamesIn, @jakarta.annotation.Nullable String filterServiceNamesNotIn, @jakarta.annotation.Nullable String filterFunctionalitiesEq, @jakarta.annotation.Nullable String filterFunctionalitiesNotEq, @jakarta.annotation.Nullable String filterFunctionalitiesIn, @jakarta.annotation.Nullable String filterFunctionalitiesNotIn, @jakarta.annotation.Nullable String filterFunctionalityIdsEq, @jakarta.annotation.Nullable String filterFunctionalityIdsNotEq, @jakarta.annotation.Nullable String filterFunctionalityIdsIn, @jakarta.annotation.Nullable String filterFunctionalityIdsNotIn, @jakarta.annotation.Nullable String filterFunctionalityNamesEq, @jakarta.annotation.Nullable String filterFunctionalityNamesNotEq, @jakarta.annotation.Nullable String filterFunctionalityNamesIn, @jakarta.annotation.Nullable String filterFunctionalityNamesNotIn, @jakarta.annotation.Nullable String filterCausesEq, @jakarta.annotation.Nullable String filterCausesNotEq, @jakarta.annotation.Nullable String filterCausesIn, @jakarta.annotation.Nullable String filterCausesNotIn, @jakarta.annotation.Nullable String filterCauseIdsEq, @jakarta.annotation.Nullable String filterCauseIdsNotEq, @jakarta.annotation.Nullable String filterCauseIdsIn, @jakarta.annotation.Nullable String filterCauseIdsNotIn, @jakarta.annotation.Nullable String filterTeamsEq, @jakarta.annotation.Nullable String filterTeamsNotEq, @jakarta.annotation.Nullable String filterTeamsIn, @jakarta.annotation.Nullable String filterTeamsNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable String filterTeamNamesEq, @jakarta.annotation.Nullable String filterTeamNamesNotEq, @jakarta.annotation.Nullable String filterTeamNamesIn, @jakarta.annotation.Nullable String filterTeamNamesNotIn, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listIncidentsValidateBeforeCall(pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterServices, filterServiceIds, filterTeams, filterTeamIds, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, sort, include, _callback); + okhttp3.Call localVarCall = listIncidentsValidateBeforeCall(pageAfter, pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterFunctionalityNames, filterServices, filterServiceIds, filterServiceNames, filterTeams, filterTeamIds, filterTeamNames, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterSlackChannelId, filterSequentialId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterPrivateEq, filterPrivateNotEq, filterPrivateIn, filterPrivateNotIn, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterSeverityIdEq, filterSeverityIdNotEq, filterSeverityIdIn, filterSeverityIdNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterZendeskTicketIdEq, filterZendeskTicketIdNotEq, filterZendeskTicketIdIn, filterZendeskTicketIdNotIn, filterSequentialIdEq, filterSequentialIdNotEq, filterSequentialIdIn, filterSequentialIdNotIn, filterTypesEq, filterTypesNotEq, filterTypesIn, filterTypesNotIn, filterTypeIdsEq, filterTypeIdsNotEq, filterTypeIdsIn, filterTypeIdsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterEnvironmentIdsEq, filterEnvironmentIdsNotEq, filterEnvironmentIdsIn, filterEnvironmentIdsNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterServiceIdsEq, filterServiceIdsNotEq, filterServiceIdsIn, filterServiceIdsNotIn, filterServiceNamesEq, filterServiceNamesNotEq, filterServiceNamesIn, filterServiceNamesNotIn, filterFunctionalitiesEq, filterFunctionalitiesNotEq, filterFunctionalitiesIn, filterFunctionalitiesNotIn, filterFunctionalityIdsEq, filterFunctionalityIdsNotEq, filterFunctionalityIdsIn, filterFunctionalityIdsNotIn, filterFunctionalityNamesEq, filterFunctionalityNamesNotEq, filterFunctionalityNamesIn, filterFunctionalityNamesNotIn, filterCausesEq, filterCausesNotEq, filterCausesIn, filterCausesNotIn, filterCauseIdsEq, filterCauseIdsNotEq, filterCauseIdsIn, filterCauseIdsNotIn, filterTeamsEq, filterTeamsNotEq, filterTeamsIn, filterTeamsNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, filterTeamNamesEq, filterTeamNamesNotEq, filterTeamNamesIn, filterTeamNamesNotIn, sort, include, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -2506,6 +3461,141 @@ public okhttp3.Call triageIncidentAsync(@jakarta.annotation.Nonnull GetAlertFiel localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for unmarkAsDuplicateIncident + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 duplicate marking removed -
422 incident is not marked as duplicate -
404 resource not found -
+ */ + public okhttp3.Call unmarkAsDuplicateIncidentCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/incidents/{id}/unmark_as_duplicate" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call unmarkAsDuplicateIncidentValidateBeforeCall(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling unmarkAsDuplicateIncident(Async)"); + } + + return unmarkAsDuplicateIncidentCall(id, _callback); + + } + + /** + * Remove duplicate marking from an incident + * Remove the duplicate marking from an incident + * @param id (required) + * @return IncidentResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 duplicate marking removed -
422 incident is not marked as duplicate -
404 resource not found -
+ */ + public IncidentResponse unmarkAsDuplicateIncident(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + ApiResponse localVarResp = unmarkAsDuplicateIncidentWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Remove duplicate marking from an incident + * Remove the duplicate marking from an incident + * @param id (required) + * @return ApiResponse<IncidentResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 duplicate marking removed -
422 incident is not marked as duplicate -
404 resource not found -
+ */ + public ApiResponse unmarkAsDuplicateIncidentWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id) throws ApiException { + okhttp3.Call localVarCall = unmarkAsDuplicateIncidentValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Remove duplicate marking from an incident (asynchronously) + * Remove the duplicate marking from an incident + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 duplicate marking removed -
422 incident is not marked as duplicate -
404 resource not found -
+ */ + public okhttp3.Call unmarkAsDuplicateIncidentAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = unmarkAsDuplicateIncidentValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for updateIncident * @param id (required) diff --git a/src/main/java/com/rootly/client/api/LiveCallRoutersApi.java b/src/main/java/com/rootly/client/api/LiveCallRoutersApi.java index cea44123..35f45a2e 100644 --- a/src/main/java/com/rootly/client/api/LiveCallRoutersApi.java +++ b/src/main/java/com/rootly/client/api/LiveCallRoutersApi.java @@ -86,7 +86,7 @@ public void setCustomBaseUrl(String customBaseUrl) { - +
Response Details
Status Code Description Response Headers
201 live_call_router created with multiple notification targets -
201 live_call_router created with multiple targets without calling_tree_enabled (backward compat) -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -157,7 +157,7 @@ private okhttp3.Call createLiveCallRouterValidateBeforeCall(@jakarta.annotation. - +
Response Details
Status Code Description Response Headers
201 live_call_router created with multiple notification targets -
201 live_call_router created with multiple targets without calling_tree_enabled (backward compat) -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -177,7 +177,7 @@ public LiveCallRouterResponse createLiveCallRouter(@jakarta.annotation.Nonnull N - +
Response Details
Status Code Description Response Headers
201 live_call_router created with multiple notification targets -
201 live_call_router created with multiple targets without calling_tree_enabled (backward compat) -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -199,7 +199,7 @@ public ApiResponse createLiveCallRouterWithHttpInfo(@jak - +
Response Details
Status Code Description Response Headers
201 live_call_router created with multiple notification targets -
201 live_call_router created with multiple targets without calling_tree_enabled (backward compat) -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -832,7 +832,7 @@ public okhttp3.Call listLiveCallRoutersAsync(@jakarta.annotation.Nullable String - +
Response Details
Status Code Description Response Headers
200 live_call_router updated -
200 live_call_router multichannel notification fields updated -
404 resource not found -
*/ @@ -909,7 +909,7 @@ private okhttp3.Call updateLiveCallRouterValidateBeforeCall(@jakarta.annotation. - +
Response Details
Status Code Description Response Headers
200 live_call_router updated -
200 live_call_router multichannel notification fields updated -
404 resource not found -
*/ @@ -929,7 +929,7 @@ public LiveCallRouterResponse updateLiveCallRouter(@jakarta.annotation.Nonnull S - +
Response Details
Status Code Description Response Headers
200 live_call_router updated -
200 live_call_router multichannel notification fields updated -
404 resource not found -
*/ @@ -951,7 +951,7 @@ public ApiResponse updateLiveCallRouterWithHttpInfo(@jak - +
Response Details
Status Code Description Response Headers
200 live_call_router updated -
200 live_call_router multichannel notification fields updated -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/MeetingRecordingsApi.java b/src/main/java/com/rootly/client/api/MeetingRecordingsApi.java index e722c428..66892362 100644 --- a/src/main/java/com/rootly/client/api/MeetingRecordingsApi.java +++ b/src/main/java/com/rootly/client/api/MeetingRecordingsApi.java @@ -27,7 +27,11 @@ import java.io.IOException; +import com.rootly.client.model.ImportMeetingRecording; import com.rootly.client.model.MeetingRecordingList; +import com.rootly.client.model.MeetingRecordingResponse; +import com.rootly.client.model.StartSessionRequest; +import com.rootly.client.model.StartSessionResponse; import java.lang.reflect.Type; import java.util.ArrayList; @@ -87,7 +91,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 422 validation error (e.g. bot already active) - */ - public okhttp3.Call createMeetingRecordingCall(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable String platform, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createMeetingRecordingCall(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable String platform, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -118,6 +122,7 @@ public okhttp3.Call createMeetingRecordingCall(@javax.annotation.Nonnull String } final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -136,7 +141,7 @@ public okhttp3.Call createMeetingRecordingCall(@javax.annotation.Nonnull String } @SuppressWarnings("rawtypes") - private okhttp3.Call createMeetingRecordingValidateBeforeCall(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable String platform, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable String platform, final ApiCallback _callback) throws ApiException { // verify the required parameter 'incidentId' is set if (incidentId == null) { throw new ApiException("Missing the required parameter 'incidentId' when calling createMeetingRecording(Async)"); @@ -151,6 +156,7 @@ private okhttp3.Call createMeetingRecordingValidateBeforeCall(@javax.annotation. * Invite a recording bot to the incident's meeting. If no previous recordings exist for the platform, a new bot is invited (session 1). If previous sessions exist, a new session is created (re-invite). The bot joins the meeting, records audio/video, and generates a transcript when the session ends. * @param incidentId Incident UUID (required) * @param platform Meeting platform (optional) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -160,8 +166,9 @@ private okhttp3.Call createMeetingRecordingValidateBeforeCall(@javax.annotation.
422 validation error (e.g. bot already active) -
*/ - public void createMeetingRecording(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable String platform) throws ApiException { - createMeetingRecordingWithHttpInfo(incidentId, platform); + public MeetingRecordingResponse createMeetingRecording(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable String platform) throws ApiException { + ApiResponse localVarResp = createMeetingRecordingWithHttpInfo(incidentId, platform); + return localVarResp.getData(); } /** @@ -169,7 +176,7 @@ public void createMeetingRecording(@javax.annotation.Nonnull String incidentId, * Invite a recording bot to the incident's meeting. If no previous recordings exist for the platform, a new bot is invited (session 1). If previous sessions exist, a new session is created (re-invite). The bot joins the meeting, records audio/video, and generates a transcript when the session ends. * @param incidentId Incident UUID (required) * @param platform Meeting platform (optional) - * @return ApiResponse<Void> + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -179,9 +186,10 @@ public void createMeetingRecording(@javax.annotation.Nonnull String incidentId,
422 validation error (e.g. bot already active) -
*/ - public ApiResponse createMeetingRecordingWithHttpInfo(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable String platform) throws ApiException { + public ApiResponse createMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable String platform) throws ApiException { okhttp3.Call localVarCall = createMeetingRecordingValidateBeforeCall(incidentId, platform, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -200,10 +208,11 @@ public ApiResponse createMeetingRecordingWithHttpInfo(@javax.annotation.No 422 validation error (e.g. bot already active) - */ - public okhttp3.Call createMeetingRecordingAsync(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable String platform, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createMeetingRecordingAsync(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable String platform, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = createMeetingRecordingValidateBeforeCall(incidentId, platform, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } /** @@ -220,7 +229,7 @@ public okhttp3.Call createMeetingRecordingAsync(@javax.annotation.Nonnull String 422 cannot delete active recording - */ - public okhttp3.Call deleteMeetingRecordingCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteMeetingRecordingCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -247,6 +256,7 @@ public okhttp3.Call deleteMeetingRecordingCall(@javax.annotation.Nonnull String Map localVarFormParams = new HashMap(); final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -265,7 +275,7 @@ public okhttp3.Call deleteMeetingRecordingCall(@javax.annotation.Nonnull String } @SuppressWarnings("rawtypes") - private okhttp3.Call deleteMeetingRecordingValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling deleteMeetingRecording(Async)"); @@ -279,6 +289,7 @@ private okhttp3.Call deleteMeetingRecordingValidateBeforeCall(@javax.annotation. * Delete a meeting recording * Delete a meeting recording. Only completed or failed recordings can be deleted. Active recordings (pending, recording, paused) must be stopped first. * @param id Meeting Recording UUID (required) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -288,15 +299,16 @@ private okhttp3.Call deleteMeetingRecordingValidateBeforeCall(@javax.annotation.
422 cannot delete active recording -
*/ - public void deleteMeetingRecording(@javax.annotation.Nonnull String id) throws ApiException { - deleteMeetingRecordingWithHttpInfo(id); + public MeetingRecordingResponse deleteMeetingRecording(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = deleteMeetingRecordingWithHttpInfo(id); + return localVarResp.getData(); } /** * Delete a meeting recording * Delete a meeting recording. Only completed or failed recordings can be deleted. Active recordings (pending, recording, paused) must be stopped first. * @param id Meeting Recording UUID (required) - * @return ApiResponse<Void> + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -306,9 +318,10 @@ public void deleteMeetingRecording(@javax.annotation.Nonnull String id) throws A
422 cannot delete active recording -
*/ - public ApiResponse deleteMeetingRecordingWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse deleteMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = deleteMeetingRecordingValidateBeforeCall(id, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -326,10 +339,11 @@ public ApiResponse deleteMeetingRecordingWithHttpInfo(@javax.annotation.No 422 cannot delete active recording - */ - public okhttp3.Call deleteMeetingRecordingAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteMeetingRecordingAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = deleteMeetingRecordingValidateBeforeCall(id, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } /** @@ -346,7 +360,7 @@ public okhttp3.Call deleteMeetingRecordingAsync(@javax.annotation.Nonnull String 422 cannot delete video (active recording or no video) - */ - public okhttp3.Call deleteMeetingRecordingVideoCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteMeetingRecordingVideoCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -373,6 +387,7 @@ public okhttp3.Call deleteMeetingRecordingVideoCall(@javax.annotation.Nonnull St Map localVarFormParams = new HashMap(); final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -391,7 +406,7 @@ public okhttp3.Call deleteMeetingRecordingVideoCall(@javax.annotation.Nonnull St } @SuppressWarnings("rawtypes") - private okhttp3.Call deleteMeetingRecordingVideoValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteMeetingRecordingVideoValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling deleteMeetingRecordingVideo(Async)"); @@ -405,6 +420,7 @@ private okhttp3.Call deleteMeetingRecordingVideoValidateBeforeCall(@javax.annota * Delete video from a meeting recording * Delete only the video file from a meeting recording. The transcript, summary, and all metadata are preserved. Only non-active recordings with an attached video can have their video deleted. * @param id Meeting Recording UUID (required) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -414,15 +430,16 @@ private okhttp3.Call deleteMeetingRecordingVideoValidateBeforeCall(@javax.annota
422 cannot delete video (active recording or no video) -
*/ - public void deleteMeetingRecordingVideo(@javax.annotation.Nonnull String id) throws ApiException { - deleteMeetingRecordingVideoWithHttpInfo(id); + public MeetingRecordingResponse deleteMeetingRecordingVideo(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = deleteMeetingRecordingVideoWithHttpInfo(id); + return localVarResp.getData(); } /** * Delete video from a meeting recording * Delete only the video file from a meeting recording. The transcript, summary, and all metadata are preserved. Only non-active recordings with an attached video can have their video deleted. * @param id Meeting Recording UUID (required) - * @return ApiResponse<Void> + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -432,9 +449,10 @@ public void deleteMeetingRecordingVideo(@javax.annotation.Nonnull String id) thr
422 cannot delete video (active recording or no video) -
*/ - public ApiResponse deleteMeetingRecordingVideoWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse deleteMeetingRecordingVideoWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = deleteMeetingRecordingVideoValidateBeforeCall(id, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -452,15 +470,147 @@ public ApiResponse deleteMeetingRecordingVideoWithHttpInfo(@javax.annotati 422 cannot delete video (active recording or no video) - */ - public okhttp3.Call deleteMeetingRecordingVideoAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteMeetingRecordingVideoAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = deleteMeetingRecordingVideoValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteStandaloneMeetingRecording + * @param id Meeting Recording UUID (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 recording deleted -
422 cannot delete active recording -
404 recording not found or not owned by user -
+ */ + public okhttp3.Call deleteStandaloneMeetingRecordingCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/meeting_recordings/{id}/delete_session" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteStandaloneMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteStandaloneMeetingRecording(Async)"); + } + + return deleteStandaloneMeetingRecordingCall(id, _callback); + + } + + /** + * Delete a standalone meeting recording + * Delete a standalone meeting recording (not linked to an incident). Only the recording owner can delete it. Active recordings (pending, recording, paused) must be stopped first. Returns 404 for incident-linked recordings or recordings owned by another user. + * @param id Meeting Recording UUID (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 recording deleted -
422 cannot delete active recording -
404 recording not found or not owned by user -
+ */ + public void deleteStandaloneMeetingRecording(@jakarta.annotation.Nonnull String id) throws ApiException { + deleteStandaloneMeetingRecordingWithHttpInfo(id); + } + + /** + * Delete a standalone meeting recording + * Delete a standalone meeting recording (not linked to an incident). Only the recording owner can delete it. Active recordings (pending, recording, paused) must be stopped first. Returns 404 for incident-linked recordings or recordings owned by another user. + * @param id Meeting Recording UUID (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 recording deleted -
422 cannot delete active recording -
404 recording not found or not owned by user -
+ */ + public ApiResponse deleteStandaloneMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteStandaloneMeetingRecordingValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete a standalone meeting recording (asynchronously) + * Delete a standalone meeting recording (not linked to an incident). Only the recording owner can delete it. Active recordings (pending, recording, paused) must be stopped first. Returns 404 for incident-linked recordings or recordings owned by another user. + * @param id Meeting Recording UUID (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
204 recording deleted -
422 cannot delete active recording -
404 recording not found or not owned by user -
+ */ + public okhttp3.Call deleteStandaloneMeetingRecordingAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteStandaloneMeetingRecordingValidateBeforeCall(id, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } /** * Build call for getMeetingRecording * @param id Meeting Recording UUID (required) + * @param include comma separated if needed. eg: transcript (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -472,7 +622,7 @@ public okhttp3.Call deleteMeetingRecordingVideoAsync(@javax.annotation.Nonnull S 404 meeting recording not found - */ - public okhttp3.Call getMeetingRecordingCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getMeetingRecordingCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -498,7 +648,12 @@ public okhttp3.Call getMeetingRecordingCall(@javax.annotation.Nonnull String id, Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -517,13 +672,13 @@ public okhttp3.Call getMeetingRecordingCall(@javax.annotation.Nonnull String id, } @SuppressWarnings("rawtypes") - private okhttp3.Call getMeetingRecordingValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling getMeetingRecording(Async)"); } - return getMeetingRecordingCall(id, _callback); + return getMeetingRecordingCall(id, include, _callback); } @@ -531,6 +686,8 @@ private okhttp3.Call getMeetingRecordingValidateBeforeCall(@javax.annotation.Non * Get a meeting recording * Retrieve a single meeting recording session including its status, duration, speaker count, word count, and transcript summary. * @param id Meeting Recording UUID (required) + * @param include comma separated if needed. eg: transcript (optional) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -540,15 +697,17 @@ private okhttp3.Call getMeetingRecordingValidateBeforeCall(@javax.annotation.Non
404 meeting recording not found -
*/ - public void getMeetingRecording(@javax.annotation.Nonnull String id) throws ApiException { - getMeetingRecordingWithHttpInfo(id); + public MeetingRecordingResponse getMeetingRecording(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { + ApiResponse localVarResp = getMeetingRecordingWithHttpInfo(id, include); + return localVarResp.getData(); } /** * Get a meeting recording * Retrieve a single meeting recording session including its status, duration, speaker count, word count, and transcript summary. * @param id Meeting Recording UUID (required) - * @return ApiResponse<Void> + * @param include comma separated if needed. eg: transcript (optional) + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -558,15 +717,17 @@ public void getMeetingRecording(@javax.annotation.Nonnull String id) throws ApiE
404 meeting recording not found -
*/ - public ApiResponse getMeetingRecordingWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { - okhttp3.Call localVarCall = getMeetingRecordingValidateBeforeCall(id, null); - return localVarApiClient.execute(localVarCall); + public ApiResponse getMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { + okhttp3.Call localVarCall = getMeetingRecordingValidateBeforeCall(id, include, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** * Get a meeting recording (asynchronously) * Retrieve a single meeting recording session including its status, duration, speaker count, word count, and transcript summary. * @param id Meeting Recording UUID (required) + * @param include comma separated if needed. eg: transcript (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -578,10 +739,147 @@ public ApiResponse getMeetingRecordingWithHttpInfo(@javax.annotation.Nonnu 404 meeting recording not found - */ - public okhttp3.Call getMeetingRecordingAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getMeetingRecordingAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getMeetingRecordingValidateBeforeCall(id, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + okhttp3.Call localVarCall = getMeetingRecordingValidateBeforeCall(id, include, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for importMeetingRecording + * @param incidentId Incident UUID (required) + * @param importMeetingRecording (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 recording imported -
422 validation error (e.g. unsupported source, duplicate recording) -
+ */ + public okhttp3.Call importMeetingRecordingCall(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable ImportMeetingRecording importMeetingRecording, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = importMeetingRecording; + + // create path and map variables + String localVarPath = "/v1/incidents/{incident_id}/meeting_recordings/import" + .replace("{" + "incident_id" + "}", localVarApiClient.escapeString(incidentId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call importMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable ImportMeetingRecording importMeetingRecording, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'incidentId' is set + if (incidentId == null) { + throw new ApiException("Missing the required parameter 'incidentId' when calling importMeetingRecording(Async)"); + } + + return importMeetingRecordingCall(incidentId, importMeetingRecording, _callback); + + } + + /** + * Import a meeting recording + * Import an externally captured meeting recording and attach it to an incident. Video and transcript are fetched asynchronously. The existing POST /v1/incidents/{incident_id}/meeting_recordings endpoint invites a bot — this endpoint handles recordings that were captured outside of the bot flow. + * @param incidentId Incident UUID (required) + * @param importMeetingRecording (optional) + * @return MeetingRecordingResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 recording imported -
422 validation error (e.g. unsupported source, duplicate recording) -
+ */ + public MeetingRecordingResponse importMeetingRecording(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable ImportMeetingRecording importMeetingRecording) throws ApiException { + ApiResponse localVarResp = importMeetingRecordingWithHttpInfo(incidentId, importMeetingRecording); + return localVarResp.getData(); + } + + /** + * Import a meeting recording + * Import an externally captured meeting recording and attach it to an incident. Video and transcript are fetched asynchronously. The existing POST /v1/incidents/{incident_id}/meeting_recordings endpoint invites a bot — this endpoint handles recordings that were captured outside of the bot flow. + * @param incidentId Incident UUID (required) + * @param importMeetingRecording (optional) + * @return ApiResponse<MeetingRecordingResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 recording imported -
422 validation error (e.g. unsupported source, duplicate recording) -
+ */ + public ApiResponse importMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable ImportMeetingRecording importMeetingRecording) throws ApiException { + okhttp3.Call localVarCall = importMeetingRecordingValidateBeforeCall(incidentId, importMeetingRecording, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Import a meeting recording (asynchronously) + * Import an externally captured meeting recording and attach it to an incident. Video and transcript are fetched asynchronously. The existing POST /v1/incidents/{incident_id}/meeting_recordings endpoint invites a bot — this endpoint handles recordings that were captured outside of the bot flow. + * @param incidentId Incident UUID (required) + * @param importMeetingRecording (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 recording imported -
422 validation error (e.g. unsupported source, duplicate recording) -
+ */ + public okhttp3.Call importMeetingRecordingAsync(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable ImportMeetingRecording importMeetingRecording, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = importMeetingRecordingValidateBeforeCall(incidentId, importMeetingRecording, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } /** @@ -598,7 +896,7 @@ public okhttp3.Call getMeetingRecordingAsync(@javax.annotation.Nonnull String id 422 bot is not in a call - */ - public okhttp3.Call leaveMeetingRecordingCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call leaveMeetingRecordingCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -625,6 +923,7 @@ public okhttp3.Call leaveMeetingRecordingCall(@javax.annotation.Nonnull String i Map localVarFormParams = new HashMap(); final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -643,7 +942,7 @@ public okhttp3.Call leaveMeetingRecordingCall(@javax.annotation.Nonnull String i } @SuppressWarnings("rawtypes") - private okhttp3.Call leaveMeetingRecordingValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call leaveMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling leaveMeetingRecording(Async)"); @@ -657,6 +956,7 @@ private okhttp3.Call leaveMeetingRecordingValidateBeforeCall(@javax.annotation.N * Leave a meeting call * Remove the recording bot from the meeting entirely. Unlike stop, this immediately disconnects the bot. The session will transition to analyzing and then completed once transcript processing finishes. * @param id Meeting Recording UUID (required) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -666,15 +966,16 @@ private okhttp3.Call leaveMeetingRecordingValidateBeforeCall(@javax.annotation.N
422 bot is not in a call -
*/ - public void leaveMeetingRecording(@javax.annotation.Nonnull String id) throws ApiException { - leaveMeetingRecordingWithHttpInfo(id); + public MeetingRecordingResponse leaveMeetingRecording(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = leaveMeetingRecordingWithHttpInfo(id); + return localVarResp.getData(); } /** * Leave a meeting call * Remove the recording bot from the meeting entirely. Unlike stop, this immediately disconnects the bot. The session will transition to analyzing and then completed once transcript processing finishes. * @param id Meeting Recording UUID (required) - * @return ApiResponse<Void> + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -684,9 +985,10 @@ public void leaveMeetingRecording(@javax.annotation.Nonnull String id) throws Ap
422 bot is not in a call -
*/ - public ApiResponse leaveMeetingRecordingWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse leaveMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = leaveMeetingRecordingValidateBeforeCall(id, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -704,10 +1006,152 @@ public ApiResponse leaveMeetingRecordingWithHttpInfo(@javax.annotation.Non 422 bot is not in a call - */ - public okhttp3.Call leaveMeetingRecordingAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call leaveMeetingRecordingAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = leaveMeetingRecordingValidateBeforeCall(id, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listAllMeetingRecordings + * @param status Filter by status (optional) + * @param platform Filter by platform (optional) + * @param createdBy Filter by creator type (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 meeting recordings found -
+ */ + public okhttp3.Call listAllMeetingRecordingsCall(@jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String platform, @jakarta.annotation.Nullable String createdBy, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/meeting_recordings"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (status != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("status", status)); + } + + if (platform != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("platform", platform)); + } + + if (createdBy != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("created_by", createdBy)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listAllMeetingRecordingsValidateBeforeCall(@jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String platform, @jakarta.annotation.Nullable String createdBy, final ApiCallback _callback) throws ApiException { + return listAllMeetingRecordingsCall(status, platform, createdBy, _callback); + + } + + /** + * List all meeting recordings + * List meeting recordings across the organization. Returns the current user's standalone recordings plus incident-backed recordings the user can access. Supports filtering by status, platform, and created_by. + * @param status Filter by status (optional) + * @param platform Filter by platform (optional) + * @param createdBy Filter by creator type (optional) + * @return MeetingRecordingList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 meeting recordings found -
+ */ + public MeetingRecordingList listAllMeetingRecordings(@jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String platform, @jakarta.annotation.Nullable String createdBy) throws ApiException { + ApiResponse localVarResp = listAllMeetingRecordingsWithHttpInfo(status, platform, createdBy); + return localVarResp.getData(); + } + + /** + * List all meeting recordings + * List meeting recordings across the organization. Returns the current user's standalone recordings plus incident-backed recordings the user can access. Supports filtering by status, platform, and created_by. + * @param status Filter by status (optional) + * @param platform Filter by platform (optional) + * @param createdBy Filter by creator type (optional) + * @return ApiResponse<MeetingRecordingList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 meeting recordings found -
+ */ + public ApiResponse listAllMeetingRecordingsWithHttpInfo(@jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String platform, @jakarta.annotation.Nullable String createdBy) throws ApiException { + okhttp3.Call localVarCall = listAllMeetingRecordingsValidateBeforeCall(status, platform, createdBy, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List all meeting recordings (asynchronously) + * List meeting recordings across the organization. Returns the current user's standalone recordings plus incident-backed recordings the user can access. Supports filtering by status, platform, and created_by. + * @param status Filter by status (optional) + * @param platform Filter by platform (optional) + * @param createdBy Filter by creator type (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 meeting recordings found -
+ */ + public okhttp3.Call listAllMeetingRecordingsAsync(@jakarta.annotation.Nullable String status, @jakarta.annotation.Nullable String platform, @jakarta.annotation.Nullable String createdBy, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listAllMeetingRecordingsValidateBeforeCall(status, platform, createdBy, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } /** @@ -726,7 +1170,7 @@ public okhttp3.Call leaveMeetingRecordingAsync(@javax.annotation.Nonnull String 404 incident not found - */ - public okhttp3.Call listMeetingRecordingsCall(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listMeetingRecordingsCall(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -780,7 +1224,7 @@ public okhttp3.Call listMeetingRecordingsCall(@javax.annotation.Nonnull String i } @SuppressWarnings("rawtypes") - private okhttp3.Call listMeetingRecordingsValidateBeforeCall(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listMeetingRecordingsValidateBeforeCall(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { // verify the required parameter 'incidentId' is set if (incidentId == null) { throw new ApiException("Missing the required parameter 'incidentId' when calling listMeetingRecordings(Async)"); @@ -806,7 +1250,7 @@ private okhttp3.Call listMeetingRecordingsValidateBeforeCall(@javax.annotation.N 404 incident not found - */ - public MeetingRecordingList listMeetingRecordings(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize) throws ApiException { + public MeetingRecordingList listMeetingRecordings(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { ApiResponse localVarResp = listMeetingRecordingsWithHttpInfo(incidentId, pageNumber, pageSize); return localVarResp.getData(); } @@ -827,7 +1271,7 @@ public MeetingRecordingList listMeetingRecordings(@javax.annotation.Nonnull Stri 404 incident not found - */ - public ApiResponse listMeetingRecordingsWithHttpInfo(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize) throws ApiException { + public ApiResponse listMeetingRecordingsWithHttpInfo(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { okhttp3.Call localVarCall = listMeetingRecordingsValidateBeforeCall(incidentId, pageNumber, pageSize, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -850,7 +1294,7 @@ public ApiResponse listMeetingRecordingsWithHttpInfo(@java 404 incident not found - */ - public okhttp3.Call listMeetingRecordingsAsync(@javax.annotation.Nonnull String incidentId, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listMeetingRecordingsAsync(@jakarta.annotation.Nonnull String incidentId, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listMeetingRecordingsValidateBeforeCall(incidentId, pageNumber, pageSize, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -871,7 +1315,7 @@ public okhttp3.Call listMeetingRecordingsAsync(@javax.annotation.Nonnull String 422 recording is not active - */ - public okhttp3.Call pauseMeetingRecordingCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call pauseMeetingRecordingCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -898,6 +1342,7 @@ public okhttp3.Call pauseMeetingRecordingCall(@javax.annotation.Nonnull String i Map localVarFormParams = new HashMap(); final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -916,7 +1361,7 @@ public okhttp3.Call pauseMeetingRecordingCall(@javax.annotation.Nonnull String i } @SuppressWarnings("rawtypes") - private okhttp3.Call pauseMeetingRecordingValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call pauseMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling pauseMeetingRecording(Async)"); @@ -930,6 +1375,7 @@ private okhttp3.Call pauseMeetingRecordingValidateBeforeCall(@javax.annotation.N * Pause a meeting recording * Pause an active recording session. The bot remains in the meeting but stops capturing audio/video. Use the resume endpoint to continue recording. * @param id Meeting Recording UUID (required) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -939,15 +1385,16 @@ private okhttp3.Call pauseMeetingRecordingValidateBeforeCall(@javax.annotation.N
422 recording is not active -
*/ - public void pauseMeetingRecording(@javax.annotation.Nonnull String id) throws ApiException { - pauseMeetingRecordingWithHttpInfo(id); + public MeetingRecordingResponse pauseMeetingRecording(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = pauseMeetingRecordingWithHttpInfo(id); + return localVarResp.getData(); } /** * Pause a meeting recording * Pause an active recording session. The bot remains in the meeting but stops capturing audio/video. Use the resume endpoint to continue recording. * @param id Meeting Recording UUID (required) - * @return ApiResponse<Void> + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -957,9 +1404,10 @@ public void pauseMeetingRecording(@javax.annotation.Nonnull String id) throws Ap
422 recording is not active -
*/ - public ApiResponse pauseMeetingRecordingWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse pauseMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = pauseMeetingRecordingValidateBeforeCall(id, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -977,10 +1425,11 @@ public ApiResponse pauseMeetingRecordingWithHttpInfo(@javax.annotation.Non 422 recording is not active - */ - public okhttp3.Call pauseMeetingRecordingAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call pauseMeetingRecordingAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = pauseMeetingRecordingValidateBeforeCall(id, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } /** @@ -997,7 +1446,7 @@ public okhttp3.Call pauseMeetingRecordingAsync(@javax.annotation.Nonnull String 422 recording is not paused - */ - public okhttp3.Call resumeMeetingRecordingCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call resumeMeetingRecordingCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -1024,6 +1473,7 @@ public okhttp3.Call resumeMeetingRecordingCall(@javax.annotation.Nonnull String Map localVarFormParams = new HashMap(); final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -1042,7 +1492,7 @@ public okhttp3.Call resumeMeetingRecordingCall(@javax.annotation.Nonnull String } @SuppressWarnings("rawtypes") - private okhttp3.Call resumeMeetingRecordingValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call resumeMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling resumeMeetingRecording(Async)"); @@ -1056,6 +1506,7 @@ private okhttp3.Call resumeMeetingRecordingValidateBeforeCall(@javax.annotation. * Resume a meeting recording * Resume a paused recording session. The bot continues capturing audio/video from the meeting. * @param id Meeting Recording UUID (required) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1065,15 +1516,16 @@ private okhttp3.Call resumeMeetingRecordingValidateBeforeCall(@javax.annotation.
422 recording is not paused -
*/ - public void resumeMeetingRecording(@javax.annotation.Nonnull String id) throws ApiException { - resumeMeetingRecordingWithHttpInfo(id); + public MeetingRecordingResponse resumeMeetingRecording(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = resumeMeetingRecordingWithHttpInfo(id); + return localVarResp.getData(); } /** * Resume a meeting recording * Resume a paused recording session. The bot continues capturing audio/video from the meeting. * @param id Meeting Recording UUID (required) - * @return ApiResponse<Void> + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1083,9 +1535,10 @@ public void resumeMeetingRecording(@javax.annotation.Nonnull String id) throws A
422 recording is not paused -
*/ - public ApiResponse resumeMeetingRecordingWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse resumeMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = resumeMeetingRecordingValidateBeforeCall(id, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -1103,10 +1556,137 @@ public ApiResponse resumeMeetingRecordingWithHttpInfo(@javax.annotation.No 422 recording is not paused - */ - public okhttp3.Call resumeMeetingRecordingAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call resumeMeetingRecordingAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = resumeMeetingRecordingValidateBeforeCall(id, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for startRecordingSession + * @param startSessionRequest (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 session created -
422 invalid platform -
+ */ + public okhttp3.Call startRecordingSessionCall(@jakarta.annotation.Nullable StartSessionRequest startSessionRequest, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = startSessionRequest; + + // create path and map variables + String localVarPath = "/v1/meeting_recordings/start_session"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call startRecordingSessionValidateBeforeCall(@jakarta.annotation.Nullable StartSessionRequest startSessionRequest, final ApiCallback _callback) throws ApiException { + return startRecordingSessionCall(startSessionRequest, _callback); + + } + + /** + * Start a recording session + * Start a new desktop recording session. The server creates a recording record and returns a stream token the desktop client uses to send audio. No provider-specific configuration is needed from the client. + * @param startSessionRequest (optional) + * @return StartSessionResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 session created -
422 invalid platform -
+ */ + public StartSessionResponse startRecordingSession(@jakarta.annotation.Nullable StartSessionRequest startSessionRequest) throws ApiException { + ApiResponse localVarResp = startRecordingSessionWithHttpInfo(startSessionRequest); + return localVarResp.getData(); + } + + /** + * Start a recording session + * Start a new desktop recording session. The server creates a recording record and returns a stream token the desktop client uses to send audio. No provider-specific configuration is needed from the client. + * @param startSessionRequest (optional) + * @return ApiResponse<StartSessionResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 session created -
422 invalid platform -
+ */ + public ApiResponse startRecordingSessionWithHttpInfo(@jakarta.annotation.Nullable StartSessionRequest startSessionRequest) throws ApiException { + okhttp3.Call localVarCall = startRecordingSessionValidateBeforeCall(startSessionRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Start a recording session (asynchronously) + * Start a new desktop recording session. The server creates a recording record and returns a stream token the desktop client uses to send audio. No provider-specific configuration is needed from the client. + * @param startSessionRequest (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 session created -
422 invalid platform -
+ */ + public okhttp3.Call startRecordingSessionAsync(@jakarta.annotation.Nullable StartSessionRequest startSessionRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = startRecordingSessionValidateBeforeCall(startSessionRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } /** @@ -1123,7 +1703,7 @@ public okhttp3.Call resumeMeetingRecordingAsync(@javax.annotation.Nonnull String 422 recording cannot be stopped - */ - public okhttp3.Call stopMeetingRecordingCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call stopMeetingRecordingCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -1150,6 +1730,7 @@ public okhttp3.Call stopMeetingRecordingCall(@javax.annotation.Nonnull String id Map localVarFormParams = new HashMap(); final String[] localVarAccepts = { + "application/vnd.api+json" }; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -1168,7 +1749,7 @@ public okhttp3.Call stopMeetingRecordingCall(@javax.annotation.Nonnull String id } @SuppressWarnings("rawtypes") - private okhttp3.Call stopMeetingRecordingValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call stopMeetingRecordingValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling stopMeetingRecording(Async)"); @@ -1182,6 +1763,7 @@ private okhttp3.Call stopMeetingRecordingValidateBeforeCall(@javax.annotation.No * Stop a meeting recording * Stop an active or paused recording. The bot finishes processing, generates a transcript, and the session status transitions to completed. This is irreversible — to record again, create a new session. * @param id Meeting Recording UUID (required) + * @return MeetingRecordingResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1191,15 +1773,16 @@ private okhttp3.Call stopMeetingRecordingValidateBeforeCall(@javax.annotation.No
422 recording cannot be stopped -
*/ - public void stopMeetingRecording(@javax.annotation.Nonnull String id) throws ApiException { - stopMeetingRecordingWithHttpInfo(id); + public MeetingRecordingResponse stopMeetingRecording(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = stopMeetingRecordingWithHttpInfo(id); + return localVarResp.getData(); } /** * Stop a meeting recording * Stop an active or paused recording. The bot finishes processing, generates a transcript, and the session status transitions to completed. This is irreversible — to record again, create a new session. * @param id Meeting Recording UUID (required) - * @return ApiResponse<Void> + * @return ApiResponse<MeetingRecordingResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1209,9 +1792,10 @@ public void stopMeetingRecording(@javax.annotation.Nonnull String id) throws Api
422 recording cannot be stopped -
*/ - public ApiResponse stopMeetingRecordingWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse stopMeetingRecordingWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = stopMeetingRecordingValidateBeforeCall(id, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -1229,10 +1813,11 @@ public ApiResponse stopMeetingRecordingWithHttpInfo(@javax.annotation.Nonn 422 recording cannot be stopped - */ - public okhttp3.Call stopMeetingRecordingAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call stopMeetingRecordingAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = stopMeetingRecordingValidateBeforeCall(id, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } } diff --git a/src/main/java/com/rootly/client/api/OnCallPayReportsApi.java b/src/main/java/com/rootly/client/api/OnCallPayReportsApi.java index 3265a0fd..9543fdae 100644 --- a/src/main/java/com/rootly/client/api/OnCallPayReportsApi.java +++ b/src/main/java/com/rootly/client/api/OnCallPayReportsApi.java @@ -91,7 +91,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createOnCallPayReportCall(@javax.annotation.Nonnull NewOnCallPayReport newOnCallPayReport, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createOnCallPayReportCall(@jakarta.annotation.Nonnull NewOnCallPayReport newOnCallPayReport, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -137,7 +137,7 @@ public okhttp3.Call createOnCallPayReportCall(@javax.annotation.Nonnull NewOnCal } @SuppressWarnings("rawtypes") - private okhttp3.Call createOnCallPayReportValidateBeforeCall(@javax.annotation.Nonnull NewOnCallPayReport newOnCallPayReport, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createOnCallPayReportValidateBeforeCall(@jakarta.annotation.Nonnull NewOnCallPayReport newOnCallPayReport, final ApiCallback _callback) throws ApiException { // verify the required parameter 'newOnCallPayReport' is set if (newOnCallPayReport == null) { throw new ApiException("Missing the required parameter 'newOnCallPayReport' when calling createOnCallPayReport(Async)"); @@ -162,7 +162,7 @@ private okhttp3.Call createOnCallPayReportValidateBeforeCall(@javax.annotation.N 401 responds with unauthorized for invalid token - */ - public OnCallPayReportResponse createOnCallPayReport(@javax.annotation.Nonnull NewOnCallPayReport newOnCallPayReport) throws ApiException { + public OnCallPayReportResponse createOnCallPayReport(@jakarta.annotation.Nonnull NewOnCallPayReport newOnCallPayReport) throws ApiException { ApiResponse localVarResp = createOnCallPayReportWithHttpInfo(newOnCallPayReport); return localVarResp.getData(); } @@ -182,7 +182,7 @@ public OnCallPayReportResponse createOnCallPayReport(@javax.annotation.Nonnull N 401 responds with unauthorized for invalid token - */ - public ApiResponse createOnCallPayReportWithHttpInfo(@javax.annotation.Nonnull NewOnCallPayReport newOnCallPayReport) throws ApiException { + public ApiResponse createOnCallPayReportWithHttpInfo(@jakarta.annotation.Nonnull NewOnCallPayReport newOnCallPayReport) throws ApiException { okhttp3.Call localVarCall = createOnCallPayReportValidateBeforeCall(newOnCallPayReport, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -204,7 +204,7 @@ public ApiResponse createOnCallPayReportWithHttpInfo(@j 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createOnCallPayReportAsync(@javax.annotation.Nonnull NewOnCallPayReport newOnCallPayReport, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createOnCallPayReportAsync(@jakarta.annotation.Nonnull NewOnCallPayReport newOnCallPayReport, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = createOnCallPayReportValidateBeforeCall(newOnCallPayReport, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -226,7 +226,7 @@ public okhttp3.Call createOnCallPayReportAsync(@javax.annotation.Nonnull NewOnCa 404 resource not found for different team - */ - public okhttp3.Call getOnCallPayReportCall(@javax.annotation.Nonnull String id, @javax.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getOnCallPayReportCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -276,7 +276,7 @@ public okhttp3.Call getOnCallPayReportCall(@javax.annotation.Nonnull String id, } @SuppressWarnings("rawtypes") - private okhttp3.Call getOnCallPayReportValidateBeforeCall(@javax.annotation.Nonnull String id, @javax.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getOnCallPayReportValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling getOnCallPayReport(Async)"); @@ -301,7 +301,7 @@ private okhttp3.Call getOnCallPayReportValidateBeforeCall(@javax.annotation.Nonn 404 resource not found for different team - */ - public OnCallPayReportResponse getOnCallPayReport(@javax.annotation.Nonnull String id, @javax.annotation.Nullable String include) throws ApiException { + public OnCallPayReportResponse getOnCallPayReport(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { ApiResponse localVarResp = getOnCallPayReportWithHttpInfo(id, include); return localVarResp.getData(); } @@ -321,7 +321,7 @@ public OnCallPayReportResponse getOnCallPayReport(@javax.annotation.Nonnull Stri 404 resource not found for different team - */ - public ApiResponse getOnCallPayReportWithHttpInfo(@javax.annotation.Nonnull String id, @javax.annotation.Nullable String include) throws ApiException { + public ApiResponse getOnCallPayReportWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { okhttp3.Call localVarCall = getOnCallPayReportValidateBeforeCall(id, include, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -343,7 +343,7 @@ public ApiResponse getOnCallPayReportWithHttpInfo(@java 404 resource not found for different team - */ - public okhttp3.Call getOnCallPayReportAsync(@javax.annotation.Nonnull String id, @javax.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getOnCallPayReportAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getOnCallPayReportValidateBeforeCall(id, include, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -370,7 +370,7 @@ public okhttp3.Call getOnCallPayReportAsync(@javax.annotation.Nonnull String id, 200 success - */ - public okhttp3.Call listOnCallPayReportsCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listOnCallPayReportsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -447,7 +447,7 @@ public okhttp3.Call listOnCallPayReportsCall(@javax.annotation.Nullable String i } @SuppressWarnings("rawtypes") - private okhttp3.Call listOnCallPayReportsValidateBeforeCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listOnCallPayReportsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { return listOnCallPayReportsCall(include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); } @@ -472,7 +472,7 @@ private okhttp3.Call listOnCallPayReportsValidateBeforeCall(@javax.annotation.Nu 200 success - */ - public OnCallPayReportList listOnCallPayReports(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte) throws ApiException { + public OnCallPayReportList listOnCallPayReports(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { ApiResponse localVarResp = listOnCallPayReportsWithHttpInfo(include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); return localVarResp.getData(); } @@ -497,7 +497,7 @@ public OnCallPayReportList listOnCallPayReports(@javax.annotation.Nullable Strin 200 success - */ - public ApiResponse listOnCallPayReportsWithHttpInfo(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte) throws ApiException { + public ApiResponse listOnCallPayReportsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { okhttp3.Call localVarCall = listOnCallPayReportsValidateBeforeCall(include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -524,7 +524,7 @@ public ApiResponse listOnCallPayReportsWithHttpInfo(@javax. 200 success - */ - public okhttp3.Call listOnCallPayReportsAsync(@javax.annotation.Nullable String include, @javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterStatus, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listOnCallPayReportsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listOnCallPayReportsValidateBeforeCall(include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -545,7 +545,7 @@ public okhttp3.Call listOnCallPayReportsAsync(@javax.annotation.Nullable String 404 on_call_pay_report not found - */ - public okhttp3.Call regenerateOnCallPayReportCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call regenerateOnCallPayReportCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -591,7 +591,7 @@ public okhttp3.Call regenerateOnCallPayReportCall(@javax.annotation.Nonnull Stri } @SuppressWarnings("rawtypes") - private okhttp3.Call regenerateOnCallPayReportValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call regenerateOnCallPayReportValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling regenerateOnCallPayReport(Async)"); @@ -615,7 +615,7 @@ private okhttp3.Call regenerateOnCallPayReportValidateBeforeCall(@javax.annotati 404 on_call_pay_report not found - */ - public OnCallPayReportResponse regenerateOnCallPayReport(@javax.annotation.Nonnull String id) throws ApiException { + public OnCallPayReportResponse regenerateOnCallPayReport(@jakarta.annotation.Nonnull String id) throws ApiException { ApiResponse localVarResp = regenerateOnCallPayReportWithHttpInfo(id); return localVarResp.getData(); } @@ -634,7 +634,7 @@ public OnCallPayReportResponse regenerateOnCallPayReport(@javax.annotation.Nonnu 404 on_call_pay_report not found - */ - public ApiResponse regenerateOnCallPayReportWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse regenerateOnCallPayReportWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = regenerateOnCallPayReportValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -655,7 +655,7 @@ public ApiResponse regenerateOnCallPayReportWithHttpInf 404 on_call_pay_report not found - */ - public okhttp3.Call regenerateOnCallPayReportAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call regenerateOnCallPayReportAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = regenerateOnCallPayReportValidateBeforeCall(id, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -678,7 +678,7 @@ public okhttp3.Call regenerateOnCallPayReportAsync(@javax.annotation.Nonnull Str 422 invalid request - */ - public okhttp3.Call updateOnCallPayReportCall(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateOnCallPayReportCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -725,7 +725,7 @@ public okhttp3.Call updateOnCallPayReportCall(@javax.annotation.Nonnull String i } @SuppressWarnings("rawtypes") - private okhttp3.Call updateOnCallPayReportValidateBeforeCall(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport, final ApiCallback _callback) throws ApiException { + private okhttp3.Call updateOnCallPayReportValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling updateOnCallPayReport(Async)"); @@ -756,7 +756,7 @@ private okhttp3.Call updateOnCallPayReportValidateBeforeCall(@javax.annotation.N 422 invalid request - */ - public OnCallPayReportResponse updateOnCallPayReport(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport) throws ApiException { + public OnCallPayReportResponse updateOnCallPayReport(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport) throws ApiException { ApiResponse localVarResp = updateOnCallPayReportWithHttpInfo(id, updateOnCallPayReport); return localVarResp.getData(); } @@ -777,7 +777,7 @@ public OnCallPayReportResponse updateOnCallPayReport(@javax.annotation.Nonnull S 422 invalid request - */ - public ApiResponse updateOnCallPayReportWithHttpInfo(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport) throws ApiException { + public ApiResponse updateOnCallPayReportWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport) throws ApiException { okhttp3.Call localVarCall = updateOnCallPayReportValidateBeforeCall(id, updateOnCallPayReport, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -800,7 +800,7 @@ public ApiResponse updateOnCallPayReportWithHttpInfo(@j 422 invalid request - */ - public okhttp3.Call updateOnCallPayReportAsync(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateOnCallPayReportAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateOnCallPayReport updateOnCallPayReport, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = updateOnCallPayReportValidateBeforeCall(id, updateOnCallPayReport, _callback); Type localVarReturnType = new TypeToken(){}.getType(); diff --git a/src/main/java/com/rootly/client/api/OnCallsApi.java b/src/main/java/com/rootly/client/api/OnCallsApi.java index b2b5da2a..138d8aa8 100644 --- a/src/main/java/com/rootly/client/api/OnCallsApi.java +++ b/src/main/java/com/rootly/client/api/OnCallsApi.java @@ -28,6 +28,7 @@ import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.OncallList; import java.lang.reflect.Type; import java.util.ArrayList; @@ -77,14 +78,14 @@ public void setCustomBaseUrl(String customBaseUrl) { * @param include comma separated if needed. eg: user,schedule (optional) * @param since Start of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to current time. (optional) * @param until End of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to 'since' time. (optional) - * @param earliest When true, returns only the first on-call user per escalation policy level (optional) + * @param earliest When true, returns only the first on-call entry per escalation policy path and level (optional) * @param timeZone Timezone for response times (e.g., America/New_York). Defaults to UTC. (optional) * @param filterEscalationPolicyIds Comma-separated escalation policy IDs (optional) * @param filterScheduleIds Comma-separated schedule IDs (optional) * @param filterUserIds Comma-separated user IDs (optional) * @param filterServiceIds Comma-separated service IDs (optional) * @param filterGroupIds Comma-separated group IDs (teams) (optional) - * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When present, oncalls are returned from every non-deferral escalation path whose notification_type is in the filter, sorted audible-first. When absent, only the default path's oncalls are returned (existing behavior). (optional) + * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When omitted, returns oncalls from all non-deferral escalation paths. When provided, limits results to matching notification types and sorts audible-first. (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -97,7 +98,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 401 responds with unauthorized for invalid token - */ - public okhttp3.Call listOncallsCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable String since, @javax.annotation.Nullable String until, @javax.annotation.Nullable Boolean earliest, @javax.annotation.Nullable String timeZone, @javax.annotation.Nullable String filterEscalationPolicyIds, @javax.annotation.Nullable String filterScheduleIds, @javax.annotation.Nullable String filterUserIds, @javax.annotation.Nullable String filterServiceIds, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterNotificationTypes, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listOncallsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String since, @jakarta.annotation.Nullable String until, @jakarta.annotation.Nullable Boolean earliest, @jakarta.annotation.Nullable String timeZone, @jakarta.annotation.Nullable String filterEscalationPolicyIds, @jakarta.annotation.Nullable String filterScheduleIds, @jakarta.annotation.Nullable String filterUserIds, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterNotificationTypes, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -186,7 +187,7 @@ public okhttp3.Call listOncallsCall(@javax.annotation.Nullable String include, @ } @SuppressWarnings("rawtypes") - private okhttp3.Call listOncallsValidateBeforeCall(@javax.annotation.Nullable String include, @javax.annotation.Nullable String since, @javax.annotation.Nullable String until, @javax.annotation.Nullable Boolean earliest, @javax.annotation.Nullable String timeZone, @javax.annotation.Nullable String filterEscalationPolicyIds, @javax.annotation.Nullable String filterScheduleIds, @javax.annotation.Nullable String filterUserIds, @javax.annotation.Nullable String filterServiceIds, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterNotificationTypes, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listOncallsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String since, @jakarta.annotation.Nullable String until, @jakarta.annotation.Nullable Boolean earliest, @jakarta.annotation.Nullable String timeZone, @jakarta.annotation.Nullable String filterEscalationPolicyIds, @jakarta.annotation.Nullable String filterScheduleIds, @jakarta.annotation.Nullable String filterUserIds, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterNotificationTypes, final ApiCallback _callback) throws ApiException { return listOncallsCall(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes, _callback); } @@ -197,14 +198,15 @@ private okhttp3.Call listOncallsValidateBeforeCall(@javax.annotation.Nullable St * @param include comma separated if needed. eg: user,schedule (optional) * @param since Start of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to current time. (optional) * @param until End of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to 'since' time. (optional) - * @param earliest When true, returns only the first on-call user per escalation policy level (optional) + * @param earliest When true, returns only the first on-call entry per escalation policy path and level (optional) * @param timeZone Timezone for response times (e.g., America/New_York). Defaults to UTC. (optional) * @param filterEscalationPolicyIds Comma-separated escalation policy IDs (optional) * @param filterScheduleIds Comma-separated schedule IDs (optional) * @param filterUserIds Comma-separated user IDs (optional) * @param filterServiceIds Comma-separated service IDs (optional) * @param filterGroupIds Comma-separated group IDs (teams) (optional) - * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When present, oncalls are returned from every non-deferral escalation path whose notification_type is in the filter, sorted audible-first. When absent, only the default path's oncalls are returned (existing behavior). (optional) + * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When omitted, returns oncalls from all non-deferral escalation paths. When provided, limits results to matching notification types and sorts audible-first. (optional) + * @return OncallList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -215,8 +217,9 @@ private okhttp3.Call listOncallsValidateBeforeCall(@javax.annotation.Nullable St
401 responds with unauthorized for invalid token -
*/ - public void listOncalls(@javax.annotation.Nullable String include, @javax.annotation.Nullable String since, @javax.annotation.Nullable String until, @javax.annotation.Nullable Boolean earliest, @javax.annotation.Nullable String timeZone, @javax.annotation.Nullable String filterEscalationPolicyIds, @javax.annotation.Nullable String filterScheduleIds, @javax.annotation.Nullable String filterUserIds, @javax.annotation.Nullable String filterServiceIds, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterNotificationTypes) throws ApiException { - listOncallsWithHttpInfo(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes); + public OncallList listOncalls(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String since, @jakarta.annotation.Nullable String until, @jakarta.annotation.Nullable Boolean earliest, @jakarta.annotation.Nullable String timeZone, @jakarta.annotation.Nullable String filterEscalationPolicyIds, @jakarta.annotation.Nullable String filterScheduleIds, @jakarta.annotation.Nullable String filterUserIds, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterNotificationTypes) throws ApiException { + ApiResponse localVarResp = listOncallsWithHttpInfo(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes); + return localVarResp.getData(); } /** @@ -225,15 +228,15 @@ public void listOncalls(@javax.annotation.Nullable String include, @javax.annota * @param include comma separated if needed. eg: user,schedule (optional) * @param since Start of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to current time. (optional) * @param until End of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to 'since' time. (optional) - * @param earliest When true, returns only the first on-call user per escalation policy level (optional) + * @param earliest When true, returns only the first on-call entry per escalation policy path and level (optional) * @param timeZone Timezone for response times (e.g., America/New_York). Defaults to UTC. (optional) * @param filterEscalationPolicyIds Comma-separated escalation policy IDs (optional) * @param filterScheduleIds Comma-separated schedule IDs (optional) * @param filterUserIds Comma-separated user IDs (optional) * @param filterServiceIds Comma-separated service IDs (optional) * @param filterGroupIds Comma-separated group IDs (teams) (optional) - * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When present, oncalls are returned from every non-deferral escalation path whose notification_type is in the filter, sorted audible-first. When absent, only the default path's oncalls are returned (existing behavior). (optional) - * @return ApiResponse<Void> + * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When omitted, returns oncalls from all non-deferral escalation paths. When provided, limits results to matching notification types and sorts audible-first. (optional) + * @return ApiResponse<OncallList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -244,9 +247,10 @@ public void listOncalls(@javax.annotation.Nullable String include, @javax.annota
401 responds with unauthorized for invalid token -
*/ - public ApiResponse listOncallsWithHttpInfo(@javax.annotation.Nullable String include, @javax.annotation.Nullable String since, @javax.annotation.Nullable String until, @javax.annotation.Nullable Boolean earliest, @javax.annotation.Nullable String timeZone, @javax.annotation.Nullable String filterEscalationPolicyIds, @javax.annotation.Nullable String filterScheduleIds, @javax.annotation.Nullable String filterUserIds, @javax.annotation.Nullable String filterServiceIds, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterNotificationTypes) throws ApiException { + public ApiResponse listOncallsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String since, @jakarta.annotation.Nullable String until, @jakarta.annotation.Nullable Boolean earliest, @jakarta.annotation.Nullable String timeZone, @jakarta.annotation.Nullable String filterEscalationPolicyIds, @jakarta.annotation.Nullable String filterScheduleIds, @jakarta.annotation.Nullable String filterUserIds, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterNotificationTypes) throws ApiException { okhttp3.Call localVarCall = listOncallsValidateBeforeCall(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes, null); - return localVarApiClient.execute(localVarCall); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); } /** @@ -255,14 +259,14 @@ public ApiResponse listOncallsWithHttpInfo(@javax.annotation.Nullable Stri * @param include comma separated if needed. eg: user,schedule (optional) * @param since Start of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to current time. (optional) * @param until End of time range in ISO-8601 format (e.g., 2025-01-01T00:00:00Z). Defaults to 'since' time. (optional) - * @param earliest When true, returns only the first on-call user per escalation policy level (optional) + * @param earliest When true, returns only the first on-call entry per escalation policy path and level (optional) * @param timeZone Timezone for response times (e.g., America/New_York). Defaults to UTC. (optional) * @param filterEscalationPolicyIds Comma-separated escalation policy IDs (optional) * @param filterScheduleIds Comma-separated schedule IDs (optional) * @param filterUserIds Comma-separated user IDs (optional) * @param filterServiceIds Comma-separated service IDs (optional) * @param filterGroupIds Comma-separated group IDs (teams) (optional) - * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When present, oncalls are returned from every non-deferral escalation path whose notification_type is in the filter, sorted audible-first. When absent, only the default path's oncalls are returned (existing behavior). (optional) + * @param filterNotificationTypes Comma-separated notification types to include. One or both of: audible, quiet. When omitted, returns oncalls from all non-deferral escalation paths. When provided, limits results to matching notification types and sorts audible-first. (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -275,10 +279,11 @@ public ApiResponse listOncallsWithHttpInfo(@javax.annotation.Nullable Stri 401 responds with unauthorized for invalid token - */ - public okhttp3.Call listOncallsAsync(@javax.annotation.Nullable String include, @javax.annotation.Nullable String since, @javax.annotation.Nullable String until, @javax.annotation.Nullable Boolean earliest, @javax.annotation.Nullable String timeZone, @javax.annotation.Nullable String filterEscalationPolicyIds, @javax.annotation.Nullable String filterScheduleIds, @javax.annotation.Nullable String filterUserIds, @javax.annotation.Nullable String filterServiceIds, @javax.annotation.Nullable String filterGroupIds, @javax.annotation.Nullable String filterNotificationTypes, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listOncallsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String since, @jakarta.annotation.Nullable String until, @jakarta.annotation.Nullable Boolean earliest, @jakarta.annotation.Nullable String timeZone, @jakarta.annotation.Nullable String filterEscalationPolicyIds, @jakarta.annotation.Nullable String filterScheduleIds, @jakarta.annotation.Nullable String filterUserIds, @jakarta.annotation.Nullable String filterServiceIds, @jakarta.annotation.Nullable String filterGroupIds, @jakarta.annotation.Nullable String filterNotificationTypes, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = listOncallsValidateBeforeCall(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } } diff --git a/src/main/java/com/rootly/client/api/OverrideShiftsApi.java b/src/main/java/com/rootly/client/api/OverrideShiftsApi.java index 1273b582..6b8511ec 100644 --- a/src/main/java/com/rootly/client/api/OverrideShiftsApi.java +++ b/src/main/java/com/rootly/client/api/OverrideShiftsApi.java @@ -90,6 +90,7 @@ public void setCustomBaseUrl(String customBaseUrl) { Status Code Description Response Headers 201 returns assignee relationship when schedule nesting enabled - 422 cannot create schedule-based override shift - + 200 returns the existing override without recreating it - 401 responds with unauthorized for invalid token - */ @@ -157,7 +158,7 @@ private okhttp3.Call createOverrideShiftValidateBeforeCall(@jakarta.annotation.N /** * creates an override shift - * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. + * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. This endpoint is idempotent: re-sending an identical override (same user and same start/end time) returns the existing override with a 200 status and does not recreate it. * @param scheduleId (required) * @param newOverrideShift (required) * @return OverrideShiftResponse @@ -168,6 +169,7 @@ private okhttp3.Call createOverrideShiftValidateBeforeCall(@jakarta.annotation.N Status Code Description Response Headers 201 returns assignee relationship when schedule nesting enabled - 422 cannot create schedule-based override shift - + 200 returns the existing override without recreating it - 401 responds with unauthorized for invalid token - */ @@ -178,7 +180,7 @@ public OverrideShiftResponse createOverrideShift(@jakarta.annotation.Nonnull Str /** * creates an override shift - * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. + * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. This endpoint is idempotent: re-sending an identical override (same user and same start/end time) returns the existing override with a 200 status and does not recreate it. * @param scheduleId (required) * @param newOverrideShift (required) * @return ApiResponse<OverrideShiftResponse> @@ -189,6 +191,7 @@ public OverrideShiftResponse createOverrideShift(@jakarta.annotation.Nonnull Str Status Code Description Response Headers 201 returns assignee relationship when schedule nesting enabled - 422 cannot create schedule-based override shift - + 200 returns the existing override without recreating it - 401 responds with unauthorized for invalid token - */ @@ -200,7 +203,7 @@ public ApiResponse createOverrideShiftWithHttpInfo(@jakar /** * creates an override shift (asynchronously) - * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. + * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. This endpoint is idempotent: re-sending an identical override (same user and same start/end time) returns the existing override with a 200 status and does not recreate it. * @param scheduleId (required) * @param newOverrideShift (required) * @param _callback The callback to be executed when the API call finishes @@ -212,6 +215,7 @@ public ApiResponse createOverrideShiftWithHttpInfo(@jakar Status Code Description Response Headers 201 returns assignee relationship when schedule nesting enabled - 422 cannot create schedule-based override shift - + 200 returns the existing override without recreating it - 401 responds with unauthorized for invalid token - */ @@ -232,7 +236,8 @@ public okhttp3.Call createOverrideShiftAsync(@jakarta.annotation.Nonnull String - + +
Response Details
Status Code Description Response Headers
200 override shift deleted -
200 active shadow is preserved with truncated end time -
422 shadow period already ended -
404 resource not found -
*/ @@ -294,7 +299,7 @@ private okhttp3.Call deleteOnCallShadowValidateBeforeCall(@jakarta.annotation.No /** * Delete an on call shadow configuration - * Delete a specific on call shadow configuration by id + * Delete a specific on call shadow configuration by id. Future shadows are hard-deleted. Active shadows (started in the past) have their end time truncated to preserve historical data. * @param id (required) * @return OnCallShadowResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -302,7 +307,8 @@ private okhttp3.Call deleteOnCallShadowValidateBeforeCall(@jakarta.annotation.No - + +
Response Details
Status Code Description Response Headers
200 override shift deleted -
200 active shadow is preserved with truncated end time -
422 shadow period already ended -
404 resource not found -
*/ @@ -313,7 +319,7 @@ public OnCallShadowResponse deleteOnCallShadow(@jakarta.annotation.Nonnull Strin /** * Delete an on call shadow configuration - * Delete a specific on call shadow configuration by id + * Delete a specific on call shadow configuration by id. Future shadows are hard-deleted. Active shadows (started in the past) have their end time truncated to preserve historical data. * @param id (required) * @return ApiResponse<OnCallShadowResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -321,7 +327,8 @@ public OnCallShadowResponse deleteOnCallShadow(@jakarta.annotation.Nonnull Strin - + +
Response Details
Status Code Description Response Headers
200 override shift deleted -
200 active shadow is preserved with truncated end time -
422 shadow period already ended -
404 resource not found -
*/ @@ -333,7 +340,7 @@ public ApiResponse deleteOnCallShadowWithHttpInfo(@jakarta /** * Delete an on call shadow configuration (asynchronously) - * Delete a specific on call shadow configuration by id + * Delete a specific on call shadow configuration by id. Future shadows are hard-deleted. Active shadows (started in the past) have their end time truncated to preserve historical data. * @param id (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -342,7 +349,8 @@ public ApiResponse deleteOnCallShadowWithHttpInfo(@jakarta - + +
Response Details
Status Code Description Response Headers
200 override shift deleted -
200 active shadow is preserved with truncated end time -
422 shadow period already ended -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/PulsesApi.java b/src/main/java/com/rootly/client/api/PulsesApi.java index b661b3b4..5cfbf64d 100644 --- a/src/main/java/com/rootly/client/api/PulsesApi.java +++ b/src/main/java/com/rootly/client/api/PulsesApi.java @@ -362,6 +362,26 @@ public okhttp3.Call getPulseAsync(@jakarta.annotation.Nonnull String id, final A * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterRefsEq (optional) + * @param filterRefsNotEq (optional) + * @param filterRefsIn (optional) + * @param filterRefsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback Callback for upload/download progress @@ -374,7 +394,7 @@ public okhttp3.Call getPulseAsync(@jakarta.annotation.Nonnull String id, final A 200 success - */ - public okhttp3.Call listPulsesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listPulsesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterRefsEq, @jakarta.annotation.Nullable String filterRefsNotEq, @jakarta.annotation.Nullable String filterRefsIn, @jakarta.annotation.Nullable String filterRefsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -471,6 +491,86 @@ public okhttp3.Call listPulsesCall(@jakarta.annotation.Nullable String include, localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSourceEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][eq]", filterSourceEq)); + } + + if (filterSourceNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][not_eq]", filterSourceNotEq)); + } + + if (filterSourceIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][in]", filterSourceIn)); + } + + if (filterSourceNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[source][not_in]", filterSourceNotIn)); + } + + if (filterServicesEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][eq]", filterServicesEq)); + } + + if (filterServicesNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][not_eq]", filterServicesNotEq)); + } + + if (filterServicesIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][in]", filterServicesIn)); + } + + if (filterServicesNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[services][not_in]", filterServicesNotIn)); + } + + if (filterEnvironmentsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][eq]", filterEnvironmentsEq)); + } + + if (filterEnvironmentsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][not_eq]", filterEnvironmentsNotEq)); + } + + if (filterEnvironmentsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][in]", filterEnvironmentsIn)); + } + + if (filterEnvironmentsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[environments][not_in]", filterEnvironmentsNotIn)); + } + + if (filterLabelsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][eq]", filterLabelsEq)); + } + + if (filterLabelsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][not_eq]", filterLabelsNotEq)); + } + + if (filterLabelsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][in]", filterLabelsIn)); + } + + if (filterLabelsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[labels][not_in]", filterLabelsNotIn)); + } + + if (filterRefsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[refs][eq]", filterRefsEq)); + } + + if (filterRefsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[refs][not_eq]", filterRefsNotEq)); + } + + if (filterRefsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[refs][in]", filterRefsIn)); + } + + if (filterRefsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[refs][not_in]", filterRefsNotIn)); + } + if (pageNumber != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); } @@ -499,8 +599,8 @@ public okhttp3.Call listPulsesCall(@jakarta.annotation.Nullable String include, } @SuppressWarnings("rawtypes") - private okhttp3.Call listPulsesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - return listPulsesCall(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + private okhttp3.Call listPulsesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterRefsEq, @jakarta.annotation.Nullable String filterRefsNotEq, @jakarta.annotation.Nullable String filterRefsIn, @jakarta.annotation.Nullable String filterRefsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + return listPulsesCall(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterRefsEq, filterRefsNotEq, filterRefsIn, filterRefsNotIn, pageNumber, pageSize, _callback); } @@ -525,6 +625,26 @@ private okhttp3.Call listPulsesValidateBeforeCall(@jakarta.annotation.Nullable S * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterRefsEq (optional) + * @param filterRefsNotEq (optional) + * @param filterRefsIn (optional) + * @param filterRefsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return PulseList @@ -536,8 +656,8 @@ private okhttp3.Call listPulsesValidateBeforeCall(@jakarta.annotation.Nullable S 200 success - */ - public PulseList listPulses(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - ApiResponse localVarResp = listPulsesWithHttpInfo(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + public PulseList listPulses(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterRefsEq, @jakarta.annotation.Nullable String filterRefsNotEq, @jakarta.annotation.Nullable String filterRefsIn, @jakarta.annotation.Nullable String filterRefsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listPulsesWithHttpInfo(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterRefsEq, filterRefsNotEq, filterRefsIn, filterRefsNotIn, pageNumber, pageSize); return localVarResp.getData(); } @@ -562,6 +682,26 @@ public PulseList listPulses(@jakarta.annotation.Nullable String include, @jakart * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterRefsEq (optional) + * @param filterRefsNotEq (optional) + * @param filterRefsIn (optional) + * @param filterRefsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return ApiResponse<PulseList> @@ -573,8 +713,8 @@ public PulseList listPulses(@jakarta.annotation.Nullable String include, @jakart 200 success - */ - public ApiResponse listPulsesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - okhttp3.Call localVarCall = listPulsesValidateBeforeCall(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, null); + public ApiResponse listPulsesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterRefsEq, @jakarta.annotation.Nullable String filterRefsNotEq, @jakarta.annotation.Nullable String filterRefsIn, @jakarta.annotation.Nullable String filterRefsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listPulsesValidateBeforeCall(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterRefsEq, filterRefsNotEq, filterRefsIn, filterRefsNotIn, pageNumber, pageSize, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -600,6 +740,26 @@ public ApiResponse listPulsesWithHttpInfo(@jakarta.annotation.Nullabl * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSourceEq (optional) + * @param filterSourceNotEq (optional) + * @param filterSourceIn (optional) + * @param filterSourceNotIn (optional) + * @param filterServicesEq (optional) + * @param filterServicesNotEq (optional) + * @param filterServicesIn (optional) + * @param filterServicesNotIn (optional) + * @param filterEnvironmentsEq (optional) + * @param filterEnvironmentsNotEq (optional) + * @param filterEnvironmentsIn (optional) + * @param filterEnvironmentsNotIn (optional) + * @param filterLabelsEq (optional) + * @param filterLabelsNotEq (optional) + * @param filterLabelsIn (optional) + * @param filterLabelsNotIn (optional) + * @param filterRefsEq (optional) + * @param filterRefsNotEq (optional) + * @param filterRefsIn (optional) + * @param filterRefsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback The callback to be executed when the API call finishes @@ -612,9 +772,9 @@ public ApiResponse listPulsesWithHttpInfo(@jakarta.annotation.Nullabl 200 success - */ - public okhttp3.Call listPulsesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listPulsesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSource, @jakarta.annotation.Nullable String filterServices, @jakarta.annotation.Nullable String filterEnvironments, @jakarta.annotation.Nullable String filterLabels, @jakarta.annotation.Nullable String filterRefs, @jakarta.annotation.Nullable String filterStartedAtGt, @jakarta.annotation.Nullable String filterStartedAtGte, @jakarta.annotation.Nullable String filterStartedAtLt, @jakarta.annotation.Nullable String filterStartedAtLte, @jakarta.annotation.Nullable String filterEndedAtGt, @jakarta.annotation.Nullable String filterEndedAtGte, @jakarta.annotation.Nullable String filterEndedAtLt, @jakarta.annotation.Nullable String filterEndedAtLte, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSourceEq, @jakarta.annotation.Nullable String filterSourceNotEq, @jakarta.annotation.Nullable String filterSourceIn, @jakarta.annotation.Nullable String filterSourceNotIn, @jakarta.annotation.Nullable String filterServicesEq, @jakarta.annotation.Nullable String filterServicesNotEq, @jakarta.annotation.Nullable String filterServicesIn, @jakarta.annotation.Nullable String filterServicesNotIn, @jakarta.annotation.Nullable String filterEnvironmentsEq, @jakarta.annotation.Nullable String filterEnvironmentsNotEq, @jakarta.annotation.Nullable String filterEnvironmentsIn, @jakarta.annotation.Nullable String filterEnvironmentsNotIn, @jakarta.annotation.Nullable String filterLabelsEq, @jakarta.annotation.Nullable String filterLabelsNotEq, @jakarta.annotation.Nullable String filterLabelsIn, @jakarta.annotation.Nullable String filterLabelsNotIn, @jakarta.annotation.Nullable String filterRefsEq, @jakarta.annotation.Nullable String filterRefsNotEq, @jakarta.annotation.Nullable String filterRefsIn, @jakarta.annotation.Nullable String filterRefsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listPulsesValidateBeforeCall(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + okhttp3.Call localVarCall = listPulsesValidateBeforeCall(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterRefsEq, filterRefsNotEq, filterRefsIn, filterRefsNotIn, pageNumber, pageSize, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/SchedulesApi.java b/src/main/java/com/rootly/client/api/SchedulesApi.java index b1aae6bb..ac8f182c 100644 --- a/src/main/java/com/rootly/client/api/SchedulesApi.java +++ b/src/main/java/com/rootly/client/api/SchedulesApi.java @@ -478,10 +478,19 @@ public okhttp3.Call getScheduleAsync(@jakarta.annotation.Nonnull String id, fina * @param include (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter schedules by owning team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback Callback for upload/download progress @@ -494,7 +503,7 @@ public okhttp3.Call getScheduleAsync(@jakarta.annotation.Nonnull String id, fina 200 success - */ - public okhttp3.Call listSchedulesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listSchedulesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -531,6 +540,10 @@ public okhttp3.Call listSchedulesCall(@jakarta.annotation.Nullable String includ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); } + if (filterTeamIds != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids]", filterTeamIds)); + } + if (filterCreatedAtGt != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); } @@ -547,6 +560,38 @@ public okhttp3.Call listSchedulesCall(@jakarta.annotation.Nullable String includ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterTeamIdsEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][eq]", filterTeamIdsEq)); + } + + if (filterTeamIdsNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][not_eq]", filterTeamIdsNotEq)); + } + + if (filterTeamIdsIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][in]", filterTeamIdsIn)); + } + + if (filterTeamIdsNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[team_ids][not_in]", filterTeamIdsNotIn)); + } + if (pageNumber != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); } @@ -575,8 +620,8 @@ public okhttp3.Call listSchedulesCall(@jakarta.annotation.Nullable String includ } @SuppressWarnings("rawtypes") - private okhttp3.Call listSchedulesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - return listSchedulesCall(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + private okhttp3.Call listSchedulesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + return listSchedulesCall(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize, _callback); } @@ -586,10 +631,19 @@ private okhttp3.Call listSchedulesValidateBeforeCall(@jakarta.annotation.Nullabl * @param include (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter schedules by owning team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return ScheduleList @@ -601,8 +655,8 @@ private okhttp3.Call listSchedulesValidateBeforeCall(@jakarta.annotation.Nullabl 200 success - */ - public ScheduleList listSchedules(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - ApiResponse localVarResp = listSchedulesWithHttpInfo(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + public ScheduleList listSchedules(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listSchedulesWithHttpInfo(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize); return localVarResp.getData(); } @@ -612,10 +666,19 @@ public ScheduleList listSchedules(@jakarta.annotation.Nullable String include, @ * @param include (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter schedules by owning team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @return ApiResponse<ScheduleList> @@ -627,8 +690,8 @@ public ScheduleList listSchedules(@jakarta.annotation.Nullable String include, @ 200 success - */ - public ApiResponse listSchedulesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - okhttp3.Call localVarCall = listSchedulesValidateBeforeCall(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, null); + public ApiResponse listSchedulesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listSchedulesValidateBeforeCall(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -639,10 +702,19 @@ public ApiResponse listSchedulesWithHttpInfo(@jakarta.annotation.N * @param include (optional) * @param filterSearch (optional) * @param filterName (optional) + * @param filterTeamIds Filter schedules by owning team IDs. Comma-separate multiple values. (optional) * @param filterCreatedAtGt (optional) * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterTeamIdsEq (optional) + * @param filterTeamIdsNotEq (optional) + * @param filterTeamIdsIn (optional) + * @param filterTeamIdsNotIn (optional) * @param pageNumber (optional) * @param pageSize (optional) * @param _callback The callback to be executed when the API call finishes @@ -655,9 +727,9 @@ public ApiResponse listSchedulesWithHttpInfo(@jakarta.annotation.N 200 success - */ - public okhttp3.Call listSchedulesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listSchedulesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterTeamIds, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterTeamIdsEq, @jakarta.annotation.Nullable String filterTeamIdsNotEq, @jakarta.annotation.Nullable String filterTeamIdsIn, @jakarta.annotation.Nullable String filterTeamIdsNotIn, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listSchedulesValidateBeforeCall(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize, _callback); + okhttp3.Call localVarCall = listSchedulesValidateBeforeCall(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/ServicesApi.java b/src/main/java/com/rootly/client/api/ServicesApi.java index f1f5e3a7..c63715d5 100644 --- a/src/main/java/com/rootly/client/api/ServicesApi.java +++ b/src/main/java/com/rootly/client/api/ServicesApi.java @@ -27,12 +27,23 @@ import java.io.IOException; +import com.rootly.client.model.BulkDeleteServices422Response; +import com.rootly.client.model.BulkDestroyServices; +import com.rootly.client.model.BulkDestroyServicesResponse; +import com.rootly.client.model.BulkUpsertServices; +import com.rootly.client.model.BulkUpsertServices422Response; +import com.rootly.client.model.BulkUpsertServicesResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.IncidentsChartResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewService; import com.rootly.client.model.ServiceList; import com.rootly.client.model.ServiceResponse; import com.rootly.client.model.UpdateService; +import com.rootly.client.model.UptimeChartResponse; import java.lang.reflect.Type; import java.util.ArrayList; @@ -77,6 +88,276 @@ public void setCustomBaseUrl(String customBaseUrl) { this.localCustomBaseUrl = customBaseUrl; } + /** + * Build call for bulkDeleteServices + * @param bulkDestroyServices (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteServicesCall(@jakarta.annotation.Nonnull BulkDestroyServices bulkDestroyServices, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkDestroyServices; + + // create path and map variables + String localVarPath = "/v1/services/bulk_delete"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkDeleteServicesValidateBeforeCall(@jakarta.annotation.Nonnull BulkDestroyServices bulkDestroyServices, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkDestroyServices' is set + if (bulkDestroyServices == null) { + throw new ApiException("Missing the required parameter 'bulkDestroyServices' when calling bulkDeleteServices(Async)"); + } + + return bulkDeleteServicesCall(bulkDestroyServices, _callback); + + } + + /** + * Bulk delete Services + * Delete services by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyServices (required) + * @return BulkDestroyServicesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public BulkDestroyServicesResponse bulkDeleteServices(@jakarta.annotation.Nonnull BulkDestroyServices bulkDestroyServices) throws ApiException { + ApiResponse localVarResp = bulkDeleteServicesWithHttpInfo(bulkDestroyServices); + return localVarResp.getData(); + } + + /** + * Bulk delete Services + * Delete services by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyServices (required) + * @return ApiResponse<BulkDestroyServicesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public ApiResponse bulkDeleteServicesWithHttpInfo(@jakarta.annotation.Nonnull BulkDestroyServices bulkDestroyServices) throws ApiException { + okhttp3.Call localVarCall = bulkDeleteServicesValidateBeforeCall(bulkDestroyServices, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk delete Services (asynchronously) + * Delete services by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyServices (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteServicesAsync(@jakarta.annotation.Nonnull BulkDestroyServices bulkDestroyServices, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkDeleteServicesValidateBeforeCall(bulkDestroyServices, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for bulkUpsertServices + * @param bulkUpsertServices (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertServicesCall(@jakarta.annotation.Nonnull BulkUpsertServices bulkUpsertServices, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkUpsertServices; + + // create path and map variables + String localVarPath = "/v1/services/bulk_upsert"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkUpsertServicesValidateBeforeCall(@jakarta.annotation.Nonnull BulkUpsertServices bulkUpsertServices, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkUpsertServices' is set + if (bulkUpsertServices == null) { + throw new ApiException("Missing the required parameter 'bulkUpsertServices' when calling bulkUpsertServices(Async)"); + } + + return bulkUpsertServicesCall(bulkUpsertServices, _callback); + + } + + /** + * Bulk upsert Services + * Create or update multiple services by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertServices (required) + * @return BulkUpsertServicesResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public BulkUpsertServicesResponse bulkUpsertServices(@jakarta.annotation.Nonnull BulkUpsertServices bulkUpsertServices) throws ApiException { + ApiResponse localVarResp = bulkUpsertServicesWithHttpInfo(bulkUpsertServices); + return localVarResp.getData(); + } + + /** + * Bulk upsert Services + * Create or update multiple services by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertServices (required) + * @return ApiResponse<BulkUpsertServicesResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public ApiResponse bulkUpsertServicesWithHttpInfo(@jakarta.annotation.Nonnull BulkUpsertServices bulkUpsertServices) throws ApiException { + okhttp3.Call localVarCall = bulkUpsertServicesValidateBeforeCall(bulkUpsertServices, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk upsert Services (asynchronously) + * Create or update multiple services by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertServices (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertServicesAsync(@jakarta.annotation.Nonnull BulkUpsertServices bulkUpsertServices, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkUpsertServicesValidateBeforeCall(bulkUpsertServices, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for createService * @param newService (required) @@ -212,6 +493,141 @@ public okhttp3.Call createServiceAsync(@jakarta.annotation.Nonnull NewService ne localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for createServiceCatalogProperty + * @param newCatalogProperty (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createServiceCatalogPropertyCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newCatalogProperty; + + // create path and map variables + String localVarPath = "/v1/services/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createServiceCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newCatalogProperty' is set + if (newCatalogProperty == null) { + throw new ApiException("Missing the required parameter 'newCatalogProperty' when calling createServiceCatalogProperty(Async)"); + } + + return createServiceCatalogPropertyCall(newCatalogProperty, _callback); + + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return CatalogPropertyResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public CatalogPropertyResponse createServiceCatalogProperty(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + ApiResponse localVarResp = createServiceCatalogPropertyWithHttpInfo(newCatalogProperty); + return localVarResp.getData(); + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return ApiResponse<CatalogPropertyResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createServiceCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + okhttp3.Call localVarCall = createServiceCatalogPropertyValidateBeforeCall(newCatalogProperty, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a Catalog Property (asynchronously) + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createServiceCatalogPropertyAsync(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createServiceCatalogPropertyValidateBeforeCall(newCatalogProperty, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for deleteService * @param id (required) @@ -559,7 +975,7 @@ private okhttp3.Call getServiceIncidentsChartValidateBeforeCall(@jakarta.annotat * Get service incidents chart * @param id (required) * @param period (required) - * @return Object + * @return IncidentsChartResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -569,8 +985,8 @@ private okhttp3.Call getServiceIncidentsChartValidateBeforeCall(@jakarta.annotat
404 resource not found -
*/ - public Object getServiceIncidentsChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { - ApiResponse localVarResp = getServiceIncidentsChartWithHttpInfo(id, period); + public IncidentsChartResponse getServiceIncidentsChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { + ApiResponse localVarResp = getServiceIncidentsChartWithHttpInfo(id, period); return localVarResp.getData(); } @@ -579,7 +995,7 @@ public Object getServiceIncidentsChart(@jakarta.annotation.Nonnull GetAlertField * Get service incidents chart * @param id (required) * @param period (required) - * @return ApiResponse<Object> + * @return ApiResponse<IncidentsChartResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -589,9 +1005,9 @@ public Object getServiceIncidentsChart(@jakarta.annotation.Nonnull GetAlertField
404 resource not found -
*/ - public ApiResponse getServiceIncidentsChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { + public ApiResponse getServiceIncidentsChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period) throws ApiException { okhttp3.Call localVarCall = getServiceIncidentsChartValidateBeforeCall(id, period, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -611,10 +1027,10 @@ public ApiResponse getServiceIncidentsChartWithHttpInfo(@jakarta.annotat 404 resource not found - */ - public okhttp3.Call getServiceIncidentsChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getServiceIncidentsChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nonnull String period, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getServiceIncidentsChartValidateBeforeCall(id, period, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -698,7 +1114,7 @@ private okhttp3.Call getServiceUptimeChartValidateBeforeCall(@jakarta.annotation * Get service uptime chart * @param id (required) * @param period (optional) - * @return Object + * @return UptimeChartResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -708,8 +1124,8 @@ private okhttp3.Call getServiceUptimeChartValidateBeforeCall(@jakarta.annotation
404 resource not found -
*/ - public Object getServiceUptimeChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { - ApiResponse localVarResp = getServiceUptimeChartWithHttpInfo(id, period); + public UptimeChartResponse getServiceUptimeChart(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { + ApiResponse localVarResp = getServiceUptimeChartWithHttpInfo(id, period); return localVarResp.getData(); } @@ -718,7 +1134,7 @@ public Object getServiceUptimeChart(@jakarta.annotation.Nonnull GetAlertFieldIdP * Get service uptime chart * @param id (required) * @param period (optional) - * @return ApiResponse<Object> + * @return ApiResponse<UptimeChartResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -728,9 +1144,9 @@ public Object getServiceUptimeChart(@jakarta.annotation.Nonnull GetAlertFieldIdP
404 resource not found -
*/ - public ApiResponse getServiceUptimeChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { + public ApiResponse getServiceUptimeChartWithHttpInfo(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period) throws ApiException { okhttp3.Call localVarCall = getServiceUptimeChartValidateBeforeCall(id, period, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -750,10 +1166,215 @@ public ApiResponse getServiceUptimeChartWithHttpInfo(@jakarta.annotation 404 resource not found - */ - public okhttp3.Call getServiceUptimeChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getServiceUptimeChartAsync(@jakarta.annotation.Nonnull GetAlertFieldIdParameter id, @jakarta.annotation.Nullable String period, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getServiceUptimeChartValidateBeforeCall(id, period, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listServiceCatalogProperties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listServiceCatalogPropertiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/services/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (sort != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + if (filterSlug != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); + } + + if (filterName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); + } + + if (filterKind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listServiceCatalogPropertiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + return listServiceCatalogPropertiesCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + + } + + /** + * List Catalog Properties + * List Service Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return CatalogPropertyList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public CatalogPropertyList listServiceCatalogProperties(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + ApiResponse localVarResp = listServiceCatalogPropertiesWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + return localVarResp.getData(); + } + + /** + * List Catalog Properties + * List Service Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return ApiResponse<CatalogPropertyList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listServiceCatalogPropertiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + okhttp3.Call localVarCall = listServiceCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List Catalog Properties (asynchronously) + * List Service Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listServiceCatalogPropertiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listServiceCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -775,6 +1396,22 @@ public okhttp3.Call getServiceUptimeChartAsync(@jakarta.annotation.Nonnull GetAl * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -786,7 +1423,7 @@ public okhttp3.Call getServiceUptimeChartAsync(@jakarta.annotation.Nonnull GetAl 200 success - */ - public okhttp3.Call listServicesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listServicesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -875,6 +1512,70 @@ public okhttp3.Call listServicesCall(@jakarta.annotation.Nullable String include localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterAlertBroadcastEnabledEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][eq]", filterAlertBroadcastEnabledEq)); + } + + if (filterAlertBroadcastEnabledNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][not_eq]", filterAlertBroadcastEnabledNotEq)); + } + + if (filterAlertBroadcastEnabledIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][in]", filterAlertBroadcastEnabledIn)); + } + + if (filterAlertBroadcastEnabledNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][not_in]", filterAlertBroadcastEnabledNotIn)); + } + + if (filterIncidentBroadcastEnabledEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][eq]", filterIncidentBroadcastEnabledEq)); + } + + if (filterIncidentBroadcastEnabledNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][not_eq]", filterIncidentBroadcastEnabledNotEq)); + } + + if (filterIncidentBroadcastEnabledIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][in]", filterIncidentBroadcastEnabledIn)); + } + + if (filterIncidentBroadcastEnabledNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][not_in]", filterIncidentBroadcastEnabledNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -899,8 +1600,8 @@ public okhttp3.Call listServicesCall(@jakarta.annotation.Nullable String include } @SuppressWarnings("rawtypes") - private okhttp3.Call listServicesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listServicesCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listServicesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listServicesCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort, _callback); } @@ -923,6 +1624,22 @@ private okhttp3.Call listServicesValidateBeforeCall(@jakarta.annotation.Nullable * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @return ServiceList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -933,8 +1650,8 @@ private okhttp3.Call listServicesValidateBeforeCall(@jakarta.annotation.Nullable 200 success - */ - public ServiceList listServices(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listServicesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public ServiceList listServices(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listServicesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort); return localVarResp.getData(); } @@ -957,6 +1674,22 @@ public ServiceList listServices(@jakarta.annotation.Nullable String include, @ja * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @return ApiResponse<ServiceList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -967,8 +1700,8 @@ public ServiceList listServices(@jakarta.annotation.Nullable String include, @ja 200 success - */ - public ApiResponse listServicesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listServicesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listServicesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listServicesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -992,6 +1725,22 @@ public ApiResponse listServicesWithHttpInfo(@jakarta.annotation.Nul * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -1003,9 +1752,9 @@ public ApiResponse listServicesWithHttpInfo(@jakarta.annotation.Nul 200 success - */ - public okhttp3.Call listServicesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listServicesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listServicesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listServicesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/SeveritiesApi.java b/src/main/java/com/rootly/client/api/SeveritiesApi.java index 418ef1b1..768521a8 100644 --- a/src/main/java/com/rootly/client/api/SeveritiesApi.java +++ b/src/main/java/com/rootly/client/api/SeveritiesApi.java @@ -488,6 +488,22 @@ public okhttp3.Call getSeverityAsync(@jakarta.annotation.Nonnull GetAlertFieldId * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -499,7 +515,7 @@ public okhttp3.Call getSeverityAsync(@jakarta.annotation.Nonnull GetAlertFieldId 200 success - */ - public okhttp3.Call listSeveritiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listSeveritiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -572,6 +588,70 @@ public okhttp3.Call listSeveritiesCall(@jakarta.annotation.Nullable String inclu localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterSeverityEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][eq]", filterSeverityEq)); + } + + if (filterSeverityNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][not_eq]", filterSeverityNotEq)); + } + + if (filterSeverityIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][in]", filterSeverityIn)); + } + + if (filterSeverityNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[severity][not_in]", filterSeverityNotIn)); + } + + if (filterColorEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][eq]", filterColorEq)); + } + + if (filterColorNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_eq]", filterColorNotEq)); + } + + if (filterColorIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][in]", filterColorIn)); + } + + if (filterColorNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_in]", filterColorNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -596,8 +676,8 @@ public okhttp3.Call listSeveritiesCall(@jakarta.annotation.Nullable String inclu } @SuppressWarnings("rawtypes") - private okhttp3.Call listSeveritiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listSeveritiesCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listSeveritiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listSeveritiesCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, _callback); } @@ -616,6 +696,22 @@ private okhttp3.Call listSeveritiesValidateBeforeCall(@jakarta.annotation.Nullab * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @return SeverityList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -626,8 +722,8 @@ private okhttp3.Call listSeveritiesValidateBeforeCall(@jakarta.annotation.Nullab 200 success - */ - public SeverityList listSeverities(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listSeveritiesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public SeverityList listSeverities(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listSeveritiesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); return localVarResp.getData(); } @@ -646,6 +742,22 @@ public SeverityList listSeverities(@jakarta.annotation.Nullable String include, * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @return ApiResponse<SeverityList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -656,8 +768,8 @@ public SeverityList listSeverities(@jakarta.annotation.Nullable String include, 200 success - */ - public ApiResponse listSeveritiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listSeveritiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listSeveritiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listSeveritiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -677,6 +789,22 @@ public ApiResponse listSeveritiesWithHttpInfo(@jakarta.annotation. * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSeverityEq (optional) + * @param filterSeverityNotEq (optional) + * @param filterSeverityIn (optional) + * @param filterSeverityNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -688,9 +816,9 @@ public ApiResponse listSeveritiesWithHttpInfo(@jakarta.annotation. 200 success - */ - public okhttp3.Call listSeveritiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listSeveritiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSeverity, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSeverityEq, @jakarta.annotation.Nullable String filterSeverityNotEq, @jakarta.annotation.Nullable String filterSeverityIn, @jakarta.annotation.Nullable String filterSeverityNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listSeveritiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listSeveritiesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/ShiftCoverageRequestsApi.java b/src/main/java/com/rootly/client/api/ShiftCoverageRequestsApi.java new file mode 100644 index 00000000..5d4e1300 --- /dev/null +++ b/src/main/java/com/rootly/client/api/ShiftCoverageRequestsApi.java @@ -0,0 +1,600 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewShiftCoverageRequest; +import com.rootly.client.model.ShiftCoverageRequestList; +import com.rootly.client.model.ShiftCoverageRequestResponse; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ShiftCoverageRequestsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public ShiftCoverageRequestsApi() { + this(Configuration.getDefaultApiClient()); + } + + public ShiftCoverageRequestsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createShiftCoverageRequest + * @param scheduleId (required) + * @param newShiftCoverageRequest (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 without override permission, can request coverage for own shift -
422 without override permission, cannot request coverage for another user's shift -
+ */ + public okhttp3.Call createShiftCoverageRequestCall(@jakarta.annotation.Nonnull String scheduleId, @jakarta.annotation.Nonnull NewShiftCoverageRequest newShiftCoverageRequest, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newShiftCoverageRequest; + + // create path and map variables + String localVarPath = "/v1/schedules/{schedule_id}/shift_coverage_requests" + .replace("{" + "schedule_id" + "}", localVarApiClient.escapeString(scheduleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createShiftCoverageRequestValidateBeforeCall(@jakarta.annotation.Nonnull String scheduleId, @jakarta.annotation.Nonnull NewShiftCoverageRequest newShiftCoverageRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'scheduleId' is set + if (scheduleId == null) { + throw new ApiException("Missing the required parameter 'scheduleId' when calling createShiftCoverageRequest(Async)"); + } + + // verify the required parameter 'newShiftCoverageRequest' is set + if (newShiftCoverageRequest == null) { + throw new ApiException("Missing the required parameter 'newShiftCoverageRequest' when calling createShiftCoverageRequest(Async)"); + } + + return createShiftCoverageRequestCall(scheduleId, newShiftCoverageRequest, _callback); + + } + + /** + * creates shift coverage requests + * Creates coverage requests for the shifts overlapping the requested time range. A range can span multiple consecutive shifts (e.g. across a handoff), so one or more coverage requests may be created; the response is always a list. A coverage request broadcasts to schedule members so someone can volunteer to cover the shift. + * @param scheduleId (required) + * @param newShiftCoverageRequest (required) + * @return ShiftCoverageRequestList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 without override permission, can request coverage for own shift -
422 without override permission, cannot request coverage for another user's shift -
+ */ + public ShiftCoverageRequestList createShiftCoverageRequest(@jakarta.annotation.Nonnull String scheduleId, @jakarta.annotation.Nonnull NewShiftCoverageRequest newShiftCoverageRequest) throws ApiException { + ApiResponse localVarResp = createShiftCoverageRequestWithHttpInfo(scheduleId, newShiftCoverageRequest); + return localVarResp.getData(); + } + + /** + * creates shift coverage requests + * Creates coverage requests for the shifts overlapping the requested time range. A range can span multiple consecutive shifts (e.g. across a handoff), so one or more coverage requests may be created; the response is always a list. A coverage request broadcasts to schedule members so someone can volunteer to cover the shift. + * @param scheduleId (required) + * @param newShiftCoverageRequest (required) + * @return ApiResponse<ShiftCoverageRequestList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 without override permission, can request coverage for own shift -
422 without override permission, cannot request coverage for another user's shift -
+ */ + public ApiResponse createShiftCoverageRequestWithHttpInfo(@jakarta.annotation.Nonnull String scheduleId, @jakarta.annotation.Nonnull NewShiftCoverageRequest newShiftCoverageRequest) throws ApiException { + okhttp3.Call localVarCall = createShiftCoverageRequestValidateBeforeCall(scheduleId, newShiftCoverageRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * creates shift coverage requests (asynchronously) + * Creates coverage requests for the shifts overlapping the requested time range. A range can span multiple consecutive shifts (e.g. across a handoff), so one or more coverage requests may be created; the response is always a list. A coverage request broadcasts to schedule members so someone can volunteer to cover the shift. + * @param scheduleId (required) + * @param newShiftCoverageRequest (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
201 without override permission, can request coverage for own shift -
422 without override permission, cannot request coverage for another user's shift -
+ */ + public okhttp3.Call createShiftCoverageRequestAsync(@jakarta.annotation.Nonnull String scheduleId, @jakarta.annotation.Nonnull NewShiftCoverageRequest newShiftCoverageRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createShiftCoverageRequestValidateBeforeCall(scheduleId, newShiftCoverageRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteShiftCoverageRequest + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request deleted -
+ */ + public okhttp3.Call deleteShiftCoverageRequestCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/shift_coverage_requests/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteShiftCoverageRequestValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteShiftCoverageRequest(Async)"); + } + + return deleteShiftCoverageRequestCall(id, _callback); + + } + + /** + * deletes a shift coverage request + * Deletes a shift coverage request. + * @param id (required) + * @return ShiftCoverageRequestResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request deleted -
+ */ + public ShiftCoverageRequestResponse deleteShiftCoverageRequest(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = deleteShiftCoverageRequestWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * deletes a shift coverage request + * Deletes a shift coverage request. + * @param id (required) + * @return ApiResponse<ShiftCoverageRequestResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request deleted -
+ */ + public ApiResponse deleteShiftCoverageRequestWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteShiftCoverageRequestValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * deletes a shift coverage request (asynchronously) + * Deletes a shift coverage request. + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request deleted -
+ */ + public okhttp3.Call deleteShiftCoverageRequestAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteShiftCoverageRequestValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getShiftCoverageRequest + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request found -
+ */ + public okhttp3.Call getShiftCoverageRequestCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/shift_coverage_requests/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getShiftCoverageRequestValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getShiftCoverageRequest(Async)"); + } + + return getShiftCoverageRequestCall(id, _callback); + + } + + /** + * retrieves a shift coverage request + * Retrieves a specific shift coverage request. + * @param id (required) + * @return ShiftCoverageRequestResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request found -
+ */ + public ShiftCoverageRequestResponse getShiftCoverageRequest(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = getShiftCoverageRequestWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * retrieves a shift coverage request + * Retrieves a specific shift coverage request. + * @param id (required) + * @return ApiResponse<ShiftCoverageRequestResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request found -
+ */ + public ApiResponse getShiftCoverageRequestWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = getShiftCoverageRequestValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * retrieves a shift coverage request (asynchronously) + * Retrieves a specific shift coverage request. + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_request found -
+ */ + public okhttp3.Call getShiftCoverageRequestAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getShiftCoverageRequestValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listShiftCoverageRequests + * @param scheduleId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_requests listed -
+ */ + public okhttp3.Call listShiftCoverageRequestsCall(@jakarta.annotation.Nonnull String scheduleId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/schedules/{schedule_id}/shift_coverage_requests" + .replace("{" + "schedule_id" + "}", localVarApiClient.escapeString(scheduleId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listShiftCoverageRequestsValidateBeforeCall(@jakarta.annotation.Nonnull String scheduleId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'scheduleId' is set + if (scheduleId == null) { + throw new ApiException("Missing the required parameter 'scheduleId' when calling listShiftCoverageRequests(Async)"); + } + + return listShiftCoverageRequestsCall(scheduleId, _callback); + + } + + /** + * list shift coverage requests + * List active shift coverage requests for a schedule. + * @param scheduleId (required) + * @return ShiftCoverageRequestList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_requests listed -
+ */ + public ShiftCoverageRequestList listShiftCoverageRequests(@jakarta.annotation.Nonnull String scheduleId) throws ApiException { + ApiResponse localVarResp = listShiftCoverageRequestsWithHttpInfo(scheduleId); + return localVarResp.getData(); + } + + /** + * list shift coverage requests + * List active shift coverage requests for a schedule. + * @param scheduleId (required) + * @return ApiResponse<ShiftCoverageRequestList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_requests listed -
+ */ + public ApiResponse listShiftCoverageRequestsWithHttpInfo(@jakarta.annotation.Nonnull String scheduleId) throws ApiException { + okhttp3.Call localVarCall = listShiftCoverageRequestsValidateBeforeCall(scheduleId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * list shift coverage requests (asynchronously) + * List active shift coverage requests for a schedule. + * @param scheduleId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 shift_coverage_requests listed -
+ */ + public okhttp3.Call listShiftCoverageRequestsAsync(@jakarta.annotation.Nonnull String scheduleId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listShiftCoverageRequestsValidateBeforeCall(scheduleId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/ShiftsApi.java b/src/main/java/com/rootly/client/api/ShiftsApi.java index 5f3e9b66..6ffc5ae4 100644 --- a/src/main/java/com/rootly/client/api/ShiftsApi.java +++ b/src/main/java/com/rootly/client/api/ShiftsApi.java @@ -227,6 +227,8 @@ public okhttp3.Call getScheduleShiftsAsync(@jakarta.annotation.Nonnull String id * @param to End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01T00:00:00+00:00) (optional) * @param userIds (optional) * @param scheduleIds (optional) + * @param pageNumber Page number (defaults to 1) (optional) + * @param pageSize Number of shifts per page (defaults to 50, max 1000) (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -238,7 +240,7 @@ public okhttp3.Call getScheduleShiftsAsync(@jakarta.annotation.Nonnull String id 404 resource not found - */ - public okhttp3.Call listShiftsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listShiftsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -283,6 +285,14 @@ public okhttp3.Call listShiftsCall(@jakarta.annotation.Nullable String include, localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "schedule_ids[]", scheduleIds)); } + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -303,8 +313,8 @@ public okhttp3.Call listShiftsCall(@jakarta.annotation.Nullable String include, } @SuppressWarnings("rawtypes") - private okhttp3.Call listShiftsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, final ApiCallback _callback) throws ApiException { - return listShiftsCall(include, from, to, userIds, scheduleIds, _callback); + private okhttp3.Call listShiftsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + return listShiftsCall(include, from, to, userIds, scheduleIds, pageNumber, pageSize, _callback); } @@ -316,6 +326,8 @@ private okhttp3.Call listShiftsValidateBeforeCall(@jakarta.annotation.Nullable S * @param to End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01T00:00:00+00:00) (optional) * @param userIds (optional) * @param scheduleIds (optional) + * @param pageNumber Page number (defaults to 1) (optional) + * @param pageSize Number of shifts per page (defaults to 50, max 1000) (optional) * @return ShiftList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -326,8 +338,8 @@ private okhttp3.Call listShiftsValidateBeforeCall(@jakarta.annotation.Nullable S 404 resource not found - */ - public ShiftList listShifts(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds) throws ApiException { - ApiResponse localVarResp = listShiftsWithHttpInfo(include, from, to, userIds, scheduleIds); + public ShiftList listShifts(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listShiftsWithHttpInfo(include, from, to, userIds, scheduleIds, pageNumber, pageSize); return localVarResp.getData(); } @@ -339,6 +351,8 @@ public ShiftList listShifts(@jakarta.annotation.Nullable String include, @jakart * @param to End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01T00:00:00+00:00) (optional) * @param userIds (optional) * @param scheduleIds (optional) + * @param pageNumber Page number (defaults to 1) (optional) + * @param pageSize Number of shifts per page (defaults to 50, max 1000) (optional) * @return ApiResponse<ShiftList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -349,8 +363,8 @@ public ShiftList listShifts(@jakarta.annotation.Nullable String include, @jakart 404 resource not found - */ - public ApiResponse listShiftsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds) throws ApiException { - okhttp3.Call localVarCall = listShiftsValidateBeforeCall(include, from, to, userIds, scheduleIds, null); + public ApiResponse listShiftsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listShiftsValidateBeforeCall(include, from, to, userIds, scheduleIds, pageNumber, pageSize, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -363,6 +377,8 @@ public ApiResponse listShiftsWithHttpInfo(@jakarta.annotation.Nullabl * @param to End range for shifts in ISO-8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01T00:00:00+00:00) (optional) * @param userIds (optional) * @param scheduleIds (optional) + * @param pageNumber Page number (defaults to 1) (optional) + * @param pageSize Number of shifts per page (defaults to 50, max 1000) (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -374,9 +390,9 @@ public ApiResponse listShiftsWithHttpInfo(@jakarta.annotation.Nullabl 404 resource not found - */ - public okhttp3.Call listShiftsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listShiftsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String from, @jakarta.annotation.Nullable String to, @jakarta.annotation.Nullable List userIds, @jakarta.annotation.Nullable List scheduleIds, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listShiftsValidateBeforeCall(include, from, to, userIds, scheduleIds, _callback); + okhttp3.Call localVarCall = listShiftsValidateBeforeCall(include, from, to, userIds, scheduleIds, pageNumber, pageSize, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/SlasApi.java b/src/main/java/com/rootly/client/api/SlasApi.java index 3732d4fd..b4f51b13 100644 --- a/src/main/java/com/rootly/client/api/SlasApi.java +++ b/src/main/java/com/rootly/client/api/SlasApi.java @@ -91,7 +91,7 @@ public void setCustomBaseUrl(String customBaseUrl) { 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createSLACall(@javax.annotation.Nonnull NewSla newSla, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createSLACall(@jakarta.annotation.Nonnull NewSla newSla, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -137,7 +137,7 @@ public okhttp3.Call createSLACall(@javax.annotation.Nonnull NewSla newSla, final } @SuppressWarnings("rawtypes") - private okhttp3.Call createSLAValidateBeforeCall(@javax.annotation.Nonnull NewSla newSla, final ApiCallback _callback) throws ApiException { + private okhttp3.Call createSLAValidateBeforeCall(@jakarta.annotation.Nonnull NewSla newSla, final ApiCallback _callback) throws ApiException { // verify the required parameter 'newSla' is set if (newSla == null) { throw new ApiException("Missing the required parameter 'newSla' when calling createSLA(Async)"); @@ -162,7 +162,7 @@ private okhttp3.Call createSLAValidateBeforeCall(@javax.annotation.Nonnull NewSl 401 responds with unauthorized for invalid token - */ - public SlaResponse createSLA(@javax.annotation.Nonnull NewSla newSla) throws ApiException { + public SlaResponse createSLA(@jakarta.annotation.Nonnull NewSla newSla) throws ApiException { ApiResponse localVarResp = createSLAWithHttpInfo(newSla); return localVarResp.getData(); } @@ -182,7 +182,7 @@ public SlaResponse createSLA(@javax.annotation.Nonnull NewSla newSla) throws Api 401 responds with unauthorized for invalid token - */ - public ApiResponse createSLAWithHttpInfo(@javax.annotation.Nonnull NewSla newSla) throws ApiException { + public ApiResponse createSLAWithHttpInfo(@jakarta.annotation.Nonnull NewSla newSla) throws ApiException { okhttp3.Call localVarCall = createSLAValidateBeforeCall(newSla, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -204,7 +204,7 @@ public ApiResponse createSLAWithHttpInfo(@javax.annotation.Nonnull 401 responds with unauthorized for invalid token - */ - public okhttp3.Call createSLAAsync(@javax.annotation.Nonnull NewSla newSla, final ApiCallback _callback) throws ApiException { + public okhttp3.Call createSLAAsync(@jakarta.annotation.Nonnull NewSla newSla, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = createSLAValidateBeforeCall(newSla, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -225,7 +225,7 @@ public okhttp3.Call createSLAAsync(@javax.annotation.Nonnull NewSla newSla, fina 404 resource not found for another team - */ - public okhttp3.Call deleteSLACall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteSLACall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -271,7 +271,7 @@ public okhttp3.Call deleteSLACall(@javax.annotation.Nonnull String id, final Api } @SuppressWarnings("rawtypes") - private okhttp3.Call deleteSLAValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call deleteSLAValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling deleteSLA(Async)"); @@ -295,7 +295,7 @@ private okhttp3.Call deleteSLAValidateBeforeCall(@javax.annotation.Nonnull Strin 404 resource not found for another team - */ - public SlaResponse deleteSLA(@javax.annotation.Nonnull String id) throws ApiException { + public SlaResponse deleteSLA(@jakarta.annotation.Nonnull String id) throws ApiException { ApiResponse localVarResp = deleteSLAWithHttpInfo(id); return localVarResp.getData(); } @@ -314,7 +314,7 @@ public SlaResponse deleteSLA(@javax.annotation.Nonnull String id) throws ApiExce 404 resource not found for another team - */ - public ApiResponse deleteSLAWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse deleteSLAWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = deleteSLAValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -335,7 +335,7 @@ public ApiResponse deleteSLAWithHttpInfo(@javax.annotation.Nonnull 404 resource not found for another team - */ - public okhttp3.Call deleteSLAAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call deleteSLAAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = deleteSLAValidateBeforeCall(id, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -356,7 +356,7 @@ public okhttp3.Call deleteSLAAsync(@javax.annotation.Nonnull String id, final Ap 404 resource not found for another team - */ - public okhttp3.Call getSLACall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getSLACall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -402,7 +402,7 @@ public okhttp3.Call getSLACall(@javax.annotation.Nonnull String id, final ApiCal } @SuppressWarnings("rawtypes") - private okhttp3.Call getSLAValidateBeforeCall(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getSLAValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling getSLA(Async)"); @@ -426,7 +426,7 @@ private okhttp3.Call getSLAValidateBeforeCall(@javax.annotation.Nonnull String i 404 resource not found for another team - */ - public SlaResponse getSLA(@javax.annotation.Nonnull String id) throws ApiException { + public SlaResponse getSLA(@jakarta.annotation.Nonnull String id) throws ApiException { ApiResponse localVarResp = getSLAWithHttpInfo(id); return localVarResp.getData(); } @@ -445,7 +445,7 @@ public SlaResponse getSLA(@javax.annotation.Nonnull String id) throws ApiExcepti 404 resource not found for another team - */ - public ApiResponse getSLAWithHttpInfo(@javax.annotation.Nonnull String id) throws ApiException { + public ApiResponse getSLAWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { okhttp3.Call localVarCall = getSLAValidateBeforeCall(id, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -466,7 +466,7 @@ public ApiResponse getSLAWithHttpInfo(@javax.annotation.Nonnull Str 404 resource not found for another team - */ - public okhttp3.Call getSLAAsync(@javax.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getSLAAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getSLAValidateBeforeCall(id, _callback); Type localVarReturnType = new TypeToken(){}.getType(); @@ -484,6 +484,14 @@ public okhttp3.Call getSLAAsync(@javax.annotation.Nonnull String id, final ApiCa * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -495,7 +503,7 @@ public okhttp3.Call getSLAAsync(@javax.annotation.Nonnull String id, final ApiCa 200 success - */ - public okhttp3.Call listSLAsCall(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listSLAsCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -556,6 +564,38 @@ public okhttp3.Call listSLAsCall(@javax.annotation.Nullable Integer pageNumber, localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -580,8 +620,8 @@ public okhttp3.Call listSLAsCall(@javax.annotation.Nullable Integer pageNumber, } @SuppressWarnings("rawtypes") - private okhttp3.Call listSLAsValidateBeforeCall(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listSLAsCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listSLAsValidateBeforeCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listSLAsCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); } @@ -597,6 +637,14 @@ private okhttp3.Call listSLAsValidateBeforeCall(@javax.annotation.Nullable Integ * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return SlaList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -607,8 +655,8 @@ private okhttp3.Call listSLAsValidateBeforeCall(@javax.annotation.Nullable Integ 200 success - */ - public SlaList listSLAs(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listSLAsWithHttpInfo(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public SlaList listSLAs(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listSLAsWithHttpInfo(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); return localVarResp.getData(); } @@ -624,6 +672,14 @@ public SlaList listSLAs(@javax.annotation.Nullable Integer pageNumber, @javax.an * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @return ApiResponse<SlaList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -634,8 +690,8 @@ public SlaList listSLAs(@javax.annotation.Nullable Integer pageNumber, @javax.an 200 success - */ - public ApiResponse listSLAsWithHttpInfo(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listSLAsValidateBeforeCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listSLAsWithHttpInfo(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listSLAsValidateBeforeCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -652,6 +708,14 @@ public ApiResponse listSLAsWithHttpInfo(@javax.annotation.Nullable Inte * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -663,9 +727,9 @@ public ApiResponse listSLAsWithHttpInfo(@javax.annotation.Nullable Inte 200 success - */ - public okhttp3.Call listSLAsAsync(@javax.annotation.Nullable Integer pageNumber, @javax.annotation.Nullable Integer pageSize, @javax.annotation.Nullable String filterSearch, @javax.annotation.Nullable String filterSlug, @javax.annotation.Nullable String filterName, @javax.annotation.Nullable String filterCreatedAtGt, @javax.annotation.Nullable String filterCreatedAtGte, @javax.annotation.Nullable String filterCreatedAtLt, @javax.annotation.Nullable String filterCreatedAtLte, @javax.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listSLAsAsync(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listSLAsValidateBeforeCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listSLAsValidateBeforeCall(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -685,7 +749,7 @@ public okhttp3.Call listSLAsAsync(@javax.annotation.Nullable Integer pageNumber, 404 resource not found for another team - */ - public okhttp3.Call updateSLACall(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateSla updateSla, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateSLACall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateSla updateSla, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -732,7 +796,7 @@ public okhttp3.Call updateSLACall(@javax.annotation.Nonnull String id, @javax.an } @SuppressWarnings("rawtypes") - private okhttp3.Call updateSLAValidateBeforeCall(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateSla updateSla, final ApiCallback _callback) throws ApiException { + private okhttp3.Call updateSLAValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateSla updateSla, final ApiCallback _callback) throws ApiException { // verify the required parameter 'id' is set if (id == null) { throw new ApiException("Missing the required parameter 'id' when calling updateSLA(Async)"); @@ -762,7 +826,7 @@ private okhttp3.Call updateSLAValidateBeforeCall(@javax.annotation.Nonnull Strin 404 resource not found for another team - */ - public SlaResponse updateSLA(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateSla updateSla) throws ApiException { + public SlaResponse updateSLA(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateSla updateSla) throws ApiException { ApiResponse localVarResp = updateSLAWithHttpInfo(id, updateSla); return localVarResp.getData(); } @@ -782,7 +846,7 @@ public SlaResponse updateSLA(@javax.annotation.Nonnull String id, @javax.annotat 404 resource not found for another team - */ - public ApiResponse updateSLAWithHttpInfo(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateSla updateSla) throws ApiException { + public ApiResponse updateSLAWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateSla updateSla) throws ApiException { okhttp3.Call localVarCall = updateSLAValidateBeforeCall(id, updateSla, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); @@ -804,7 +868,7 @@ public ApiResponse updateSLAWithHttpInfo(@javax.annotation.Nonnull 404 resource not found for another team - */ - public okhttp3.Call updateSLAAsync(@javax.annotation.Nonnull String id, @javax.annotation.Nonnull UpdateSla updateSla, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateSLAAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateSla updateSla, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = updateSLAValidateBeforeCall(id, updateSla, _callback); Type localVarReturnType = new TypeToken(){}.getType(); diff --git a/src/main/java/com/rootly/client/api/StatusPageAnnouncementsApi.java b/src/main/java/com/rootly/client/api/StatusPageAnnouncementsApi.java new file mode 100644 index 00000000..a648f939 --- /dev/null +++ b/src/main/java/com/rootly/client/api/StatusPageAnnouncementsApi.java @@ -0,0 +1,778 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewStatusPageAnnouncement; +import com.rootly.client.model.StatusPageAnnouncementList; +import com.rootly.client.model.StatusPageAnnouncementResponse; +import com.rootly.client.model.UpdateStatusPageAnnouncement; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class StatusPageAnnouncementsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public StatusPageAnnouncementsApi() { + this(Configuration.getDefaultApiClient()); + } + + public StatusPageAnnouncementsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createStatusPageAnnouncement + * @param statusPageId (required) + * @param newStatusPageAnnouncement (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 status_page_announcement created without notifying subscribers -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createStatusPageAnnouncementCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageAnnouncement newStatusPageAnnouncement, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newStatusPageAnnouncement; + + // create path and map variables + String localVarPath = "/v1/status-pages/{status_page_id}/announcements" + .replace("{" + "status_page_id" + "}", localVarApiClient.escapeString(statusPageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createStatusPageAnnouncementValidateBeforeCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageAnnouncement newStatusPageAnnouncement, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'statusPageId' is set + if (statusPageId == null) { + throw new ApiException("Missing the required parameter 'statusPageId' when calling createStatusPageAnnouncement(Async)"); + } + + // verify the required parameter 'newStatusPageAnnouncement' is set + if (newStatusPageAnnouncement == null) { + throw new ApiException("Missing the required parameter 'newStatusPageAnnouncement' when calling createStatusPageAnnouncement(Async)"); + } + + return createStatusPageAnnouncementCall(statusPageId, newStatusPageAnnouncement, _callback); + + } + + /** + * Creates a status page announcement + * Posts an announcement to a status page and notifies its subscribers unless notify_subscribers is false + * @param statusPageId (required) + * @param newStatusPageAnnouncement (required) + * @return StatusPageAnnouncementResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 status_page_announcement created without notifying subscribers -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public StatusPageAnnouncementResponse createStatusPageAnnouncement(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageAnnouncement newStatusPageAnnouncement) throws ApiException { + ApiResponse localVarResp = createStatusPageAnnouncementWithHttpInfo(statusPageId, newStatusPageAnnouncement); + return localVarResp.getData(); + } + + /** + * Creates a status page announcement + * Posts an announcement to a status page and notifies its subscribers unless notify_subscribers is false + * @param statusPageId (required) + * @param newStatusPageAnnouncement (required) + * @return ApiResponse<StatusPageAnnouncementResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 status_page_announcement created without notifying subscribers -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createStatusPageAnnouncementWithHttpInfo(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageAnnouncement newStatusPageAnnouncement) throws ApiException { + okhttp3.Call localVarCall = createStatusPageAnnouncementValidateBeforeCall(statusPageId, newStatusPageAnnouncement, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a status page announcement (asynchronously) + * Posts an announcement to a status page and notifies its subscribers unless notify_subscribers is false + * @param statusPageId (required) + * @param newStatusPageAnnouncement (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 status_page_announcement created without notifying subscribers -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createStatusPageAnnouncementAsync(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageAnnouncement newStatusPageAnnouncement, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createStatusPageAnnouncementValidateBeforeCall(statusPageId, newStatusPageAnnouncement, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteStatusPageAnnouncement + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement deleted -
404 resource not found -
+ */ + public okhttp3.Call deleteStatusPageAnnouncementCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/announcements/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteStatusPageAnnouncementValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteStatusPageAnnouncement(Async)"); + } + + return deleteStatusPageAnnouncementCall(id, _callback); + + } + + /** + * Delete a status page announcement + * Delete a specific status page announcement by id + * @param id (required) + * @return StatusPageAnnouncementResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement deleted -
404 resource not found -
+ */ + public StatusPageAnnouncementResponse deleteStatusPageAnnouncement(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = deleteStatusPageAnnouncementWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Delete a status page announcement + * Delete a specific status page announcement by id + * @param id (required) + * @return ApiResponse<StatusPageAnnouncementResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement deleted -
404 resource not found -
+ */ + public ApiResponse deleteStatusPageAnnouncementWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteStatusPageAnnouncementValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Delete a status page announcement (asynchronously) + * Delete a specific status page announcement by id + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement deleted -
404 resource not found -
+ */ + public okhttp3.Call deleteStatusPageAnnouncementAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteStatusPageAnnouncementValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getStatusPageAnnouncement + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status page announcement found -
404 resource not found -
+ */ + public okhttp3.Call getStatusPageAnnouncementCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/announcements/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStatusPageAnnouncementValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getStatusPageAnnouncement(Async)"); + } + + return getStatusPageAnnouncementCall(id, _callback); + + } + + /** + * Retrieves a status page announcement + * Retrieves a specific status page announcement by id + * @param id (required) + * @return StatusPageAnnouncementResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status page announcement found -
404 resource not found -
+ */ + public StatusPageAnnouncementResponse getStatusPageAnnouncement(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = getStatusPageAnnouncementWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Retrieves a status page announcement + * Retrieves a specific status page announcement by id + * @param id (required) + * @return ApiResponse<StatusPageAnnouncementResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status page announcement found -
404 resource not found -
+ */ + public ApiResponse getStatusPageAnnouncementWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = getStatusPageAnnouncementValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Retrieves a status page announcement (asynchronously) + * Retrieves a specific status page announcement by id + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status page announcement found -
404 resource not found -
+ */ + public okhttp3.Call getStatusPageAnnouncementAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStatusPageAnnouncementValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listStatusPageAnnouncements + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listStatusPageAnnouncementsCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/status-pages/{status_page_id}/announcements" + .replace("{" + "status_page_id" + "}", localVarApiClient.escapeString(statusPageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listStatusPageAnnouncementsValidateBeforeCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'statusPageId' is set + if (statusPageId == null) { + throw new ApiException("Missing the required parameter 'statusPageId' when calling listStatusPageAnnouncements(Async)"); + } + + return listStatusPageAnnouncementsCall(statusPageId, include, pageNumber, pageSize, _callback); + + } + + /** + * List status page announcements + * List status page announcements + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return StatusPageAnnouncementList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public StatusPageAnnouncementList listStatusPageAnnouncements(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listStatusPageAnnouncementsWithHttpInfo(statusPageId, include, pageNumber, pageSize); + return localVarResp.getData(); + } + + /** + * List status page announcements + * List status page announcements + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return ApiResponse<StatusPageAnnouncementList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listStatusPageAnnouncementsWithHttpInfo(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listStatusPageAnnouncementsValidateBeforeCall(statusPageId, include, pageNumber, pageSize, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List status page announcements (asynchronously) + * List status page announcements + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listStatusPageAnnouncementsAsync(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listStatusPageAnnouncementsValidateBeforeCall(statusPageId, include, pageNumber, pageSize, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateStatusPageAnnouncement + * @param id (required) + * @param updateStatusPageAnnouncement (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement updated -
404 resource not found -
+ */ + public okhttp3.Call updateStatusPageAnnouncementCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageAnnouncement updateStatusPageAnnouncement, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateStatusPageAnnouncement; + + // create path and map variables + String localVarPath = "/v1/announcements/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateStatusPageAnnouncementValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageAnnouncement updateStatusPageAnnouncement, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateStatusPageAnnouncement(Async)"); + } + + // verify the required parameter 'updateStatusPageAnnouncement' is set + if (updateStatusPageAnnouncement == null) { + throw new ApiException("Missing the required parameter 'updateStatusPageAnnouncement' when calling updateStatusPageAnnouncement(Async)"); + } + + return updateStatusPageAnnouncementCall(id, updateStatusPageAnnouncement, _callback); + + } + + /** + * Update a status page announcement + * Update a specific status page announcement by id + * @param id (required) + * @param updateStatusPageAnnouncement (required) + * @return StatusPageAnnouncementResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement updated -
404 resource not found -
+ */ + public StatusPageAnnouncementResponse updateStatusPageAnnouncement(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageAnnouncement updateStatusPageAnnouncement) throws ApiException { + ApiResponse localVarResp = updateStatusPageAnnouncementWithHttpInfo(id, updateStatusPageAnnouncement); + return localVarResp.getData(); + } + + /** + * Update a status page announcement + * Update a specific status page announcement by id + * @param id (required) + * @param updateStatusPageAnnouncement (required) + * @return ApiResponse<StatusPageAnnouncementResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement updated -
404 resource not found -
+ */ + public ApiResponse updateStatusPageAnnouncementWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageAnnouncement updateStatusPageAnnouncement) throws ApiException { + okhttp3.Call localVarCall = updateStatusPageAnnouncementValidateBeforeCall(id, updateStatusPageAnnouncement, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update a status page announcement (asynchronously) + * Update a specific status page announcement by id + * @param id (required) + * @param updateStatusPageAnnouncement (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 status_page_announcement updated -
404 resource not found -
+ */ + public okhttp3.Call updateStatusPageAnnouncementAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageAnnouncement updateStatusPageAnnouncement, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateStatusPageAnnouncementValidateBeforeCall(id, updateStatusPageAnnouncement, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/StatusPageComponentGroupsApi.java b/src/main/java/com/rootly/client/api/StatusPageComponentGroupsApi.java new file mode 100644 index 00000000..381740a0 --- /dev/null +++ b/src/main/java/com/rootly/client/api/StatusPageComponentGroupsApi.java @@ -0,0 +1,777 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewStatusPageComponentGroup; +import com.rootly.client.model.StatusPageComponentGroupList; +import com.rootly.client.model.StatusPageComponentGroupResponse; +import com.rootly.client.model.UpdateStatusPageComponentGroup; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class StatusPageComponentGroupsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public StatusPageComponentGroupsApi() { + this(Configuration.getDefaultApiClient()); + } + + public StatusPageComponentGroupsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createStatusPageComponentGroup + * @param statusPageId (required) + * @param newStatusPageComponentGroup (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 component group created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createStatusPageComponentGroupCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponentGroup newStatusPageComponentGroup, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newStatusPageComponentGroup; + + // create path and map variables + String localVarPath = "/v1/status-pages/{status_page_id}/component-groups" + .replace("{" + "status_page_id" + "}", localVarApiClient.escapeString(statusPageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createStatusPageComponentGroupValidateBeforeCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponentGroup newStatusPageComponentGroup, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'statusPageId' is set + if (statusPageId == null) { + throw new ApiException("Missing the required parameter 'statusPageId' when calling createStatusPageComponentGroup(Async)"); + } + + // verify the required parameter 'newStatusPageComponentGroup' is set + if (newStatusPageComponentGroup == null) { + throw new ApiException("Missing the required parameter 'newStatusPageComponentGroup' when calling createStatusPageComponentGroup(Async)"); + } + + return createStatusPageComponentGroupCall(statusPageId, newStatusPageComponentGroup, _callback); + + } + + /** + * Creates a status page component group + * Creates a new status page component group from provided data + * @param statusPageId (required) + * @param newStatusPageComponentGroup (required) + * @return StatusPageComponentGroupResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 component group created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public StatusPageComponentGroupResponse createStatusPageComponentGroup(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponentGroup newStatusPageComponentGroup) throws ApiException { + ApiResponse localVarResp = createStatusPageComponentGroupWithHttpInfo(statusPageId, newStatusPageComponentGroup); + return localVarResp.getData(); + } + + /** + * Creates a status page component group + * Creates a new status page component group from provided data + * @param statusPageId (required) + * @param newStatusPageComponentGroup (required) + * @return ApiResponse<StatusPageComponentGroupResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 component group created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createStatusPageComponentGroupWithHttpInfo(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponentGroup newStatusPageComponentGroup) throws ApiException { + okhttp3.Call localVarCall = createStatusPageComponentGroupValidateBeforeCall(statusPageId, newStatusPageComponentGroup, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a status page component group (asynchronously) + * Creates a new status page component group from provided data + * @param statusPageId (required) + * @param newStatusPageComponentGroup (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 component group created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createStatusPageComponentGroupAsync(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponentGroup newStatusPageComponentGroup, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createStatusPageComponentGroupValidateBeforeCall(statusPageId, newStatusPageComponentGroup, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteStatusPageComponentGroup + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 group deleted along with its member components -
+ */ + public okhttp3.Call deleteStatusPageComponentGroupCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/component-groups/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteStatusPageComponentGroupValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteStatusPageComponentGroup(Async)"); + } + + return deleteStatusPageComponentGroupCall(id, _callback); + + } + + /** + * Delete a status page component group + * Delete a status page component group together with its components + * @param id (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 group deleted along with its member components -
+ */ + public void deleteStatusPageComponentGroup(@jakarta.annotation.Nonnull String id) throws ApiException { + deleteStatusPageComponentGroupWithHttpInfo(id); + } + + /** + * Delete a status page component group + * Delete a status page component group together with its components + * @param id (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 group deleted along with its member components -
+ */ + public ApiResponse deleteStatusPageComponentGroupWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteStatusPageComponentGroupValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete a status page component group (asynchronously) + * Delete a status page component group together with its components + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 group deleted along with its member components -
+ */ + public okhttp3.Call deleteStatusPageComponentGroupAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteStatusPageComponentGroupValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getStatusPageComponentGroup + * @param id (required) + * @param include (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public okhttp3.Call getStatusPageComponentGroupCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/component-groups/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStatusPageComponentGroupValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getStatusPageComponentGroup(Async)"); + } + + return getStatusPageComponentGroupCall(id, include, _callback); + + } + + /** + * Retrieves a status page component group + * Retrieves a status page component group + * @param id (required) + * @param include (optional) + * @return StatusPageComponentGroupResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public StatusPageComponentGroupResponse getStatusPageComponentGroup(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { + ApiResponse localVarResp = getStatusPageComponentGroupWithHttpInfo(id, include); + return localVarResp.getData(); + } + + /** + * Retrieves a status page component group + * Retrieves a status page component group + * @param id (required) + * @param include (optional) + * @return ApiResponse<StatusPageComponentGroupResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public ApiResponse getStatusPageComponentGroupWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { + okhttp3.Call localVarCall = getStatusPageComponentGroupValidateBeforeCall(id, include, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Retrieves a status page component group (asynchronously) + * Retrieves a status page component group + * @param id (required) + * @param include (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public okhttp3.Call getStatusPageComponentGroupAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStatusPageComponentGroupValidateBeforeCall(id, include, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listStatusPageComponentGroups + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listStatusPageComponentGroupsCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/status-pages/{status_page_id}/component-groups" + .replace("{" + "status_page_id" + "}", localVarApiClient.escapeString(statusPageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listStatusPageComponentGroupsValidateBeforeCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'statusPageId' is set + if (statusPageId == null) { + throw new ApiException("Missing the required parameter 'statusPageId' when calling listStatusPageComponentGroups(Async)"); + } + + return listStatusPageComponentGroupsCall(statusPageId, include, pageNumber, pageSize, _callback); + + } + + /** + * List status page component groups + * List status page component groups + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return StatusPageComponentGroupList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public StatusPageComponentGroupList listStatusPageComponentGroups(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listStatusPageComponentGroupsWithHttpInfo(statusPageId, include, pageNumber, pageSize); + return localVarResp.getData(); + } + + /** + * List status page component groups + * List status page component groups + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return ApiResponse<StatusPageComponentGroupList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listStatusPageComponentGroupsWithHttpInfo(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listStatusPageComponentGroupsValidateBeforeCall(statusPageId, include, pageNumber, pageSize, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List status page component groups (asynchronously) + * List status page component groups + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listStatusPageComponentGroupsAsync(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listStatusPageComponentGroupsValidateBeforeCall(statusPageId, include, pageNumber, pageSize, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateStatusPageComponentGroup + * @param id (required) + * @param updateStatusPageComponentGroup (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 component group reordered -
422 invalid request -
+ */ + public okhttp3.Call updateStatusPageComponentGroupCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponentGroup updateStatusPageComponentGroup, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateStatusPageComponentGroup; + + // create path and map variables + String localVarPath = "/v1/component-groups/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateStatusPageComponentGroupValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponentGroup updateStatusPageComponentGroup, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateStatusPageComponentGroup(Async)"); + } + + // verify the required parameter 'updateStatusPageComponentGroup' is set + if (updateStatusPageComponentGroup == null) { + throw new ApiException("Missing the required parameter 'updateStatusPageComponentGroup' when calling updateStatusPageComponentGroup(Async)"); + } + + return updateStatusPageComponentGroupCall(id, updateStatusPageComponentGroup, _callback); + + } + + /** + * Update a status page component group + * Update a status page component group + * @param id (required) + * @param updateStatusPageComponentGroup (required) + * @return StatusPageComponentGroupResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 component group reordered -
422 invalid request -
+ */ + public StatusPageComponentGroupResponse updateStatusPageComponentGroup(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponentGroup updateStatusPageComponentGroup) throws ApiException { + ApiResponse localVarResp = updateStatusPageComponentGroupWithHttpInfo(id, updateStatusPageComponentGroup); + return localVarResp.getData(); + } + + /** + * Update a status page component group + * Update a status page component group + * @param id (required) + * @param updateStatusPageComponentGroup (required) + * @return ApiResponse<StatusPageComponentGroupResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 component group reordered -
422 invalid request -
+ */ + public ApiResponse updateStatusPageComponentGroupWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponentGroup updateStatusPageComponentGroup) throws ApiException { + okhttp3.Call localVarCall = updateStatusPageComponentGroupValidateBeforeCall(id, updateStatusPageComponentGroup, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update a status page component group (asynchronously) + * Update a status page component group + * @param id (required) + * @param updateStatusPageComponentGroup (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 component group reordered -
422 invalid request -
+ */ + public okhttp3.Call updateStatusPageComponentGroupAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponentGroup updateStatusPageComponentGroup, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateStatusPageComponentGroupValidateBeforeCall(id, updateStatusPageComponentGroup, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/StatusPageComponentsApi.java b/src/main/java/com/rootly/client/api/StatusPageComponentsApi.java new file mode 100644 index 00000000..a88dd7bb --- /dev/null +++ b/src/main/java/com/rootly/client/api/StatusPageComponentsApi.java @@ -0,0 +1,777 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewStatusPageComponent; +import com.rootly.client.model.StatusPageComponentList; +import com.rootly.client.model.StatusPageComponentResponse; +import com.rootly.client.model.UpdateStatusPageComponent; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class StatusPageComponentsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public StatusPageComponentsApi() { + this(Configuration.getDefaultApiClient()); + } + + public StatusPageComponentsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createStatusPageComponent + * @param statusPageId (required) + * @param newStatusPageComponent (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog-backed component created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createStatusPageComponentCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponent newStatusPageComponent, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newStatusPageComponent; + + // create path and map variables + String localVarPath = "/v1/status-pages/{status_page_id}/components" + .replace("{" + "status_page_id" + "}", localVarApiClient.escapeString(statusPageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createStatusPageComponentValidateBeforeCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponent newStatusPageComponent, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'statusPageId' is set + if (statusPageId == null) { + throw new ApiException("Missing the required parameter 'statusPageId' when calling createStatusPageComponent(Async)"); + } + + // verify the required parameter 'newStatusPageComponent' is set + if (newStatusPageComponent == null) { + throw new ApiException("Missing the required parameter 'newStatusPageComponent' when calling createStatusPageComponent(Async)"); + } + + return createStatusPageComponentCall(statusPageId, newStatusPageComponent, _callback); + + } + + /** + * Creates a status page component + * Creates a new status page component from provided data + * @param statusPageId (required) + * @param newStatusPageComponent (required) + * @return StatusPageComponentResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog-backed component created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public StatusPageComponentResponse createStatusPageComponent(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponent newStatusPageComponent) throws ApiException { + ApiResponse localVarResp = createStatusPageComponentWithHttpInfo(statusPageId, newStatusPageComponent); + return localVarResp.getData(); + } + + /** + * Creates a status page component + * Creates a new status page component from provided data + * @param statusPageId (required) + * @param newStatusPageComponent (required) + * @return ApiResponse<StatusPageComponentResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog-backed component created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createStatusPageComponentWithHttpInfo(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponent newStatusPageComponent) throws ApiException { + okhttp3.Call localVarCall = createStatusPageComponentValidateBeforeCall(statusPageId, newStatusPageComponent, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a status page component (asynchronously) + * Creates a new status page component from provided data + * @param statusPageId (required) + * @param newStatusPageComponent (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog-backed component created -
422 invalid request -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createStatusPageComponentAsync(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nonnull NewStatusPageComponent newStatusPageComponent, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createStatusPageComponentValidateBeforeCall(statusPageId, newStatusPageComponent, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteStatusPageComponent + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component detached, source and catalog left intact -
+ */ + public okhttp3.Call deleteStatusPageComponentCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/components/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteStatusPageComponentValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteStatusPageComponent(Async)"); + } + + return deleteStatusPageComponentCall(id, _callback); + + } + + /** + * Delete a status page component + * Delete a status page component + * @param id (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component detached, source and catalog left intact -
+ */ + public void deleteStatusPageComponent(@jakarta.annotation.Nonnull String id) throws ApiException { + deleteStatusPageComponentWithHttpInfo(id); + } + + /** + * Delete a status page component + * Delete a status page component + * @param id (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component detached, source and catalog left intact -
+ */ + public ApiResponse deleteStatusPageComponentWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteStatusPageComponentValidateBeforeCall(id, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete a status page component (asynchronously) + * Delete a status page component + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component detached, source and catalog left intact -
+ */ + public okhttp3.Call deleteStatusPageComponentAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteStatusPageComponentValidateBeforeCall(id, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for getStatusPageComponent + * @param id (required) + * @param include (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public okhttp3.Call getStatusPageComponentCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/components/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getStatusPageComponentValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getStatusPageComponent(Async)"); + } + + return getStatusPageComponentCall(id, include, _callback); + + } + + /** + * Retrieves a status page component + * Retrieves a status page component + * @param id (required) + * @param include (optional) + * @return StatusPageComponentResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public StatusPageComponentResponse getStatusPageComponent(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { + ApiResponse localVarResp = getStatusPageComponentWithHttpInfo(id, include); + return localVarResp.getData(); + } + + /** + * Retrieves a status page component + * Retrieves a status page component + * @param id (required) + * @param include (optional) + * @return ApiResponse<StatusPageComponentResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public ApiResponse getStatusPageComponentWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include) throws ApiException { + okhttp3.Call localVarCall = getStatusPageComponentValidateBeforeCall(id, include, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Retrieves a status page component (asynchronously) + * Retrieves a status page component + * @param id (required) + * @param include (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 success -
404 responds with not found for another team's token -
+ */ + public okhttp3.Call getStatusPageComponentAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nullable String include, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getStatusPageComponentValidateBeforeCall(id, include, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listStatusPageComponents + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listStatusPageComponentsCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/status-pages/{status_page_id}/components" + .replace("{" + "status_page_id" + "}", localVarApiClient.escapeString(statusPageId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listStatusPageComponentsValidateBeforeCall(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'statusPageId' is set + if (statusPageId == null) { + throw new ApiException("Missing the required parameter 'statusPageId' when calling listStatusPageComponents(Async)"); + } + + return listStatusPageComponentsCall(statusPageId, include, pageNumber, pageSize, _callback); + + } + + /** + * List status page components + * List status page components + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return StatusPageComponentList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public StatusPageComponentList listStatusPageComponents(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listStatusPageComponentsWithHttpInfo(statusPageId, include, pageNumber, pageSize); + return localVarResp.getData(); + } + + /** + * List status page components + * List status page components + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return ApiResponse<StatusPageComponentList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listStatusPageComponentsWithHttpInfo(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listStatusPageComponentsValidateBeforeCall(statusPageId, include, pageNumber, pageSize, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List status page components (asynchronously) + * List status page components + * @param statusPageId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listStatusPageComponentsAsync(@jakarta.annotation.Nonnull String statusPageId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listStatusPageComponentsValidateBeforeCall(statusPageId, include, pageNumber, pageSize, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateStatusPageComponent + * @param id (required) + * @param updateStatusPageComponent (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component ignores name and description overrides -
422 invalid position rejected -
+ */ + public okhttp3.Call updateStatusPageComponentCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponent updateStatusPageComponent, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateStatusPageComponent; + + // create path and map variables + String localVarPath = "/v1/components/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateStatusPageComponentValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponent updateStatusPageComponent, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateStatusPageComponent(Async)"); + } + + // verify the required parameter 'updateStatusPageComponent' is set + if (updateStatusPageComponent == null) { + throw new ApiException("Missing the required parameter 'updateStatusPageComponent' when calling updateStatusPageComponent(Async)"); + } + + return updateStatusPageComponentCall(id, updateStatusPageComponent, _callback); + + } + + /** + * Update a status page component + * Update a status page component + * @param id (required) + * @param updateStatusPageComponent (required) + * @return StatusPageComponentResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component ignores name and description overrides -
422 invalid position rejected -
+ */ + public StatusPageComponentResponse updateStatusPageComponent(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponent updateStatusPageComponent) throws ApiException { + ApiResponse localVarResp = updateStatusPageComponentWithHttpInfo(id, updateStatusPageComponent); + return localVarResp.getData(); + } + + /** + * Update a status page component + * Update a status page component + * @param id (required) + * @param updateStatusPageComponent (required) + * @return ApiResponse<StatusPageComponentResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component ignores name and description overrides -
422 invalid position rejected -
+ */ + public ApiResponse updateStatusPageComponentWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponent updateStatusPageComponent) throws ApiException { + okhttp3.Call localVarCall = updateStatusPageComponentValidateBeforeCall(id, updateStatusPageComponent, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update a status page component (asynchronously) + * Update a status page component + * @param id (required) + * @param updateStatusPageComponent (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 catalog-backed component ignores name and description overrides -
422 invalid position rejected -
+ */ + public okhttp3.Call updateStatusPageComponentAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateStatusPageComponent updateStatusPageComponent, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateStatusPageComponentValidateBeforeCall(id, updateStatusPageComponent, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/StatusPagesApi.java b/src/main/java/com/rootly/client/api/StatusPagesApi.java index 6a18c53e..03330920 100644 --- a/src/main/java/com/rootly/client/api/StatusPagesApi.java +++ b/src/main/java/com/rootly/client/api/StatusPagesApi.java @@ -486,6 +486,14 @@ public okhttp3.Call getStatusPageAsync(@jakarta.annotation.Nonnull GetAlertField * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -497,7 +505,7 @@ public okhttp3.Call getStatusPageAsync(@jakarta.annotation.Nonnull GetAlertField 200 success - */ - public okhttp3.Call listStatusPagesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listStatusPagesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -562,6 +570,38 @@ public okhttp3.Call listStatusPagesCall(@jakarta.annotation.Nullable String incl localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -586,8 +626,8 @@ public okhttp3.Call listStatusPagesCall(@jakarta.annotation.Nullable String incl } @SuppressWarnings("rawtypes") - private okhttp3.Call listStatusPagesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listStatusPagesCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listStatusPagesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listStatusPagesCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort, _callback); } @@ -604,6 +644,14 @@ private okhttp3.Call listStatusPagesValidateBeforeCall(@jakarta.annotation.Nulla * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @return StatusPageList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -614,8 +662,8 @@ private okhttp3.Call listStatusPagesValidateBeforeCall(@jakarta.annotation.Nulla 200 success - */ - public StatusPageList listStatusPages(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listStatusPagesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public StatusPageList listStatusPages(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listStatusPagesWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort); return localVarResp.getData(); } @@ -632,6 +680,14 @@ public StatusPageList listStatusPages(@jakarta.annotation.Nullable String includ * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @return ApiResponse<StatusPageList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -642,8 +698,8 @@ public StatusPageList listStatusPages(@jakarta.annotation.Nullable String includ 200 success - */ - public ApiResponse listStatusPagesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listStatusPagesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listStatusPagesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listStatusPagesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -661,6 +717,14 @@ public ApiResponse listStatusPagesWithHttpInfo(@jakarta.annotati * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -672,9 +736,9 @@ public ApiResponse listStatusPagesWithHttpInfo(@jakarta.annotati 200 success - */ - public okhttp3.Call listStatusPagesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listStatusPagesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listStatusPagesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listStatusPagesValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -690,7 +754,8 @@ public okhttp3.Call listStatusPagesAsync(@jakarta.annotation.Nullable String inc - + +
Response Details
Status Code Description Response Headers
200 status page SAML updated -
200 external_domain_names persisted -
422 invalid section_order -
404 resource not found -
*/ @@ -767,7 +832,8 @@ private okhttp3.Call updateStatusPageValidateBeforeCall(@jakarta.annotation.Nonn - + +
Response Details
Status Code Description Response Headers
200 status page SAML updated -
200 external_domain_names persisted -
422 invalid section_order -
404 resource not found -
*/ @@ -787,7 +853,8 @@ public StatusPageResponse updateStatusPage(@jakarta.annotation.Nonnull GetAlertF - + +
Response Details
Status Code Description Response Headers
200 status page SAML updated -
200 external_domain_names persisted -
422 invalid section_order -
404 resource not found -
*/ @@ -809,7 +876,8 @@ public ApiResponse updateStatusPageWithHttpInfo(@jakarta.ann - + +
Response Details
Status Code Description Response Headers
200 status page SAML updated -
200 external_domain_names persisted -
422 invalid section_order -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/TeamsApi.java b/src/main/java/com/rootly/client/api/TeamsApi.java index c60d3d69..6f904ab7 100644 --- a/src/main/java/com/rootly/client/api/TeamsApi.java +++ b/src/main/java/com/rootly/client/api/TeamsApi.java @@ -27,8 +27,18 @@ import java.io.IOException; +import com.rootly.client.model.BulkDeleteGroups422Response; +import com.rootly.client.model.BulkDestroyTeams; +import com.rootly.client.model.BulkDestroyTeamsResponse; +import com.rootly.client.model.BulkUpsertGroups422Response; +import com.rootly.client.model.BulkUpsertTeams; +import com.rootly.client.model.BulkUpsertTeamsResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetTeamIdParameter; +import com.rootly.client.model.IncidentsChartResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewTeam; import com.rootly.client.model.TeamList; import com.rootly.client.model.TeamResponse; @@ -77,6 +87,411 @@ public void setCustomBaseUrl(String customBaseUrl) { this.localCustomBaseUrl = customBaseUrl; } + /** + * Build call for bulkDeleteGroups + * @param bulkDestroyTeams (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteGroupsCall(@jakarta.annotation.Nonnull BulkDestroyTeams bulkDestroyTeams, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkDestroyTeams; + + // create path and map variables + String localVarPath = "/v1/teams/bulk_delete"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkDeleteGroupsValidateBeforeCall(@jakarta.annotation.Nonnull BulkDestroyTeams bulkDestroyTeams, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkDestroyTeams' is set + if (bulkDestroyTeams == null) { + throw new ApiException("Missing the required parameter 'bulkDestroyTeams' when calling bulkDeleteGroups(Async)"); + } + + return bulkDeleteGroupsCall(bulkDestroyTeams, _callback); + + } + + /** + * Bulk delete Teams + * Delete teams by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyTeams (required) + * @return BulkDestroyTeamsResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public BulkDestroyTeamsResponse bulkDeleteGroups(@jakarta.annotation.Nonnull BulkDestroyTeams bulkDestroyTeams) throws ApiException { + ApiResponse localVarResp = bulkDeleteGroupsWithHttpInfo(bulkDestroyTeams); + return localVarResp.getData(); + } + + /** + * Bulk delete Teams + * Delete teams by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyTeams (required) + * @return ApiResponse<BulkDestroyTeamsResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public ApiResponse bulkDeleteGroupsWithHttpInfo(@jakarta.annotation.Nonnull BulkDestroyTeams bulkDestroyTeams) throws ApiException { + okhttp3.Call localVarCall = bulkDeleteGroupsValidateBeforeCall(bulkDestroyTeams, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk delete Teams (asynchronously) + * Delete teams by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * @param bulkDestroyTeams (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records deleted successfully -
422 validation or partial-failure error -
401 unauthorized -
+ */ + public okhttp3.Call bulkDeleteGroupsAsync(@jakarta.annotation.Nonnull BulkDestroyTeams bulkDestroyTeams, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkDeleteGroupsValidateBeforeCall(bulkDestroyTeams, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for bulkUpsertGroups + * @param bulkUpsertTeams (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertGroupsCall(@jakarta.annotation.Nonnull BulkUpsertTeams bulkUpsertTeams, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = bulkUpsertTeams; + + // create path and map variables + String localVarPath = "/v1/teams/bulk_upsert"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call bulkUpsertGroupsValidateBeforeCall(@jakarta.annotation.Nonnull BulkUpsertTeams bulkUpsertTeams, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'bulkUpsertTeams' is set + if (bulkUpsertTeams == null) { + throw new ApiException("Missing the required parameter 'bulkUpsertTeams' when calling bulkUpsertGroups(Async)"); + } + + return bulkUpsertGroupsCall(bulkUpsertTeams, _callback); + + } + + /** + * Bulk upsert Teams + * Create or update multiple teams by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertTeams (required) + * @return BulkUpsertTeamsResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public BulkUpsertTeamsResponse bulkUpsertGroups(@jakarta.annotation.Nonnull BulkUpsertTeams bulkUpsertTeams) throws ApiException { + ApiResponse localVarResp = bulkUpsertGroupsWithHttpInfo(bulkUpsertTeams); + return localVarResp.getData(); + } + + /** + * Bulk upsert Teams + * Create or update multiple teams by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertTeams (required) + * @return ApiResponse<BulkUpsertTeamsResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public ApiResponse bulkUpsertGroupsWithHttpInfo(@jakarta.annotation.Nonnull BulkUpsertTeams bulkUpsertTeams) throws ApiException { + okhttp3.Call localVarCall = bulkUpsertGroupsValidateBeforeCall(bulkUpsertTeams, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Bulk upsert Teams (asynchronously) + * Create or update multiple teams by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * @param bulkUpsertTeams (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
200 records upserted successfully -
422 validation or record-level error -
401 unauthorized -
+ */ + public okhttp3.Call bulkUpsertGroupsAsync(@jakarta.annotation.Nonnull BulkUpsertTeams bulkUpsertTeams, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = bulkUpsertGroupsValidateBeforeCall(bulkUpsertTeams, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for createGroupCatalogProperty + * @param newCatalogProperty (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createGroupCatalogPropertyCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newCatalogProperty; + + // create path and map variables + String localVarPath = "/v1/teams/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createGroupCatalogPropertyValidateBeforeCall(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newCatalogProperty' is set + if (newCatalogProperty == null) { + throw new ApiException("Missing the required parameter 'newCatalogProperty' when calling createGroupCatalogProperty(Async)"); + } + + return createGroupCatalogPropertyCall(newCatalogProperty, _callback); + + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return CatalogPropertyResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public CatalogPropertyResponse createGroupCatalogProperty(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + ApiResponse localVarResp = createGroupCatalogPropertyWithHttpInfo(newCatalogProperty); + return localVarResp.getData(); + } + + /** + * Creates a Catalog Property + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @return ApiResponse<CatalogPropertyResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public ApiResponse createGroupCatalogPropertyWithHttpInfo(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty) throws ApiException { + okhttp3.Call localVarCall = createGroupCatalogPropertyValidateBeforeCall(newCatalogProperty, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a Catalog Property (asynchronously) + * Creates a new Catalog Property from provided data + * @param newCatalogProperty (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
Response Details
Status Code Description Response Headers
201 catalog_property created ignores wrong catalog_type attribute -
422 exceeds max fields per catalog -
401 responds with unauthorized for invalid token -
+ */ + public okhttp3.Call createGroupCatalogPropertyAsync(@jakarta.annotation.Nonnull NewCatalogProperty newCatalogProperty, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createGroupCatalogPropertyValidateBeforeCall(newCatalogProperty, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for createTeam * @param newTeam (required) @@ -567,7 +982,7 @@ private okhttp3.Call getTeamIncidentsChartValidateBeforeCall(@jakarta.annotation * Get team incidents chart * @param id (required) * @param period (required) - * @return Object + * @return IncidentsChartResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -577,8 +992,8 @@ private okhttp3.Call getTeamIncidentsChartValidateBeforeCall(@jakarta.annotation
404 resource not found -
*/ - public Object getTeamIncidentsChart(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull String period) throws ApiException { - ApiResponse localVarResp = getTeamIncidentsChartWithHttpInfo(id, period); + public IncidentsChartResponse getTeamIncidentsChart(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull String period) throws ApiException { + ApiResponse localVarResp = getTeamIncidentsChartWithHttpInfo(id, period); return localVarResp.getData(); } @@ -587,7 +1002,7 @@ public Object getTeamIncidentsChart(@jakarta.annotation.Nonnull String id, @jaka * Get team incidents chart * @param id (required) * @param period (required) - * @return ApiResponse<Object> + * @return ApiResponse<IncidentsChartResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -597,9 +1012,9 @@ public Object getTeamIncidentsChart(@jakarta.annotation.Nonnull String id, @jaka
404 resource not found -
*/ - public ApiResponse getTeamIncidentsChartWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull String period) throws ApiException { + public ApiResponse getTeamIncidentsChartWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull String period) throws ApiException { okhttp3.Call localVarCall = getTeamIncidentsChartValidateBeforeCall(id, period, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -619,10 +1034,215 @@ public ApiResponse getTeamIncidentsChartWithHttpInfo(@jakarta.annotation 404 resource not found - */ - public okhttp3.Call getTeamIncidentsChartAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull String period, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getTeamIncidentsChartAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull String period, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getTeamIncidentsChartValidateBeforeCall(id, period, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listGroupCatalogProperties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listGroupCatalogPropertiesCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/teams/properties"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (sort != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + if (filterSlug != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); + } + + if (filterName != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name]", filterName)); + } + + if (filterKind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[kind]", filterKind)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listGroupCatalogPropertiesValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + return listGroupCatalogPropertiesCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + + } + + /** + * List Catalog Properties + * List Group Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return CatalogPropertyList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public CatalogPropertyList listGroupCatalogProperties(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + ApiResponse localVarResp = listGroupCatalogPropertiesWithHttpInfo(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + return localVarResp.getData(); + } + + /** + * List Catalog Properties + * List Group Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @return ApiResponse<CatalogPropertyList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listGroupCatalogPropertiesWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { + okhttp3.Call localVarCall = listGroupCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List Catalog Properties (asynchronously) + * List Group Catalog Properties + * @param include comma separated if needed. eg: catalog (optional) + * @param sort comma separated if needed. eg: created_at,updated_at (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param filterSlug (optional) + * @param filterName (optional) + * @param filterKind (optional) + * @param filterCreatedAtGt (optional) + * @param filterCreatedAtGte (optional) + * @param filterCreatedAtLt (optional) + * @param filterCreatedAtLte (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listGroupCatalogPropertiesAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterKind, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listGroupCatalogPropertiesValidateBeforeCall(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -645,6 +1265,26 @@ public okhttp3.Call getTeamIncidentsChartAsync(@jakarta.annotation.Nonnull Strin * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -656,7 +1296,7 @@ public okhttp3.Call getTeamIncidentsChartAsync(@jakarta.annotation.Nonnull Strin 200 success - */ - public okhttp3.Call listTeamsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listTeamsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -749,6 +1389,86 @@ public okhttp3.Call listTeamsCall(@jakarta.annotation.Nullable String include, @ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterColorEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][eq]", filterColorEq)); + } + + if (filterColorNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_eq]", filterColorNotEq)); + } + + if (filterColorIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][in]", filterColorIn)); + } + + if (filterColorNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[color][not_in]", filterColorNotIn)); + } + + if (filterAlertBroadcastEnabledEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][eq]", filterAlertBroadcastEnabledEq)); + } + + if (filterAlertBroadcastEnabledNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][not_eq]", filterAlertBroadcastEnabledNotEq)); + } + + if (filterAlertBroadcastEnabledIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][in]", filterAlertBroadcastEnabledIn)); + } + + if (filterAlertBroadcastEnabledNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[alert_broadcast_enabled][not_in]", filterAlertBroadcastEnabledNotIn)); + } + + if (filterIncidentBroadcastEnabledEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][eq]", filterIncidentBroadcastEnabledEq)); + } + + if (filterIncidentBroadcastEnabledNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][not_eq]", filterIncidentBroadcastEnabledNotEq)); + } + + if (filterIncidentBroadcastEnabledIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][in]", filterIncidentBroadcastEnabledIn)); + } + + if (filterIncidentBroadcastEnabledNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[incident_broadcast_enabled][not_in]", filterIncidentBroadcastEnabledNotIn)); + } + if (sort != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("sort", sort)); } @@ -773,8 +1493,8 @@ public okhttp3.Call listTeamsCall(@jakarta.annotation.Nullable String include, @ } @SuppressWarnings("rawtypes") - private okhttp3.Call listTeamsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - return listTeamsCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + private okhttp3.Call listTeamsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + return listTeamsCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort, _callback); } @@ -798,6 +1518,26 @@ private okhttp3.Call listTeamsValidateBeforeCall(@jakarta.annotation.Nullable St * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @return TeamList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -808,8 +1548,8 @@ private okhttp3.Call listTeamsValidateBeforeCall(@jakarta.annotation.Nullable St 200 success - */ - public TeamList listTeams(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - ApiResponse localVarResp = listTeamsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + public TeamList listTeams(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + ApiResponse localVarResp = listTeamsWithHttpInfo(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort); return localVarResp.getData(); } @@ -833,6 +1573,26 @@ public TeamList listTeams(@jakarta.annotation.Nullable String include, @jakarta. * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @return ApiResponse<TeamList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -843,8 +1603,8 @@ public TeamList listTeams(@jakarta.annotation.Nullable String include, @jakarta. 200 success - */ - public ApiResponse listTeamsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort) throws ApiException { - okhttp3.Call localVarCall = listTeamsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, null); + public ApiResponse listTeamsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort) throws ApiException { + okhttp3.Call localVarCall = listTeamsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -869,6 +1629,26 @@ public ApiResponse listTeamsWithHttpInfo(@jakarta.annotation.Nullable * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterColorEq (optional) + * @param filterColorNotEq (optional) + * @param filterColorIn (optional) + * @param filterColorNotIn (optional) + * @param filterAlertBroadcastEnabledEq (optional) + * @param filterAlertBroadcastEnabledNotEq (optional) + * @param filterAlertBroadcastEnabledIn (optional) + * @param filterAlertBroadcastEnabledNotIn (optional) + * @param filterIncidentBroadcastEnabledEq (optional) + * @param filterIncidentBroadcastEnabledNotEq (optional) + * @param filterIncidentBroadcastEnabledIn (optional) + * @param filterIncidentBroadcastEnabledNotIn (optional) * @param sort (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -880,9 +1660,9 @@ public ApiResponse listTeamsWithHttpInfo(@jakarta.annotation.Nullable 200 success - */ - public okhttp3.Call listTeamsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listTeamsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterBackstageId, @jakarta.annotation.Nullable String filterCortexId, @jakarta.annotation.Nullable String filterOpslevelId, @jakarta.annotation.Nullable String filterExternalId, @jakarta.annotation.Nullable String filterColor, @jakarta.annotation.Nullable Boolean filterAlertBroadcastEnabled, @jakarta.annotation.Nullable Boolean filterIncidentBroadcastEnabled, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterColorEq, @jakarta.annotation.Nullable String filterColorNotEq, @jakarta.annotation.Nullable String filterColorIn, @jakarta.annotation.Nullable String filterColorNotIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledIn, @jakarta.annotation.Nullable String filterAlertBroadcastEnabledNotIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotEq, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledIn, @jakarta.annotation.Nullable String filterIncidentBroadcastEnabledNotIn, @jakarta.annotation.Nullable String sort, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listTeamsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort, _callback); + okhttp3.Call localVarCall = listTeamsValidateBeforeCall(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/UsersApi.java b/src/main/java/com/rootly/client/api/UsersApi.java index 3f841f4a..98cda317 100644 --- a/src/main/java/com/rootly/client/api/UsersApi.java +++ b/src/main/java/com/rootly/client/api/UsersApi.java @@ -338,7 +338,7 @@ public okhttp3.Call getCurrentUserAsync(final ApiCallback _callbac - +
Response Details
Status Code Description Response Headers
200 user found with teams, schedules, and notification_rules includes -
200 teams include only returns teams from the current team -
404 resource not found -
*/ @@ -413,7 +413,7 @@ private okhttp3.Call getUserValidateBeforeCall(@jakarta.annotation.Nonnull Strin - +
Response Details
Status Code Description Response Headers
200 user found with teams, schedules, and notification_rules includes -
200 teams include only returns teams from the current team -
404 resource not found -
*/ @@ -433,7 +433,7 @@ public UserResponse getUser(@jakarta.annotation.Nonnull String id, @jakarta.anno - +
Response Details
Status Code Description Response Headers
200 user found with teams, schedules, and notification_rules includes -
200 teams include only returns teams from the current team -
404 resource not found -
*/ @@ -455,7 +455,7 @@ public ApiResponse getUserWithHttpInfo(@jakarta.annotation.Nonnull - +
Response Details
Status Code Description Response Headers
200 user found with teams, schedules, and notification_rules includes -
200 teams include only returns teams from the current team -
404 resource not found -
*/ @@ -678,7 +678,7 @@ public okhttp3.Call listUsersAsync(@jakarta.annotation.Nullable Integer pageNumb - +
Response Details
Status Code Description Response Headers
200 update name and role simultaneously -
200 custom role with roles_permissions can update user role (IR-5606) -
404 returns 404 for on_call_role_id belonging to another team -
*/ @@ -750,7 +750,7 @@ private okhttp3.Call updateUserValidateBeforeCall(@jakarta.annotation.Nonnull St - +
Response Details
Status Code Description Response Headers
200 update name and role simultaneously -
200 custom role with roles_permissions can update user role (IR-5606) -
404 returns 404 for on_call_role_id belonging to another team -
*/ @@ -770,7 +770,7 @@ public UserResponse updateUser(@jakarta.annotation.Nonnull String id, @jakarta.a - +
Response Details
Status Code Description Response Headers
200 update name and role simultaneously -
200 custom role with roles_permissions can update user role (IR-5606) -
404 returns 404 for on_call_role_id belonging to another team -
*/ @@ -792,7 +792,7 @@ public ApiResponse updateUserWithHttpInfo(@jakarta.annotation.Nonn - +
Response Details
Status Code Description Response Headers
200 update name and role simultaneously -
200 custom role with roles_permissions can update user role (IR-5606) -
404 returns 404 for on_call_role_id belonging to another team -
*/ diff --git a/src/main/java/com/rootly/client/api/VerifiedDomainsApi.java b/src/main/java/com/rootly/client/api/VerifiedDomainsApi.java new file mode 100644 index 00000000..070bb5a5 --- /dev/null +++ b/src/main/java/com/rootly/client/api/VerifiedDomainsApi.java @@ -0,0 +1,591 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.NewVerifiedDomain; +import com.rootly.client.model.VerifiedDomainList; +import com.rootly.client.model.VerifiedDomainResponse; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class VerifiedDomainsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public VerifiedDomainsApi() { + this(Configuration.getDefaultApiClient()); + } + + public VerifiedDomainsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for v1VerifiedDomainsGet + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domains found -
+ */ + public okhttp3.Call v1VerifiedDomainsGetCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/verified_domains"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call v1VerifiedDomainsGetValidateBeforeCall(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + return v1VerifiedDomainsGetCall(pageNumber, pageSize, _callback); + + } + + /** + * List verified domains + * + * @param pageNumber (optional) + * @param pageSize (optional) + * @return VerifiedDomainList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domains found -
+ */ + public VerifiedDomainList v1VerifiedDomainsGet(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = v1VerifiedDomainsGetWithHttpInfo(pageNumber, pageSize); + return localVarResp.getData(); + } + + /** + * List verified domains + * + * @param pageNumber (optional) + * @param pageSize (optional) + * @return ApiResponse<VerifiedDomainList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domains found -
+ */ + public ApiResponse v1VerifiedDomainsGetWithHttpInfo(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = v1VerifiedDomainsGetValidateBeforeCall(pageNumber, pageSize, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List verified domains (asynchronously) + * + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domains found -
+ */ + public okhttp3.Call v1VerifiedDomainsGetAsync(@jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = v1VerifiedDomainsGetValidateBeforeCall(pageNumber, pageSize, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for v1VerifiedDomainsIdDelete + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain deleted -
+ */ + public okhttp3.Call v1VerifiedDomainsIdDeleteCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/verified_domains/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call v1VerifiedDomainsIdDeleteValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling v1VerifiedDomainsIdDelete(Async)"); + } + + return v1VerifiedDomainsIdDeleteCall(id, _callback); + + } + + /** + * Delete a verified domain + * + * @param id (required) + * @return VerifiedDomainResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain deleted -
+ */ + public VerifiedDomainResponse v1VerifiedDomainsIdDelete(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = v1VerifiedDomainsIdDeleteWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Delete a verified domain + * + * @param id (required) + * @return ApiResponse<VerifiedDomainResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain deleted -
+ */ + public ApiResponse v1VerifiedDomainsIdDeleteWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = v1VerifiedDomainsIdDeleteValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Delete a verified domain (asynchronously) + * + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain deleted -
+ */ + public okhttp3.Call v1VerifiedDomainsIdDeleteAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = v1VerifiedDomainsIdDeleteValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for v1VerifiedDomainsIdGet + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain found -
+ */ + public okhttp3.Call v1VerifiedDomainsIdGetCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/verified_domains/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call v1VerifiedDomainsIdGetValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling v1VerifiedDomainsIdGet(Async)"); + } + + return v1VerifiedDomainsIdGetCall(id, _callback); + + } + + /** + * Show a verified domain + * + * @param id (required) + * @return VerifiedDomainResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain found -
+ */ + public VerifiedDomainResponse v1VerifiedDomainsIdGet(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = v1VerifiedDomainsIdGetWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Show a verified domain + * + * @param id (required) + * @return ApiResponse<VerifiedDomainResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain found -
+ */ + public ApiResponse v1VerifiedDomainsIdGetWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = v1VerifiedDomainsIdGetValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Show a verified domain (asynchronously) + * + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 verified domain found -
+ */ + public okhttp3.Call v1VerifiedDomainsIdGetAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = v1VerifiedDomainsIdGetValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for v1VerifiedDomainsPost + * @param newVerifiedDomain (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
201 verified domain created -
+ */ + public okhttp3.Call v1VerifiedDomainsPostCall(@jakarta.annotation.Nonnull NewVerifiedDomain newVerifiedDomain, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newVerifiedDomain; + + // create path and map variables + String localVarPath = "/v1/verified_domains"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call v1VerifiedDomainsPostValidateBeforeCall(@jakarta.annotation.Nonnull NewVerifiedDomain newVerifiedDomain, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newVerifiedDomain' is set + if (newVerifiedDomain == null) { + throw new ApiException("Missing the required parameter 'newVerifiedDomain' when calling v1VerifiedDomainsPost(Async)"); + } + + return v1VerifiedDomainsPostCall(newVerifiedDomain, _callback); + + } + + /** + * Create a verified domain + * + * @param newVerifiedDomain (required) + * @return VerifiedDomainResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
201 verified domain created -
+ */ + public VerifiedDomainResponse v1VerifiedDomainsPost(@jakarta.annotation.Nonnull NewVerifiedDomain newVerifiedDomain) throws ApiException { + ApiResponse localVarResp = v1VerifiedDomainsPostWithHttpInfo(newVerifiedDomain); + return localVarResp.getData(); + } + + /** + * Create a verified domain + * + * @param newVerifiedDomain (required) + * @return ApiResponse<VerifiedDomainResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
201 verified domain created -
+ */ + public ApiResponse v1VerifiedDomainsPostWithHttpInfo(@jakarta.annotation.Nonnull NewVerifiedDomain newVerifiedDomain) throws ApiException { + okhttp3.Call localVarCall = v1VerifiedDomainsPostValidateBeforeCall(newVerifiedDomain, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create a verified domain (asynchronously) + * + * @param newVerifiedDomain (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
201 verified domain created -
+ */ + public okhttp3.Call v1VerifiedDomainsPostAsync(@jakarta.annotation.Nonnull NewVerifiedDomain newVerifiedDomain, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = v1VerifiedDomainsPostValidateBeforeCall(newVerifiedDomain, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/WebhooksDeliveriesApi.java b/src/main/java/com/rootly/client/api/WebhooksDeliveriesApi.java index 8352035b..62ffcd3a 100644 --- a/src/main/java/com/rootly/client/api/WebhooksDeliveriesApi.java +++ b/src/main/java/com/rootly/client/api/WebhooksDeliveriesApi.java @@ -28,6 +28,7 @@ import com.rootly.client.model.ErrorsList; +import java.time.OffsetDateTime; import com.rootly.client.model.WebhooksDeliveryList; import com.rootly.client.model.WebhooksDeliveryResponse; @@ -338,6 +339,15 @@ public okhttp3.Call getWebhooksDeliveryAsync(@jakarta.annotation.Nonnull String * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterStatus Delivery status: pending, success, failed. Comma-separated. Unknown values are ignored; if no valid values remain, the result set is empty. (optional) + * @param filterCreatedAtGt Created after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtGte Created at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLt Created before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLte Created at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGt Delivered after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGte Delivered at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLt Delivered before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLte Delivered at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -346,9 +356,10 @@ public okhttp3.Call getWebhooksDeliveryAsync(@jakarta.annotation.Nonnull String Response Details Status Code Description Response Headers 200 success - + 400 invalid date filter - */ - public okhttp3.Call listWebhooksDeliveriesCall(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listWebhooksDeliveriesCall(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGte, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLte, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -386,6 +397,42 @@ public okhttp3.Call listWebhooksDeliveriesCall(@jakarta.annotation.Nonnull Strin localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); } + if (filterStatus != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[status]", filterStatus)); + } + + if (filterCreatedAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gt]", filterCreatedAtGt)); + } + + if (filterCreatedAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][gte]", filterCreatedAtGte)); + } + + if (filterCreatedAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lt]", filterCreatedAtLt)); + } + + if (filterCreatedAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); + } + + if (filterDeliveredAtGt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[delivered_at][gt]", filterDeliveredAtGt)); + } + + if (filterDeliveredAtGte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[delivered_at][gte]", filterDeliveredAtGte)); + } + + if (filterDeliveredAtLt != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[delivered_at][lt]", filterDeliveredAtLt)); + } + + if (filterDeliveredAtLte != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[delivered_at][lte]", filterDeliveredAtLte)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -406,13 +453,13 @@ public okhttp3.Call listWebhooksDeliveriesCall(@jakarta.annotation.Nonnull Strin } @SuppressWarnings("rawtypes") - private okhttp3.Call listWebhooksDeliveriesValidateBeforeCall(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listWebhooksDeliveriesValidateBeforeCall(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGte, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLte, final ApiCallback _callback) throws ApiException { // verify the required parameter 'endpointId' is set if (endpointId == null) { throw new ApiException("Missing the required parameter 'endpointId' when calling listWebhooksDeliveries(Async)"); } - return listWebhooksDeliveriesCall(endpointId, include, pageNumber, pageSize, _callback); + return listWebhooksDeliveriesCall(endpointId, include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterDeliveredAtGt, filterDeliveredAtGte, filterDeliveredAtLt, filterDeliveredAtLte, _callback); } @@ -423,6 +470,15 @@ private okhttp3.Call listWebhooksDeliveriesValidateBeforeCall(@jakarta.annotatio * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterStatus Delivery status: pending, success, failed. Comma-separated. Unknown values are ignored; if no valid values remain, the result set is empty. (optional) + * @param filterCreatedAtGt Created after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtGte Created at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLt Created before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLte Created at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGt Delivered after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGte Delivered at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLt Delivered before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLte Delivered at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) * @return WebhooksDeliveryList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -430,10 +486,11 @@ private okhttp3.Call listWebhooksDeliveriesValidateBeforeCall(@jakarta.annotatio Response Details Status Code Description Response Headers 200 success - + 400 invalid date filter - */ - public WebhooksDeliveryList listWebhooksDeliveries(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - ApiResponse localVarResp = listWebhooksDeliveriesWithHttpInfo(endpointId, include, pageNumber, pageSize); + public WebhooksDeliveryList listWebhooksDeliveries(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGte, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLte) throws ApiException { + ApiResponse localVarResp = listWebhooksDeliveriesWithHttpInfo(endpointId, include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterDeliveredAtGt, filterDeliveredAtGte, filterDeliveredAtLt, filterDeliveredAtLte); return localVarResp.getData(); } @@ -444,6 +501,15 @@ public WebhooksDeliveryList listWebhooksDeliveries(@jakarta.annotation.Nonnull S * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterStatus Delivery status: pending, success, failed. Comma-separated. Unknown values are ignored; if no valid values remain, the result set is empty. (optional) + * @param filterCreatedAtGt Created after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtGte Created at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLt Created before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLte Created at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGt Delivered after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGte Delivered at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLt Delivered before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLte Delivered at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) * @return ApiResponse<WebhooksDeliveryList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -451,10 +517,11 @@ public WebhooksDeliveryList listWebhooksDeliveries(@jakarta.annotation.Nonnull S Response Details Status Code Description Response Headers 200 success - + 400 invalid date filter - */ - public ApiResponse listWebhooksDeliveriesWithHttpInfo(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { - okhttp3.Call localVarCall = listWebhooksDeliveriesValidateBeforeCall(endpointId, include, pageNumber, pageSize, null); + public ApiResponse listWebhooksDeliveriesWithHttpInfo(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGte, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLte) throws ApiException { + okhttp3.Call localVarCall = listWebhooksDeliveriesValidateBeforeCall(endpointId, include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterDeliveredAtGt, filterDeliveredAtGte, filterDeliveredAtLt, filterDeliveredAtLte, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -466,6 +533,15 @@ public ApiResponse listWebhooksDeliveriesWithHttpInfo(@jak * @param include (optional) * @param pageNumber (optional) * @param pageSize (optional) + * @param filterStatus Delivery status: pending, success, failed. Comma-separated. Unknown values are ignored; if no valid values remain, the result set is empty. (optional) + * @param filterCreatedAtGt Created after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtGte Created at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLt Created before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterCreatedAtLte Created at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGt Delivered after this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtGte Delivered at or after this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLt Delivered before this timestamp (exclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) + * @param filterDeliveredAtLte Delivered at or before this timestamp (inclusive). Use ISO 8601 with Z or a numeric UTC offset. (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -474,11 +550,12 @@ public ApiResponse listWebhooksDeliveriesWithHttpInfo(@jak Response Details Status Code Description Response Headers 200 success - + 400 invalid date filter - */ - public okhttp3.Call listWebhooksDeliveriesAsync(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listWebhooksDeliveriesAsync(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterStatus, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtGte, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLt, @jakarta.annotation.Nullable OffsetDateTime filterCreatedAtLte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtGte, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLt, @jakarta.annotation.Nullable OffsetDateTime filterDeliveredAtLte, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listWebhooksDeliveriesValidateBeforeCall(endpointId, include, pageNumber, pageSize, _callback); + okhttp3.Call localVarCall = listWebhooksDeliveriesValidateBeforeCall(endpointId, include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterDeliveredAtGt, filterDeliveredAtGte, filterDeliveredAtLt, filterDeliveredAtLte, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/WebhooksEndpointsApi.java b/src/main/java/com/rootly/client/api/WebhooksEndpointsApi.java index ef1c4c8c..92e1cf95 100644 --- a/src/main/java/com/rootly/client/api/WebhooksEndpointsApi.java +++ b/src/main/java/com/rootly/client/api/WebhooksEndpointsApi.java @@ -86,7 +86,7 @@ public void setCustomBaseUrl(String customBaseUrl) { - +
Response Details
Status Code Description Response Headers
201 webhooks_endpoint created -
201 webhooks_endpoint created with custom_headers -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -157,7 +157,7 @@ private okhttp3.Call createWebhooksEndpointValidateBeforeCall(@jakarta.annotatio - +
Response Details
Status Code Description Response Headers
201 webhooks_endpoint created -
201 webhooks_endpoint created with custom_headers -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -177,7 +177,7 @@ public WebhooksEndpointResponse createWebhooksEndpoint(@jakarta.annotation.Nonnu - +
Response Details
Status Code Description Response Headers
201 webhooks_endpoint created -
201 webhooks_endpoint created with custom_headers -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -199,7 +199,7 @@ public ApiResponse createWebhooksEndpointWithHttpInfo( - +
Response Details
Status Code Description Response Headers
201 webhooks_endpoint created -
201 webhooks_endpoint created with custom_headers -
422 invalid request -
401 responds with unauthorized for invalid token -
@@ -641,7 +641,7 @@ public okhttp3.Call listWebhooksEndpointsAsync(@jakarta.annotation.Nullable Stri - +
Response Details
Status Code Description Response Headers
200 webhooks_endpoint updated -
200 webhooks_endpoint custom_headers cleared with empty array -
404 hidden endpoint not accessible -
*/ @@ -718,7 +718,7 @@ private okhttp3.Call updateWebhooksEndpointValidateBeforeCall(@jakarta.annotatio - +
Response Details
Status Code Description Response Headers
200 webhooks_endpoint updated -
200 webhooks_endpoint custom_headers cleared with empty array -
404 hidden endpoint not accessible -
*/ @@ -738,7 +738,7 @@ public WebhooksEndpointResponse updateWebhooksEndpoint(@jakarta.annotation.Nonnu - +
Response Details
Status Code Description Response Headers
200 webhooks_endpoint updated -
200 webhooks_endpoint custom_headers cleared with empty array -
404 hidden endpoint not accessible -
*/ @@ -760,7 +760,7 @@ public ApiResponse updateWebhooksEndpointWithHttpInfo( - +
Response Details
Status Code Description Response Headers
200 webhooks_endpoint updated -
200 webhooks_endpoint custom_headers cleared with empty array -
404 hidden endpoint not accessible -
*/ diff --git a/src/main/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApi.java b/src/main/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApi.java new file mode 100644 index 00000000..26b62f31 --- /dev/null +++ b/src/main/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApi.java @@ -0,0 +1,782 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiCallback; +import com.rootly.client.ApiClient; +import com.rootly.client.ApiException; +import com.rootly.client.ApiResponse; +import com.rootly.client.Configuration; +import com.rootly.client.Pair; +import com.rootly.client.ProgressRequestBody; +import com.rootly.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewWorkflowActionItemFormFieldCondition; +import com.rootly.client.model.UpdateWorkflowActionItemFormFieldCondition; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionList; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionResponse; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class WorkflowActionItemFormFieldConditionsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public WorkflowActionItemFormFieldConditionsApi() { + this(Configuration.getDefaultApiClient()); + } + + public WorkflowActionItemFormFieldConditionsApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createWorkflowActionItemFormFieldCondition + * @param workflowId (required) + * @param newWorkflowActionItemFormFieldCondition (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
201 workflow_action_item_form_field_condition created -
401 responds with unauthorized for invalid token -
403 responds with forbidden when the feature flag is disabled -
422 rejects conditions on a non-action-item workflow -
+ */ + public okhttp3.Call createWorkflowActionItemFormFieldConditionCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newWorkflowActionItemFormFieldCondition; + + // create path and map variables + String localVarPath = "/v1/workflows/{workflow_id}/action_item_form_field_conditions" + .replace("{" + "workflow_id" + "}", localVarApiClient.escapeString(workflowId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createWorkflowActionItemFormFieldConditionValidateBeforeCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'workflowId' is set + if (workflowId == null) { + throw new ApiException("Missing the required parameter 'workflowId' when calling createWorkflowActionItemFormFieldCondition(Async)"); + } + + // verify the required parameter 'newWorkflowActionItemFormFieldCondition' is set + if (newWorkflowActionItemFormFieldCondition == null) { + throw new ApiException("Missing the required parameter 'newWorkflowActionItemFormFieldCondition' when calling createWorkflowActionItemFormFieldCondition(Async)"); + } + + return createWorkflowActionItemFormFieldConditionCall(workflowId, newWorkflowActionItemFormFieldCondition, _callback); + + } + + /** + * Creates a workflow action item form field condition + * Creates a new workflow action item form field condition from provided data + * @param workflowId (required) + * @param newWorkflowActionItemFormFieldCondition (required) + * @return WorkflowActionItemFormFieldConditionResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
201 workflow_action_item_form_field_condition created -
401 responds with unauthorized for invalid token -
403 responds with forbidden when the feature flag is disabled -
422 rejects conditions on a non-action-item workflow -
+ */ + public WorkflowActionItemFormFieldConditionResponse createWorkflowActionItemFormFieldCondition(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition) throws ApiException { + ApiResponse localVarResp = createWorkflowActionItemFormFieldConditionWithHttpInfo(workflowId, newWorkflowActionItemFormFieldCondition); + return localVarResp.getData(); + } + + /** + * Creates a workflow action item form field condition + * Creates a new workflow action item form field condition from provided data + * @param workflowId (required) + * @param newWorkflowActionItemFormFieldCondition (required) + * @return ApiResponse<WorkflowActionItemFormFieldConditionResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
201 workflow_action_item_form_field_condition created -
401 responds with unauthorized for invalid token -
403 responds with forbidden when the feature flag is disabled -
422 rejects conditions on a non-action-item workflow -
+ */ + public ApiResponse createWorkflowActionItemFormFieldConditionWithHttpInfo(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition) throws ApiException { + okhttp3.Call localVarCall = createWorkflowActionItemFormFieldConditionValidateBeforeCall(workflowId, newWorkflowActionItemFormFieldCondition, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Creates a workflow action item form field condition (asynchronously) + * Creates a new workflow action item form field condition from provided data + * @param workflowId (required) + * @param newWorkflowActionItemFormFieldCondition (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + +
Response Details
Status Code Description Response Headers
201 workflow_action_item_form_field_condition created -
401 responds with unauthorized for invalid token -
403 responds with forbidden when the feature flag is disabled -
422 rejects conditions on a non-action-item workflow -
+ */ + public okhttp3.Call createWorkflowActionItemFormFieldConditionAsync(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createWorkflowActionItemFormFieldConditionValidateBeforeCall(workflowId, newWorkflowActionItemFormFieldCondition, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteWorkflowActionItemFormFieldCondition + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 allows deleting an existing condition when the feature flag is disabled -
404 resource not found -
+ */ + public okhttp3.Call deleteWorkflowActionItemFormFieldConditionCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/workflow_action_item_form_field_conditions/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteWorkflowActionItemFormFieldConditionValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling deleteWorkflowActionItemFormFieldCondition(Async)"); + } + + return deleteWorkflowActionItemFormFieldConditionCall(id, _callback); + + } + + /** + * Delete a workflow action item form field condition + * Delete a specific workflow action item form field condition by id + * @param id (required) + * @return WorkflowActionItemFormFieldConditionResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 allows deleting an existing condition when the feature flag is disabled -
404 resource not found -
+ */ + public WorkflowActionItemFormFieldConditionResponse deleteWorkflowActionItemFormFieldCondition(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = deleteWorkflowActionItemFormFieldConditionWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Delete a workflow action item form field condition + * Delete a specific workflow action item form field condition by id + * @param id (required) + * @return ApiResponse<WorkflowActionItemFormFieldConditionResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 allows deleting an existing condition when the feature flag is disabled -
404 resource not found -
+ */ + public ApiResponse deleteWorkflowActionItemFormFieldConditionWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = deleteWorkflowActionItemFormFieldConditionValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Delete a workflow action item form field condition (asynchronously) + * Delete a specific workflow action item form field condition by id + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 allows deleting an existing condition when the feature flag is disabled -
404 resource not found -
+ */ + public okhttp3.Call deleteWorkflowActionItemFormFieldConditionAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteWorkflowActionItemFormFieldConditionValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getWorkflowActionItemFormFieldCondition + * @param id (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 includes native field ids -
404 resource not found -
+ */ + public okhttp3.Call getWorkflowActionItemFormFieldConditionCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/workflow_action_item_form_field_conditions/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getWorkflowActionItemFormFieldConditionValidateBeforeCall(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling getWorkflowActionItemFormFieldCondition(Async)"); + } + + return getWorkflowActionItemFormFieldConditionCall(id, _callback); + + } + + /** + * Retrieves a workflow action item form field condition + * Retrieves a specific workflow action item form field condition by id + * @param id (required) + * @return WorkflowActionItemFormFieldConditionResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 includes native field ids -
404 resource not found -
+ */ + public WorkflowActionItemFormFieldConditionResponse getWorkflowActionItemFormFieldCondition(@jakarta.annotation.Nonnull String id) throws ApiException { + ApiResponse localVarResp = getWorkflowActionItemFormFieldConditionWithHttpInfo(id); + return localVarResp.getData(); + } + + /** + * Retrieves a workflow action item form field condition + * Retrieves a specific workflow action item form field condition by id + * @param id (required) + * @return ApiResponse<WorkflowActionItemFormFieldConditionResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 includes native field ids -
404 resource not found -
+ */ + public ApiResponse getWorkflowActionItemFormFieldConditionWithHttpInfo(@jakarta.annotation.Nonnull String id) throws ApiException { + okhttp3.Call localVarCall = getWorkflowActionItemFormFieldConditionValidateBeforeCall(id, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Retrieves a workflow action item form field condition (asynchronously) + * Retrieves a specific workflow action item form field condition by id + * @param id (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 includes native field ids -
404 resource not found -
+ */ + public okhttp3.Call getWorkflowActionItemFormFieldConditionAsync(@jakarta.annotation.Nonnull String id, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getWorkflowActionItemFormFieldConditionValidateBeforeCall(id, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for listWorkflowActionItemFormFieldConditions + * @param workflowId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listWorkflowActionItemFormFieldConditionsCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/workflows/{workflow_id}/action_item_form_field_conditions" + .replace("{" + "workflow_id" + "}", localVarApiClient.escapeString(workflowId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + if (include != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("include", include)); + } + + if (pageNumber != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[number]", pageNumber)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("page[size]", pageSize)); + } + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call listWorkflowActionItemFormFieldConditionsValidateBeforeCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'workflowId' is set + if (workflowId == null) { + throw new ApiException("Missing the required parameter 'workflowId' when calling listWorkflowActionItemFormFieldConditions(Async)"); + } + + return listWorkflowActionItemFormFieldConditionsCall(workflowId, include, pageNumber, pageSize, _callback); + + } + + /** + * List workflow action item form field conditions + * List workflow action item form field conditions + * @param workflowId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return WorkflowActionItemFormFieldConditionList + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public WorkflowActionItemFormFieldConditionList listWorkflowActionItemFormFieldConditions(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + ApiResponse localVarResp = listWorkflowActionItemFormFieldConditionsWithHttpInfo(workflowId, include, pageNumber, pageSize); + return localVarResp.getData(); + } + + /** + * List workflow action item form field conditions + * List workflow action item form field conditions + * @param workflowId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @return ApiResponse<WorkflowActionItemFormFieldConditionList> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public ApiResponse listWorkflowActionItemFormFieldConditionsWithHttpInfo(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize) throws ApiException { + okhttp3.Call localVarCall = listWorkflowActionItemFormFieldConditionsValidateBeforeCall(workflowId, include, pageNumber, pageSize, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List workflow action item form field conditions (asynchronously) + * List workflow action item form field conditions + * @param workflowId (required) + * @param include (optional) + * @param pageNumber (optional) + * @param pageSize (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + +
Response Details
Status Code Description Response Headers
200 success -
+ */ + public okhttp3.Call listWorkflowActionItemFormFieldConditionsAsync(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = listWorkflowActionItemFormFieldConditionsValidateBeforeCall(workflowId, include, pageNumber, pageSize, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for updateWorkflowActionItemFormFieldCondition + * @param id (required) + * @param updateWorkflowActionItemFormFieldCondition (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ignores non-allowlisted attributes such as workflow_id -
404 resource not found -
+ */ + public okhttp3.Call updateWorkflowActionItemFormFieldConditionCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = updateWorkflowActionItemFormFieldCondition; + + // create path and map variables + String localVarPath = "/v1/workflow_action_item_form_field_conditions/{id}" + .replace("{" + "id" + "}", localVarApiClient.escapeString(id.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/vnd.api+json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/vnd.api+json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "bearer_auth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call updateWorkflowActionItemFormFieldConditionValidateBeforeCall(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException("Missing the required parameter 'id' when calling updateWorkflowActionItemFormFieldCondition(Async)"); + } + + // verify the required parameter 'updateWorkflowActionItemFormFieldCondition' is set + if (updateWorkflowActionItemFormFieldCondition == null) { + throw new ApiException("Missing the required parameter 'updateWorkflowActionItemFormFieldCondition' when calling updateWorkflowActionItemFormFieldCondition(Async)"); + } + + return updateWorkflowActionItemFormFieldConditionCall(id, updateWorkflowActionItemFormFieldCondition, _callback); + + } + + /** + * Update a workflow action item form field condition + * Update a specific workflow action item form field condition by id + * @param id (required) + * @param updateWorkflowActionItemFormFieldCondition (required) + * @return WorkflowActionItemFormFieldConditionResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ignores non-allowlisted attributes such as workflow_id -
404 resource not found -
+ */ + public WorkflowActionItemFormFieldConditionResponse updateWorkflowActionItemFormFieldCondition(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition) throws ApiException { + ApiResponse localVarResp = updateWorkflowActionItemFormFieldConditionWithHttpInfo(id, updateWorkflowActionItemFormFieldCondition); + return localVarResp.getData(); + } + + /** + * Update a workflow action item form field condition + * Update a specific workflow action item form field condition by id + * @param id (required) + * @param updateWorkflowActionItemFormFieldCondition (required) + * @return ApiResponse<WorkflowActionItemFormFieldConditionResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ignores non-allowlisted attributes such as workflow_id -
404 resource not found -
+ */ + public ApiResponse updateWorkflowActionItemFormFieldConditionWithHttpInfo(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition) throws ApiException { + okhttp3.Call localVarCall = updateWorkflowActionItemFormFieldConditionValidateBeforeCall(id, updateWorkflowActionItemFormFieldCondition, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update a workflow action item form field condition (asynchronously) + * Update a specific workflow action item form field condition by id + * @param id (required) + * @param updateWorkflowActionItemFormFieldCondition (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Response Details
Status Code Description Response Headers
200 ignores non-allowlisted attributes such as workflow_id -
404 resource not found -
+ */ + public okhttp3.Call updateWorkflowActionItemFormFieldConditionAsync(@jakarta.annotation.Nonnull String id, @jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = updateWorkflowActionItemFormFieldConditionValidateBeforeCall(id, updateWorkflowActionItemFormFieldCondition, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/src/main/java/com/rootly/client/api/WorkflowFormFieldConditionsApi.java b/src/main/java/com/rootly/client/api/WorkflowFormFieldConditionsApi.java index 552af670..7882e090 100644 --- a/src/main/java/com/rootly/client/api/WorkflowFormFieldConditionsApi.java +++ b/src/main/java/com/rootly/client/api/WorkflowFormFieldConditionsApi.java @@ -87,7 +87,8 @@ public void setCustomBaseUrl(String customBaseUrl) { - + +
Response Details
Status Code Description Response Headers
201 workflow_form_field_condition created -
201 accepts out-of-scope selected ids when scope validation is disabled -
422 rejects out-of-scope selected ids when scope validation is enabled -
401 responds with unauthorized for invalid token -
*/ @@ -164,7 +165,8 @@ private okhttp3.Call createWorkflowFormFieldConditionValidateBeforeCall(@jakarta - + +
Response Details
Status Code Description Response Headers
201 workflow_form_field_condition created -
201 accepts out-of-scope selected ids when scope validation is disabled -
422 rejects out-of-scope selected ids when scope validation is enabled -
401 responds with unauthorized for invalid token -
*/ @@ -184,7 +186,8 @@ public WorkflowFormFieldConditionResponse createWorkflowFormFieldCondition(@jaka - + +
Response Details
Status Code Description Response Headers
201 workflow_form_field_condition created -
201 accepts out-of-scope selected ids when scope validation is disabled -
422 rejects out-of-scope selected ids when scope validation is enabled -
401 responds with unauthorized for invalid token -
*/ @@ -206,7 +209,8 @@ public ApiResponse createWorkflowFormFieldCo - + +
Response Details
Status Code Description Response Headers
201 workflow_form_field_condition created -
201 accepts out-of-scope selected ids when scope validation is disabled -
422 rejects out-of-scope selected ids when scope validation is enabled -
401 responds with unauthorized for invalid token -
*/ @@ -358,7 +362,7 @@ public okhttp3.Call deleteWorkflowFormFieldConditionAsync(@jakarta.annotation.No - +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition found -
200 includes native field ids -
404 resource not found -
*/ @@ -428,7 +432,7 @@ private okhttp3.Call getWorkflowFormFieldConditionValidateBeforeCall(@jakarta.an - +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition found -
200 includes native field ids -
404 resource not found -
*/ @@ -447,7 +451,7 @@ public WorkflowFormFieldConditionResponse getWorkflowFormFieldCondition(@jakarta - +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition found -
200 includes native field ids -
404 resource not found -
*/ @@ -468,7 +472,7 @@ public ApiResponse getWorkflowFormFieldCondi - +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition found -
200 includes native field ids -
404 resource not found -
*/ @@ -641,7 +645,8 @@ public okhttp3.Call listWorkflowFormFieldConditionsAsync(@jakarta.annotation.Non - + +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition updated -
200 accepts out-of-scope selected ids on update when scope validation is disabled -
422 rejects out-of-scope selected ids on update when scope validation is enabled -
404 resource not found -
*/ @@ -718,7 +723,8 @@ private okhttp3.Call updateWorkflowFormFieldConditionValidateBeforeCall(@jakarta - + +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition updated -
200 accepts out-of-scope selected ids on update when scope validation is disabled -
422 rejects out-of-scope selected ids on update when scope validation is enabled -
404 resource not found -
*/ @@ -738,7 +744,8 @@ public WorkflowFormFieldConditionResponse updateWorkflowFormFieldCondition(@jaka - + +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition updated -
200 accepts out-of-scope selected ids on update when scope validation is disabled -
422 rejects out-of-scope selected ids on update when scope validation is enabled -
404 resource not found -
*/ @@ -760,7 +767,8 @@ public ApiResponse updateWorkflowFormFieldCo - + +
Response Details
Status Code Description Response Headers
200 workflow_form_field_condition updated -
200 accepts out-of-scope selected ids on update when scope validation is disabled -
422 rejects out-of-scope selected ids on update when scope validation is enabled -
404 resource not found -
*/ diff --git a/src/main/java/com/rootly/client/api/WorkflowTasksApi.java b/src/main/java/com/rootly/client/api/WorkflowTasksApi.java index 2cb2729d..61fb3bfd 100644 --- a/src/main/java/com/rootly/client/api/WorkflowTasksApi.java +++ b/src/main/java/com/rootly/client/api/WorkflowTasksApi.java @@ -488,6 +488,14 @@ public okhttp3.Call getWorkflowTaskAsync(@jakarta.annotation.Nonnull String id, * @param filterSearch (optional) * @param filterName (optional) * @param filterSlug (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -498,7 +506,7 @@ public okhttp3.Call getWorkflowTaskAsync(@jakarta.annotation.Nonnull String id, 200 success - */ - public okhttp3.Call listWorkflowTasksCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listWorkflowTasksCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -548,6 +556,38 @@ public okhttp3.Call listWorkflowTasksCall(@jakarta.annotation.Nonnull String wor localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug]", filterSlug)); } + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -568,13 +608,13 @@ public okhttp3.Call listWorkflowTasksCall(@jakarta.annotation.Nonnull String wor } @SuppressWarnings("rawtypes") - private okhttp3.Call listWorkflowTasksValidateBeforeCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, final ApiCallback _callback) throws ApiException { + private okhttp3.Call listWorkflowTasksValidateBeforeCall(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, final ApiCallback _callback) throws ApiException { // verify the required parameter 'workflowId' is set if (workflowId == null) { throw new ApiException("Missing the required parameter 'workflowId' when calling listWorkflowTasks(Async)"); } - return listWorkflowTasksCall(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, _callback); + return listWorkflowTasksCall(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, _callback); } @@ -588,6 +628,14 @@ private okhttp3.Call listWorkflowTasksValidateBeforeCall(@jakarta.annotation.Non * @param filterSearch (optional) * @param filterName (optional) * @param filterSlug (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @return WorkflowTaskList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -597,8 +645,8 @@ private okhttp3.Call listWorkflowTasksValidateBeforeCall(@jakarta.annotation.Non 200 success - */ - public WorkflowTaskList listWorkflowTasks(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug) throws ApiException { - ApiResponse localVarResp = listWorkflowTasksWithHttpInfo(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug); + public WorkflowTaskList listWorkflowTasks(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn) throws ApiException { + ApiResponse localVarResp = listWorkflowTasksWithHttpInfo(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn); return localVarResp.getData(); } @@ -612,6 +660,14 @@ public WorkflowTaskList listWorkflowTasks(@jakarta.annotation.Nonnull String wor * @param filterSearch (optional) * @param filterName (optional) * @param filterSlug (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @return ApiResponse<WorkflowTaskList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -621,8 +677,8 @@ public WorkflowTaskList listWorkflowTasks(@jakarta.annotation.Nonnull String wor 200 success - */ - public ApiResponse listWorkflowTasksWithHttpInfo(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug) throws ApiException { - okhttp3.Call localVarCall = listWorkflowTasksValidateBeforeCall(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, null); + public ApiResponse listWorkflowTasksWithHttpInfo(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn) throws ApiException { + okhttp3.Call localVarCall = listWorkflowTasksValidateBeforeCall(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -637,6 +693,14 @@ public ApiResponse listWorkflowTasksWithHttpInfo(@jakarta.anno * @param filterSearch (optional) * @param filterName (optional) * @param filterSlug (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -647,9 +711,9 @@ public ApiResponse listWorkflowTasksWithHttpInfo(@jakarta.anno 200 success - */ - public okhttp3.Call listWorkflowTasksAsync(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listWorkflowTasksAsync(@jakarta.annotation.Nonnull String workflowId, @jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listWorkflowTasksValidateBeforeCall(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, _callback); + okhttp3.Call localVarCall = listWorkflowTasksValidateBeforeCall(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/src/main/java/com/rootly/client/api/WorkflowsApi.java b/src/main/java/com/rootly/client/api/WorkflowsApi.java index fb5712a3..647cd9cc 100644 --- a/src/main/java/com/rootly/client/api/WorkflowsApi.java +++ b/src/main/java/com/rootly/client/api/WorkflowsApi.java @@ -495,6 +495,14 @@ public okhttp3.Call getWorkflowAsync(@jakarta.annotation.Nonnull GetAlertFieldId * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -505,7 +513,7 @@ public okhttp3.Call getWorkflowAsync(@jakarta.annotation.Nonnull GetAlertFieldId 200 success - */ - public okhttp3.Call listWorkflowsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listWorkflowsCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -574,6 +582,38 @@ public okhttp3.Call listWorkflowsCall(@jakarta.annotation.Nullable String includ localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[created_at][lte]", filterCreatedAtLte)); } + if (filterSlugEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][eq]", filterSlugEq)); + } + + if (filterSlugNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_eq]", filterSlugNotEq)); + } + + if (filterSlugIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][in]", filterSlugIn)); + } + + if (filterSlugNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[slug][not_in]", filterSlugNotIn)); + } + + if (filterNameEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][eq]", filterNameEq)); + } + + if (filterNameNotEq != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_eq]", filterNameNotEq)); + } + + if (filterNameIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][in]", filterNameIn)); + } + + if (filterNameNotIn != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("filter[name][not_in]", filterNameNotIn)); + } + final String[] localVarAccepts = { "application/vnd.api+json" }; @@ -594,8 +634,8 @@ public okhttp3.Call listWorkflowsCall(@jakarta.annotation.Nullable String includ } @SuppressWarnings("rawtypes") - private okhttp3.Call listWorkflowsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { - return listWorkflowsCall(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + private okhttp3.Call listWorkflowsValidateBeforeCall(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { + return listWorkflowsCall(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, _callback); } @@ -613,6 +653,14 @@ private okhttp3.Call listWorkflowsValidateBeforeCall(@jakarta.annotation.Nullabl * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @return WorkflowList * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -622,8 +670,8 @@ private okhttp3.Call listWorkflowsValidateBeforeCall(@jakarta.annotation.Nullabl 200 success - */ - public WorkflowList listWorkflows(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - ApiResponse localVarResp = listWorkflowsWithHttpInfo(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + public WorkflowList listWorkflows(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn) throws ApiException { + ApiResponse localVarResp = listWorkflowsWithHttpInfo(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); return localVarResp.getData(); } @@ -641,6 +689,14 @@ public WorkflowList listWorkflows(@jakarta.annotation.Nullable String include, @ * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @return ApiResponse<WorkflowList> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -650,8 +706,8 @@ public WorkflowList listWorkflows(@jakarta.annotation.Nullable String include, @ 200 success - */ - public ApiResponse listWorkflowsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte) throws ApiException { - okhttp3.Call localVarCall = listWorkflowsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, null); + public ApiResponse listWorkflowsWithHttpInfo(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn) throws ApiException { + okhttp3.Call localVarCall = listWorkflowsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -670,6 +726,14 @@ public ApiResponse listWorkflowsWithHttpInfo(@jakarta.annotation.N * @param filterCreatedAtGte (optional) * @param filterCreatedAtLt (optional) * @param filterCreatedAtLte (optional) + * @param filterSlugEq (optional) + * @param filterSlugNotEq (optional) + * @param filterSlugIn (optional) + * @param filterSlugNotIn (optional) + * @param filterNameEq (optional) + * @param filterNameNotEq (optional) + * @param filterNameIn (optional) + * @param filterNameNotIn (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -680,9 +744,9 @@ public ApiResponse listWorkflowsWithHttpInfo(@jakarta.annotation.N 200 success - */ - public okhttp3.Call listWorkflowsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, final ApiCallback _callback) throws ApiException { + public okhttp3.Call listWorkflowsAsync(@jakarta.annotation.Nullable String include, @jakarta.annotation.Nullable String sort, @jakarta.annotation.Nullable Integer pageNumber, @jakarta.annotation.Nullable Integer pageSize, @jakarta.annotation.Nullable String filterSearch, @jakarta.annotation.Nullable String filterName, @jakarta.annotation.Nullable String filterSlug, @jakarta.annotation.Nullable String filterCreatedAtGt, @jakarta.annotation.Nullable String filterCreatedAtGte, @jakarta.annotation.Nullable String filterCreatedAtLt, @jakarta.annotation.Nullable String filterCreatedAtLte, @jakarta.annotation.Nullable String filterSlugEq, @jakarta.annotation.Nullable String filterSlugNotEq, @jakarta.annotation.Nullable String filterSlugIn, @jakarta.annotation.Nullable String filterSlugNotIn, @jakarta.annotation.Nullable String filterNameEq, @jakarta.annotation.Nullable String filterNameNotEq, @jakarta.annotation.Nullable String filterNameIn, @jakarta.annotation.Nullable String filterNameNotIn, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = listWorkflowsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, _callback); + okhttp3.Call localVarCall = listWorkflowsValidateBeforeCall(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -698,7 +762,7 @@ public okhttp3.Call listWorkflowsAsync(@jakarta.annotation.Nullable String inclu - +
Response Details
Status Code Description Response Headers
200 can set and clear alert workflow status conditions -
200 preserves repeat_condition_* fields when omitted from PATCH payload -
404 non-admin can't update locked workflow -
403 non-admin can't update 'locked' attribute -
@@ -776,7 +840,7 @@ private okhttp3.Call updateWorkflowValidateBeforeCall(@jakarta.annotation.Nonnul - +
Response Details
Status Code Description Response Headers
200 can set and clear alert workflow status conditions -
200 preserves repeat_condition_* fields when omitted from PATCH payload -
404 non-admin can't update locked workflow -
403 non-admin can't update 'locked' attribute -
@@ -797,7 +861,7 @@ public WorkflowResponse updateWorkflow(@jakarta.annotation.Nonnull GetAlertField - +
Response Details
Status Code Description Response Headers
200 can set and clear alert workflow status conditions -
200 preserves repeat_condition_* fields when omitted from PATCH payload -
404 non-admin can't update locked workflow -
403 non-admin can't update 'locked' attribute -
@@ -820,7 +884,7 @@ public ApiResponse updateWorkflowWithHttpInfo(@jakarta.annotat - +
Response Details
Status Code Description Response Headers
200 can set and clear alert workflow status conditions -
200 preserves repeat_condition_* fields when omitted from PATCH payload -
404 non-admin can't update locked workflow -
403 non-admin can't update 'locked' attribute -
diff --git a/src/main/java/com/rootly/client/auth/ApiKeyAuth.java b/src/main/java/com/rootly/client/auth/ApiKeyAuth.java index e74db768..522d7940 100644 --- a/src/main/java/com/rootly/client/auth/ApiKeyAuth.java +++ b/src/main/java/com/rootly/client/auth/ApiKeyAuth.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.List; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKeyAuth implements Authentication { private final String location; private final String paramName; diff --git a/src/main/java/com/rootly/client/auth/Authentication.java b/src/main/java/com/rootly/client/auth/Authentication.java index 64eb3a3e..f816847a 100644 --- a/src/main/java/com/rootly/client/auth/Authentication.java +++ b/src/main/java/com/rootly/client/auth/Authentication.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.List; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public interface Authentication { /** * Apply authentication settings to header and query params. diff --git a/src/main/java/com/rootly/client/auth/HttpBearerAuth.java b/src/main/java/com/rootly/client/auth/HttpBearerAuth.java index 7ad6d097..9706a14a 100644 --- a/src/main/java/com/rootly/client/auth/HttpBearerAuth.java +++ b/src/main/java/com/rootly/client/auth/HttpBearerAuth.java @@ -22,7 +22,7 @@ import java.util.Optional; import java.util.function.Supplier; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class HttpBearerAuth implements Authentication { private final String scheme; private Supplier tokenSupplier; diff --git a/src/main/java/com/rootly/client/model/AbstractOpenApiSchema.java b/src/main/java/com/rootly/client/model/AbstractOpenApiSchema.java index f92d36e9..6d915e93 100644 --- a/src/main/java/com/rootly/client/model/AbstractOpenApiSchema.java +++ b/src/main/java/com/rootly/client/model/AbstractOpenApiSchema.java @@ -21,7 +21,7 @@ /** * Abstract class for oneOf,anyOf schemas defined in OpenAPI spec */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public abstract class AbstractOpenApiSchema { // store the actual instance of the schema/object diff --git a/src/main/java/com/rootly/client/model/ActionItemTriggerParams.java b/src/main/java/com/rootly/client/model/ActionItemTriggerParams.java index 52e9b9d1..cf15b0fc 100644 --- a/src/main/java/com/rootly/client/model/ActionItemTriggerParams.java +++ b/src/main/java/com/rootly/client/model/ActionItemTriggerParams.java @@ -51,7 +51,7 @@ /** * ActionItemTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ActionItemTriggerParams { /** * Gets or Sets triggerType @@ -1109,6 +1109,87 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private IncidentConditionGroupEnum incidentConditionGroup = IncidentConditionGroupEnum.ANY; + /** + * Gets or Sets incidentConditionLabel + */ + @JsonAdapter(IncidentConditionLabelEnum.Adapter.class) + public enum IncidentConditionLabelEnum { + IS("IS"), + + IS_NOT("IS NOT"), + + ANY("ANY"), + + CONTAINS("CONTAINS"), + + CONTAINS_ALL("CONTAINS_ALL"), + + CONTAINS_NONE("CONTAINS_NONE"), + + NONE("NONE"), + + SET("SET"), + + UNSET("UNSET"); + + private String value; + + IncidentConditionLabelEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IncidentConditionLabelEnum fromValue(String value) { + for (IncidentConditionLabelEnum b : IncidentConditionLabelEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IncidentConditionLabelEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IncidentConditionLabelEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IncidentConditionLabelEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IncidentConditionLabelEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_INCIDENT_CONDITION_LABEL = "incident_condition_label"; + @SerializedName(SERIALIZED_NAME_INCIDENT_CONDITION_LABEL) + @jakarta.annotation.Nullable + private IncidentConditionLabelEnum incidentConditionLabel = IncidentConditionLabelEnum.ANY; + + public static final String SERIALIZED_NAME_INCIDENT_CONDITION_LABEL_USE_REGEXP = "incident_condition_label_use_regexp"; + @SerializedName(SERIALIZED_NAME_INCIDENT_CONDITION_LABEL_USE_REGEXP) + @jakarta.annotation.Nullable + private Boolean incidentConditionLabelUseRegexp = false; + + public static final String SERIALIZED_NAME_INCIDENT_LABELS = "incident_labels"; + @SerializedName(SERIALIZED_NAME_INCIDENT_LABELS) + @jakarta.annotation.Nullable + private List incidentLabels = new ArrayList<>(); + /** * Gets or Sets incidentConditionSummary */ @@ -2408,6 +2489,71 @@ public void setIncidentConditionGroup(@jakarta.annotation.Nullable IncidentCondi } + public ActionItemTriggerParams incidentConditionLabel(@jakarta.annotation.Nullable IncidentConditionLabelEnum incidentConditionLabel) { + this.incidentConditionLabel = incidentConditionLabel; + return this; + } + + /** + * Get incidentConditionLabel + * @return incidentConditionLabel + */ + @jakarta.annotation.Nullable + public IncidentConditionLabelEnum getIncidentConditionLabel() { + return incidentConditionLabel; + } + + public void setIncidentConditionLabel(@jakarta.annotation.Nullable IncidentConditionLabelEnum incidentConditionLabel) { + this.incidentConditionLabel = incidentConditionLabel; + } + + + public ActionItemTriggerParams incidentConditionLabelUseRegexp(@jakarta.annotation.Nullable Boolean incidentConditionLabelUseRegexp) { + this.incidentConditionLabelUseRegexp = incidentConditionLabelUseRegexp; + return this; + } + + /** + * Get incidentConditionLabelUseRegexp + * @return incidentConditionLabelUseRegexp + */ + @jakarta.annotation.Nullable + public Boolean getIncidentConditionLabelUseRegexp() { + return incidentConditionLabelUseRegexp; + } + + public void setIncidentConditionLabelUseRegexp(@jakarta.annotation.Nullable Boolean incidentConditionLabelUseRegexp) { + this.incidentConditionLabelUseRegexp = incidentConditionLabelUseRegexp; + } + + + public ActionItemTriggerParams incidentLabels(@jakarta.annotation.Nullable List incidentLabels) { + this.incidentLabels = incidentLabels; + return this; + } + + public ActionItemTriggerParams addIncidentLabelsItem(String incidentLabelsItem) { + if (this.incidentLabels == null) { + this.incidentLabels = new ArrayList<>(); + } + this.incidentLabels.add(incidentLabelsItem); + return this; + } + + /** + * Get incidentLabels + * @return incidentLabels + */ + @jakarta.annotation.Nullable + public List getIncidentLabels() { + return incidentLabels; + } + + public void setIncidentLabels(@jakarta.annotation.Nullable List incidentLabels) { + this.incidentLabels = incidentLabels; + } + + public ActionItemTriggerParams incidentConditionSummary(@jakarta.annotation.Nullable IncidentConditionSummaryEnum incidentConditionSummary) { this.incidentConditionSummary = incidentConditionSummary; return this; @@ -2772,6 +2918,9 @@ public boolean equals(Object o) { Objects.equals(this.incidentConditionService, actionItemTriggerParams.incidentConditionService) && Objects.equals(this.incidentConditionFunctionality, actionItemTriggerParams.incidentConditionFunctionality) && Objects.equals(this.incidentConditionGroup, actionItemTriggerParams.incidentConditionGroup) && + Objects.equals(this.incidentConditionLabel, actionItemTriggerParams.incidentConditionLabel) && + Objects.equals(this.incidentConditionLabelUseRegexp, actionItemTriggerParams.incidentConditionLabelUseRegexp) && + Objects.equals(this.incidentLabels, actionItemTriggerParams.incidentLabels) && Objects.equals(this.incidentConditionSummary, actionItemTriggerParams.incidentConditionSummary) && Objects.equals(this.incidentConditionStartedAt, actionItemTriggerParams.incidentConditionStartedAt) && Objects.equals(this.incidentConditionDetectedAt, actionItemTriggerParams.incidentConditionDetectedAt) && @@ -2796,7 +2945,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(triggerType, triggers, incidentVisibilities, incidentKinds, incidentStatuses, incidentInactivityDuration, incidentCondition, incidentConditionVisibility, incidentConditionKind, incidentConditionStatus, incidentConditionSubStatus, incidentConditionEnvironment, incidentConditionSeverity, incidentConditionIncidentType, incidentConditionIncidentRoles, incidentConditionService, incidentConditionFunctionality, incidentConditionGroup, incidentConditionSummary, incidentConditionStartedAt, incidentConditionDetectedAt, incidentConditionAcknowledgedAt, incidentConditionMitigatedAt, incidentConditionResolvedAt, incidentConditionalInactivity, incidentActionItemCondition, incidentActionItemConditionKind, incidentActionItemKinds, incidentActionItemConditionStatus, incidentActionItemStatuses, incidentActionItemConditionPriority, incidentActionItemPriorities, incidentActionItemConditionGroup, incidentActionItemGroupIds); + return Objects.hash(triggerType, triggers, incidentVisibilities, incidentKinds, incidentStatuses, incidentInactivityDuration, incidentCondition, incidentConditionVisibility, incidentConditionKind, incidentConditionStatus, incidentConditionSubStatus, incidentConditionEnvironment, incidentConditionSeverity, incidentConditionIncidentType, incidentConditionIncidentRoles, incidentConditionService, incidentConditionFunctionality, incidentConditionGroup, incidentConditionLabel, incidentConditionLabelUseRegexp, incidentLabels, incidentConditionSummary, incidentConditionStartedAt, incidentConditionDetectedAt, incidentConditionAcknowledgedAt, incidentConditionMitigatedAt, incidentConditionResolvedAt, incidentConditionalInactivity, incidentActionItemCondition, incidentActionItemConditionKind, incidentActionItemKinds, incidentActionItemConditionStatus, incidentActionItemStatuses, incidentActionItemConditionPriority, incidentActionItemPriorities, incidentActionItemConditionGroup, incidentActionItemGroupIds); } private static int hashCodeNullable(JsonNullable a) { @@ -2828,6 +2977,9 @@ public String toString() { sb.append(" incidentConditionService: ").append(toIndentedString(incidentConditionService)).append("\n"); sb.append(" incidentConditionFunctionality: ").append(toIndentedString(incidentConditionFunctionality)).append("\n"); sb.append(" incidentConditionGroup: ").append(toIndentedString(incidentConditionGroup)).append("\n"); + sb.append(" incidentConditionLabel: ").append(toIndentedString(incidentConditionLabel)).append("\n"); + sb.append(" incidentConditionLabelUseRegexp: ").append(toIndentedString(incidentConditionLabelUseRegexp)).append("\n"); + sb.append(" incidentLabels: ").append(toIndentedString(incidentLabels)).append("\n"); sb.append(" incidentConditionSummary: ").append(toIndentedString(incidentConditionSummary)).append("\n"); sb.append(" incidentConditionStartedAt: ").append(toIndentedString(incidentConditionStartedAt)).append("\n"); sb.append(" incidentConditionDetectedAt: ").append(toIndentedString(incidentConditionDetectedAt)).append("\n"); @@ -2884,6 +3036,9 @@ private String toIndentedString(Object o) { openapiFields.add("incident_condition_service"); openapiFields.add("incident_condition_functionality"); openapiFields.add("incident_condition_group"); + openapiFields.add("incident_condition_label"); + openapiFields.add("incident_condition_label_use_regexp"); + openapiFields.add("incident_labels"); openapiFields.add("incident_condition_summary"); openapiFields.add("incident_condition_started_at"); openapiFields.add("incident_condition_detected_at"); @@ -3042,6 +3197,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_condition_group") != null && !jsonObj.get("incident_condition_group").isJsonNull()) { IncidentConditionGroupEnum.validateJsonElement(jsonObj.get("incident_condition_group")); } + if ((jsonObj.get("incident_condition_label") != null && !jsonObj.get("incident_condition_label").isJsonNull()) && !jsonObj.get("incident_condition_label").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_condition_label` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_condition_label").toString())); + } + // validate the optional field `incident_condition_label` + if (jsonObj.get("incident_condition_label") != null && !jsonObj.get("incident_condition_label").isJsonNull()) { + IncidentConditionLabelEnum.validateJsonElement(jsonObj.get("incident_condition_label")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("incident_labels") != null && !jsonObj.get("incident_labels").isJsonNull() && !jsonObj.get("incident_labels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_labels` to be an array in the JSON string but got `%s`", jsonObj.get("incident_labels").toString())); + } if ((jsonObj.get("incident_condition_summary") != null && !jsonObj.get("incident_condition_summary").isJsonNull()) && !jsonObj.get("incident_condition_summary").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `incident_condition_summary` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_condition_summary").toString())); } diff --git a/src/main/java/com/rootly/client/model/AddActionItemTaskParams.java b/src/main/java/com/rootly/client/model/AddActionItemTaskParams.java index ac158092..1a5f33c8 100644 --- a/src/main/java/com/rootly/client/model/AddActionItemTaskParams.java +++ b/src/main/java/com/rootly/client/model/AddActionItemTaskParams.java @@ -53,7 +53,7 @@ /** * AddActionItemTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddActionItemTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/AddActionItemTaskParamsAssignedToUser.java b/src/main/java/com/rootly/client/model/AddActionItemTaskParamsAssignedToUser.java index a8b3e075..778df107 100644 --- a/src/main/java/com/rootly/client/model/AddActionItemTaskParamsAssignedToUser.java +++ b/src/main/java/com/rootly/client/model/AddActionItemTaskParamsAssignedToUser.java @@ -48,7 +48,7 @@ /** * The user this action item is assigned to */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddActionItemTaskParamsAssignedToUser { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AddActionItemTaskParamsPostToSlackChannelsInner.java b/src/main/java/com/rootly/client/model/AddActionItemTaskParamsPostToSlackChannelsInner.java index 09029b53..0b117eee 100644 --- a/src/main/java/com/rootly/client/model/AddActionItemTaskParamsPostToSlackChannelsInner.java +++ b/src/main/java/com/rootly/client/model/AddActionItemTaskParamsPostToSlackChannelsInner.java @@ -48,7 +48,7 @@ /** * AddActionItemTaskParamsPostToSlackChannelsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddActionItemTaskParamsPostToSlackChannelsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AddMicrosoftTeamsChatTabTaskParams.java b/src/main/java/com/rootly/client/model/AddMicrosoftTeamsChatTabTaskParams.java index 27185d9a..9cc05e9e 100644 --- a/src/main/java/com/rootly/client/model/AddMicrosoftTeamsChatTabTaskParams.java +++ b/src/main/java/com/rootly/client/model/AddMicrosoftTeamsChatTabTaskParams.java @@ -49,7 +49,7 @@ /** * AddMicrosoftTeamsChatTabTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddMicrosoftTeamsChatTabTaskParams { /** * Gets or Sets taskType @@ -103,28 +103,28 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TaskTypeEnum taskType; public static final String SERIALIZED_NAME_CHAT = "chat"; @SerializedName(SERIALIZED_NAME_CHAT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private AddActionItemTaskParamsPostToSlackChannelsInner chat; public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String title; public static final String SERIALIZED_NAME_LINK = "link"; @SerializedName(SERIALIZED_NAME_LINK) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String link; public AddMicrosoftTeamsChatTabTaskParams() { } - public AddMicrosoftTeamsChatTabTaskParams taskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public AddMicrosoftTeamsChatTabTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; return this; } @@ -133,17 +133,17 @@ public AddMicrosoftTeamsChatTabTaskParams taskType(@javax.annotation.Nullable Ta * Get taskType * @return taskType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TaskTypeEnum getTaskType() { return taskType; } - public void setTaskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; } - public AddMicrosoftTeamsChatTabTaskParams chat(@javax.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner chat) { + public AddMicrosoftTeamsChatTabTaskParams chat(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner chat) { this.chat = chat; return this; } @@ -152,17 +152,17 @@ public AddMicrosoftTeamsChatTabTaskParams chat(@javax.annotation.Nonnull AddActi * Get chat * @return chat */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public AddActionItemTaskParamsPostToSlackChannelsInner getChat() { return chat; } - public void setChat(@javax.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner chat) { + public void setChat(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner chat) { this.chat = chat; } - public AddMicrosoftTeamsChatTabTaskParams title(@javax.annotation.Nonnull String title) { + public AddMicrosoftTeamsChatTabTaskParams title(@jakarta.annotation.Nonnull String title) { this.title = title; return this; } @@ -171,17 +171,17 @@ public AddMicrosoftTeamsChatTabTaskParams title(@javax.annotation.Nonnull String * The tab title * @return title */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getTitle() { return title; } - public void setTitle(@javax.annotation.Nonnull String title) { + public void setTitle(@jakarta.annotation.Nonnull String title) { this.title = title; } - public AddMicrosoftTeamsChatTabTaskParams link(@javax.annotation.Nonnull String link) { + public AddMicrosoftTeamsChatTabTaskParams link(@jakarta.annotation.Nonnull String link) { this.link = link; return this; } @@ -190,12 +190,12 @@ public AddMicrosoftTeamsChatTabTaskParams link(@javax.annotation.Nonnull String * The tab link * @return link */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getLink() { return link; } - public void setLink(@javax.annotation.Nonnull String link) { + public void setLink(@jakarta.annotation.Nonnull String link) { this.link = link; } diff --git a/src/main/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParams.java b/src/main/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParams.java index 43a7f4e9..3f527f21 100644 --- a/src/main/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParams.java +++ b/src/main/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParams.java @@ -19,403 +19,250 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; import org.openapitools.jackson.nullable.JsonNullable; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * AddMicrosoftTeamsTabTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class AddMicrosoftTeamsTabTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - ADD_MICROSOFT_TEAMS_TAB("add_microsoft_teams_tab"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AddMicrosoftTeamsTabTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(AddMicrosoftTeamsTabTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AddMicrosoftTeamsTabTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AddMicrosoftTeamsTabTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterAddSlackBookmarkTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(AddSlackBookmarkTaskParamsAnyOf.class)); + final TypeAdapter adapterAddSlackBookmarkTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(AddSlackBookmarkTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AddMicrosoftTeamsTabTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `AddSlackBookmarkTaskParamsAnyOf` + if (value.getActualInstance() instanceof AddSlackBookmarkTaskParamsAnyOf) { + JsonElement element = adapterAddSlackBookmarkTaskParamsAnyOf.toJsonTree((AddSlackBookmarkTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AddSlackBookmarkTaskParamsAnyOf1` + if (value.getActualInstance() instanceof AddSlackBookmarkTaskParamsAnyOf1) { + JsonElement element = adapterAddSlackBookmarkTaskParamsAnyOf1.toJsonTree((AddSlackBookmarkTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1"); + } + + @Override + public AddMicrosoftTeamsTabTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize AddSlackBookmarkTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + AddSlackBookmarkTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterAddSlackBookmarkTaskParamsAnyOf; + AddMicrosoftTeamsTabTaskParams ret = new AddMicrosoftTeamsTabTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AddSlackBookmarkTaskParamsAnyOf'", e); + } + // deserialize AddSlackBookmarkTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + AddSlackBookmarkTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterAddSlackBookmarkTaskParamsAnyOf1; + AddMicrosoftTeamsTabTaskParams ret = new AddMicrosoftTeamsTabTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AddSlackBookmarkTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for AddMicrosoftTeamsTabTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); + public AddMicrosoftTeamsTabTaskParams() { + super("anyOf", Boolean.FALSE); } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_PLAYBOOK_ID = "playbook_id"; - @SerializedName(SERIALIZED_NAME_PLAYBOOK_ID) - @jakarta.annotation.Nullable - private String playbookId; - - public static final String SERIALIZED_NAME_TEAM = "team"; - @SerializedName(SERIALIZED_NAME_TEAM) - @jakarta.annotation.Nonnull - private Object team; - - public static final String SERIALIZED_NAME_CHANNEL = "channel"; - @SerializedName(SERIALIZED_NAME_CHANNEL) - @jakarta.annotation.Nonnull - private Object channel; - - public static final String SERIALIZED_NAME_TITLE = "title"; - @SerializedName(SERIALIZED_NAME_TITLE) - @jakarta.annotation.Nullable - private String title; - public static final String SERIALIZED_NAME_LINK = "link"; - @SerializedName(SERIALIZED_NAME_LINK) - @jakarta.annotation.Nullable - private String link; - - public AddMicrosoftTeamsTabTaskParams() { - } - - public AddMicrosoftTeamsTabTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public AddMicrosoftTeamsTabTaskParams playbookId(@jakarta.annotation.Nullable String playbookId) { - this.playbookId = playbookId; - return this; - } - - /** - * The playbook id if tab is of an incident playbook - * @return playbookId - */ - @jakarta.annotation.Nullable - public String getPlaybookId() { - return playbookId; - } - - public void setPlaybookId(@jakarta.annotation.Nullable String playbookId) { - this.playbookId = playbookId; - } - - - public AddMicrosoftTeamsTabTaskParams team(@jakarta.annotation.Nonnull Object team) { - this.team = team; - return this; - } - - /** - * Get team - * @return team - */ - @jakarta.annotation.Nonnull - public Object getTeam() { - return team; - } - - public void setTeam(@jakarta.annotation.Nonnull Object team) { - this.team = team; - } - - - public AddMicrosoftTeamsTabTaskParams channel(@jakarta.annotation.Nonnull Object channel) { - this.channel = channel; - return this; - } - - /** - * Get channel - * @return channel - */ - @jakarta.annotation.Nonnull - public Object getChannel() { - return channel; - } - - public void setChannel(@jakarta.annotation.Nonnull Object channel) { - this.channel = channel; - } - - - public AddMicrosoftTeamsTabTaskParams title(@jakarta.annotation.Nullable String title) { - this.title = title; - return this; - } - - /** - * The tab title. Required if not a playbook tab - * @return title - */ - @jakarta.annotation.Nullable - public String getTitle() { - return title; - } - - public void setTitle(@jakarta.annotation.Nullable String title) { - this.title = title; - } - - - public AddMicrosoftTeamsTabTaskParams link(@jakarta.annotation.Nullable String link) { - this.link = link; - return this; - } - - /** - * The tab link. Required if not a playbook tab - * @return link - */ - @jakarta.annotation.Nullable - public String getLink() { - return link; - } - - public void setLink(@jakarta.annotation.Nullable String link) { - this.link = link; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; + public AddMicrosoftTeamsTabTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - if (o == null || getClass() != o.getClass()) { - return false; - } - AddMicrosoftTeamsTabTaskParams addMicrosoftTeamsTabTaskParams = (AddMicrosoftTeamsTabTaskParams) o; - return Objects.equals(this.taskType, addMicrosoftTeamsTabTaskParams.taskType) && - Objects.equals(this.playbookId, addMicrosoftTeamsTabTaskParams.playbookId) && - Objects.equals(this.team, addMicrosoftTeamsTabTaskParams.team) && - Objects.equals(this.channel, addMicrosoftTeamsTabTaskParams.channel) && - Objects.equals(this.title, addMicrosoftTeamsTabTaskParams.title) && - Objects.equals(this.link, addMicrosoftTeamsTabTaskParams.link); - } - - private static boolean equalsNullable(JsonNullable a, JsonNullable b) { - return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); - } - - @Override - public int hashCode() { - return Objects.hash(taskType, playbookId, team, channel, title, link); - } - private static int hashCodeNullable(JsonNullable a) { - if (a == null) { - return 1; + static { + schemas.put("AddSlackBookmarkTaskParamsAnyOf", AddSlackBookmarkTaskParamsAnyOf.class); + schemas.put("AddSlackBookmarkTaskParamsAnyOf1", AddSlackBookmarkTaskParamsAnyOf1.class); } - return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; - } - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AddMicrosoftTeamsTabTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" playbookId: ").append(toIndentedString(playbookId)).append("\n"); - sb.append(" team: ").append(toIndentedString(team)).append("\n"); - sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); - sb.append(" title: ").append(toIndentedString(title)).append("\n"); - sb.append(" link: ").append(toIndentedString(link)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + @Override + public Map> getSchemas() { + return AddMicrosoftTeamsTabTaskParams.schemas; } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("team"); - openapiRequiredFields.add("channel"); - } - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to AddMicrosoftTeamsTabTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!AddMicrosoftTeamsTabTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in AddMicrosoftTeamsTabTaskParams is not found in the empty JSON string", AddMicrosoftTeamsTabTaskParams.openapiRequiredFields.toString())); + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof AddSlackBookmarkTaskParamsAnyOf) { + super.setActualInstance(instance); + return; } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!AddMicrosoftTeamsTabTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AddMicrosoftTeamsTabTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + if (instance instanceof AddSlackBookmarkTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; } - } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : AddMicrosoftTeamsTabTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if ((jsonObj.get("playbook_id") != null && !jsonObj.get("playbook_id").isJsonNull()) && !jsonObj.get("playbook_id").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `playbook_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("playbook_id").toString())); - } - // validate the required field `team` - // validate the required field `channel` - if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); - } - if ((jsonObj.get("link") != null && !jsonObj.get("link").isJsonNull()) && !jsonObj.get("link").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `link` to be a primitive type in the JSON string but got `%s`", jsonObj.get("link").toString())); - } - } + throw new RuntimeException("Invalid instance type. Must be AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1"); + } - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + /** + * Get the actual instance, which can be the following: + * AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1 + * + * @return The actual instance (AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1) + */ @SuppressWarnings("unchecked") @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!AddMicrosoftTeamsTabTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'AddMicrosoftTeamsTabTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(AddMicrosoftTeamsTabTaskParams.class)); + public Object getActualInstance() { + return super.getActualInstance(); + } - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, AddMicrosoftTeamsTabTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } + /** + * Get the actual instance of `AddSlackBookmarkTaskParamsAnyOf`. If the actual instance is not `AddSlackBookmarkTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AddSlackBookmarkTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `AddSlackBookmarkTaskParamsAnyOf` + */ + public AddSlackBookmarkTaskParamsAnyOf getAddSlackBookmarkTaskParamsAnyOf() throws ClassCastException { + return (AddSlackBookmarkTaskParamsAnyOf)super.getActualInstance(); + } - @Override - public AddMicrosoftTeamsTabTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } + /** + * Get the actual instance of `AddSlackBookmarkTaskParamsAnyOf1`. If the actual instance is not `AddSlackBookmarkTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AddSlackBookmarkTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `AddSlackBookmarkTaskParamsAnyOf1` + */ + public AddSlackBookmarkTaskParamsAnyOf1 getAddSlackBookmarkTaskParamsAnyOf1() throws ClassCastException { + return (AddSlackBookmarkTaskParamsAnyOf1)super.getActualInstance(); + } - }.nullSafe(); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AddMicrosoftTeamsTabTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with AddSlackBookmarkTaskParamsAnyOf + try { + AddSlackBookmarkTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AddSlackBookmarkTaskParamsAnyOf1 + try { + AddSlackBookmarkTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for AddMicrosoftTeamsTabTaskParams with anyOf schemas: AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of AddMicrosoftTeamsTabTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of AddMicrosoftTeamsTabTaskParams - * @throws IOException if the JSON string is invalid with respect to AddMicrosoftTeamsTabTaskParams - */ - public static AddMicrosoftTeamsTabTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, AddMicrosoftTeamsTabTaskParams.class); - } + /** + * Create an instance of AddMicrosoftTeamsTabTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of AddMicrosoftTeamsTabTaskParams + * @throws IOException if the JSON string is invalid with respect to AddMicrosoftTeamsTabTaskParams + */ + public static AddMicrosoftTeamsTabTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AddMicrosoftTeamsTabTaskParams.class); + } - /** - * Convert an instance of AddMicrosoftTeamsTabTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of AddMicrosoftTeamsTabTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/AddRoleTaskParams.java b/src/main/java/com/rootly/client/model/AddRoleTaskParams.java index a95f3510..1c2b8631 100644 --- a/src/main/java/com/rootly/client/model/AddRoleTaskParams.java +++ b/src/main/java/com/rootly/client/model/AddRoleTaskParams.java @@ -49,7 +49,7 @@ /** * AddRoleTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddRoleTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/AddRoleTaskParamsAssignedToUser.java b/src/main/java/com/rootly/client/model/AddRoleTaskParamsAssignedToUser.java index b9e5d911..e5033e77 100644 --- a/src/main/java/com/rootly/client/model/AddRoleTaskParamsAssignedToUser.java +++ b/src/main/java/com/rootly/client/model/AddRoleTaskParamsAssignedToUser.java @@ -48,7 +48,7 @@ /** * The user this role is assigned to */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddRoleTaskParamsAssignedToUser { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParams.java b/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParams.java index 97cb17ee..cb588e5e 100644 --- a/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParams.java +++ b/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParams.java @@ -19,404 +19,250 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; import org.openapitools.jackson.nullable.JsonNullable; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * AddSlackBookmarkTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class AddSlackBookmarkTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - ADD_SLACK_BOOKMARK("add_slack_bookmark"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AddSlackBookmarkTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(AddSlackBookmarkTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AddSlackBookmarkTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AddSlackBookmarkTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterAddSlackBookmarkTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(AddSlackBookmarkTaskParamsAnyOf.class)); + final TypeAdapter adapterAddSlackBookmarkTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(AddSlackBookmarkTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AddSlackBookmarkTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `AddSlackBookmarkTaskParamsAnyOf` + if (value.getActualInstance() instanceof AddSlackBookmarkTaskParamsAnyOf) { + JsonElement element = adapterAddSlackBookmarkTaskParamsAnyOf.toJsonTree((AddSlackBookmarkTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AddSlackBookmarkTaskParamsAnyOf1` + if (value.getActualInstance() instanceof AddSlackBookmarkTaskParamsAnyOf1) { + JsonElement element = adapterAddSlackBookmarkTaskParamsAnyOf1.toJsonTree((AddSlackBookmarkTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1"); + } + + @Override + public AddSlackBookmarkTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize AddSlackBookmarkTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + AddSlackBookmarkTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterAddSlackBookmarkTaskParamsAnyOf; + AddSlackBookmarkTaskParams ret = new AddSlackBookmarkTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AddSlackBookmarkTaskParamsAnyOf'", e); + } + // deserialize AddSlackBookmarkTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + AddSlackBookmarkTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterAddSlackBookmarkTaskParamsAnyOf1; + AddSlackBookmarkTaskParams ret = new AddSlackBookmarkTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AddSlackBookmarkTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for AddSlackBookmarkTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); + public AddSlackBookmarkTaskParams() { + super("anyOf", Boolean.FALSE); } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_PLAYBOOK_ID = "playbook_id"; - @SerializedName(SERIALIZED_NAME_PLAYBOOK_ID) - @jakarta.annotation.Nullable - private String playbookId; - - public static final String SERIALIZED_NAME_CHANNEL = "channel"; - @SerializedName(SERIALIZED_NAME_CHANNEL) - @jakarta.annotation.Nonnull - private Object channel; - - public static final String SERIALIZED_NAME_TITLE = "title"; - @SerializedName(SERIALIZED_NAME_TITLE) - @jakarta.annotation.Nullable - private String title; - - public static final String SERIALIZED_NAME_LINK = "link"; - @SerializedName(SERIALIZED_NAME_LINK) - @jakarta.annotation.Nullable - private String link; - public static final String SERIALIZED_NAME_EMOJI = "emoji"; - @SerializedName(SERIALIZED_NAME_EMOJI) - @jakarta.annotation.Nullable - private String emoji; - - public AddSlackBookmarkTaskParams() { - } - - public AddSlackBookmarkTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public AddSlackBookmarkTaskParams playbookId(@jakarta.annotation.Nullable String playbookId) { - this.playbookId = playbookId; - return this; - } - - /** - * The playbook id if bookmark is of an incident playbook - * @return playbookId - */ - @jakarta.annotation.Nullable - public String getPlaybookId() { - return playbookId; - } - - public void setPlaybookId(@jakarta.annotation.Nullable String playbookId) { - this.playbookId = playbookId; - } - - - public AddSlackBookmarkTaskParams channel(@jakarta.annotation.Nonnull Object channel) { - this.channel = channel; - return this; - } - - /** - * Get channel - * @return channel - */ - @jakarta.annotation.Nonnull - public Object getChannel() { - return channel; - } - - public void setChannel(@jakarta.annotation.Nonnull Object channel) { - this.channel = channel; - } - - - public AddSlackBookmarkTaskParams title(@jakarta.annotation.Nullable String title) { - this.title = title; - return this; - } - - /** - * The bookmark title. Required if not a playbook bookmark - * @return title - */ - @jakarta.annotation.Nullable - public String getTitle() { - return title; - } - - public void setTitle(@jakarta.annotation.Nullable String title) { - this.title = title; - } - - - public AddSlackBookmarkTaskParams link(@jakarta.annotation.Nullable String link) { - this.link = link; - return this; - } - - /** - * The bookmark link. Required if not a playbook bookmark - * @return link - */ - @jakarta.annotation.Nullable - public String getLink() { - return link; - } - - public void setLink(@jakarta.annotation.Nullable String link) { - this.link = link; - } - - - public AddSlackBookmarkTaskParams emoji(@jakarta.annotation.Nullable String emoji) { - this.emoji = emoji; - return this; - } - - /** - * The bookmark emoji - * @return emoji - */ - @jakarta.annotation.Nullable - public String getEmoji() { - return emoji; - } - - public void setEmoji(@jakarta.annotation.Nullable String emoji) { - this.emoji = emoji; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; + public AddSlackBookmarkTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - if (o == null || getClass() != o.getClass()) { - return false; - } - AddSlackBookmarkTaskParams addSlackBookmarkTaskParams = (AddSlackBookmarkTaskParams) o; - return Objects.equals(this.taskType, addSlackBookmarkTaskParams.taskType) && - Objects.equals(this.playbookId, addSlackBookmarkTaskParams.playbookId) && - Objects.equals(this.channel, addSlackBookmarkTaskParams.channel) && - Objects.equals(this.title, addSlackBookmarkTaskParams.title) && - Objects.equals(this.link, addSlackBookmarkTaskParams.link) && - Objects.equals(this.emoji, addSlackBookmarkTaskParams.emoji); - } - - private static boolean equalsNullable(JsonNullable a, JsonNullable b) { - return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); - } - - @Override - public int hashCode() { - return Objects.hash(taskType, playbookId, channel, title, link, emoji); - } - private static int hashCodeNullable(JsonNullable a) { - if (a == null) { - return 1; + static { + schemas.put("AddSlackBookmarkTaskParamsAnyOf", AddSlackBookmarkTaskParamsAnyOf.class); + schemas.put("AddSlackBookmarkTaskParamsAnyOf1", AddSlackBookmarkTaskParamsAnyOf1.class); } - return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; - } - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AddSlackBookmarkTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" playbookId: ").append(toIndentedString(playbookId)).append("\n"); - sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); - sb.append(" title: ").append(toIndentedString(title)).append("\n"); - sb.append(" link: ").append(toIndentedString(link)).append("\n"); - sb.append(" emoji: ").append(toIndentedString(emoji)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + @Override + public Map> getSchemas() { + return AddSlackBookmarkTaskParams.schemas; } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("channel"); - } - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to AddSlackBookmarkTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!AddSlackBookmarkTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in AddSlackBookmarkTaskParams is not found in the empty JSON string", AddSlackBookmarkTaskParams.openapiRequiredFields.toString())); + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof AddSlackBookmarkTaskParamsAnyOf) { + super.setActualInstance(instance); + return; } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!AddSlackBookmarkTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AddSlackBookmarkTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + if (instance instanceof AddSlackBookmarkTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; } - } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : AddSlackBookmarkTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if ((jsonObj.get("playbook_id") != null && !jsonObj.get("playbook_id").isJsonNull()) && !jsonObj.get("playbook_id").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `playbook_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("playbook_id").toString())); - } - // validate the required field `channel` - if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); - } - if ((jsonObj.get("link") != null && !jsonObj.get("link").isJsonNull()) && !jsonObj.get("link").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `link` to be a primitive type in the JSON string but got `%s`", jsonObj.get("link").toString())); - } - if ((jsonObj.get("emoji") != null && !jsonObj.get("emoji").isJsonNull()) && !jsonObj.get("emoji").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `emoji` to be a primitive type in the JSON string but got `%s`", jsonObj.get("emoji").toString())); - } - } + throw new RuntimeException("Invalid instance type. Must be AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1"); + } - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + /** + * Get the actual instance, which can be the following: + * AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1 + * + * @return The actual instance (AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1) + */ @SuppressWarnings("unchecked") @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!AddSlackBookmarkTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'AddSlackBookmarkTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(AddSlackBookmarkTaskParams.class)); + public Object getActualInstance() { + return super.getActualInstance(); + } - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, AddSlackBookmarkTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } + /** + * Get the actual instance of `AddSlackBookmarkTaskParamsAnyOf`. If the actual instance is not `AddSlackBookmarkTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AddSlackBookmarkTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `AddSlackBookmarkTaskParamsAnyOf` + */ + public AddSlackBookmarkTaskParamsAnyOf getAddSlackBookmarkTaskParamsAnyOf() throws ClassCastException { + return (AddSlackBookmarkTaskParamsAnyOf)super.getActualInstance(); + } - @Override - public AddSlackBookmarkTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } + /** + * Get the actual instance of `AddSlackBookmarkTaskParamsAnyOf1`. If the actual instance is not `AddSlackBookmarkTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AddSlackBookmarkTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `AddSlackBookmarkTaskParamsAnyOf1` + */ + public AddSlackBookmarkTaskParamsAnyOf1 getAddSlackBookmarkTaskParamsAnyOf1() throws ClassCastException { + return (AddSlackBookmarkTaskParamsAnyOf1)super.getActualInstance(); + } - }.nullSafe(); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AddSlackBookmarkTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with AddSlackBookmarkTaskParamsAnyOf + try { + AddSlackBookmarkTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AddSlackBookmarkTaskParamsAnyOf1 + try { + AddSlackBookmarkTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AddSlackBookmarkTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for AddSlackBookmarkTaskParams with anyOf schemas: AddSlackBookmarkTaskParamsAnyOf, AddSlackBookmarkTaskParamsAnyOf1. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of AddSlackBookmarkTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of AddSlackBookmarkTaskParams - * @throws IOException if the JSON string is invalid with respect to AddSlackBookmarkTaskParams - */ - public static AddSlackBookmarkTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, AddSlackBookmarkTaskParams.class); - } + /** + * Create an instance of AddSlackBookmarkTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of AddSlackBookmarkTaskParams + * @throws IOException if the JSON string is invalid with respect to AddSlackBookmarkTaskParams + */ + public static AddSlackBookmarkTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AddSlackBookmarkTaskParams.class); + } - /** - * Convert an instance of AddSlackBookmarkTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of AddSlackBookmarkTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf.java new file mode 100644 index 00000000..f22d3197 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf.java @@ -0,0 +1,245 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AddSlackBookmarkTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AddSlackBookmarkTaskParamsAnyOf { + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nonnull + private String title; + + public static final String SERIALIZED_NAME_LINK = "link"; + @SerializedName(SERIALIZED_NAME_LINK) + @jakarta.annotation.Nonnull + private String link; + + public AddSlackBookmarkTaskParamsAnyOf() { + } + + public AddSlackBookmarkTaskParamsAnyOf title(@jakarta.annotation.Nonnull String title) { + this.title = title; + return this; + } + + /** + * Get title + * @return title + */ + @jakarta.annotation.Nonnull + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nonnull String title) { + this.title = title; + } + + + public AddSlackBookmarkTaskParamsAnyOf link(@jakarta.annotation.Nonnull String link) { + this.link = link; + return this; + } + + /** + * Get link + * @return link + */ + @jakarta.annotation.Nonnull + public String getLink() { + return link; + } + + public void setLink(@jakarta.annotation.Nonnull String link) { + this.link = link; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddSlackBookmarkTaskParamsAnyOf addSlackBookmarkTaskParamsAnyOf = (AddSlackBookmarkTaskParamsAnyOf) o; + return Objects.equals(this.title, addSlackBookmarkTaskParamsAnyOf.title) && + Objects.equals(this.link, addSlackBookmarkTaskParamsAnyOf.link); + } + + @Override + public int hashCode() { + return Objects.hash(title, link); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddSlackBookmarkTaskParamsAnyOf {\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" link: ").append(toIndentedString(link)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("title"); + openapiFields.add("link"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("title"); + openapiRequiredFields.add("link"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AddSlackBookmarkTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AddSlackBookmarkTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AddSlackBookmarkTaskParamsAnyOf is not found in the empty JSON string", AddSlackBookmarkTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AddSlackBookmarkTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AddSlackBookmarkTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AddSlackBookmarkTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if (!jsonObj.get("link").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `link` to be a primitive type in the JSON string but got `%s`", jsonObj.get("link").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AddSlackBookmarkTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AddSlackBookmarkTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AddSlackBookmarkTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AddSlackBookmarkTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AddSlackBookmarkTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AddSlackBookmarkTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of AddSlackBookmarkTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to AddSlackBookmarkTaskParamsAnyOf + */ + public static AddSlackBookmarkTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AddSlackBookmarkTaskParamsAnyOf.class); + } + + /** + * Convert an instance of AddSlackBookmarkTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1.java b/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1.java new file mode 100644 index 00000000..ea246f37 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AddSlackBookmarkTaskParamsAnyOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AddSlackBookmarkTaskParamsAnyOf1 { + public static final String SERIALIZED_NAME_PLAYBOOK_ID = "playbook_id"; + @SerializedName(SERIALIZED_NAME_PLAYBOOK_ID) + @jakarta.annotation.Nonnull + private String playbookId; + + public AddSlackBookmarkTaskParamsAnyOf1() { + } + + public AddSlackBookmarkTaskParamsAnyOf1 playbookId(@jakarta.annotation.Nonnull String playbookId) { + this.playbookId = playbookId; + return this; + } + + /** + * Get playbookId + * @return playbookId + */ + @jakarta.annotation.Nonnull + public String getPlaybookId() { + return playbookId; + } + + public void setPlaybookId(@jakarta.annotation.Nonnull String playbookId) { + this.playbookId = playbookId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddSlackBookmarkTaskParamsAnyOf1 addSlackBookmarkTaskParamsAnyOf1 = (AddSlackBookmarkTaskParamsAnyOf1) o; + return Objects.equals(this.playbookId, addSlackBookmarkTaskParamsAnyOf1.playbookId); + } + + @Override + public int hashCode() { + return Objects.hash(playbookId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddSlackBookmarkTaskParamsAnyOf1 {\n"); + sb.append(" playbookId: ").append(toIndentedString(playbookId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("playbook_id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("playbook_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AddSlackBookmarkTaskParamsAnyOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AddSlackBookmarkTaskParamsAnyOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AddSlackBookmarkTaskParamsAnyOf1 is not found in the empty JSON string", AddSlackBookmarkTaskParamsAnyOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AddSlackBookmarkTaskParamsAnyOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AddSlackBookmarkTaskParamsAnyOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AddSlackBookmarkTaskParamsAnyOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("playbook_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `playbook_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("playbook_id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AddSlackBookmarkTaskParamsAnyOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AddSlackBookmarkTaskParamsAnyOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AddSlackBookmarkTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AddSlackBookmarkTaskParamsAnyOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AddSlackBookmarkTaskParamsAnyOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AddSlackBookmarkTaskParamsAnyOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of AddSlackBookmarkTaskParamsAnyOf1 + * @throws IOException if the JSON string is invalid with respect to AddSlackBookmarkTaskParamsAnyOf1 + */ + public static AddSlackBookmarkTaskParamsAnyOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AddSlackBookmarkTaskParamsAnyOf1.class); + } + + /** + * Convert an instance of AddSlackBookmarkTaskParamsAnyOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AddSubscribers.java b/src/main/java/com/rootly/client/model/AddSubscribers.java index f07f6c38..fd754583 100644 --- a/src/main/java/com/rootly/client/model/AddSubscribers.java +++ b/src/main/java/com/rootly/client/model/AddSubscribers.java @@ -49,7 +49,7 @@ /** * AddSubscribers */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddSubscribers { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/AddSubscribersData.java b/src/main/java/com/rootly/client/model/AddSubscribersData.java index 11765676..4ab236f0 100644 --- a/src/main/java/com/rootly/client/model/AddSubscribersData.java +++ b/src/main/java/com/rootly/client/model/AddSubscribersData.java @@ -49,7 +49,7 @@ /** * AddSubscribersData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddSubscribersData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/AddSubscribersDataAttributes.java b/src/main/java/com/rootly/client/model/AddSubscribersDataAttributes.java index 99a828a2..035227c7 100644 --- a/src/main/java/com/rootly/client/model/AddSubscribersDataAttributes.java +++ b/src/main/java/com/rootly/client/model/AddSubscribersDataAttributes.java @@ -51,7 +51,7 @@ /** * AddSubscribersDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddSubscribersDataAttributes { public static final String SERIALIZED_NAME_USER_IDS = "user_ids"; @SerializedName(SERIALIZED_NAME_USER_IDS) diff --git a/src/main/java/com/rootly/client/model/AddTeamTaskParams.java b/src/main/java/com/rootly/client/model/AddTeamTaskParams.java index 524802b6..7eddbf8f 100644 --- a/src/main/java/com/rootly/client/model/AddTeamTaskParams.java +++ b/src/main/java/com/rootly/client/model/AddTeamTaskParams.java @@ -48,7 +48,7 @@ /** * AddTeamTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddTeamTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/AddToTimelineTaskParams.java b/src/main/java/com/rootly/client/model/AddToTimelineTaskParams.java index b4358cea..1090d0f1 100644 --- a/src/main/java/com/rootly/client/model/AddToTimelineTaskParams.java +++ b/src/main/java/com/rootly/client/model/AddToTimelineTaskParams.java @@ -51,7 +51,7 @@ /** * AddToTimelineTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AddToTimelineTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/AiChatResponse.java b/src/main/java/com/rootly/client/model/AiChatResponse.java new file mode 100644 index 00000000..1533ab73 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AiChatResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AiChatResponseData; +import com.rootly.client.model.JsonapiIncludedResource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AiChatResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AiChatResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private AiChatResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public AiChatResponse() { + } + + public AiChatResponse data(@jakarta.annotation.Nonnull AiChatResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public AiChatResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull AiChatResponseData data) { + this.data = data; + } + + + public AiChatResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AiChatResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiChatResponse aiChatResponse = (AiChatResponse) o; + return Objects.equals(this.data, aiChatResponse.data) && + Objects.equals(this.included, aiChatResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AiChatResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AiChatResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AiChatResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AiChatResponse is not found in the empty JSON string", AiChatResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AiChatResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AiChatResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AiChatResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + AiChatResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AiChatResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AiChatResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AiChatResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AiChatResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AiChatResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AiChatResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of AiChatResponse + * @throws IOException if the JSON string is invalid with respect to AiChatResponse + */ + public static AiChatResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AiChatResponse.class); + } + + /** + * Convert an instance of AiChatResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AiChatResponseData.java b/src/main/java/com/rootly/client/model/AiChatResponseData.java new file mode 100644 index 00000000..0d2c2aa5 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AiChatResponseData.java @@ -0,0 +1,329 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AiChatResponseDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AiChatResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AiChatResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private UUID id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + AI_CHAT_RESPONSES("ai_chat_responses"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private AiChatResponseDataAttributes attributes; + + public AiChatResponseData() { + } + + public AiChatResponseData id(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + return this; + } + + /** + * Session UUID + * @return id + */ + @jakarta.annotation.Nonnull + public UUID getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + } + + + public AiChatResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public AiChatResponseData attributes(@jakarta.annotation.Nonnull AiChatResponseDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public AiChatResponseDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull AiChatResponseDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiChatResponseData aiChatResponseData = (AiChatResponseData) o; + return Objects.equals(this.id, aiChatResponseData.id) && + Objects.equals(this.type, aiChatResponseData.type) && + Objects.equals(this.attributes, aiChatResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AiChatResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AiChatResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AiChatResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AiChatResponseData is not found in the empty JSON string", AiChatResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AiChatResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AiChatResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AiChatResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + AiChatResponseDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AiChatResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AiChatResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AiChatResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AiChatResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AiChatResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AiChatResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of AiChatResponseData + * @throws IOException if the JSON string is invalid with respect to AiChatResponseData + */ + public static AiChatResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AiChatResponseData.class); + } + + /** + * Convert an instance of AiChatResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AiChatResponseDataAttributes.java b/src/main/java/com/rootly/client/model/AiChatResponseDataAttributes.java new file mode 100644 index 00000000..a3b82eca --- /dev/null +++ b/src/main/java/com/rootly/client/model/AiChatResponseDataAttributes.java @@ -0,0 +1,341 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AiChatResponseDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AiChatResponseDataAttributes { + public static final String SERIALIZED_NAME_SESSION_ID = "session_id"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @jakarta.annotation.Nonnull + private UUID sessionId; + + public static final String SERIALIZED_NAME_REPLY = "reply"; + @SerializedName(SERIALIZED_NAME_REPLY) + @jakarta.annotation.Nullable + private String reply; + + /** + * Response status (present when user input is required) + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + USER_INPUT_REQUIRED("user_input_required"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nullable + private StatusEnum status; + + public AiChatResponseDataAttributes() { + } + + public AiChatResponseDataAttributes sessionId(@jakarta.annotation.Nonnull UUID sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * AI chat session UUID + * @return sessionId + */ + @jakarta.annotation.Nonnull + public UUID getSessionId() { + return sessionId; + } + + public void setSessionId(@jakarta.annotation.Nonnull UUID sessionId) { + this.sessionId = sessionId; + } + + + public AiChatResponseDataAttributes reply(@jakarta.annotation.Nullable String reply) { + this.reply = reply; + return this; + } + + /** + * Assistant reply text + * @return reply + */ + @jakarta.annotation.Nullable + public String getReply() { + return reply; + } + + public void setReply(@jakarta.annotation.Nullable String reply) { + this.reply = reply; + } + + + public AiChatResponseDataAttributes status(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + return this; + } + + /** + * Response status (present when user input is required) + * @return status + */ + @jakarta.annotation.Nullable + public StatusEnum getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiChatResponseDataAttributes aiChatResponseDataAttributes = (AiChatResponseDataAttributes) o; + return Objects.equals(this.sessionId, aiChatResponseDataAttributes.sessionId) && + Objects.equals(this.reply, aiChatResponseDataAttributes.reply) && + Objects.equals(this.status, aiChatResponseDataAttributes.status); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(sessionId, reply, status); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AiChatResponseDataAttributes {\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" reply: ").append(toIndentedString(reply)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("session_id"); + openapiFields.add("reply"); + openapiFields.add("status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("session_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AiChatResponseDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AiChatResponseDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AiChatResponseDataAttributes is not found in the empty JSON string", AiChatResponseDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AiChatResponseDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AiChatResponseDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AiChatResponseDataAttributes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("session_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `session_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("session_id").toString())); + } + if ((jsonObj.get("reply") != null && !jsonObj.get("reply").isJsonNull()) && !jsonObj.get("reply").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `reply` to be a primitive type in the JSON string but got `%s`", jsonObj.get("reply").toString())); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the optional field `status` + if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { + StatusEnum.validateJsonElement(jsonObj.get("status")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AiChatResponseDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AiChatResponseDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AiChatResponseDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AiChatResponseDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AiChatResponseDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AiChatResponseDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of AiChatResponseDataAttributes + * @throws IOException if the JSON string is invalid with respect to AiChatResponseDataAttributes + */ + public static AiChatResponseDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AiChatResponseDataAttributes.class); + } + + /** + * Convert an instance of AiChatResponseDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AiChatSessionMessage.java b/src/main/java/com/rootly/client/model/AiChatSessionMessage.java new file mode 100644 index 00000000..7a6d2fd3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AiChatSessionMessage.java @@ -0,0 +1,360 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AiChatSessionMessage + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AiChatSessionMessage { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private UUID id; + + /** + * Message author role + */ + @JsonAdapter(RoleEnum.Adapter.class) + public enum RoleEnum { + USER("user"), + + ASSISTANT("assistant"); + + private String value; + + RoleEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RoleEnum fromValue(String value) { + for (RoleEnum b : RoleEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RoleEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RoleEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RoleEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RoleEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_ROLE = "role"; + @SerializedName(SERIALIZED_NAME_ROLE) + @jakarta.annotation.Nonnull + private RoleEnum role; + + public static final String SERIALIZED_NAME_CONTENT = "content"; + @SerializedName(SERIALIZED_NAME_CONTENT) + @jakarta.annotation.Nonnull + private String content; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime createdAt; + + public AiChatSessionMessage() { + } + + public AiChatSessionMessage id(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + return this; + } + + /** + * Message UUID + * @return id + */ + @jakarta.annotation.Nonnull + public UUID getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + } + + + public AiChatSessionMessage role(@jakarta.annotation.Nonnull RoleEnum role) { + this.role = role; + return this; + } + + /** + * Message author role + * @return role + */ + @jakarta.annotation.Nonnull + public RoleEnum getRole() { + return role; + } + + public void setRole(@jakarta.annotation.Nonnull RoleEnum role) { + this.role = role; + } + + + public AiChatSessionMessage content(@jakarta.annotation.Nonnull String content) { + this.content = content; + return this; + } + + /** + * Message content + * @return content + */ + @jakarta.annotation.Nonnull + public String getContent() { + return content; + } + + public void setContent(@jakarta.annotation.Nonnull String content) { + this.content = content; + } + + + public AiChatSessionMessage createdAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * When the message was created + * @return createdAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiChatSessionMessage aiChatSessionMessage = (AiChatSessionMessage) o; + return Objects.equals(this.id, aiChatSessionMessage.id) && + Objects.equals(this.role, aiChatSessionMessage.role) && + Objects.equals(this.content, aiChatSessionMessage.content) && + Objects.equals(this.createdAt, aiChatSessionMessage.createdAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, role, content, createdAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AiChatSessionMessage {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" role: ").append(toIndentedString(role)).append("\n"); + sb.append(" content: ").append(toIndentedString(content)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("role"); + openapiFields.add("content"); + openapiFields.add("created_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("role"); + openapiRequiredFields.add("content"); + openapiRequiredFields.add("created_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AiChatSessionMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AiChatSessionMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AiChatSessionMessage is not found in the empty JSON string", AiChatSessionMessage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AiChatSessionMessage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AiChatSessionMessage` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AiChatSessionMessage.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("role").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `role` to be a primitive type in the JSON string but got `%s`", jsonObj.get("role").toString())); + } + // validate the required field `role` + RoleEnum.validateJsonElement(jsonObj.get("role")); + if (!jsonObj.get("content").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `content` to be a primitive type in the JSON string but got `%s`", jsonObj.get("content").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AiChatSessionMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AiChatSessionMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AiChatSessionMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AiChatSessionMessage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AiChatSessionMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AiChatSessionMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of AiChatSessionMessage + * @throws IOException if the JSON string is invalid with respect to AiChatSessionMessage + */ + public static AiChatSessionMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AiChatSessionMessage.class); + } + + /** + * Convert an instance of AiChatSessionMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AiChatSessionMessageList.java b/src/main/java/com/rootly/client/model/AiChatSessionMessageList.java new file mode 100644 index 00000000..bf12e6df --- /dev/null +++ b/src/main/java/com/rootly/client/model/AiChatSessionMessageList.java @@ -0,0 +1,259 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AiChatSessionMessage; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AiChatSessionMessageList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AiChatSessionMessageList { + public static final String SERIALIZED_NAME_MESSAGES = "messages"; + @SerializedName(SERIALIZED_NAME_MESSAGES) + @jakarta.annotation.Nonnull + private List messages = new ArrayList<>(); + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nullable + private Object meta; + + public AiChatSessionMessageList() { + } + + public AiChatSessionMessageList messages(@jakarta.annotation.Nonnull List messages) { + this.messages = messages; + return this; + } + + public AiChatSessionMessageList addMessagesItem(AiChatSessionMessage messagesItem) { + if (this.messages == null) { + this.messages = new ArrayList<>(); + } + this.messages.add(messagesItem); + return this; + } + + /** + * Get messages + * @return messages + */ + @jakarta.annotation.Nonnull + public List getMessages() { + return messages; + } + + public void setMessages(@jakarta.annotation.Nonnull List messages) { + this.messages = messages; + } + + + public AiChatSessionMessageList meta(@jakarta.annotation.Nullable Object meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nullable + public Object getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nullable Object meta) { + this.meta = meta; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AiChatSessionMessageList aiChatSessionMessageList = (AiChatSessionMessageList) o; + return Objects.equals(this.messages, aiChatSessionMessageList.messages) && + Objects.equals(this.meta, aiChatSessionMessageList.meta); + } + + @Override + public int hashCode() { + return Objects.hash(messages, meta); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AiChatSessionMessageList {\n"); + sb.append(" messages: ").append(toIndentedString(messages)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("messages"); + openapiFields.add("meta"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("messages"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AiChatSessionMessageList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AiChatSessionMessageList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AiChatSessionMessageList is not found in the empty JSON string", AiChatSessionMessageList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AiChatSessionMessageList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AiChatSessionMessageList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AiChatSessionMessageList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("messages").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `messages` to be an array in the JSON string but got `%s`", jsonObj.get("messages").toString())); + } + + JsonArray jsonArraymessages = jsonObj.getAsJsonArray("messages"); + // validate the required field `messages` (array) + for (int i = 0; i < jsonArraymessages.size(); i++) { + AiChatSessionMessage.validateJsonElement(jsonArraymessages.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AiChatSessionMessageList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AiChatSessionMessageList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AiChatSessionMessageList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AiChatSessionMessageList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AiChatSessionMessageList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AiChatSessionMessageList given an JSON string + * + * @param jsonString JSON string + * @return An instance of AiChatSessionMessageList + * @throws IOException if the JSON string is invalid with respect to AiChatSessionMessageList + */ + public static AiChatSessionMessageList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AiChatSessionMessageList.class); + } + + /** + * Convert an instance of AiChatSessionMessageList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/Alert.java b/src/main/java/com/rootly/client/model/Alert.java index 8db7da2e..cc538a1e 100644 --- a/src/main/java/com/rootly/client/model/Alert.java +++ b/src/main/java/com/rootly/client/model/Alert.java @@ -19,12 +19,18 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertAlertFieldValuesInner; +import com.rootly.client.model.AlertAlertingTargetsInner; +import com.rootly.client.model.AlertUrgency; import com.rootly.client.model.Environment; -import com.rootly.client.model.NewAlertDataAttributesAlertFieldValuesAttributesInner; +import com.rootly.client.model.Functionality; import com.rootly.client.model.NewAlertDataAttributesLabelsInner; import com.rootly.client.model.Service; import com.rootly.client.model.Team; +import com.rootly.client.model.User; +import com.rootly.client.model.UserFlatResponse; import java.io.IOException; +import java.net.URI; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; @@ -57,7 +63,7 @@ /** * Alert */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Alert { public static final String SERIALIZED_NAME_SHORT_ID = "short_id"; @SerializedName(SERIALIZED_NAME_SHORT_ID) @@ -121,144 +127,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private NoiseEnum noise; - /** - * The source of the alert - */ - @JsonAdapter(SourceEnum.Adapter.class) - public enum SourceEnum { - ROOTLY("rootly"), - - MANUAL("manual"), - - API("api"), - - HEARTBEAT("heartbeat"), - - WEB("web"), - - SLACK("slack"), - - EMAIL("email"), - - WORKFLOW("workflow"), - - LIVE_CALL_ROUTING("live_call_routing"), - - MOBILE("mobile"), - - PAGERDUTY("pagerduty"), - - OPSGENIE("opsgenie"), - - VICTOROPS("victorops"), - - PAGERTREE("pagertree"), - - DATADOG("datadog"), - - NOBL9("nobl9"), - - ZENDESK("zendesk"), - - ASANA("asana"), - - CLICKUP("clickup"), - - SENTRY("sentry"), - - ROLLBAR("rollbar"), - - JIRA("jira"), - - HONEYCOMB("honeycomb"), - - SERVICE_NOW("service_now"), - - LINEAR("linear"), - - GRAFANA("grafana"), - - ALERTMANAGER("alertmanager"), - - GOOGLE_CLOUD("google_cloud"), - - GENERIC_WEBHOOK("generic_webhook"), - - CLOUD_WATCH("cloud_watch"), - - AZURE("azure"), - - SPLUNK("splunk"), - - CHRONOSPHERE("chronosphere"), - - APP_OPTICS("app_optics"), - - BUG_SNAG("bug_snag"), - - MONTE_CARLO("monte_carlo"), - - NAGIOS("nagios"), - - PRTG("prtg"), - - CATCHPOINT("catchpoint"), - - APP_DYNAMICS("app_dynamics"), - - CHECKLY("checkly"), - - NEW_RELIC("new_relic"), - - GITLAB("gitlab"); - - private String value; - - SourceEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static SourceEnum fromValue(String value) { - for (SourceEnum b : SourceEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final SourceEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public SourceEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return SourceEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - SourceEnum.fromValue(value); - } - } - public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) @jakarta.annotation.Nonnull - private SourceEnum source; + private String source; /** * The status of the alert @@ -271,7 +143,9 @@ public enum StatusEnum { ACKNOWLEDGED("acknowledged"), - RESOLVED("resolved"); + RESOLVED("resolved"), + + DEFERRED("deferred"); private String value; @@ -341,6 +215,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List groups = new ArrayList<>(); + public static final String SERIALIZED_NAME_FUNCTIONALITIES = "functionalities"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITIES) + @jakarta.annotation.Nullable + private List functionalities = new ArrayList<>(); + public static final String SERIALIZED_NAME_ENVIRONMENTS = "environments"; @SerializedName(SERIALIZED_NAME_ENVIRONMENTS) @jakarta.annotation.Nullable @@ -356,6 +235,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List groupIds; + public static final String SERIALIZED_NAME_FUNCTIONALITY_IDS = "functionality_ids"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List functionalityIds; + public static final String SERIALIZED_NAME_ENVIRONMENT_IDS = "environment_ids"; @SerializedName(SERIALIZED_NAME_ENVIRONMENT_IDS) @jakarta.annotation.Nullable @@ -376,6 +260,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String alertUrgencyId; + public static final String SERIALIZED_NAME_ALERT_URGENCY = "alert_urgency"; + @SerializedName(SERIALIZED_NAME_ALERT_URGENCY) + @jakarta.annotation.Nullable + private AlertUrgency alertUrgency; + public static final String SERIALIZED_NAME_GROUP_LEADER_ALERT_ID = "group_leader_alert_id"; @SerializedName(SERIALIZED_NAME_GROUP_LEADER_ALERT_ID) @jakarta.annotation.Nullable @@ -396,15 +285,103 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Object data; + /** + * Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, Functionality, User. + */ + @JsonAdapter(NotificationTargetTypeEnum.Adapter.class) + public enum NotificationTargetTypeEnum { + USER("User"), + + GROUP("Group"), + + ESCALATION_POLICY("EscalationPolicy"), + + SERVICE("Service"), + + FUNCTIONALITY("Functionality"); + + private String value; + + NotificationTargetTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTargetTypeEnum fromValue(String value) { + for (NotificationTargetTypeEnum b : NotificationTargetTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTargetTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTargetTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTargetTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + NotificationTargetTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_NOTIFICATION_TARGET_TYPE = "notification_target_type"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TARGET_TYPE) + @jakarta.annotation.Nullable + private NotificationTargetTypeEnum notificationTargetType; + + public static final String SERIALIZED_NAME_NOTIFICATION_TARGET_ID = "notification_target_id"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TARGET_ID) + @jakarta.annotation.Nullable + private String notificationTargetId; + public static final String SERIALIZED_NAME_DEDUPLICATION_KEY = "deduplication_key"; @SerializedName(SERIALIZED_NAME_DEDUPLICATION_KEY) @jakarta.annotation.Nullable private String deduplicationKey; - public static final String SERIALIZED_NAME_ALERT_FIELD_VALUES_ATTRIBUTES = "alert_field_values_attributes"; - @SerializedName(SERIALIZED_NAME_ALERT_FIELD_VALUES_ATTRIBUTES) + public static final String SERIALIZED_NAME_ALERT_FIELD_VALUES = "alert_field_values"; + @SerializedName(SERIALIZED_NAME_ALERT_FIELD_VALUES) + @jakarta.annotation.Nullable + private List alertFieldValues; + + public static final String SERIALIZED_NAME_RESPONDERS = "responders"; + @SerializedName(SERIALIZED_NAME_RESPONDERS) + @jakarta.annotation.Nullable + private List responders; + + public static final String SERIALIZED_NAME_NOTIFIED_USERS = "notified_users"; + @SerializedName(SERIALIZED_NAME_NOTIFIED_USERS) + @jakarta.annotation.Nullable + private List notifiedUsers; + + public static final String SERIALIZED_NAME_ALERTING_TARGETS = "alerting_targets"; + @SerializedName(SERIALIZED_NAME_ALERTING_TARGETS) + @jakarta.annotation.Nullable + private List alertingTargets; + + public static final String SERIALIZED_NAME_URL = "url"; + @SerializedName(SERIALIZED_NAME_URL) @jakarta.annotation.Nullable - private List alertFieldValuesAttributes = new ArrayList<>(); + private URI url; public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; @SerializedName(SERIALIZED_NAME_STARTED_AT) @@ -467,7 +444,7 @@ public void setNoise(@jakarta.annotation.Nullable NoiseEnum noise) { } - public Alert source(@jakarta.annotation.Nonnull SourceEnum source) { + public Alert source(@jakarta.annotation.Nonnull String source) { this.source = source; return this; } @@ -477,11 +454,11 @@ public Alert source(@jakarta.annotation.Nonnull SourceEnum source) { * @return source */ @jakarta.annotation.Nonnull - public SourceEnum getSource() { + public String getSource() { return source; } - public void setSource(@jakarta.annotation.Nonnull SourceEnum source) { + public void setSource(@jakarta.annotation.Nonnull String source) { this.source = source; } @@ -597,6 +574,33 @@ public void setGroups(@jakarta.annotation.Nullable List groups) { } + public Alert functionalities(@jakarta.annotation.Nullable List functionalities) { + this.functionalities = functionalities; + return this; + } + + public Alert addFunctionalitiesItem(Functionality functionalitiesItem) { + if (this.functionalities == null) { + this.functionalities = new ArrayList<>(); + } + this.functionalities.add(functionalitiesItem); + return this; + } + + /** + * Functionalities attached to the alert + * @return functionalities + */ + @jakarta.annotation.Nullable + public List getFunctionalities() { + return functionalities; + } + + public void setFunctionalities(@jakarta.annotation.Nullable List functionalities) { + this.functionalities = functionalities; + } + + public Alert environments(@jakarta.annotation.Nullable List environments) { this.environments = environments; return this; @@ -678,6 +682,33 @@ public void setGroupIds(@jakarta.annotation.Nullable List groupIds) { } + public Alert functionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + return this; + } + + public Alert addFunctionalityIdsItem(String functionalityIdsItem) { + if (this.functionalityIds == null) { + this.functionalityIds = new ArrayList<>(); + } + this.functionalityIds.add(functionalityIdsItem); + return this; + } + + /** + * The Functionality IDs to attach to the alert + * @return functionalityIds + */ + @jakarta.annotation.Nullable + public List getFunctionalityIds() { + return functionalityIds; + } + + public void setFunctionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + } + + public Alert environmentIds(@jakarta.annotation.Nullable List environmentIds) { this.environmentIds = environmentIds; return this; @@ -762,6 +793,25 @@ public void setAlertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId } + public Alert alertUrgency(@jakarta.annotation.Nullable AlertUrgency alertUrgency) { + this.alertUrgency = alertUrgency; + return this; + } + + /** + * Get alertUrgency + * @return alertUrgency + */ + @jakarta.annotation.Nullable + public AlertUrgency getAlertUrgency() { + return alertUrgency; + } + + public void setAlertUrgency(@jakarta.annotation.Nullable AlertUrgency alertUrgency) { + this.alertUrgency = alertUrgency; + } + + public Alert groupLeaderAlertId(@jakarta.annotation.Nullable String groupLeaderAlertId) { this.groupLeaderAlertId = groupLeaderAlertId; return this; @@ -846,6 +896,44 @@ public void setData(@jakarta.annotation.Nullable Object data) { } + public Alert notificationTargetType(@jakarta.annotation.Nullable NotificationTargetTypeEnum notificationTargetType) { + this.notificationTargetType = notificationTargetType; + return this; + } + + /** + * Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, Functionality, User. + * @return notificationTargetType + */ + @jakarta.annotation.Nullable + public NotificationTargetTypeEnum getNotificationTargetType() { + return notificationTargetType; + } + + public void setNotificationTargetType(@jakarta.annotation.Nullable NotificationTargetTypeEnum notificationTargetType) { + this.notificationTargetType = notificationTargetType; + } + + + public Alert notificationTargetId(@jakarta.annotation.Nullable String notificationTargetId) { + this.notificationTargetId = notificationTargetId; + return this; + } + + /** + * Only available for organizations with Rootly On-Call enabled. The identifier of the notification target object. + * @return notificationTargetId + */ + @jakarta.annotation.Nullable + public String getNotificationTargetId() { + return notificationTargetId; + } + + public void setNotificationTargetId(@jakarta.annotation.Nullable String notificationTargetId) { + this.notificationTargetId = notificationTargetId; + } + + public Alert deduplicationKey(@jakarta.annotation.Nullable String deduplicationKey) { this.deduplicationKey = deduplicationKey; return this; @@ -865,30 +953,130 @@ public void setDeduplicationKey(@jakarta.annotation.Nullable String deduplicatio } - public Alert alertFieldValuesAttributes(@jakarta.annotation.Nullable List alertFieldValuesAttributes) { - this.alertFieldValuesAttributes = alertFieldValuesAttributes; + public Alert alertFieldValues(@jakarta.annotation.Nullable List alertFieldValues) { + this.alertFieldValues = alertFieldValues; + return this; + } + + public Alert addAlertFieldValuesItem(AlertAlertFieldValuesInner alertFieldValuesItem) { + if (this.alertFieldValues == null) { + this.alertFieldValues = new ArrayList<>(); + } + this.alertFieldValues.add(alertFieldValuesItem); + return this; + } + + /** + * Custom alert field values associated with the alert. Only present when the enable_alert_fields feature flag is enabled for the team. + * @return alertFieldValues + */ + @jakarta.annotation.Nullable + public List getAlertFieldValues() { + return alertFieldValues; + } + + public void setAlertFieldValues(@jakarta.annotation.Nullable List alertFieldValues) { + this.alertFieldValues = alertFieldValues; + } + + + public Alert responders(@jakarta.annotation.Nullable List responders) { + this.responders = responders; return this; } - public Alert addAlertFieldValuesAttributesItem(NewAlertDataAttributesAlertFieldValuesAttributesInner alertFieldValuesAttributesItem) { - if (this.alertFieldValuesAttributes == null) { - this.alertFieldValuesAttributes = new ArrayList<>(); + public Alert addRespondersItem(UserFlatResponse respondersItem) { + if (this.responders == null) { + this.responders = new ArrayList<>(); } - this.alertFieldValuesAttributes.add(alertFieldValuesAttributesItem); + this.responders.add(respondersItem); return this; } /** - * Custom alert field values to create with the alert - * @return alertFieldValuesAttributes + * Users who responded to the alert. Included on all non-list responses (show, create, update, resolve, etc.); on list responses only when `include=responders` is requested. + * @return responders */ @jakarta.annotation.Nullable - public List getAlertFieldValuesAttributes() { - return alertFieldValuesAttributes; + public List getResponders() { + return responders; + } + + public void setResponders(@jakarta.annotation.Nullable List responders) { + this.responders = responders; + } + + + public Alert notifiedUsers(@jakarta.annotation.Nullable List notifiedUsers) { + this.notifiedUsers = notifiedUsers; + return this; } - public void setAlertFieldValuesAttributes(@jakarta.annotation.Nullable List alertFieldValuesAttributes) { - this.alertFieldValuesAttributes = alertFieldValuesAttributes; + public Alert addNotifiedUsersItem(User notifiedUsersItem) { + if (this.notifiedUsers == null) { + this.notifiedUsers = new ArrayList<>(); + } + this.notifiedUsers.add(notifiedUsersItem); + return this; + } + + /** + * Users who were notified about the alert. Included on all non-list responses (show, create, update, resolve, etc.); on list responses only when `include=notified_users` is requested. + * @return notifiedUsers + */ + @jakarta.annotation.Nullable + public List getNotifiedUsers() { + return notifiedUsers; + } + + public void setNotifiedUsers(@jakarta.annotation.Nullable List notifiedUsers) { + this.notifiedUsers = notifiedUsers; + } + + + public Alert alertingTargets(@jakarta.annotation.Nullable List alertingTargets) { + this.alertingTargets = alertingTargets; + return this; + } + + public Alert addAlertingTargetsItem(AlertAlertingTargetsInner alertingTargetsItem) { + if (this.alertingTargets == null) { + this.alertingTargets = new ArrayList<>(); + } + this.alertingTargets.add(alertingTargetsItem); + return this; + } + + /** + * Alerting targets associated with the alert. Only present when advanced routing is enabled for the team. + * @return alertingTargets + */ + @jakarta.annotation.Nullable + public List getAlertingTargets() { + return alertingTargets; + } + + public void setAlertingTargets(@jakarta.annotation.Nullable List alertingTargets) { + this.alertingTargets = alertingTargets; + } + + + public Alert url(@jakarta.annotation.Nullable URI url) { + this.url = url; + return this; + } + + /** + * The Rootly dashboard URL for the alert + * @return url + */ + @jakarta.annotation.Nullable + public URI getUrl() { + return url; + } + + public void setUrl(@jakarta.annotation.Nullable URI url) { + this.url = url; } @@ -986,19 +1174,28 @@ public boolean equals(Object o) { Objects.equals(this.description, alert.description) && Objects.equals(this.services, alert.services) && Objects.equals(this.groups, alert.groups) && + Objects.equals(this.functionalities, alert.functionalities) && Objects.equals(this.environments, alert.environments) && Objects.equals(this.serviceIds, alert.serviceIds) && Objects.equals(this.groupIds, alert.groupIds) && + Objects.equals(this.functionalityIds, alert.functionalityIds) && Objects.equals(this.environmentIds, alert.environmentIds) && Objects.equals(this.externalId, alert.externalId) && Objects.equals(this.externalUrl, alert.externalUrl) && Objects.equals(this.alertUrgencyId, alert.alertUrgencyId) && + Objects.equals(this.alertUrgency, alert.alertUrgency) && Objects.equals(this.groupLeaderAlertId, alert.groupLeaderAlertId) && Objects.equals(this.isGroupLeaderAlert, alert.isGroupLeaderAlert) && Objects.equals(this.labels, alert.labels) && Objects.equals(this.data, alert.data) && + Objects.equals(this.notificationTargetType, alert.notificationTargetType) && + Objects.equals(this.notificationTargetId, alert.notificationTargetId) && Objects.equals(this.deduplicationKey, alert.deduplicationKey) && - Objects.equals(this.alertFieldValuesAttributes, alert.alertFieldValuesAttributes) && + Objects.equals(this.alertFieldValues, alert.alertFieldValues) && + Objects.equals(this.responders, alert.responders) && + Objects.equals(this.notifiedUsers, alert.notifiedUsers) && + Objects.equals(this.alertingTargets, alert.alertingTargets) && + Objects.equals(this.url, alert.url) && Objects.equals(this.startedAt, alert.startedAt) && Objects.equals(this.endedAt, alert.endedAt) && Objects.equals(this.createdAt, alert.createdAt) && @@ -1011,7 +1208,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(shortId, noise, source, status, summary, description, services, groups, environments, serviceIds, groupIds, environmentIds, externalId, externalUrl, alertUrgencyId, groupLeaderAlertId, isGroupLeaderAlert, labels, data, deduplicationKey, alertFieldValuesAttributes, startedAt, endedAt, createdAt, updatedAt); + return Objects.hash(shortId, noise, source, status, summary, description, services, groups, functionalities, environments, serviceIds, groupIds, functionalityIds, environmentIds, externalId, externalUrl, alertUrgencyId, alertUrgency, groupLeaderAlertId, isGroupLeaderAlert, labels, data, notificationTargetType, notificationTargetId, deduplicationKey, alertFieldValues, responders, notifiedUsers, alertingTargets, url, startedAt, endedAt, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -1033,19 +1230,28 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" services: ").append(toIndentedString(services)).append("\n"); sb.append(" groups: ").append(toIndentedString(groups)).append("\n"); + sb.append(" functionalities: ").append(toIndentedString(functionalities)).append("\n"); sb.append(" environments: ").append(toIndentedString(environments)).append("\n"); sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); sb.append(" groupIds: ").append(toIndentedString(groupIds)).append("\n"); + sb.append(" functionalityIds: ").append(toIndentedString(functionalityIds)).append("\n"); sb.append(" environmentIds: ").append(toIndentedString(environmentIds)).append("\n"); sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append(" externalUrl: ").append(toIndentedString(externalUrl)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); + sb.append(" alertUrgency: ").append(toIndentedString(alertUrgency)).append("\n"); sb.append(" groupLeaderAlertId: ").append(toIndentedString(groupLeaderAlertId)).append("\n"); sb.append(" isGroupLeaderAlert: ").append(toIndentedString(isGroupLeaderAlert)).append("\n"); sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" notificationTargetType: ").append(toIndentedString(notificationTargetType)).append("\n"); + sb.append(" notificationTargetId: ").append(toIndentedString(notificationTargetId)).append("\n"); sb.append(" deduplicationKey: ").append(toIndentedString(deduplicationKey)).append("\n"); - sb.append(" alertFieldValuesAttributes: ").append(toIndentedString(alertFieldValuesAttributes)).append("\n"); + sb.append(" alertFieldValues: ").append(toIndentedString(alertFieldValues)).append("\n"); + sb.append(" responders: ").append(toIndentedString(responders)).append("\n"); + sb.append(" notifiedUsers: ").append(toIndentedString(notifiedUsers)).append("\n"); + sb.append(" alertingTargets: ").append(toIndentedString(alertingTargets)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); sb.append(" endedAt: ").append(toIndentedString(endedAt)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); @@ -1080,19 +1286,28 @@ private String toIndentedString(Object o) { openapiFields.add("description"); openapiFields.add("services"); openapiFields.add("groups"); + openapiFields.add("functionalities"); openapiFields.add("environments"); openapiFields.add("service_ids"); openapiFields.add("group_ids"); + openapiFields.add("functionality_ids"); openapiFields.add("environment_ids"); openapiFields.add("external_id"); openapiFields.add("external_url"); openapiFields.add("alert_urgency_id"); + openapiFields.add("alert_urgency"); openapiFields.add("group_leader_alert_id"); openapiFields.add("is_group_leader_alert"); openapiFields.add("labels"); openapiFields.add("data"); + openapiFields.add("notification_target_type"); + openapiFields.add("notification_target_id"); openapiFields.add("deduplication_key"); - openapiFields.add("alert_field_values_attributes"); + openapiFields.add("alert_field_values"); + openapiFields.add("responders"); + openapiFields.add("notified_users"); + openapiFields.add("alerting_targets"); + openapiFields.add("url"); openapiFields.add("started_at"); openapiFields.add("ended_at"); openapiFields.add("created_at"); @@ -1148,8 +1363,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("source").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source").toString())); } - // validate the required field `source` - SourceEnum.validateJsonElement(jsonObj.get("source")); if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); } @@ -1191,6 +1404,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("functionalities") != null && !jsonObj.get("functionalities").isJsonNull()) { + JsonArray jsonArrayfunctionalities = jsonObj.getAsJsonArray("functionalities"); + if (jsonArrayfunctionalities != null) { + // ensure the json data is an array + if (!jsonObj.get("functionalities").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionalities` to be an array in the JSON string but got `%s`", jsonObj.get("functionalities").toString())); + } + + // validate the optional field `functionalities` (array) + for (int i = 0; i < jsonArrayfunctionalities.size(); i++) { + Functionality.validateJsonElement(jsonArrayfunctionalities.get(i)); + }; + } + } if (jsonObj.get("environments") != null && !jsonObj.get("environments").isJsonNull()) { JsonArray jsonArrayenvironments = jsonObj.getAsJsonArray("environments"); if (jsonArrayenvironments != null) { @@ -1214,6 +1441,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti throw new IllegalArgumentException(String.format("Expected the field `group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("group_ids").toString())); } // ensure the optional json data is an array if present + if (jsonObj.get("functionality_ids") != null && !jsonObj.get("functionality_ids").isJsonNull() && !jsonObj.get("functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("functionality_ids").toString())); + } + // ensure the optional json data is an array if present if (jsonObj.get("environment_ids") != null && !jsonObj.get("environment_ids").isJsonNull() && !jsonObj.get("environment_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("environment_ids").toString())); } @@ -1226,6 +1457,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("alert_urgency_id") != null && !jsonObj.get("alert_urgency_id").isJsonNull()) && !jsonObj.get("alert_urgency_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `alert_urgency_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_urgency_id").toString())); } + // validate the optional field `alert_urgency` + if (jsonObj.get("alert_urgency") != null && !jsonObj.get("alert_urgency").isJsonNull()) { + AlertUrgency.validateJsonElement(jsonObj.get("alert_urgency")); + } if ((jsonObj.get("group_leader_alert_id") != null && !jsonObj.get("group_leader_alert_id").isJsonNull()) && !jsonObj.get("group_leader_alert_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `group_leader_alert_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("group_leader_alert_id").toString())); } @@ -1243,23 +1478,78 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if ((jsonObj.get("notification_target_type") != null && !jsonObj.get("notification_target_type").isJsonNull()) && !jsonObj.get("notification_target_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `notification_target_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notification_target_type").toString())); + } + // validate the optional field `notification_target_type` + if (jsonObj.get("notification_target_type") != null && !jsonObj.get("notification_target_type").isJsonNull()) { + NotificationTargetTypeEnum.validateJsonElement(jsonObj.get("notification_target_type")); + } + if ((jsonObj.get("notification_target_id") != null && !jsonObj.get("notification_target_id").isJsonNull()) && !jsonObj.get("notification_target_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `notification_target_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notification_target_id").toString())); + } if ((jsonObj.get("deduplication_key") != null && !jsonObj.get("deduplication_key").isJsonNull()) && !jsonObj.get("deduplication_key").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `deduplication_key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("deduplication_key").toString())); } - if (jsonObj.get("alert_field_values_attributes") != null && !jsonObj.get("alert_field_values_attributes").isJsonNull()) { - JsonArray jsonArrayalertFieldValuesAttributes = jsonObj.getAsJsonArray("alert_field_values_attributes"); - if (jsonArrayalertFieldValuesAttributes != null) { + if (jsonObj.get("alert_field_values") != null && !jsonObj.get("alert_field_values").isJsonNull()) { + JsonArray jsonArrayalertFieldValues = jsonObj.getAsJsonArray("alert_field_values"); + if (jsonArrayalertFieldValues != null) { + // ensure the json data is an array + if (!jsonObj.get("alert_field_values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `alert_field_values` to be an array in the JSON string but got `%s`", jsonObj.get("alert_field_values").toString())); + } + + // validate the optional field `alert_field_values` (array) + for (int i = 0; i < jsonArrayalertFieldValues.size(); i++) { + AlertAlertFieldValuesInner.validateJsonElement(jsonArrayalertFieldValues.get(i)); + }; + } + } + if (jsonObj.get("responders") != null && !jsonObj.get("responders").isJsonNull()) { + JsonArray jsonArrayresponders = jsonObj.getAsJsonArray("responders"); + if (jsonArrayresponders != null) { + // ensure the json data is an array + if (!jsonObj.get("responders").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `responders` to be an array in the JSON string but got `%s`", jsonObj.get("responders").toString())); + } + + // validate the optional field `responders` (array) + for (int i = 0; i < jsonArrayresponders.size(); i++) { + UserFlatResponse.validateJsonElement(jsonArrayresponders.get(i)); + }; + } + } + if (jsonObj.get("notified_users") != null && !jsonObj.get("notified_users").isJsonNull()) { + JsonArray jsonArraynotifiedUsers = jsonObj.getAsJsonArray("notified_users"); + if (jsonArraynotifiedUsers != null) { // ensure the json data is an array - if (!jsonObj.get("alert_field_values_attributes").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `alert_field_values_attributes` to be an array in the JSON string but got `%s`", jsonObj.get("alert_field_values_attributes").toString())); + if (!jsonObj.get("notified_users").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notified_users` to be an array in the JSON string but got `%s`", jsonObj.get("notified_users").toString())); } - // validate the optional field `alert_field_values_attributes` (array) - for (int i = 0; i < jsonArrayalertFieldValuesAttributes.size(); i++) { - NewAlertDataAttributesAlertFieldValuesAttributesInner.validateJsonElement(jsonArrayalertFieldValuesAttributes.get(i)); + // validate the optional field `notified_users` (array) + for (int i = 0; i < jsonArraynotifiedUsers.size(); i++) { + User.validateJsonElement(jsonArraynotifiedUsers.get(i)); }; } } + if (jsonObj.get("alerting_targets") != null && !jsonObj.get("alerting_targets").isJsonNull()) { + JsonArray jsonArrayalertingTargets = jsonObj.getAsJsonArray("alerting_targets"); + if (jsonArrayalertingTargets != null) { + // ensure the json data is an array + if (!jsonObj.get("alerting_targets").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `alerting_targets` to be an array in the JSON string but got `%s`", jsonObj.get("alerting_targets").toString())); + } + + // validate the optional field `alerting_targets` (array) + for (int i = 0; i < jsonArrayalertingTargets.size(); i++) { + AlertAlertingTargetsInner.validateJsonElement(jsonArrayalertingTargets.get(i)); + }; + } + } + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("url").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/AlertAlertFieldValuesInner.java b/src/main/java/com/rootly/client/model/AlertAlertFieldValuesInner.java new file mode 100644 index 00000000..c27d7746 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertAlertFieldValuesInner.java @@ -0,0 +1,369 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertAlertFieldValuesInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertAlertFieldValuesInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @jakarta.annotation.Nonnull + private String value; + + public static final String SERIALIZED_NAME_ALERT_FIELD_ID = "alert_field_id"; + @SerializedName(SERIALIZED_NAME_ALERT_FIELD_ID) + @jakarta.annotation.Nonnull + private String alertFieldId; + + public static final String SERIALIZED_NAME_ALERT_ID = "alert_id"; + @SerializedName(SERIALIZED_NAME_ALERT_ID) + @jakarta.annotation.Nonnull + private String alertId; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private String updatedAt; + + public AlertAlertFieldValuesInner() { + } + + public AlertAlertFieldValuesInner id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the alert field value + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public AlertAlertFieldValuesInner value(@jakarta.annotation.Nonnull String value) { + this.value = value; + return this; + } + + /** + * Value for the alert field + * @return value + */ + @jakarta.annotation.Nonnull + public String getValue() { + return value; + } + + public void setValue(@jakarta.annotation.Nonnull String value) { + this.value = value; + } + + + public AlertAlertFieldValuesInner alertFieldId(@jakarta.annotation.Nonnull String alertFieldId) { + this.alertFieldId = alertFieldId; + return this; + } + + /** + * ID of the custom alert field + * @return alertFieldId + */ + @jakarta.annotation.Nonnull + public String getAlertFieldId() { + return alertFieldId; + } + + public void setAlertFieldId(@jakarta.annotation.Nonnull String alertFieldId) { + this.alertFieldId = alertFieldId; + } + + + public AlertAlertFieldValuesInner alertId(@jakarta.annotation.Nonnull String alertId) { + this.alertId = alertId; + return this; + } + + /** + * ID of the alert + * @return alertId + */ + @jakarta.annotation.Nonnull + public String getAlertId() { + return alertId; + } + + public void setAlertId(@jakarta.annotation.Nonnull String alertId) { + this.alertId = alertId; + } + + + public AlertAlertFieldValuesInner createdAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Date of creation + * @return createdAt + */ + @jakarta.annotation.Nonnull + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + } + + + public AlertAlertFieldValuesInner updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Date of last update + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertAlertFieldValuesInner alertAlertFieldValuesInner = (AlertAlertFieldValuesInner) o; + return Objects.equals(this.id, alertAlertFieldValuesInner.id) && + Objects.equals(this.value, alertAlertFieldValuesInner.value) && + Objects.equals(this.alertFieldId, alertAlertFieldValuesInner.alertFieldId) && + Objects.equals(this.alertId, alertAlertFieldValuesInner.alertId) && + Objects.equals(this.createdAt, alertAlertFieldValuesInner.createdAt) && + Objects.equals(this.updatedAt, alertAlertFieldValuesInner.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, value, alertFieldId, alertId, createdAt, updatedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertAlertFieldValuesInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" alertFieldId: ").append(toIndentedString(alertFieldId)).append("\n"); + sb.append(" alertId: ").append(toIndentedString(alertId)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("value"); + openapiFields.add("alert_field_id"); + openapiFields.add("alert_id"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("value"); + openapiRequiredFields.add("alert_field_id"); + openapiRequiredFields.add("alert_id"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertAlertFieldValuesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertAlertFieldValuesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertAlertFieldValuesInner is not found in the empty JSON string", AlertAlertFieldValuesInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertAlertFieldValuesInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertAlertFieldValuesInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertAlertFieldValuesInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("value").toString())); + } + if (!jsonObj.get("alert_field_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `alert_field_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_field_id").toString())); + } + if (!jsonObj.get("alert_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `alert_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_id").toString())); + } + if (!jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if (!jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertAlertFieldValuesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertAlertFieldValuesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertAlertFieldValuesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertAlertFieldValuesInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertAlertFieldValuesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertAlertFieldValuesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertAlertFieldValuesInner + * @throws IOException if the JSON string is invalid with respect to AlertAlertFieldValuesInner + */ + public static AlertAlertFieldValuesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertAlertFieldValuesInner.class); + } + + /** + * Convert an instance of AlertAlertFieldValuesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertAlertingTargetsInner.java b/src/main/java/com/rootly/client/model/AlertAlertingTargetsInner.java new file mode 100644 index 00000000..d4f5f8b2 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertAlertingTargetsInner.java @@ -0,0 +1,245 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertAlertingTargetsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertAlertingTargetsInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private String type; + + public AlertAlertingTargetsInner() { + } + + public AlertAlertingTargetsInner id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * ID of the alerting target + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public AlertAlertingTargetsInner type(@jakarta.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Type of the alerting target (e.g. team, user, escalation_policy, service, functionality, slack_channel) + * @return type + */ + @jakarta.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull String type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertAlertingTargetsInner alertAlertingTargetsInner = (AlertAlertingTargetsInner) o; + return Objects.equals(this.id, alertAlertingTargetsInner.id) && + Objects.equals(this.type, alertAlertingTargetsInner.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertAlertingTargetsInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertAlertingTargetsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertAlertingTargetsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertAlertingTargetsInner is not found in the empty JSON string", AlertAlertingTargetsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertAlertingTargetsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertAlertingTargetsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertAlertingTargetsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertAlertingTargetsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertAlertingTargetsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertAlertingTargetsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertAlertingTargetsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertAlertingTargetsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertAlertingTargetsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertAlertingTargetsInner + * @throws IOException if the JSON string is invalid with respect to AlertAlertingTargetsInner + */ + public static AlertAlertingTargetsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertAlertingTargetsInner.class); + } + + /** + * Convert an instance of AlertAlertingTargetsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEvent.java b/src/main/java/com/rootly/client/model/AlertEvent.java index bd59e5b3..8bd4e074 100644 --- a/src/main/java/com/rootly/client/model/AlertEvent.java +++ b/src/main/java/com/rootly/client/model/AlertEvent.java @@ -19,8 +19,15 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertEventEscalationTarget; +import com.rootly.client.model.AlertEventIncident; +import com.rootly.client.model.AlertEventSchedule; +import com.rootly.client.model.AlertEventUser; +import com.rootly.client.model.SlackChannel; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,8 +56,13 @@ /** * AlertEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertEvent { + public static final String SERIALIZED_NAME_ALERT_ID = "alert_id"; + @SerializedName(SERIALIZED_NAME_ALERT_ID) + @jakarta.annotation.Nonnull + private String alertId; + /** * Gets or Sets kind */ @@ -76,7 +88,9 @@ public enum KindEnum { NOISE("noise"), - MAINTENANCE("maintenance"); + MAINTENANCE("maintenance"), + + DEFERRAL("deferral"); private String value; @@ -137,10 +151,18 @@ public enum ActionEnum { IGNORED_ALERT_REQUEST("ignored_alert_request"), + CALL_LIFECYCLE("call_lifecycle"), + + LEVEL_SKIPPED("level_skipped"), + EMAILED("emailed"), SLACKED("slacked"), + MS_TEAMS_MESSAGED("ms_teams_messaged"), + + GOOGLE_CHAT_MESSAGED("google_chat_messaged"), + CALLED("called"), TEXTED("texted"), @@ -153,6 +175,8 @@ public enum ActionEnum { RETRIGGERED("retriggered"), + ACK_TIMEOUT_RETRIGGERED("ack_timeout_retriggered"), + ANSWERED("answered"), ACKNOWLEDGED("acknowledged"), @@ -167,8 +191,12 @@ public enum ActionEnum { SNOOZED("snoozed"), + RETRIGGER_SUPPRESSED("retrigger_suppressed"), + TRIGGERED("triggered"), + OPEN("open"), + UPDATED("updated"), ADDED("added"), @@ -179,7 +207,11 @@ public enum ActionEnum { NOT_MARKED("not_marked"), - MUTED("muted"); + CLEARED("cleared"), + + MUTED("muted"), + + DEFERRED("deferred"); private String value; @@ -244,6 +276,46 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String details; + public static final String SERIALIZED_NAME_USER = "user"; + @SerializedName(SERIALIZED_NAME_USER) + @jakarta.annotation.Nullable + private AlertEventUser user; + + public static final String SERIALIZED_NAME_INCIDENT = "incident"; + @SerializedName(SERIALIZED_NAME_INCIDENT) + @jakarta.annotation.Nullable + private AlertEventIncident incident; + + public static final String SERIALIZED_NAME_SCHEDULE = "schedule"; + @SerializedName(SERIALIZED_NAME_SCHEDULE) + @jakarta.annotation.Nullable + private AlertEventSchedule schedule; + + public static final String SERIALIZED_NAME_ESCALATION_LEVEL = "escalation_level"; + @SerializedName(SERIALIZED_NAME_ESCALATION_LEVEL) + @jakarta.annotation.Nullable + private Integer escalationLevel; + + public static final String SERIALIZED_NAME_ESCALATION_TARGET_TYPE = "escalation_target_type"; + @SerializedName(SERIALIZED_NAME_ESCALATION_TARGET_TYPE) + @jakarta.annotation.Nullable + private String escalationTargetType; + + public static final String SERIALIZED_NAME_ESCALATION_TARGET = "escalation_target"; + @SerializedName(SERIALIZED_NAME_ESCALATION_TARGET) + @jakarta.annotation.Nullable + private AlertEventEscalationTarget escalationTarget; + + public static final String SERIALIZED_NAME_SLACK_CHANNEL = "slack_channel"; + @SerializedName(SERIALIZED_NAME_SLACK_CHANNEL) + @jakarta.annotation.Nullable + private SlackChannel slackChannel; + + public static final String SERIALIZED_NAME_INCIDENT_IDS = "incident_ids"; + @SerializedName(SERIALIZED_NAME_INCIDENT_IDS) + @jakarta.annotation.Nullable + private List incidentIds; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -257,6 +329,25 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public AlertEvent() { } + public AlertEvent alertId(@jakarta.annotation.Nonnull String alertId) { + this.alertId = alertId; + return this; + } + + /** + * ID of the alert this event belongs to. + * @return alertId + */ + @jakarta.annotation.Nonnull + public String getAlertId() { + return alertId; + } + + public void setAlertId(@jakarta.annotation.Nonnull String alertId) { + this.alertId = alertId; + } + + public AlertEvent kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; @@ -352,6 +443,166 @@ public void setDetails(@jakarta.annotation.Nullable String details) { } + public AlertEvent user(@jakarta.annotation.Nullable AlertEventUser user) { + this.user = user; + return this; + } + + /** + * Get user + * @return user + */ + @jakarta.annotation.Nullable + public AlertEventUser getUser() { + return user; + } + + public void setUser(@jakarta.annotation.Nullable AlertEventUser user) { + this.user = user; + } + + + public AlertEvent incident(@jakarta.annotation.Nullable AlertEventIncident incident) { + this.incident = incident; + return this; + } + + /** + * Get incident + * @return incident + */ + @jakarta.annotation.Nullable + public AlertEventIncident getIncident() { + return incident; + } + + public void setIncident(@jakarta.annotation.Nullable AlertEventIncident incident) { + this.incident = incident; + } + + + public AlertEvent schedule(@jakarta.annotation.Nullable AlertEventSchedule schedule) { + this.schedule = schedule; + return this; + } + + /** + * Get schedule + * @return schedule + */ + @jakarta.annotation.Nullable + public AlertEventSchedule getSchedule() { + return schedule; + } + + public void setSchedule(@jakarta.annotation.Nullable AlertEventSchedule schedule) { + this.schedule = schedule; + } + + + public AlertEvent escalationLevel(@jakarta.annotation.Nullable Integer escalationLevel) { + this.escalationLevel = escalationLevel; + return this; + } + + /** + * Get escalationLevel + * @return escalationLevel + */ + @jakarta.annotation.Nullable + public Integer getEscalationLevel() { + return escalationLevel; + } + + public void setEscalationLevel(@jakarta.annotation.Nullable Integer escalationLevel) { + this.escalationLevel = escalationLevel; + } + + + public AlertEvent escalationTargetType(@jakarta.annotation.Nullable String escalationTargetType) { + this.escalationTargetType = escalationTargetType; + return this; + } + + /** + * e.g. EscalationPolicy, User. + * @return escalationTargetType + */ + @jakarta.annotation.Nullable + public String getEscalationTargetType() { + return escalationTargetType; + } + + public void setEscalationTargetType(@jakarta.annotation.Nullable String escalationTargetType) { + this.escalationTargetType = escalationTargetType; + } + + + public AlertEvent escalationTarget(@jakarta.annotation.Nullable AlertEventEscalationTarget escalationTarget) { + this.escalationTarget = escalationTarget; + return this; + } + + /** + * Get escalationTarget + * @return escalationTarget + */ + @jakarta.annotation.Nullable + public AlertEventEscalationTarget getEscalationTarget() { + return escalationTarget; + } + + public void setEscalationTarget(@jakarta.annotation.Nullable AlertEventEscalationTarget escalationTarget) { + this.escalationTarget = escalationTarget; + } + + + public AlertEvent slackChannel(@jakarta.annotation.Nullable SlackChannel slackChannel) { + this.slackChannel = slackChannel; + return this; + } + + /** + * Get slackChannel + * @return slackChannel + */ + @jakarta.annotation.Nullable + public SlackChannel getSlackChannel() { + return slackChannel; + } + + public void setSlackChannel(@jakarta.annotation.Nullable SlackChannel slackChannel) { + this.slackChannel = slackChannel; + } + + + public AlertEvent incidentIds(@jakarta.annotation.Nullable List incidentIds) { + this.incidentIds = incidentIds; + return this; + } + + public AlertEvent addIncidentIdsItem(String incidentIdsItem) { + if (this.incidentIds == null) { + this.incidentIds = new ArrayList<>(); + } + this.incidentIds.add(incidentIdsItem); + return this; + } + + /** + * Get incidentIds + * @return incidentIds + */ + @jakarta.annotation.Nullable + public List getIncidentIds() { + return incidentIds; + } + + public void setIncidentIds(@jakarta.annotation.Nullable List incidentIds) { + this.incidentIds = incidentIds; + } + + public AlertEvent createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -400,11 +651,20 @@ public boolean equals(Object o) { return false; } AlertEvent alertEvent = (AlertEvent) o; - return Objects.equals(this.kind, alertEvent.kind) && + return Objects.equals(this.alertId, alertEvent.alertId) && + Objects.equals(this.kind, alertEvent.kind) && Objects.equals(this.action, alertEvent.action) && Objects.equals(this.source, alertEvent.source) && Objects.equals(this.userId, alertEvent.userId) && Objects.equals(this.details, alertEvent.details) && + Objects.equals(this.user, alertEvent.user) && + Objects.equals(this.incident, alertEvent.incident) && + Objects.equals(this.schedule, alertEvent.schedule) && + Objects.equals(this.escalationLevel, alertEvent.escalationLevel) && + Objects.equals(this.escalationTargetType, alertEvent.escalationTargetType) && + Objects.equals(this.escalationTarget, alertEvent.escalationTarget) && + Objects.equals(this.slackChannel, alertEvent.slackChannel) && + Objects.equals(this.incidentIds, alertEvent.incidentIds) && Objects.equals(this.createdAt, alertEvent.createdAt) && Objects.equals(this.updatedAt, alertEvent.updatedAt); } @@ -415,7 +675,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(kind, action, source, userId, details, createdAt, updatedAt); + return Objects.hash(alertId, kind, action, source, userId, details, user, incident, schedule, escalationLevel, escalationTargetType, escalationTarget, slackChannel, incidentIds, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -429,11 +689,20 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertEvent {\n"); + sb.append(" alertId: ").append(toIndentedString(alertId)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" action: ").append(toIndentedString(action)).append("\n"); sb.append(" source: ").append(toIndentedString(source)).append("\n"); sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); sb.append(" details: ").append(toIndentedString(details)).append("\n"); + sb.append(" user: ").append(toIndentedString(user)).append("\n"); + sb.append(" incident: ").append(toIndentedString(incident)).append("\n"); + sb.append(" schedule: ").append(toIndentedString(schedule)).append("\n"); + sb.append(" escalationLevel: ").append(toIndentedString(escalationLevel)).append("\n"); + sb.append(" escalationTargetType: ").append(toIndentedString(escalationTargetType)).append("\n"); + sb.append(" escalationTarget: ").append(toIndentedString(escalationTarget)).append("\n"); + sb.append(" slackChannel: ").append(toIndentedString(slackChannel)).append("\n"); + sb.append(" incidentIds: ").append(toIndentedString(incidentIds)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -458,16 +727,26 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("alert_id"); openapiFields.add("kind"); openapiFields.add("action"); openapiFields.add("source"); openapiFields.add("user_id"); openapiFields.add("details"); + openapiFields.add("user"); + openapiFields.add("incident"); + openapiFields.add("schedule"); + openapiFields.add("escalation_level"); + openapiFields.add("escalation_target_type"); + openapiFields.add("escalation_target"); + openapiFields.add("slack_channel"); + openapiFields.add("incident_ids"); openapiFields.add("created_at"); openapiFields.add("updated_at"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("alert_id"); openapiRequiredFields.add("kind"); openapiRequiredFields.add("action"); openapiRequiredFields.add("source"); @@ -503,6 +782,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("alert_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `alert_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_id").toString())); + } if (!jsonObj.get("kind").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); } @@ -519,6 +801,33 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("details") != null && !jsonObj.get("details").isJsonNull()) && !jsonObj.get("details").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `details` to be a primitive type in the JSON string but got `%s`", jsonObj.get("details").toString())); } + // validate the optional field `user` + if (jsonObj.get("user") != null && !jsonObj.get("user").isJsonNull()) { + AlertEventUser.validateJsonElement(jsonObj.get("user")); + } + // validate the optional field `incident` + if (jsonObj.get("incident") != null && !jsonObj.get("incident").isJsonNull()) { + AlertEventIncident.validateJsonElement(jsonObj.get("incident")); + } + // validate the optional field `schedule` + if (jsonObj.get("schedule") != null && !jsonObj.get("schedule").isJsonNull()) { + AlertEventSchedule.validateJsonElement(jsonObj.get("schedule")); + } + if ((jsonObj.get("escalation_target_type") != null && !jsonObj.get("escalation_target_type").isJsonNull()) && !jsonObj.get("escalation_target_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_target_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_target_type").toString())); + } + // validate the optional field `escalation_target` + if (jsonObj.get("escalation_target") != null && !jsonObj.get("escalation_target").isJsonNull()) { + AlertEventEscalationTarget.validateJsonElement(jsonObj.get("escalation_target")); + } + // validate the optional field `slack_channel` + if (jsonObj.get("slack_channel") != null && !jsonObj.get("slack_channel").isJsonNull()) { + SlackChannel.validateJsonElement(jsonObj.get("slack_channel")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("incident_ids") != null && !jsonObj.get("incident_ids").isJsonNull() && !jsonObj.get("incident_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_ids` to be an array in the JSON string but got `%s`", jsonObj.get("incident_ids").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/AlertEventEscalationTarget.java b/src/main/java/com/rootly/client/model/AlertEventEscalationTarget.java new file mode 100644 index 00000000..8ff40ee9 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventEscalationTarget.java @@ -0,0 +1,208 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertEventEscalationTargetData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * JSON:API-wrapped escalation target (User or EscalationPolicy). + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventEscalationTarget { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private AlertEventEscalationTargetData data; + + public AlertEventEscalationTarget() { + } + + public AlertEventEscalationTarget data(@jakarta.annotation.Nullable AlertEventEscalationTargetData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public AlertEventEscalationTargetData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable AlertEventEscalationTargetData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventEscalationTarget alertEventEscalationTarget = (AlertEventEscalationTarget) o; + return Objects.equals(this.data, alertEventEscalationTarget.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventEscalationTarget {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventEscalationTarget + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventEscalationTarget.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventEscalationTarget is not found in the empty JSON string", AlertEventEscalationTarget.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventEscalationTarget.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventEscalationTarget` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + AlertEventEscalationTargetData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventEscalationTarget.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventEscalationTarget' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventEscalationTarget.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventEscalationTarget value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventEscalationTarget read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventEscalationTarget given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventEscalationTarget + * @throws IOException if the JSON string is invalid with respect to AlertEventEscalationTarget + */ + public static AlertEventEscalationTarget fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventEscalationTarget.class); + } + + /** + * Convert an instance of AlertEventEscalationTarget to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEventEscalationTargetData.java b/src/main/java/com/rootly/client/model/AlertEventEscalationTargetData.java new file mode 100644 index 00000000..53c5e364 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventEscalationTargetData.java @@ -0,0 +1,263 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertEventEscalationTargetData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventEscalationTargetData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nullable + private Object attributes; + + public AlertEventEscalationTargetData() { + } + + public AlertEventEscalationTargetData id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public AlertEventEscalationTargetData type(@jakarta.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * e.g. users, escalation_policies. + * @return type + */ + @jakarta.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable String type) { + this.type = type; + } + + + public AlertEventEscalationTargetData attributes(@jakarta.annotation.Nullable Object attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nullable + public Object getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nullable Object attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventEscalationTargetData alertEventEscalationTargetData = (AlertEventEscalationTargetData) o; + return Objects.equals(this.id, alertEventEscalationTargetData.id) && + Objects.equals(this.type, alertEventEscalationTargetData.type) && + Objects.equals(this.attributes, alertEventEscalationTargetData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventEscalationTargetData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventEscalationTargetData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventEscalationTargetData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventEscalationTargetData is not found in the empty JSON string", AlertEventEscalationTargetData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventEscalationTargetData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventEscalationTargetData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventEscalationTargetData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventEscalationTargetData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventEscalationTargetData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventEscalationTargetData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventEscalationTargetData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventEscalationTargetData given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventEscalationTargetData + * @throws IOException if the JSON string is invalid with respect to AlertEventEscalationTargetData + */ + public static AlertEventEscalationTargetData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventEscalationTargetData.class); + } + + /** + * Convert an instance of AlertEventEscalationTargetData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEventFeedList.java b/src/main/java/com/rootly/client/model/AlertEventFeedList.java new file mode 100644 index 00000000..26f0c74f --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventFeedList.java @@ -0,0 +1,345 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertEventFeedMeta; +import com.rootly.client.model.AlertEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertEventFeedList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventFeedList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nullable + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nonnull + private AlertEventFeedMeta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public AlertEventFeedList() { + } + + public AlertEventFeedList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public AlertEventFeedList addDataItem(AlertEventResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public AlertEventFeedList links(@jakarta.annotation.Nullable Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nullable + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nullable Links links) { + this.links = links; + } + + + public AlertEventFeedList meta(@jakarta.annotation.Nonnull AlertEventFeedMeta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nonnull + public AlertEventFeedMeta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nonnull AlertEventFeedMeta meta) { + this.meta = meta; + } + + + public AlertEventFeedList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertEventFeedList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventFeedList alertEventFeedList = (AlertEventFeedList) o; + return Objects.equals(this.data, alertEventFeedList.data) && + Objects.equals(this.links, alertEventFeedList.links) && + Objects.equals(this.meta, alertEventFeedList.meta) && + Objects.equals(this.included, alertEventFeedList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventFeedList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + openapiRequiredFields.add("meta"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventFeedList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventFeedList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventFeedList is not found in the empty JSON string", AlertEventFeedList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventFeedList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventFeedList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertEventFeedList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + AlertEventResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the optional field `links` + if (jsonObj.get("links") != null && !jsonObj.get("links").isJsonNull()) { + Links.validateJsonElement(jsonObj.get("links")); + } + // validate the required field `meta` + AlertEventFeedMeta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventFeedList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventFeedList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventFeedList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventFeedList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventFeedList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventFeedList given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventFeedList + * @throws IOException if the JSON string is invalid with respect to AlertEventFeedList + */ + public static AlertEventFeedList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventFeedList.class); + } + + /** + * Convert an instance of AlertEventFeedList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEventFeedMeta.java b/src/main/java/com/rootly/client/model/AlertEventFeedMeta.java new file mode 100644 index 00000000..5547d7a8 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventFeedMeta.java @@ -0,0 +1,361 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * Cursor-pagination meta. `total_count` and `total_pages` are nullable because the feed does not run a COUNT query. + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventFeedMeta { + public static final String SERIALIZED_NAME_NEXT_CURSOR = "next_cursor"; + @SerializedName(SERIALIZED_NAME_NEXT_CURSOR) + @jakarta.annotation.Nullable + private String nextCursor; + + public static final String SERIALIZED_NAME_CURRENT_PAGE = "current_page"; + @SerializedName(SERIALIZED_NAME_CURRENT_PAGE) + @jakarta.annotation.Nullable + private Integer currentPage; + + public static final String SERIALIZED_NAME_NEXT_PAGE = "next_page"; + @SerializedName(SERIALIZED_NAME_NEXT_PAGE) + @jakarta.annotation.Nullable + private Integer nextPage; + + public static final String SERIALIZED_NAME_PREV_PAGE = "prev_page"; + @SerializedName(SERIALIZED_NAME_PREV_PAGE) + @jakarta.annotation.Nullable + private Integer prevPage; + + public static final String SERIALIZED_NAME_TOTAL_COUNT = "total_count"; + @SerializedName(SERIALIZED_NAME_TOTAL_COUNT) + @jakarta.annotation.Nullable + private Integer totalCount; + + public static final String SERIALIZED_NAME_TOTAL_PAGES = "total_pages"; + @SerializedName(SERIALIZED_NAME_TOTAL_PAGES) + @jakarta.annotation.Nullable + private Integer totalPages; + + public AlertEventFeedMeta() { + } + + public AlertEventFeedMeta nextCursor(@jakarta.annotation.Nullable String nextCursor) { + this.nextCursor = nextCursor; + return this; + } + + /** + * Pass as `page[after]` on the next request to fetch the following page. + * @return nextCursor + */ + @jakarta.annotation.Nullable + public String getNextCursor() { + return nextCursor; + } + + public void setNextCursor(@jakarta.annotation.Nullable String nextCursor) { + this.nextCursor = nextCursor; + } + + + public AlertEventFeedMeta currentPage(@jakarta.annotation.Nullable Integer currentPage) { + this.currentPage = currentPage; + return this; + } + + /** + * Get currentPage + * @return currentPage + */ + @jakarta.annotation.Nullable + public Integer getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(@jakarta.annotation.Nullable Integer currentPage) { + this.currentPage = currentPage; + } + + + public AlertEventFeedMeta nextPage(@jakarta.annotation.Nullable Integer nextPage) { + this.nextPage = nextPage; + return this; + } + + /** + * Get nextPage + * @return nextPage + */ + @jakarta.annotation.Nullable + public Integer getNextPage() { + return nextPage; + } + + public void setNextPage(@jakarta.annotation.Nullable Integer nextPage) { + this.nextPage = nextPage; + } + + + public AlertEventFeedMeta prevPage(@jakarta.annotation.Nullable Integer prevPage) { + this.prevPage = prevPage; + return this; + } + + /** + * Get prevPage + * @return prevPage + */ + @jakarta.annotation.Nullable + public Integer getPrevPage() { + return prevPage; + } + + public void setPrevPage(@jakarta.annotation.Nullable Integer prevPage) { + this.prevPage = prevPage; + } + + + public AlertEventFeedMeta totalCount(@jakarta.annotation.Nullable Integer totalCount) { + this.totalCount = totalCount; + return this; + } + + /** + * Get totalCount + * @return totalCount + */ + @jakarta.annotation.Nullable + public Integer getTotalCount() { + return totalCount; + } + + public void setTotalCount(@jakarta.annotation.Nullable Integer totalCount) { + this.totalCount = totalCount; + } + + + public AlertEventFeedMeta totalPages(@jakarta.annotation.Nullable Integer totalPages) { + this.totalPages = totalPages; + return this; + } + + /** + * Get totalPages + * @return totalPages + */ + @jakarta.annotation.Nullable + public Integer getTotalPages() { + return totalPages; + } + + public void setTotalPages(@jakarta.annotation.Nullable Integer totalPages) { + this.totalPages = totalPages; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventFeedMeta alertEventFeedMeta = (AlertEventFeedMeta) o; + return Objects.equals(this.nextCursor, alertEventFeedMeta.nextCursor) && + Objects.equals(this.currentPage, alertEventFeedMeta.currentPage) && + Objects.equals(this.nextPage, alertEventFeedMeta.nextPage) && + Objects.equals(this.prevPage, alertEventFeedMeta.prevPage) && + Objects.equals(this.totalCount, alertEventFeedMeta.totalCount) && + Objects.equals(this.totalPages, alertEventFeedMeta.totalPages); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(nextCursor, currentPage, nextPage, prevPage, totalCount, totalPages); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventFeedMeta {\n"); + sb.append(" nextCursor: ").append(toIndentedString(nextCursor)).append("\n"); + sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n"); + sb.append(" nextPage: ").append(toIndentedString(nextPage)).append("\n"); + sb.append(" prevPage: ").append(toIndentedString(prevPage)).append("\n"); + sb.append(" totalCount: ").append(toIndentedString(totalCount)).append("\n"); + sb.append(" totalPages: ").append(toIndentedString(totalPages)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("next_cursor"); + openapiFields.add("current_page"); + openapiFields.add("next_page"); + openapiFields.add("prev_page"); + openapiFields.add("total_count"); + openapiFields.add("total_pages"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("next_cursor"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventFeedMeta + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventFeedMeta.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventFeedMeta is not found in the empty JSON string", AlertEventFeedMeta.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventFeedMeta.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventFeedMeta` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertEventFeedMeta.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("next_cursor") != null && !jsonObj.get("next_cursor").isJsonNull()) && !jsonObj.get("next_cursor").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `next_cursor` to be a primitive type in the JSON string but got `%s`", jsonObj.get("next_cursor").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventFeedMeta.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventFeedMeta' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventFeedMeta.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventFeedMeta value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventFeedMeta read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventFeedMeta given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventFeedMeta + * @throws IOException if the JSON string is invalid with respect to AlertEventFeedMeta + */ + public static AlertEventFeedMeta fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventFeedMeta.class); + } + + /** + * Convert an instance of AlertEventFeedMeta to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEventIncident.java b/src/main/java/com/rootly/client/model/AlertEventIncident.java new file mode 100644 index 00000000..988910b1 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventIncident.java @@ -0,0 +1,569 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertEventIncident + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventIncident { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_SEQUENTIAL_ID = "sequential_id"; + @SerializedName(SERIALIZED_NAME_SEQUENTIAL_ID) + @jakarta.annotation.Nullable + private Integer sequentialId; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_SLUG = "slug"; + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + + public static final String SERIALIZED_NAME_KIND = "kind"; + @SerializedName(SERIALIZED_NAME_KIND) + @jakarta.annotation.Nullable + private String kind; + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nullable + private String status; + + public static final String SERIALIZED_NAME_PRIVATE = "private"; + @SerializedName(SERIALIZED_NAME_PRIVATE) + @jakarta.annotation.Nullable + private Boolean _private; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; + @SerializedName(SERIALIZED_NAME_STARTED_AT) + @jakarta.annotation.Nullable + private String startedAt; + + public static final String SERIALIZED_NAME_DURATION = "duration"; + @SerializedName(SERIALIZED_NAME_DURATION) + @jakarta.annotation.Nullable + private Integer duration; + + public static final String SERIALIZED_NAME_URL = "url"; + @SerializedName(SERIALIZED_NAME_URL) + @jakarta.annotation.Nullable + private String url; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nullable + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nullable + private String updatedAt; + + public AlertEventIncident() { + } + + public AlertEventIncident id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public AlertEventIncident sequentialId(@jakarta.annotation.Nullable Integer sequentialId) { + this.sequentialId = sequentialId; + return this; + } + + /** + * Get sequentialId + * @return sequentialId + */ + @jakarta.annotation.Nullable + public Integer getSequentialId() { + return sequentialId; + } + + public void setSequentialId(@jakarta.annotation.Nullable Integer sequentialId) { + this.sequentialId = sequentialId; + } + + + public AlertEventIncident title(@jakarta.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Get title + * @return title + */ + @jakarta.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nullable String title) { + this.title = title; + } + + + public AlertEventIncident slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Get slug + * @return slug + */ + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public AlertEventIncident kind(@jakarta.annotation.Nullable String kind) { + this.kind = kind; + return this; + } + + /** + * Get kind + * @return kind + */ + @jakarta.annotation.Nullable + public String getKind() { + return kind; + } + + public void setKind(@jakarta.annotation.Nullable String kind) { + this.kind = kind; + } + + + public AlertEventIncident status(@jakarta.annotation.Nullable String status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + */ + @jakarta.annotation.Nullable + public String getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nullable String status) { + this.status = status; + } + + + public AlertEventIncident _private(@jakarta.annotation.Nullable Boolean _private) { + this._private = _private; + return this; + } + + /** + * Get _private + * @return _private + */ + @jakarta.annotation.Nullable + public Boolean getPrivate() { + return _private; + } + + public void setPrivate(@jakarta.annotation.Nullable Boolean _private) { + this._private = _private; + } + + + public AlertEventIncident description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public AlertEventIncident startedAt(@jakarta.annotation.Nullable String startedAt) { + this.startedAt = startedAt; + return this; + } + + /** + * Get startedAt + * @return startedAt + */ + @jakarta.annotation.Nullable + public String getStartedAt() { + return startedAt; + } + + public void setStartedAt(@jakarta.annotation.Nullable String startedAt) { + this.startedAt = startedAt; + } + + + public AlertEventIncident duration(@jakarta.annotation.Nullable Integer duration) { + this.duration = duration; + return this; + } + + /** + * Duration in seconds. + * @return duration + */ + @jakarta.annotation.Nullable + public Integer getDuration() { + return duration; + } + + public void setDuration(@jakarta.annotation.Nullable Integer duration) { + this.duration = duration; + } + + + public AlertEventIncident url(@jakarta.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Get url + * @return url + */ + @jakarta.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@jakarta.annotation.Nullable String url) { + this.url = url; + } + + + public AlertEventIncident createdAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Get createdAt + * @return createdAt + */ + @jakarta.annotation.Nullable + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + } + + + public AlertEventIncident updatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Get updatedAt + * @return updatedAt + */ + @jakarta.annotation.Nullable + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventIncident alertEventIncident = (AlertEventIncident) o; + return Objects.equals(this.id, alertEventIncident.id) && + Objects.equals(this.sequentialId, alertEventIncident.sequentialId) && + Objects.equals(this.title, alertEventIncident.title) && + Objects.equals(this.slug, alertEventIncident.slug) && + Objects.equals(this.kind, alertEventIncident.kind) && + Objects.equals(this.status, alertEventIncident.status) && + Objects.equals(this._private, alertEventIncident._private) && + Objects.equals(this.description, alertEventIncident.description) && + Objects.equals(this.startedAt, alertEventIncident.startedAt) && + Objects.equals(this.duration, alertEventIncident.duration) && + Objects.equals(this.url, alertEventIncident.url) && + Objects.equals(this.createdAt, alertEventIncident.createdAt) && + Objects.equals(this.updatedAt, alertEventIncident.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, sequentialId, title, slug, kind, status, _private, description, startedAt, duration, url, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventIncident {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" sequentialId: ").append(toIndentedString(sequentialId)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" _private: ").append(toIndentedString(_private)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); + sb.append(" duration: ").append(toIndentedString(duration)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("sequential_id"); + openapiFields.add("title"); + openapiFields.add("slug"); + openapiFields.add("kind"); + openapiFields.add("status"); + openapiFields.add("private"); + openapiFields.add("description"); + openapiFields.add("started_at"); + openapiFields.add("duration"); + openapiFields.add("url"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventIncident + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventIncident.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventIncident is not found in the empty JSON string", AlertEventIncident.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventIncident.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventIncident` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } + if ((jsonObj.get("kind") != null && !jsonObj.get("kind").isJsonNull()) && !jsonObj.get("kind").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("started_at") != null && !jsonObj.get("started_at").isJsonNull()) && !jsonObj.get("started_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `started_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("started_at").toString())); + } + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("url").toString())); + } + if ((jsonObj.get("created_at") != null && !jsonObj.get("created_at").isJsonNull()) && !jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if ((jsonObj.get("updated_at") != null && !jsonObj.get("updated_at").isJsonNull()) && !jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventIncident.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventIncident' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventIncident.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventIncident value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventIncident read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventIncident given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventIncident + * @throws IOException if the JSON string is invalid with respect to AlertEventIncident + */ + public static AlertEventIncident fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventIncident.class); + } + + /** + * Convert an instance of AlertEventIncident to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEventList.java b/src/main/java/com/rootly/client/model/AlertEventList.java index e45de4c3..9c31c885 100644 --- a/src/main/java/com/rootly/client/model/AlertEventList.java +++ b/src/main/java/com/rootly/client/model/AlertEventList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AlertEventList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertEventList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AlertEventList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertEventList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AlertEventList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertEventList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AlertEventList alertEventList = (AlertEventList) o; return Objects.equals(this.data, alertEventList.data) && Objects.equals(this.links, alertEventList.links) && - Objects.equals(this.meta, alertEventList.meta); + Objects.equals(this.meta, alertEventList.meta) && + Objects.equals(this.included, alertEventList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertEventResponse.java b/src/main/java/com/rootly/client/model/AlertEventResponse.java index 1160eb3c..0c8b0291 100644 --- a/src/main/java/com/rootly/client/model/AlertEventResponse.java +++ b/src/main/java/com/rootly/client/model/AlertEventResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AlertEventResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertEventResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AlertEventResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertEventResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AlertEventResponseData data) { } + public AlertEventResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertEventResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AlertEventResponse alertEventResponse = (AlertEventResponse) o; - return Objects.equals(this.data, alertEventResponse.data); + return Objects.equals(this.data, alertEventResponse.data) && + Objects.equals(this.included, alertEventResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertEventResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AlertEventResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertEventResponseData.java b/src/main/java/com/rootly/client/model/AlertEventResponseData.java index d7c2eeab..133bea71 100644 --- a/src/main/java/com/rootly/client/model/AlertEventResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertEventResponseData.java @@ -49,7 +49,7 @@ /** * AlertEventResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertEventResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertEventSchedule.java b/src/main/java/com/rootly/client/model/AlertEventSchedule.java new file mode 100644 index 00000000..f08cf641 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventSchedule.java @@ -0,0 +1,390 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertEventScheduleEscalationPoliciesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertEventSchedule + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventSchedule { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_ESCALATION_POLICIES = "escalation_policies"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICIES) + @jakarta.annotation.Nullable + private List escalationPolicies = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nullable + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nullable + private String updatedAt; + + public AlertEventSchedule() { + } + + public AlertEventSchedule id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public AlertEventSchedule name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public AlertEventSchedule description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public AlertEventSchedule escalationPolicies(@jakarta.annotation.Nullable List escalationPolicies) { + this.escalationPolicies = escalationPolicies; + return this; + } + + public AlertEventSchedule addEscalationPoliciesItem(AlertEventScheduleEscalationPoliciesInner escalationPoliciesItem) { + if (this.escalationPolicies == null) { + this.escalationPolicies = new ArrayList<>(); + } + this.escalationPolicies.add(escalationPoliciesItem); + return this; + } + + /** + * Get escalationPolicies + * @return escalationPolicies + */ + @jakarta.annotation.Nullable + public List getEscalationPolicies() { + return escalationPolicies; + } + + public void setEscalationPolicies(@jakarta.annotation.Nullable List escalationPolicies) { + this.escalationPolicies = escalationPolicies; + } + + + public AlertEventSchedule createdAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Get createdAt + * @return createdAt + */ + @jakarta.annotation.Nullable + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + } + + + public AlertEventSchedule updatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Get updatedAt + * @return updatedAt + */ + @jakarta.annotation.Nullable + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventSchedule alertEventSchedule = (AlertEventSchedule) o; + return Objects.equals(this.id, alertEventSchedule.id) && + Objects.equals(this.name, alertEventSchedule.name) && + Objects.equals(this.description, alertEventSchedule.description) && + Objects.equals(this.escalationPolicies, alertEventSchedule.escalationPolicies) && + Objects.equals(this.createdAt, alertEventSchedule.createdAt) && + Objects.equals(this.updatedAt, alertEventSchedule.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, description, escalationPolicies, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventSchedule {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" escalationPolicies: ").append(toIndentedString(escalationPolicies)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("escalation_policies"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventSchedule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventSchedule.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventSchedule is not found in the empty JSON string", AlertEventSchedule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventSchedule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventSchedule` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if (jsonObj.get("escalation_policies") != null && !jsonObj.get("escalation_policies").isJsonNull()) { + JsonArray jsonArrayescalationPolicies = jsonObj.getAsJsonArray("escalation_policies"); + if (jsonArrayescalationPolicies != null) { + // ensure the json data is an array + if (!jsonObj.get("escalation_policies").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policies` to be an array in the JSON string but got `%s`", jsonObj.get("escalation_policies").toString())); + } + + // validate the optional field `escalation_policies` (array) + for (int i = 0; i < jsonArrayescalationPolicies.size(); i++) { + AlertEventScheduleEscalationPoliciesInner.validateJsonElement(jsonArrayescalationPolicies.get(i)); + }; + } + } + if ((jsonObj.get("created_at") != null && !jsonObj.get("created_at").isJsonNull()) && !jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if ((jsonObj.get("updated_at") != null && !jsonObj.get("updated_at").isJsonNull()) && !jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventSchedule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventSchedule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventSchedule.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventSchedule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventSchedule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventSchedule given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventSchedule + * @throws IOException if the JSON string is invalid with respect to AlertEventSchedule + */ + public static AlertEventSchedule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventSchedule.class); + } + + /** + * Convert an instance of AlertEventSchedule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInner.java b/src/main/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInner.java new file mode 100644 index 00000000..b0fdce73 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInner.java @@ -0,0 +1,296 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertEventScheduleEscalationPoliciesInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventScheduleEscalationPoliciesInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nullable + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nullable + private String updatedAt; + + public AlertEventScheduleEscalationPoliciesInner() { + } + + public AlertEventScheduleEscalationPoliciesInner id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public AlertEventScheduleEscalationPoliciesInner name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public AlertEventScheduleEscalationPoliciesInner createdAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Get createdAt + * @return createdAt + */ + @jakarta.annotation.Nullable + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + } + + + public AlertEventScheduleEscalationPoliciesInner updatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Get updatedAt + * @return updatedAt + */ + @jakarta.annotation.Nullable + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventScheduleEscalationPoliciesInner alertEventScheduleEscalationPoliciesInner = (AlertEventScheduleEscalationPoliciesInner) o; + return Objects.equals(this.id, alertEventScheduleEscalationPoliciesInner.id) && + Objects.equals(this.name, alertEventScheduleEscalationPoliciesInner.name) && + Objects.equals(this.createdAt, alertEventScheduleEscalationPoliciesInner.createdAt) && + Objects.equals(this.updatedAt, alertEventScheduleEscalationPoliciesInner.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, createdAt, updatedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventScheduleEscalationPoliciesInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("name"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventScheduleEscalationPoliciesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventScheduleEscalationPoliciesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventScheduleEscalationPoliciesInner is not found in the empty JSON string", AlertEventScheduleEscalationPoliciesInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventScheduleEscalationPoliciesInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventScheduleEscalationPoliciesInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("created_at") != null && !jsonObj.get("created_at").isJsonNull()) && !jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if ((jsonObj.get("updated_at") != null && !jsonObj.get("updated_at").isJsonNull()) && !jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventScheduleEscalationPoliciesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventScheduleEscalationPoliciesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventScheduleEscalationPoliciesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventScheduleEscalationPoliciesInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventScheduleEscalationPoliciesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventScheduleEscalationPoliciesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventScheduleEscalationPoliciesInner + * @throws IOException if the JSON string is invalid with respect to AlertEventScheduleEscalationPoliciesInner + */ + public static AlertEventScheduleEscalationPoliciesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventScheduleEscalationPoliciesInner.class); + } + + /** + * Convert an instance of AlertEventScheduleEscalationPoliciesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertEventUser.java b/src/main/java/com/rootly/client/model/AlertEventUser.java new file mode 100644 index 00000000..9181e7d6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertEventUser.java @@ -0,0 +1,497 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertEventUser + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertEventUser { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private Integer id; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_EMAIL = "email"; + @SerializedName(SERIALIZED_NAME_EMAIL) + @jakarta.annotation.Nonnull + private String email; + + public static final String SERIALIZED_NAME_FIRST_NAME = "first_name"; + @SerializedName(SERIALIZED_NAME_FIRST_NAME) + @jakarta.annotation.Nullable + private String firstName; + + public static final String SERIALIZED_NAME_LAST_NAME = "last_name"; + @SerializedName(SERIALIZED_NAME_LAST_NAME) + @jakarta.annotation.Nullable + private String lastName; + + public static final String SERIALIZED_NAME_PREFERRED_NAME = "preferred_name"; + @SerializedName(SERIALIZED_NAME_PREFERRED_NAME) + @jakarta.annotation.Nullable + private String preferredName; + + public static final String SERIALIZED_NAME_FULL_NAME = "full_name"; + @SerializedName(SERIALIZED_NAME_FULL_NAME) + @jakarta.annotation.Nullable + private String fullName; + + public static final String SERIALIZED_NAME_TIME_ZONE = "time_zone"; + @SerializedName(SERIALIZED_NAME_TIME_ZONE) + @jakarta.annotation.Nullable + private String timeZone; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private String updatedAt; + + public AlertEventUser() { + } + + public AlertEventUser id(@jakarta.annotation.Nonnull Integer id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nonnull + public Integer getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull Integer id) { + this.id = id; + } + + + public AlertEventUser name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + + public AlertEventUser email(@jakarta.annotation.Nonnull String email) { + this.email = email; + return this; + } + + /** + * Get email + * @return email + */ + @jakarta.annotation.Nonnull + public String getEmail() { + return email; + } + + public void setEmail(@jakarta.annotation.Nonnull String email) { + this.email = email; + } + + + public AlertEventUser firstName(@jakarta.annotation.Nullable String firstName) { + this.firstName = firstName; + return this; + } + + /** + * Get firstName + * @return firstName + */ + @jakarta.annotation.Nullable + public String getFirstName() { + return firstName; + } + + public void setFirstName(@jakarta.annotation.Nullable String firstName) { + this.firstName = firstName; + } + + + public AlertEventUser lastName(@jakarta.annotation.Nullable String lastName) { + this.lastName = lastName; + return this; + } + + /** + * Get lastName + * @return lastName + */ + @jakarta.annotation.Nullable + public String getLastName() { + return lastName; + } + + public void setLastName(@jakarta.annotation.Nullable String lastName) { + this.lastName = lastName; + } + + + public AlertEventUser preferredName(@jakarta.annotation.Nullable String preferredName) { + this.preferredName = preferredName; + return this; + } + + /** + * Get preferredName + * @return preferredName + */ + @jakarta.annotation.Nullable + public String getPreferredName() { + return preferredName; + } + + public void setPreferredName(@jakarta.annotation.Nullable String preferredName) { + this.preferredName = preferredName; + } + + + public AlertEventUser fullName(@jakarta.annotation.Nullable String fullName) { + this.fullName = fullName; + return this; + } + + /** + * Get fullName + * @return fullName + */ + @jakarta.annotation.Nullable + public String getFullName() { + return fullName; + } + + public void setFullName(@jakarta.annotation.Nullable String fullName) { + this.fullName = fullName; + } + + + public AlertEventUser timeZone(@jakarta.annotation.Nullable String timeZone) { + this.timeZone = timeZone; + return this; + } + + /** + * Get timeZone + * @return timeZone + */ + @jakarta.annotation.Nullable + public String getTimeZone() { + return timeZone; + } + + public void setTimeZone(@jakarta.annotation.Nullable String timeZone) { + this.timeZone = timeZone; + } + + + public AlertEventUser createdAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Get createdAt + * @return createdAt + */ + @jakarta.annotation.Nonnull + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + } + + + public AlertEventUser updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Get updatedAt + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertEventUser alertEventUser = (AlertEventUser) o; + return Objects.equals(this.id, alertEventUser.id) && + Objects.equals(this.name, alertEventUser.name) && + Objects.equals(this.email, alertEventUser.email) && + Objects.equals(this.firstName, alertEventUser.firstName) && + Objects.equals(this.lastName, alertEventUser.lastName) && + Objects.equals(this.preferredName, alertEventUser.preferredName) && + Objects.equals(this.fullName, alertEventUser.fullName) && + Objects.equals(this.timeZone, alertEventUser.timeZone) && + Objects.equals(this.createdAt, alertEventUser.createdAt) && + Objects.equals(this.updatedAt, alertEventUser.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, name, email, firstName, lastName, preferredName, fullName, timeZone, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertEventUser {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" email: ").append(toIndentedString(email)).append("\n"); + sb.append(" firstName: ").append(toIndentedString(firstName)).append("\n"); + sb.append(" lastName: ").append(toIndentedString(lastName)).append("\n"); + sb.append(" preferredName: ").append(toIndentedString(preferredName)).append("\n"); + sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); + sb.append(" timeZone: ").append(toIndentedString(timeZone)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("name"); + openapiFields.add("email"); + openapiFields.add("first_name"); + openapiFields.add("last_name"); + openapiFields.add("preferred_name"); + openapiFields.add("full_name"); + openapiFields.add("time_zone"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("name"); + openapiRequiredFields.add("email"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertEventUser + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertEventUser.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertEventUser is not found in the empty JSON string", AlertEventUser.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertEventUser.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertEventUser` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertEventUser.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if (!jsonObj.get("email").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("email").toString())); + } + if ((jsonObj.get("first_name") != null && !jsonObj.get("first_name").isJsonNull()) && !jsonObj.get("first_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `first_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("first_name").toString())); + } + if ((jsonObj.get("last_name") != null && !jsonObj.get("last_name").isJsonNull()) && !jsonObj.get("last_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `last_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("last_name").toString())); + } + if ((jsonObj.get("preferred_name") != null && !jsonObj.get("preferred_name").isJsonNull()) && !jsonObj.get("preferred_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `preferred_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("preferred_name").toString())); + } + if ((jsonObj.get("full_name") != null && !jsonObj.get("full_name").isJsonNull()) && !jsonObj.get("full_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `full_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("full_name").toString())); + } + if ((jsonObj.get("time_zone") != null && !jsonObj.get("time_zone").isJsonNull()) && !jsonObj.get("time_zone").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `time_zone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("time_zone").toString())); + } + if (!jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if (!jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertEventUser.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertEventUser' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertEventUser.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertEventUser value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertEventUser read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertEventUser given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertEventUser + * @throws IOException if the JSON string is invalid with respect to AlertEventUser + */ + public static AlertEventUser fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertEventUser.class); + } + + /** + * Convert an instance of AlertEventUser to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertField.java b/src/main/java/com/rootly/client/model/AlertField.java index 7481c361..cf51bb2a 100644 --- a/src/main/java/com/rootly/client/model/AlertField.java +++ b/src/main/java/com/rootly/client/model/AlertField.java @@ -48,7 +48,7 @@ /** * AlertField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertField { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) @@ -78,9 +78,11 @@ public class AlertField { public AlertField() { } - public AlertField slug(@jakarta.annotation.Nullable String slug) { + public AlertField( + String slug + ) { + this(); this.slug = slug; - return this; } /** @@ -92,9 +94,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public AlertField name(@jakarta.annotation.Nonnull String name) { diff --git a/src/main/java/com/rootly/client/model/AlertFieldList.java b/src/main/java/com/rootly/client/model/AlertFieldList.java index 68e18ed0..c8a7fc34 100644 --- a/src/main/java/com/rootly/client/model/AlertFieldList.java +++ b/src/main/java/com/rootly/client/model/AlertFieldList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertFieldListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AlertFieldList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertFieldList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AlertFieldList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertFieldList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AlertFieldList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertFieldList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AlertFieldList alertFieldList = (AlertFieldList) o; return Objects.equals(this.data, alertFieldList.data) && Objects.equals(this.links, alertFieldList.links) && - Objects.equals(this.meta, alertFieldList.meta); + Objects.equals(this.meta, alertFieldList.meta) && + Objects.equals(this.included, alertFieldList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertFieldListDataInner.java b/src/main/java/com/rootly/client/model/AlertFieldListDataInner.java index 13b5c1cc..d8c90c88 100644 --- a/src/main/java/com/rootly/client/model/AlertFieldListDataInner.java +++ b/src/main/java/com/rootly/client/model/AlertFieldListDataInner.java @@ -49,7 +49,7 @@ /** * AlertFieldListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertFieldListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertFieldResponse.java b/src/main/java/com/rootly/client/model/AlertFieldResponse.java index f33418da..8998f427 100644 --- a/src/main/java/com/rootly/client/model/AlertFieldResponse.java +++ b/src/main/java/com/rootly/client/model/AlertFieldResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AlertFieldResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertFieldResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AlertFieldResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertFieldResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AlertFieldResponseData data) { } + public AlertFieldResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertFieldResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AlertFieldResponse alertFieldResponse = (AlertFieldResponse) o; - return Objects.equals(this.data, alertFieldResponse.data); + return Objects.equals(this.data, alertFieldResponse.data) && + Objects.equals(this.included, alertFieldResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertFieldResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AlertFieldResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertFieldResponseData.java b/src/main/java/com/rootly/client/model/AlertFieldResponseData.java index 90c25fac..35a8ab61 100644 --- a/src/main/java/com/rootly/client/model/AlertFieldResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertFieldResponseData.java @@ -49,7 +49,7 @@ /** * AlertFieldResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertFieldResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertGroup.java b/src/main/java/com/rootly/client/model/AlertGroup.java index 8103c3c4..6ec665a7 100644 --- a/src/main/java/com/rootly/client/model/AlertGroup.java +++ b/src/main/java/com/rootly/client/model/AlertGroup.java @@ -53,7 +53,7 @@ /** * AlertGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertGroup { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -67,7 +67,7 @@ public class AlertGroup { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_CONDITION_TYPE = "condition_type"; @@ -126,6 +126,13 @@ public class AlertGroup { public AlertGroup() { } + public AlertGroup( + String slug + ) { + this(); + this.slug = slug; + } + public AlertGroup name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -164,23 +171,15 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } - public AlertGroup slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the alert group * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public AlertGroup conditionType(@jakarta.annotation.Nonnull String conditionType) { @@ -496,7 +495,6 @@ private String toIndentedString(Object o) { openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); openapiRequiredFields.add("description"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("condition_type"); openapiRequiredFields.add("time_window"); openapiRequiredFields.add("created_at"); @@ -538,7 +536,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if (!jsonObj.get("condition_type").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/AlertGroupConditionsInner.java b/src/main/java/com/rootly/client/model/AlertGroupConditionsInner.java index b1209cbc..38d78140 100644 --- a/src/main/java/com/rootly/client/model/AlertGroupConditionsInner.java +++ b/src/main/java/com/rootly/client/model/AlertGroupConditionsInner.java @@ -52,7 +52,7 @@ /** * AlertGroupConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertGroupConditionsInner { /** * The type of the property field diff --git a/src/main/java/com/rootly/client/model/AlertGroupConditionsInnerValuesInner.java b/src/main/java/com/rootly/client/model/AlertGroupConditionsInnerValuesInner.java index beeabdfc..e2361bc2 100644 --- a/src/main/java/com/rootly/client/model/AlertGroupConditionsInnerValuesInner.java +++ b/src/main/java/com/rootly/client/model/AlertGroupConditionsInnerValuesInner.java @@ -48,7 +48,7 @@ /** * AlertGroupConditionsInnerValuesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertGroupConditionsInnerValuesInner { public static final String SERIALIZED_NAME_RECORD_ID = "record_id"; @SerializedName(SERIALIZED_NAME_RECORD_ID) diff --git a/src/main/java/com/rootly/client/model/AlertGroupList.java b/src/main/java/com/rootly/client/model/AlertGroupList.java index 8de6c9c4..a354e78e 100644 --- a/src/main/java/com/rootly/client/model/AlertGroupList.java +++ b/src/main/java/com/rootly/client/model/AlertGroupList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -51,13 +52,18 @@ /** * AlertGroupList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertGroupList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private List data = new ArrayList<>(); + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertGroupList() { } @@ -88,6 +94,33 @@ public void setData(@jakarta.annotation.Nonnull List dat } + public AlertGroupList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertGroupList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -98,12 +131,13 @@ public boolean equals(Object o) { return false; } AlertGroupList alertGroupList = (AlertGroupList) o; - return Objects.equals(this.data, alertGroupList.data); + return Objects.equals(this.data, alertGroupList.data) && + Objects.equals(this.included, alertGroupList.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -111,6 +145,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertGroupList {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -134,6 +169,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -178,6 +214,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti for (int i = 0; i < jsonArraydata.size(); i++) { AlertGroupResponseData.validateJsonElement(jsonArraydata.get(i)); }; + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertGroupResponse.java b/src/main/java/com/rootly/client/model/AlertGroupResponse.java index 773f0fc7..cde99cc3 100644 --- a/src/main/java/com/rootly/client/model/AlertGroupResponse.java +++ b/src/main/java/com/rootly/client/model/AlertGroupResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AlertGroupResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertGroupResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AlertGroupResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertGroupResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AlertGroupResponseData data) { } + public AlertGroupResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertGroupResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AlertGroupResponse alertGroupResponse = (AlertGroupResponse) o; - return Objects.equals(this.data, alertGroupResponse.data); + return Objects.equals(this.data, alertGroupResponse.data) && + Objects.equals(this.included, alertGroupResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertGroupResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AlertGroupResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertGroupResponseData.java b/src/main/java/com/rootly/client/model/AlertGroupResponseData.java index 6c084885..87f5f824 100644 --- a/src/main/java/com/rootly/client/model/AlertGroupResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertGroupResponseData.java @@ -49,7 +49,7 @@ /** * AlertGroupResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertGroupResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertList.java b/src/main/java/com/rootly/client/model/AlertList.java index f0ce116f..b14466fa 100644 --- a/src/main/java/com/rootly/client/model/AlertList.java +++ b/src/main/java/com/rootly/client/model/AlertList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AlertList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AlertList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AlertList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AlertList alertList = (AlertList) o; return Objects.equals(this.data, alertList.data) && Objects.equals(this.links, alertList.links) && - Objects.equals(this.meta, alertList.meta); + Objects.equals(this.meta, alertList.meta) && + Objects.equals(this.included, alertList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertResponse.java b/src/main/java/com/rootly/client/model/AlertResponse.java index cc399d4a..e51069eb 100644 --- a/src/main/java/com/rootly/client/model/AlertResponse.java +++ b/src/main/java/com/rootly/client/model/AlertResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AlertResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AlertResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AlertResponseData data) { } + public AlertResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AlertResponse alertResponse = (AlertResponse) o; - return Objects.equals(this.data, alertResponse.data); + return Objects.equals(this.data, alertResponse.data) && + Objects.equals(this.included, alertResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AlertResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertResponseData.java b/src/main/java/com/rootly/client/model/AlertResponseData.java index 97650b27..83dff916 100644 --- a/src/main/java/com/rootly/client/model/AlertResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertResponseData.java @@ -49,151 +49,17 @@ /** * AlertResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @jakarta.annotation.Nonnull private String id; - /** - * The source of the alert - */ - @JsonAdapter(SourceEnum.Adapter.class) - public enum SourceEnum { - ROOTLY("rootly"), - - MANUAL("manual"), - - API("api"), - - HEARTBEAT("heartbeat"), - - WEB("web"), - - SLACK("slack"), - - EMAIL("email"), - - WORKFLOW("workflow"), - - LIVE_CALL_ROUTING("live_call_routing"), - - MOBILE("mobile"), - - PAGERDUTY("pagerduty"), - - OPSGENIE("opsgenie"), - - VICTOROPS("victorops"), - - PAGERTREE("pagertree"), - - DATADOG("datadog"), - - NOBL9("nobl9"), - - ZENDESK("zendesk"), - - ASANA("asana"), - - CLICKUP("clickup"), - - SENTRY("sentry"), - - ROLLBAR("rollbar"), - - JIRA("jira"), - - HONEYCOMB("honeycomb"), - - SERVICE_NOW("service_now"), - - LINEAR("linear"), - - GRAFANA("grafana"), - - ALERTMANAGER("alertmanager"), - - GOOGLE_CLOUD("google_cloud"), - - GENERIC_WEBHOOK("generic_webhook"), - - CLOUD_WATCH("cloud_watch"), - - AZURE("azure"), - - SPLUNK("splunk"), - - CHRONOSPHERE("chronosphere"), - - APP_OPTICS("app_optics"), - - BUG_SNAG("bug_snag"), - - MONTE_CARLO("monte_carlo"), - - NAGIOS("nagios"), - - PRTG("prtg"), - - CATCHPOINT("catchpoint"), - - APP_DYNAMICS("app_dynamics"), - - CHECKLY("checkly"), - - NEW_RELIC("new_relic"), - - GITLAB("gitlab"); - - private String value; - - SourceEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static SourceEnum fromValue(String value) { - for (SourceEnum b : SourceEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final SourceEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public SourceEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return SourceEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - SourceEnum.fromValue(value); - } - } - public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) @jakarta.annotation.Nullable - private SourceEnum source; + private String source; /** * Gets or Sets type @@ -277,7 +143,7 @@ public void setId(@jakarta.annotation.Nonnull String id) { } - public AlertResponseData source(@jakarta.annotation.Nullable SourceEnum source) { + public AlertResponseData source(@jakarta.annotation.Nullable String source) { this.source = source; return this; } @@ -287,11 +153,11 @@ public AlertResponseData source(@jakarta.annotation.Nullable SourceEnum source) * @return source */ @jakarta.annotation.Nullable - public SourceEnum getSource() { + public String getSource() { return source; } - public void setSource(@jakarta.annotation.Nullable SourceEnum source) { + public void setSource(@jakarta.annotation.Nullable String source) { this.source = source; } @@ -431,10 +297,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("source") != null && !jsonObj.get("source").isJsonNull()) && !jsonObj.get("source").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source").toString())); } - // validate the optional field `source` - if (jsonObj.get("source") != null && !jsonObj.get("source").isJsonNull()) { - SourceEnum.validateJsonElement(jsonObj.get("source")); - } if (!jsonObj.get("type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); } diff --git a/src/main/java/com/rootly/client/model/AlertRetriggerRule.java b/src/main/java/com/rootly/client/model/AlertRetriggerRule.java new file mode 100644 index 00000000..cdeb1d53 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertRetriggerRule.java @@ -0,0 +1,465 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertRetriggerRuleConditionsInner; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertRetriggerRule + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertRetriggerRule { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + /** + * Whether all or any of the conditions must match + */ + @JsonAdapter(MatchModeEnum.Adapter.class) + public enum MatchModeEnum { + MATCH_ALL_RULES("match-all-rules"), + + MATCH_ANY_RULE("match-any-rule"); + + private String value; + + MatchModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MatchModeEnum fromValue(String value) { + for (MatchModeEnum b : MatchModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MatchModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MatchModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MatchModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MatchModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MATCH_MODE = "match_mode"; + @SerializedName(SERIALIZED_NAME_MATCH_MODE) + @jakarta.annotation.Nullable + private MatchModeEnum matchMode; + + public static final String SERIALIZED_NAME_TIMEOUT_MINUTES = "timeout_minutes"; + @SerializedName(SERIALIZED_NAME_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private Integer timeoutMinutes; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @jakarta.annotation.Nullable + private List conditions = new ArrayList<>(); + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime updatedAt; + + public AlertRetriggerRule() { + } + + public AlertRetriggerRule name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * A human-readable name for the rule + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public AlertRetriggerRule matchMode(@jakarta.annotation.Nullable MatchModeEnum matchMode) { + this.matchMode = matchMode; + return this; + } + + /** + * Whether all or any of the conditions must match + * @return matchMode + */ + @jakarta.annotation.Nullable + public MatchModeEnum getMatchMode() { + return matchMode; + } + + public void setMatchMode(@jakarta.annotation.Nullable MatchModeEnum matchMode) { + this.matchMode = matchMode; + } + + + public AlertRetriggerRule timeoutMinutes(@jakarta.annotation.Nullable Integer timeoutMinutes) { + this.timeoutMinutes = timeoutMinutes; + return this; + } + + /** + * Minutes after acknowledgment to re-trigger. Null means never re-trigger. + * @return timeoutMinutes + */ + @jakarta.annotation.Nullable + public Integer getTimeoutMinutes() { + return timeoutMinutes; + } + + public void setTimeoutMinutes(@jakarta.annotation.Nullable Integer timeoutMinutes) { + this.timeoutMinutes = timeoutMinutes; + } + + + public AlertRetriggerRule position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * The position of the rule for ordering evaluation + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public AlertRetriggerRule conditions(@jakarta.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public AlertRetriggerRule addConditionsItem(AlertRetriggerRuleConditionsInner conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * The conditions for the rule + * @return conditions + */ + @jakarta.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@jakarta.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + public AlertRetriggerRule createdAt(@jakarta.annotation.Nullable OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Get createdAt + * @return createdAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nullable OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + + public AlertRetriggerRule updatedAt(@jakarta.annotation.Nullable OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Get updatedAt + * @return updatedAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nullable OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertRetriggerRule alertRetriggerRule = (AlertRetriggerRule) o; + return Objects.equals(this.name, alertRetriggerRule.name) && + Objects.equals(this.matchMode, alertRetriggerRule.matchMode) && + Objects.equals(this.timeoutMinutes, alertRetriggerRule.timeoutMinutes) && + Objects.equals(this.position, alertRetriggerRule.position) && + Objects.equals(this.conditions, alertRetriggerRule.conditions) && + Objects.equals(this.createdAt, alertRetriggerRule.createdAt) && + Objects.equals(this.updatedAt, alertRetriggerRule.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, matchMode, timeoutMinutes, position, conditions, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertRetriggerRule {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" matchMode: ").append(toIndentedString(matchMode)).append("\n"); + sb.append(" timeoutMinutes: ").append(toIndentedString(timeoutMinutes)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("match_mode"); + openapiFields.add("timeout_minutes"); + openapiFields.add("position"); + openapiFields.add("conditions"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertRetriggerRule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertRetriggerRule.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertRetriggerRule is not found in the empty JSON string", AlertRetriggerRule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertRetriggerRule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertRetriggerRule` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) && !jsonObj.get("match_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `match_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("match_mode").toString())); + } + // validate the optional field `match_mode` + if (jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) { + MatchModeEnum.validateJsonElement(jsonObj.get("match_mode")); + } + if (jsonObj.get("conditions") != null && !jsonObj.get("conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `conditions` to be an array in the JSON string but got `%s`", jsonObj.get("conditions").toString())); + } + + // validate the optional field `conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + AlertRetriggerRuleConditionsInner.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertRetriggerRule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertRetriggerRule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertRetriggerRule.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertRetriggerRule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertRetriggerRule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertRetriggerRule given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertRetriggerRule + * @throws IOException if the JSON string is invalid with respect to AlertRetriggerRule + */ + public static AlertRetriggerRule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertRetriggerRule.class); + } + + /** + * Convert an instance of AlertRetriggerRule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertRetriggerRuleConditionsInner.java b/src/main/java/com/rootly/client/model/AlertRetriggerRuleConditionsInner.java new file mode 100644 index 00000000..a456caf1 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertRetriggerRuleConditionsInner.java @@ -0,0 +1,517 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertRetriggerRuleConditionsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertRetriggerRuleConditionsInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private UUID id; + + /** + * The operand the condition matches on. Native operands (urgency, source, service, group) match by record; alert_field/payload match a field value. + */ + @JsonAdapter(KindEnum.Adapter.class) + public enum KindEnum { + URGENCY("urgency"), + + SOURCE("source"), + + SERVICE("service"), + + GROUP("group"), + + ALERT_FIELD("alert_field"), + + PAYLOAD("payload"); + + private String value; + + KindEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static KindEnum fromValue(String value) { + for (KindEnum b : KindEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final KindEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public KindEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return KindEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + KindEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_KIND = "kind"; + @SerializedName(SERIALIZED_NAME_KIND) + @jakarta.annotation.Nonnull + private KindEnum kind; + + /** + * How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; alert_field/payload additionally support the string/regex operators. + */ + @JsonAdapter(OperatorEnum.Adapter.class) + public enum OperatorEnum { + IS_ONE_OF("is_one_of"), + + IS_NOT_ONE_OF("is_not_one_of"), + + IS_SET("is_set"), + + IS_NOT_SET("is_not_set"), + + CONTAINS("contains"), + + DOES_NOT_CONTAIN("does_not_contain"), + + STARTS_WITH("starts_with"), + + ENDS_WITH("ends_with"), + + MATCHES_REGEX("matches_regex"); + + private String value; + + OperatorEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static OperatorEnum fromValue(String value) { + for (OperatorEnum b : OperatorEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final OperatorEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public OperatorEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return OperatorEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + OperatorEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @jakarta.annotation.Nonnull + private OperatorEnum operator; + + public static final String SERIALIZED_NAME_RECORD_IDS = "record_ids"; + @SerializedName(SERIALIZED_NAME_RECORD_IDS) + @jakarta.annotation.Nullable + private List recordIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @jakarta.annotation.Nullable + private List values = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PROPERTY_FIELD_NAME = "property_field_name"; + @SerializedName(SERIALIZED_NAME_PROPERTY_FIELD_NAME) + @jakarta.annotation.Nullable + private String propertyFieldName; + + public AlertRetriggerRuleConditionsInner() { + } + + public AlertRetriggerRuleConditionsInner id(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + return this; + } + + /** + * Unique ID of the condition + * @return id + */ + @jakarta.annotation.Nonnull + public UUID getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull UUID id) { + this.id = id; + } + + + public AlertRetriggerRuleConditionsInner kind(@jakarta.annotation.Nonnull KindEnum kind) { + this.kind = kind; + return this; + } + + /** + * The operand the condition matches on. Native operands (urgency, source, service, group) match by record; alert_field/payload match a field value. + * @return kind + */ + @jakarta.annotation.Nonnull + public KindEnum getKind() { + return kind; + } + + public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { + this.kind = kind; + } + + + public AlertRetriggerRuleConditionsInner operator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + return this; + } + + /** + * How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; alert_field/payload additionally support the string/regex operators. + * @return operator + */ + @jakarta.annotation.Nonnull + public OperatorEnum getOperator() { + return operator; + } + + public void setOperator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + } + + + public AlertRetriggerRuleConditionsInner recordIds(@jakarta.annotation.Nullable List recordIds) { + this.recordIds = recordIds; + return this; + } + + public AlertRetriggerRuleConditionsInner addRecordIdsItem(UUID recordIdsItem) { + if (this.recordIds == null) { + this.recordIds = new ArrayList<>(); + } + this.recordIds.add(recordIdsItem); + return this; + } + + /** + * For urgency/service/group/source conditions: the IDs of the matched records (AlertUrgency, Service, Group, or Alerts::Source). + * @return recordIds + */ + @jakarta.annotation.Nullable + public List getRecordIds() { + return recordIds; + } + + public void setRecordIds(@jakarta.annotation.Nullable List recordIds) { + this.recordIds = recordIds; + } + + + public AlertRetriggerRuleConditionsInner values(@jakarta.annotation.Nullable List values) { + this.values = values; + return this; + } + + public AlertRetriggerRuleConditionsInner addValuesItem(String valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); + } + this.values.add(valuesItem); + return this; + } + + /** + * For source conditions: non-integration source aliases (e.g. manual, api). For alert_field/payload conditions: the values to compare against. + * @return values + */ + @jakarta.annotation.Nullable + public List getValues() { + return values; + } + + public void setValues(@jakarta.annotation.Nullable List values) { + this.values = values; + } + + + public AlertRetriggerRuleConditionsInner propertyFieldName(@jakarta.annotation.Nullable String propertyFieldName) { + this.propertyFieldName = propertyFieldName; + return this; + } + + /** + * For alert_field conditions: the alert field id. For payload conditions: a JSON Path (e.g. $.priority). + * @return propertyFieldName + */ + @jakarta.annotation.Nullable + public String getPropertyFieldName() { + return propertyFieldName; + } + + public void setPropertyFieldName(@jakarta.annotation.Nullable String propertyFieldName) { + this.propertyFieldName = propertyFieldName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertRetriggerRuleConditionsInner alertRetriggerRuleConditionsInner = (AlertRetriggerRuleConditionsInner) o; + return Objects.equals(this.id, alertRetriggerRuleConditionsInner.id) && + Objects.equals(this.kind, alertRetriggerRuleConditionsInner.kind) && + Objects.equals(this.operator, alertRetriggerRuleConditionsInner.operator) && + Objects.equals(this.recordIds, alertRetriggerRuleConditionsInner.recordIds) && + Objects.equals(this.values, alertRetriggerRuleConditionsInner.values) && + Objects.equals(this.propertyFieldName, alertRetriggerRuleConditionsInner.propertyFieldName); + } + + @Override + public int hashCode() { + return Objects.hash(id, kind, operator, recordIds, values, propertyFieldName); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertRetriggerRuleConditionsInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); + sb.append(" operator: ").append(toIndentedString(operator)).append("\n"); + sb.append(" recordIds: ").append(toIndentedString(recordIds)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); + sb.append(" propertyFieldName: ").append(toIndentedString(propertyFieldName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("kind"); + openapiFields.add("operator"); + openapiFields.add("record_ids"); + openapiFields.add("values"); + openapiFields.add("property_field_name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("kind"); + openapiRequiredFields.add("operator"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertRetriggerRuleConditionsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertRetriggerRuleConditionsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertRetriggerRuleConditionsInner is not found in the empty JSON string", AlertRetriggerRuleConditionsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertRetriggerRuleConditionsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertRetriggerRuleConditionsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertRetriggerRuleConditionsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("kind").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); + } + // validate the required field `kind` + KindEnum.validateJsonElement(jsonObj.get("kind")); + if (!jsonObj.get("operator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `operator` to be a primitive type in the JSON string but got `%s`", jsonObj.get("operator").toString())); + } + // validate the required field `operator` + OperatorEnum.validateJsonElement(jsonObj.get("operator")); + // ensure the optional json data is an array if present + if (jsonObj.get("record_ids") != null && !jsonObj.get("record_ids").isJsonNull() && !jsonObj.get("record_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `record_ids` to be an array in the JSON string but got `%s`", jsonObj.get("record_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("values") != null && !jsonObj.get("values").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `values` to be an array in the JSON string but got `%s`", jsonObj.get("values").toString())); + } + if ((jsonObj.get("property_field_name") != null && !jsonObj.get("property_field_name").isJsonNull()) && !jsonObj.get("property_field_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `property_field_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property_field_name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertRetriggerRuleConditionsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertRetriggerRuleConditionsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertRetriggerRuleConditionsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertRetriggerRuleConditionsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertRetriggerRuleConditionsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertRetriggerRuleConditionsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertRetriggerRuleConditionsInner + * @throws IOException if the JSON string is invalid with respect to AlertRetriggerRuleConditionsInner + */ + public static AlertRetriggerRuleConditionsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertRetriggerRuleConditionsInner.class); + } + + /** + * Convert an instance of AlertRetriggerRuleConditionsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertRetriggerRuleList.java b/src/main/java/com/rootly/client/model/AlertRetriggerRuleList.java new file mode 100644 index 00000000..944cb4a9 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertRetriggerRuleList.java @@ -0,0 +1,344 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertRetriggerRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertRetriggerRuleList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertRetriggerRuleList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nonnull + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nonnull + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public AlertRetriggerRuleList() { + } + + public AlertRetriggerRuleList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public AlertRetriggerRuleList addDataItem(AlertRetriggerRuleResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public AlertRetriggerRuleList links(@jakarta.annotation.Nonnull Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nonnull + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nonnull Links links) { + this.links = links; + } + + + public AlertRetriggerRuleList meta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nonnull + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + } + + + public AlertRetriggerRuleList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertRetriggerRuleList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertRetriggerRuleList alertRetriggerRuleList = (AlertRetriggerRuleList) o; + return Objects.equals(this.data, alertRetriggerRuleList.data) && + Objects.equals(this.links, alertRetriggerRuleList.links) && + Objects.equals(this.meta, alertRetriggerRuleList.meta) && + Objects.equals(this.included, alertRetriggerRuleList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertRetriggerRuleList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + openapiRequiredFields.add("links"); + openapiRequiredFields.add("meta"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertRetriggerRuleList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertRetriggerRuleList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertRetriggerRuleList is not found in the empty JSON string", AlertRetriggerRuleList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertRetriggerRuleList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertRetriggerRuleList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertRetriggerRuleList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + AlertRetriggerRuleResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the required field `links` + Links.validateJsonElement(jsonObj.get("links")); + // validate the required field `meta` + Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertRetriggerRuleList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertRetriggerRuleList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertRetriggerRuleList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertRetriggerRuleList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertRetriggerRuleList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertRetriggerRuleList given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertRetriggerRuleList + * @throws IOException if the JSON string is invalid with respect to AlertRetriggerRuleList + */ + public static AlertRetriggerRuleList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertRetriggerRuleList.class); + } + + /** + * Convert an instance of AlertRetriggerRuleList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertRetriggerRuleResponse.java b/src/main/java/com/rootly/client/model/AlertRetriggerRuleResponse.java new file mode 100644 index 00000000..7f8c6a76 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertRetriggerRuleResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertRetriggerRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertRetriggerRuleResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertRetriggerRuleResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private AlertRetriggerRuleResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public AlertRetriggerRuleResponse() { + } + + public AlertRetriggerRuleResponse data(@jakarta.annotation.Nonnull AlertRetriggerRuleResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public AlertRetriggerRuleResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull AlertRetriggerRuleResponseData data) { + this.data = data; + } + + + public AlertRetriggerRuleResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertRetriggerRuleResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertRetriggerRuleResponse alertRetriggerRuleResponse = (AlertRetriggerRuleResponse) o; + return Objects.equals(this.data, alertRetriggerRuleResponse.data) && + Objects.equals(this.included, alertRetriggerRuleResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertRetriggerRuleResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertRetriggerRuleResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertRetriggerRuleResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertRetriggerRuleResponse is not found in the empty JSON string", AlertRetriggerRuleResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertRetriggerRuleResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertRetriggerRuleResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertRetriggerRuleResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + AlertRetriggerRuleResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertRetriggerRuleResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertRetriggerRuleResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertRetriggerRuleResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertRetriggerRuleResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertRetriggerRuleResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertRetriggerRuleResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertRetriggerRuleResponse + * @throws IOException if the JSON string is invalid with respect to AlertRetriggerRuleResponse + */ + public static AlertRetriggerRuleResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertRetriggerRuleResponse.class); + } + + /** + * Convert an instance of AlertRetriggerRuleResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertRetriggerRuleResponseData.java b/src/main/java/com/rootly/client/model/AlertRetriggerRuleResponseData.java new file mode 100644 index 00000000..50ef825a --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertRetriggerRuleResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertRetriggerRule; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AlertRetriggerRuleResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertRetriggerRuleResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + ALERT_RETRIGGER_RULES("alert_retrigger_rules"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private AlertRetriggerRule attributes; + + public AlertRetriggerRuleResponseData() { + } + + public AlertRetriggerRuleResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the alert_retrigger_rule + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public AlertRetriggerRuleResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public AlertRetriggerRuleResponseData attributes(@jakarta.annotation.Nonnull AlertRetriggerRule attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public AlertRetriggerRule getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull AlertRetriggerRule attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertRetriggerRuleResponseData alertRetriggerRuleResponseData = (AlertRetriggerRuleResponseData) o; + return Objects.equals(this.id, alertRetriggerRuleResponseData.id) && + Objects.equals(this.type, alertRetriggerRuleResponseData.type) && + Objects.equals(this.attributes, alertRetriggerRuleResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertRetriggerRuleResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertRetriggerRuleResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertRetriggerRuleResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertRetriggerRuleResponseData is not found in the empty JSON string", AlertRetriggerRuleResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertRetriggerRuleResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertRetriggerRuleResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AlertRetriggerRuleResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + AlertRetriggerRule.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertRetriggerRuleResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertRetriggerRuleResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertRetriggerRuleResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertRetriggerRuleResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertRetriggerRuleResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertRetriggerRuleResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertRetriggerRuleResponseData + * @throws IOException if the JSON string is invalid with respect to AlertRetriggerRuleResponseData + */ + public static AlertRetriggerRuleResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertRetriggerRuleResponseData.class); + } + + /** + * Convert an instance of AlertRetriggerRuleResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AlertRoute.java b/src/main/java/com/rootly/client/model/AlertRoute.java index 365358b3..b312f438 100644 --- a/src/main/java/com/rootly/client/model/AlertRoute.java +++ b/src/main/java/com/rootly/client/model/AlertRoute.java @@ -52,7 +52,7 @@ /** * AlertRoute */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoute { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/AlertRouteList.java b/src/main/java/com/rootly/client/model/AlertRouteList.java index ff18775d..a71be316 100644 --- a/src/main/java/com/rootly/client/model/AlertRouteList.java +++ b/src/main/java/com/rootly/client/model/AlertRouteList.java @@ -53,7 +53,7 @@ /** * AlertRouteList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRouteList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/AlertRouteResponse.java b/src/main/java/com/rootly/client/model/AlertRouteResponse.java index 343410f4..bd73bd68 100644 --- a/src/main/java/com/rootly/client/model/AlertRouteResponse.java +++ b/src/main/java/com/rootly/client/model/AlertRouteResponse.java @@ -49,7 +49,7 @@ /** * AlertRouteResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRouteResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/AlertRouteResponseData.java b/src/main/java/com/rootly/client/model/AlertRouteResponseData.java index e05b7ded..d09c77ed 100644 --- a/src/main/java/com/rootly/client/model/AlertRouteResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertRouteResponseData.java @@ -49,7 +49,7 @@ /** * AlertRouteResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRouteResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRule.java b/src/main/java/com/rootly/client/model/AlertRoutingRule.java index fea5fdb1..585620a1 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRule.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRule.java @@ -55,7 +55,7 @@ /** * AlertRoutingRule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRule { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleCondition.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleCondition.java index 3527840d..3232431a 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleCondition.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleCondition.java @@ -52,7 +52,7 @@ /** * A condition for alert routing rule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleCondition { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroup.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroup.java index d7f5f02d..bd03e4d3 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroup.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroup.java @@ -52,7 +52,7 @@ /** * A group of conditions for alert routing rule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleConditionGroup { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInner.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInner.java index b5e27a6a..912c4e28 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInner.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInner.java @@ -52,7 +52,7 @@ /** * AlertRoutingRuleConditionGroupsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleConditionGroupsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInnerConditionsInner.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInnerConditionsInner.java index f06c1892..855c9f42 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInnerConditionsInner.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionGroupsInnerConditionsInner.java @@ -52,7 +52,7 @@ /** * AlertRoutingRuleConditionGroupsInnerConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleConditionGroupsInnerConditionsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionsInner.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionsInner.java index 6f3809b6..0b326ecb 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionsInner.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleConditionsInner.java @@ -51,7 +51,7 @@ /** * AlertRoutingRuleConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleConditionsInner { /** * The type of the property field diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleDestination.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleDestination.java index a4706e0e..50ad7dd2 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleDestination.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleDestination.java @@ -49,10 +49,10 @@ /** * The destinations for the alert routing rule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleDestination { /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(TargetTypeEnum.Adapter.class) public enum TargetTypeEnum { @@ -60,6 +60,8 @@ public enum TargetTypeEnum { GROUP("Group"), + FUNCTIONALITY("Functionality"), + ESCALATION_POLICY("EscalationPolicy"); private String value; @@ -124,7 +126,7 @@ public AlertRoutingRuleDestination targetType(@jakarta.annotation.Nonnull Target } /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. * @return targetType */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleList.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleList.java index 20e5ec59..19fe1730 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleList.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertRoutingRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AlertRoutingRuleList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AlertRoutingRuleList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertRoutingRuleList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AlertRoutingRuleList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertRoutingRuleList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AlertRoutingRuleList alertRoutingRuleList = (AlertRoutingRuleList) o; return Objects.equals(this.data, alertRoutingRuleList.data) && Objects.equals(this.links, alertRoutingRuleList.links) && - Objects.equals(this.meta, alertRoutingRuleList.meta); + Objects.equals(this.meta, alertRoutingRuleList.meta) && + Objects.equals(this.included, alertRoutingRuleList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleResponse.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleResponse.java index 19ea84ed..ae01428f 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleResponse.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertRoutingRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AlertRoutingRuleResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AlertRoutingRuleResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertRoutingRuleResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AlertRoutingRuleResponseData dat } + public AlertRoutingRuleResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertRoutingRuleResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AlertRoutingRuleResponse alertRoutingRuleResponse = (AlertRoutingRuleResponse) o; - return Objects.equals(this.data, alertRoutingRuleResponse.data); + return Objects.equals(this.data, alertRoutingRuleResponse.data) && + Objects.equals(this.included, alertRoutingRuleResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertRoutingRuleResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AlertRoutingRuleResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleResponseData.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleResponseData.java index 1d1b3e2d..931fc463 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleResponseData.java @@ -49,7 +49,7 @@ /** * AlertRoutingRuleResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertRoutingRuleTarget.java b/src/main/java/com/rootly/client/model/AlertRoutingRuleTarget.java index fabd0345..027c6b8c 100644 --- a/src/main/java/com/rootly/client/model/AlertRoutingRuleTarget.java +++ b/src/main/java/com/rootly/client/model/AlertRoutingRuleTarget.java @@ -49,10 +49,10 @@ /** * The destination target for the alert routing rule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertRoutingRuleTarget { /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(TargetTypeEnum.Adapter.class) public enum TargetTypeEnum { @@ -60,6 +60,8 @@ public enum TargetTypeEnum { GROUP("Group"), + FUNCTIONALITY("Functionality"), + ESCALATION_POLICY("EscalationPolicy"); private String value; @@ -124,7 +126,7 @@ public AlertRoutingRuleTarget targetType(@jakarta.annotation.Nonnull TargetTypeE } /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. * @return targetType */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/AlertTriggerParams.java b/src/main/java/com/rootly/client/model/AlertTriggerParams.java index 397b25d8..513e55f2 100644 --- a/src/main/java/com/rootly/client/model/AlertTriggerParams.java +++ b/src/main/java/com/rootly/client/model/AlertTriggerParams.java @@ -20,10 +20,12 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertTriggerParamsAlertFieldConditionsInner; +import com.rootly.client.model.AlertTriggerParamsAlertPayloadConditions; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.UUID; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -52,7 +54,7 @@ /** * AlertTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertTriggerParams { /** * Gets or Sets triggerType @@ -468,6 +470,82 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List alertLabels = new ArrayList<>(); + /** + * Gets or Sets alertConditionUrgency + */ + @JsonAdapter(AlertConditionUrgencyEnum.Adapter.class) + public enum AlertConditionUrgencyEnum { + IS("IS"), + + IS_NOT("IS NOT"), + + ANY("ANY"), + + CONTAINS("CONTAINS"), + + CONTAINS_ALL("CONTAINS_ALL"), + + CONTAINS_NONE("CONTAINS_NONE"), + + NONE("NONE"), + + SET("SET"), + + UNSET("UNSET"); + + private String value; + + AlertConditionUrgencyEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AlertConditionUrgencyEnum fromValue(String value) { + for (AlertConditionUrgencyEnum b : AlertConditionUrgencyEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AlertConditionUrgencyEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AlertConditionUrgencyEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AlertConditionUrgencyEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AlertConditionUrgencyEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_ALERT_CONDITION_URGENCY = "alert_condition_urgency"; + @SerializedName(SERIALIZED_NAME_ALERT_CONDITION_URGENCY) + @jakarta.annotation.Nullable + private AlertConditionUrgencyEnum alertConditionUrgency = AlertConditionUrgencyEnum.ANY; + + public static final String SERIALIZED_NAME_ALERT_URGENCY_IDS = "alert_urgency_ids"; + @SerializedName(SERIALIZED_NAME_ALERT_URGENCY_IDS) + @jakarta.annotation.Nullable + private List alertUrgencyIds = new ArrayList<>(); + /** * Gets or Sets alertConditionPayload */ @@ -559,6 +637,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List alertFieldConditions = new ArrayList<>(); + public static final String SERIALIZED_NAME_ALERT_PAYLOAD_CONDITIONS = "alert_payload_conditions"; + @SerializedName(SERIALIZED_NAME_ALERT_PAYLOAD_CONDITIONS) + @jakarta.annotation.Nullable + private AlertTriggerParamsAlertPayloadConditions alertPayloadConditions; + public AlertTriggerParams() { } @@ -822,6 +905,52 @@ public void setAlertLabels(@jakarta.annotation.Nullable List alertLabels } + public AlertTriggerParams alertConditionUrgency(@jakarta.annotation.Nullable AlertConditionUrgencyEnum alertConditionUrgency) { + this.alertConditionUrgency = alertConditionUrgency; + return this; + } + + /** + * Get alertConditionUrgency + * @return alertConditionUrgency + */ + @jakarta.annotation.Nullable + public AlertConditionUrgencyEnum getAlertConditionUrgency() { + return alertConditionUrgency; + } + + public void setAlertConditionUrgency(@jakarta.annotation.Nullable AlertConditionUrgencyEnum alertConditionUrgency) { + this.alertConditionUrgency = alertConditionUrgency; + } + + + public AlertTriggerParams alertUrgencyIds(@jakarta.annotation.Nullable List alertUrgencyIds) { + this.alertUrgencyIds = alertUrgencyIds; + return this; + } + + public AlertTriggerParams addAlertUrgencyIdsItem(UUID alertUrgencyIdsItem) { + if (this.alertUrgencyIds == null) { + this.alertUrgencyIds = new ArrayList<>(); + } + this.alertUrgencyIds.add(alertUrgencyIdsItem); + return this; + } + + /** + * Get alertUrgencyIds + * @return alertUrgencyIds + */ + @jakarta.annotation.Nullable + public List getAlertUrgencyIds() { + return alertUrgencyIds; + } + + public void setAlertUrgencyIds(@jakarta.annotation.Nullable List alertUrgencyIds) { + this.alertUrgencyIds = alertUrgencyIds; + } + + public AlertTriggerParams alertConditionPayload(@jakarta.annotation.Nullable AlertConditionPayloadEnum alertConditionPayload) { this.alertConditionPayload = alertConditionPayload; return this; @@ -933,6 +1062,25 @@ public void setAlertFieldConditions(@jakarta.annotation.Nullable List boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -968,7 +1119,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(triggerType, triggers, alertCondition, alertConditionSource, alertConditionSourceUseRegexp, alertSources, alertConditionLabel, alertConditionLabelUseRegexp, alertConditionStatus, alertConditionStatusUseRegexp, alertStatuses, alertLabels, alertConditionPayload, alertConditionPayloadUseRegexp, alertPayload, alertQueryPayload, alertFieldConditions); + return Objects.hash(triggerType, triggers, alertCondition, alertConditionSource, alertConditionSourceUseRegexp, alertSources, alertConditionLabel, alertConditionLabelUseRegexp, alertConditionStatus, alertConditionStatusUseRegexp, alertStatuses, alertLabels, alertConditionUrgency, alertUrgencyIds, alertConditionPayload, alertConditionPayloadUseRegexp, alertPayload, alertQueryPayload, alertFieldConditions, alertPayloadConditions); } private static int hashCodeNullable(JsonNullable a) { @@ -994,11 +1145,14 @@ public String toString() { sb.append(" alertConditionStatusUseRegexp: ").append(toIndentedString(alertConditionStatusUseRegexp)).append("\n"); sb.append(" alertStatuses: ").append(toIndentedString(alertStatuses)).append("\n"); sb.append(" alertLabels: ").append(toIndentedString(alertLabels)).append("\n"); + sb.append(" alertConditionUrgency: ").append(toIndentedString(alertConditionUrgency)).append("\n"); + sb.append(" alertUrgencyIds: ").append(toIndentedString(alertUrgencyIds)).append("\n"); sb.append(" alertConditionPayload: ").append(toIndentedString(alertConditionPayload)).append("\n"); sb.append(" alertConditionPayloadUseRegexp: ").append(toIndentedString(alertConditionPayloadUseRegexp)).append("\n"); sb.append(" alertPayload: ").append(toIndentedString(alertPayload)).append("\n"); sb.append(" alertQueryPayload: ").append(toIndentedString(alertQueryPayload)).append("\n"); sb.append(" alertFieldConditions: ").append(toIndentedString(alertFieldConditions)).append("\n"); + sb.append(" alertPayloadConditions: ").append(toIndentedString(alertPayloadConditions)).append("\n"); sb.append("}"); return sb.toString(); } @@ -1033,11 +1187,14 @@ private String toIndentedString(Object o) { openapiFields.add("alert_condition_status_use_regexp"); openapiFields.add("alert_statuses"); openapiFields.add("alert_labels"); + openapiFields.add("alert_condition_urgency"); + openapiFields.add("alert_urgency_ids"); openapiFields.add("alert_condition_payload"); openapiFields.add("alert_condition_payload_use_regexp"); openapiFields.add("alert_payload"); openapiFields.add("alert_query_payload"); openapiFields.add("alert_field_conditions"); + openapiFields.add("alert_payload_conditions"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -1121,6 +1278,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("alert_labels") != null && !jsonObj.get("alert_labels").isJsonNull() && !jsonObj.get("alert_labels").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `alert_labels` to be an array in the JSON string but got `%s`", jsonObj.get("alert_labels").toString())); } + if ((jsonObj.get("alert_condition_urgency") != null && !jsonObj.get("alert_condition_urgency").isJsonNull()) && !jsonObj.get("alert_condition_urgency").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `alert_condition_urgency` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_condition_urgency").toString())); + } + // validate the optional field `alert_condition_urgency` + if (jsonObj.get("alert_condition_urgency") != null && !jsonObj.get("alert_condition_urgency").isJsonNull()) { + AlertConditionUrgencyEnum.validateJsonElement(jsonObj.get("alert_condition_urgency")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("alert_urgency_ids") != null && !jsonObj.get("alert_urgency_ids").isJsonNull() && !jsonObj.get("alert_urgency_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `alert_urgency_ids` to be an array in the JSON string but got `%s`", jsonObj.get("alert_urgency_ids").toString())); + } if ((jsonObj.get("alert_condition_payload") != null && !jsonObj.get("alert_condition_payload").isJsonNull()) && !jsonObj.get("alert_condition_payload").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `alert_condition_payload` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_condition_payload").toString())); } @@ -1149,6 +1317,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + // validate the optional field `alert_payload_conditions` + if (jsonObj.get("alert_payload_conditions") != null && !jsonObj.get("alert_payload_conditions").isJsonNull()) { + AlertTriggerParamsAlertPayloadConditions.validateJsonElement(jsonObj.get("alert_payload_conditions")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertFieldConditionsInner.java b/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertFieldConditionsInner.java index fc84a748..3a74f212 100644 --- a/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertFieldConditionsInner.java +++ b/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertFieldConditionsInner.java @@ -50,7 +50,7 @@ /** * AlertTriggerParamsAlertFieldConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertTriggerParamsAlertFieldConditionsInner { public static final String SERIALIZED_NAME_ALERT_FIELD_ID = "alert_field_id"; @SerializedName(SERIALIZED_NAME_ALERT_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditions.java b/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditions.java index 8f4a1be9..7c9797b2 100644 --- a/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditions.java +++ b/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditions.java @@ -51,7 +51,7 @@ /** * AlertTriggerParamsAlertPayloadConditions */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertTriggerParamsAlertPayloadConditions { /** * Gets or Sets logic @@ -109,18 +109,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_LOGIC = "logic"; @SerializedName(SERIALIZED_NAME_LOGIC) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private LogicEnum logic; public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; @SerializedName(SERIALIZED_NAME_CONDITIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List conditions = new ArrayList<>(); public AlertTriggerParamsAlertPayloadConditions() { } - public AlertTriggerParamsAlertPayloadConditions logic(@javax.annotation.Nullable LogicEnum logic) { + public AlertTriggerParamsAlertPayloadConditions logic(@jakarta.annotation.Nullable LogicEnum logic) { this.logic = logic; return this; } @@ -129,17 +129,17 @@ public AlertTriggerParamsAlertPayloadConditions logic(@javax.annotation.Nullable * Get logic * @return logic */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public LogicEnum getLogic() { return logic; } - public void setLogic(@javax.annotation.Nullable LogicEnum logic) { + public void setLogic(@jakarta.annotation.Nullable LogicEnum logic) { this.logic = logic; } - public AlertTriggerParamsAlertPayloadConditions conditions(@javax.annotation.Nullable List conditions) { + public AlertTriggerParamsAlertPayloadConditions conditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; return this; } @@ -156,12 +156,12 @@ public AlertTriggerParamsAlertPayloadConditions addConditionsItem(AlertTriggerPa * Get conditions * @return conditions */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getConditions() { return conditions; } - public void setConditions(@javax.annotation.Nullable List conditions) { + public void setConditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; } diff --git a/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditionsConditionsInner.java b/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditionsConditionsInner.java index 26a2e376..a1432398 100644 --- a/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditionsConditionsInner.java +++ b/src/main/java/com/rootly/client/model/AlertTriggerParamsAlertPayloadConditionsConditionsInner.java @@ -50,11 +50,11 @@ /** * AlertTriggerParamsAlertPayloadConditionsConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertTriggerParamsAlertPayloadConditionsConditionsInner { public static final String SERIALIZED_NAME_QUERY = "query"; @SerializedName(SERIALIZED_NAME_QUERY) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String query; /** @@ -125,23 +125,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_OPERATOR = "operator"; @SerializedName(SERIALIZED_NAME_OPERATOR) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OperatorEnum operator; public static final String SERIALIZED_NAME_VALUES = "values"; @SerializedName(SERIALIZED_NAME_VALUES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List values = new ArrayList<>(); public static final String SERIALIZED_NAME_USE_REGEXP = "use_regexp"; @SerializedName(SERIALIZED_NAME_USE_REGEXP) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean useRegexp; public AlertTriggerParamsAlertPayloadConditionsConditionsInner() { } - public AlertTriggerParamsAlertPayloadConditionsConditionsInner query(@javax.annotation.Nonnull String query) { + public AlertTriggerParamsAlertPayloadConditionsConditionsInner query(@jakarta.annotation.Nonnull String query) { this.query = query; return this; } @@ -150,17 +150,17 @@ public AlertTriggerParamsAlertPayloadConditionsConditionsInner query(@javax.anno * Get query * @return query */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getQuery() { return query; } - public void setQuery(@javax.annotation.Nonnull String query) { + public void setQuery(@jakarta.annotation.Nonnull String query) { this.query = query; } - public AlertTriggerParamsAlertPayloadConditionsConditionsInner operator(@javax.annotation.Nonnull OperatorEnum operator) { + public AlertTriggerParamsAlertPayloadConditionsConditionsInner operator(@jakarta.annotation.Nonnull OperatorEnum operator) { this.operator = operator; return this; } @@ -169,17 +169,17 @@ public AlertTriggerParamsAlertPayloadConditionsConditionsInner operator(@javax.a * Get operator * @return operator */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OperatorEnum getOperator() { return operator; } - public void setOperator(@javax.annotation.Nonnull OperatorEnum operator) { + public void setOperator(@jakarta.annotation.Nonnull OperatorEnum operator) { this.operator = operator; } - public AlertTriggerParamsAlertPayloadConditionsConditionsInner values(@javax.annotation.Nullable List values) { + public AlertTriggerParamsAlertPayloadConditionsConditionsInner values(@jakarta.annotation.Nullable List values) { this.values = values; return this; } @@ -196,17 +196,17 @@ public AlertTriggerParamsAlertPayloadConditionsConditionsInner addValuesItem(Str * Get values * @return values */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getValues() { return values; } - public void setValues(@javax.annotation.Nullable List values) { + public void setValues(@jakarta.annotation.Nullable List values) { this.values = values; } - public AlertTriggerParamsAlertPayloadConditionsConditionsInner useRegexp(@javax.annotation.Nullable Boolean useRegexp) { + public AlertTriggerParamsAlertPayloadConditionsConditionsInner useRegexp(@jakarta.annotation.Nullable Boolean useRegexp) { this.useRegexp = useRegexp; return this; } @@ -215,12 +215,12 @@ public AlertTriggerParamsAlertPayloadConditionsConditionsInner useRegexp(@javax. * Get useRegexp * @return useRegexp */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getUseRegexp() { return useRegexp; } - public void setUseRegexp(@javax.annotation.Nullable Boolean useRegexp) { + public void setUseRegexp(@jakarta.annotation.Nullable Boolean useRegexp) { this.useRegexp = useRegexp; } diff --git a/src/main/java/com/rootly/client/model/AlertUrgency.java b/src/main/java/com/rootly/client/model/AlertUrgency.java index 244ced79..dafe74bb 100644 --- a/src/main/java/com/rootly/client/model/AlertUrgency.java +++ b/src/main/java/com/rootly/client/model/AlertUrgency.java @@ -21,6 +21,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -48,8 +49,13 @@ /** * AlertUrgency */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertUrgency { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -65,6 +71,31 @@ public class AlertUrgency { @jakarta.annotation.Nonnull private Integer position; + public static final String SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES = "retrigger_timeout_minutes"; + @SerializedName(SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private Integer retriggerTimeoutMinutes; + + public static final String SERIALIZED_NAME_URGENCY = "urgency"; + @SerializedName(SERIALIZED_NAME_URGENCY) + @jakarta.annotation.Nullable + private String urgency; + + public static final String SERIALIZED_NAME_COLOR = "color"; + @SerializedName(SERIALIZED_NAME_COLOR) + @jakarta.annotation.Nullable + private String color; + + public static final String SERIALIZED_NAME_TEAM_ID = "team_id"; + @SerializedName(SERIALIZED_NAME_TEAM_ID) + @jakarta.annotation.Nullable + private Integer teamId; + + public static final String SERIALIZED_NAME_DELETED_AT = "deleted_at"; + @SerializedName(SERIALIZED_NAME_DELETED_AT) + @jakarta.annotation.Nullable + private String deletedAt; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -78,6 +109,25 @@ public class AlertUrgency { public AlertUrgency() { } + public AlertUrgency id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the alert urgency + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + public AlertUrgency name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -135,6 +185,101 @@ public void setPosition(@jakarta.annotation.Nonnull Integer position) { } + public AlertUrgency retriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + return this; + } + + /** + * Re-trigger acknowledged alerts of this urgency after N minutes; null inherits the workspace default, negative = never. + * @return retriggerTimeoutMinutes + */ + @jakarta.annotation.Nullable + public Integer getRetriggerTimeoutMinutes() { + return retriggerTimeoutMinutes; + } + + public void setRetriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + } + + + public AlertUrgency urgency(@jakarta.annotation.Nullable String urgency) { + this.urgency = urgency; + return this; + } + + /** + * The urgency level + * @return urgency + */ + @jakarta.annotation.Nullable + public String getUrgency() { + return urgency; + } + + public void setUrgency(@jakarta.annotation.Nullable String urgency) { + this.urgency = urgency; + } + + + public AlertUrgency color(@jakarta.annotation.Nullable String color) { + this.color = color; + return this; + } + + /** + * The color associated with this urgency level + * @return color + */ + @jakarta.annotation.Nullable + public String getColor() { + return color; + } + + public void setColor(@jakarta.annotation.Nullable String color) { + this.color = color; + } + + + public AlertUrgency teamId(@jakarta.annotation.Nullable Integer teamId) { + this.teamId = teamId; + return this; + } + + /** + * The ID of the team this urgency belongs to + * @return teamId + */ + @jakarta.annotation.Nullable + public Integer getTeamId() { + return teamId; + } + + public void setTeamId(@jakarta.annotation.Nullable Integer teamId) { + this.teamId = teamId; + } + + + public AlertUrgency deletedAt(@jakarta.annotation.Nullable String deletedAt) { + this.deletedAt = deletedAt; + return this; + } + + /** + * Date of deletion + * @return deletedAt + */ + @jakarta.annotation.Nullable + public String getDeletedAt() { + return deletedAt; + } + + public void setDeletedAt(@jakarta.annotation.Nullable String deletedAt) { + this.deletedAt = deletedAt; + } + + public AlertUrgency createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -183,25 +328,48 @@ public boolean equals(Object o) { return false; } AlertUrgency alertUrgency = (AlertUrgency) o; - return Objects.equals(this.name, alertUrgency.name) && + return Objects.equals(this.id, alertUrgency.id) && + Objects.equals(this.name, alertUrgency.name) && Objects.equals(this.description, alertUrgency.description) && Objects.equals(this.position, alertUrgency.position) && + Objects.equals(this.retriggerTimeoutMinutes, alertUrgency.retriggerTimeoutMinutes) && + Objects.equals(this.urgency, alertUrgency.urgency) && + Objects.equals(this.color, alertUrgency.color) && + Objects.equals(this.teamId, alertUrgency.teamId) && + Objects.equals(this.deletedAt, alertUrgency.deletedAt) && Objects.equals(this.createdAt, alertUrgency.createdAt) && Objects.equals(this.updatedAt, alertUrgency.updatedAt); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(name, description, position, createdAt, updatedAt); + return Objects.hash(id, name, description, position, retriggerTimeoutMinutes, urgency, color, teamId, deletedAt, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertUrgency {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" retriggerTimeoutMinutes: ").append(toIndentedString(retriggerTimeoutMinutes)).append("\n"); + sb.append(" urgency: ").append(toIndentedString(urgency)).append("\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" teamId: ").append(toIndentedString(teamId)).append("\n"); + sb.append(" deletedAt: ").append(toIndentedString(deletedAt)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -226,9 +394,15 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("id"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); + openapiFields.add("retrigger_timeout_minutes"); + openapiFields.add("urgency"); + openapiFields.add("color"); + openapiFields.add("team_id"); + openapiFields.add("deleted_at"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -269,12 +443,24 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if (!jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("urgency") != null && !jsonObj.get("urgency").isJsonNull()) && !jsonObj.get("urgency").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `urgency` to be a primitive type in the JSON string but got `%s`", jsonObj.get("urgency").toString())); + } + if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); + } + if ((jsonObj.get("deleted_at") != null && !jsonObj.get("deleted_at").isJsonNull()) && !jsonObj.get("deleted_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `deleted_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("deleted_at").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/AlertUrgencyList.java b/src/main/java/com/rootly/client/model/AlertUrgencyList.java index 835565b4..bd8b94d5 100644 --- a/src/main/java/com/rootly/client/model/AlertUrgencyList.java +++ b/src/main/java/com/rootly/client/model/AlertUrgencyList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertUrgencyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AlertUrgencyList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertUrgencyList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AlertUrgencyList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertUrgencyList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AlertUrgencyList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertUrgencyList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AlertUrgencyList alertUrgencyList = (AlertUrgencyList) o; return Objects.equals(this.data, alertUrgencyList.data) && Objects.equals(this.links, alertUrgencyList.links) && - Objects.equals(this.meta, alertUrgencyList.meta); + Objects.equals(this.meta, alertUrgencyList.meta) && + Objects.equals(this.included, alertUrgencyList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertUrgencyResponse.java b/src/main/java/com/rootly/client/model/AlertUrgencyResponse.java index 2a853816..b1dcc0f7 100644 --- a/src/main/java/com/rootly/client/model/AlertUrgencyResponse.java +++ b/src/main/java/com/rootly/client/model/AlertUrgencyResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertUrgencyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AlertUrgencyResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertUrgencyResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AlertUrgencyResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertUrgencyResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AlertUrgencyResponseData data) { } + public AlertUrgencyResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertUrgencyResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AlertUrgencyResponse alertUrgencyResponse = (AlertUrgencyResponse) o; - return Objects.equals(this.data, alertUrgencyResponse.data); + return Objects.equals(this.data, alertUrgencyResponse.data) && + Objects.equals(this.included, alertUrgencyResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertUrgencyResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AlertUrgencyResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertUrgencyResponseData.java b/src/main/java/com/rootly/client/model/AlertUrgencyResponseData.java index 98431bff..985f77a7 100644 --- a/src/main/java/com/rootly/client/model/AlertUrgencyResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertUrgencyResponseData.java @@ -49,7 +49,7 @@ /** * AlertUrgencyResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertUrgencyResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertsSource.java b/src/main/java/com/rootly/client/model/AlertsSource.java index 683f7e70..cf97c8bd 100644 --- a/src/main/java/com/rootly/client/model/AlertsSource.java +++ b/src/main/java/com/rootly/client/model/AlertsSource.java @@ -19,11 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertsSourceSourceableAttributes; import com.rootly.client.model.NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner; import com.rootly.client.model.NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner; import com.rootly.client.model.NewAlertsSourceDataAttributesAlertTemplateAttributes; import com.rootly.client.model.NewAlertsSourceDataAttributesResolutionRuleAttributes; -import com.rootly.client.model.NewAlertsSourceDataAttributesSourceableAttributes; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -56,13 +56,18 @@ /** * AlertsSource */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertsSource { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull private String name; + public static final String SERIALIZED_NAME_ENABLED = "enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @jakarta.annotation.Nullable + private Boolean enabled; + /** * The alert source type */ @@ -74,8 +79,12 @@ public enum SourceTypeEnum { CATCHPOINT("catchpoint"), + CLOUDFLARE("cloudflare"), + DATADOG("datadog"), + DYNATRACE("dynatrace"), + ALERTMANAGER("alertmanager"), GOOGLE_CLOUD("google_cloud"), @@ -88,6 +97,8 @@ public enum SourceTypeEnum { CLOUD_WATCH("cloud_watch"), + AWS_SNS("aws_sns"), + CHECKLY("checkly"), AZURE("azure"), @@ -251,7 +262,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_SOURCEABLE_ATTRIBUTES = "sourceable_attributes"; @SerializedName(SERIALIZED_NAME_SOURCEABLE_ATTRIBUTES) @jakarta.annotation.Nullable - private NewAlertsSourceDataAttributesSourceableAttributes sourceableAttributes; + private AlertsSourceSourceableAttributes sourceableAttributes; public static final String SERIALIZED_NAME_RESOLUTION_RULE_ATTRIBUTES = "resolution_rule_attributes"; @SerializedName(SERIALIZED_NAME_RESOLUTION_RULE_ATTRIBUTES) @@ -369,6 +380,25 @@ public void setName(@jakarta.annotation.Nonnull String name) { } + public AlertsSource enabled(@jakarta.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the alert source is enabled. Disabled sources do not create alerts from incoming events. + * @return enabled + */ + @jakarta.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@jakarta.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + public AlertsSource sourceType(@jakarta.annotation.Nullable SourceTypeEnum sourceType) { this.sourceType = sourceType; return this; @@ -556,7 +586,7 @@ public void setAlertSourceUrgencyRulesAttributes(@jakarta.annotation.Nullable Li } - public AlertsSource sourceableAttributes(@jakarta.annotation.Nullable NewAlertsSourceDataAttributesSourceableAttributes sourceableAttributes) { + public AlertsSource sourceableAttributes(@jakarta.annotation.Nullable AlertsSourceSourceableAttributes sourceableAttributes) { this.sourceableAttributes = sourceableAttributes; return this; } @@ -566,11 +596,11 @@ public AlertsSource sourceableAttributes(@jakarta.annotation.Nullable NewAlertsS * @return sourceableAttributes */ @jakarta.annotation.Nullable - public NewAlertsSourceDataAttributesSourceableAttributes getSourceableAttributes() { + public AlertsSourceSourceableAttributes getSourceableAttributes() { return sourceableAttributes; } - public void setSourceableAttributes(@jakarta.annotation.Nullable NewAlertsSourceDataAttributesSourceableAttributes sourceableAttributes) { + public void setSourceableAttributes(@jakarta.annotation.Nullable AlertsSourceSourceableAttributes sourceableAttributes) { this.sourceableAttributes = sourceableAttributes; } @@ -746,6 +776,7 @@ public boolean equals(Object o) { } AlertsSource alertsSource = (AlertsSource) o; return Objects.equals(this.name, alertsSource.name) && + Objects.equals(this.enabled, alertsSource.enabled) && Objects.equals(this.sourceType, alertsSource.sourceType) && Objects.equals(this.alertUrgencyId, alertsSource.alertUrgencyId) && Objects.equals(this.deduplicateAlertsByKey, alertsSource.deduplicateAlertsByKey) && @@ -772,7 +803,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, sourceType, alertUrgencyId, deduplicateAlertsByKey, deduplicationKeyKind, deduplicationKeyPath, deduplicationKeyRegexp, ownerGroupIds, alertTemplateAttributes, alertSourceUrgencyRulesAttributes, sourceableAttributes, resolutionRuleAttributes, alertSourceFieldsAttributes, status, secret, email, webhookEndpoint, createdAt, updatedAt); + return Objects.hash(name, enabled, sourceType, alertUrgencyId, deduplicateAlertsByKey, deduplicationKeyKind, deduplicationKeyPath, deduplicationKeyRegexp, ownerGroupIds, alertTemplateAttributes, alertSourceUrgencyRulesAttributes, sourceableAttributes, resolutionRuleAttributes, alertSourceFieldsAttributes, status, secret, email, webhookEndpoint, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -787,6 +818,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertsSource {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" sourceType: ").append(toIndentedString(sourceType)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); sb.append(" deduplicateAlertsByKey: ").append(toIndentedString(deduplicateAlertsByKey)).append("\n"); @@ -828,6 +860,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("name"); + openapiFields.add("enabled"); openapiFields.add("source_type"); openapiFields.add("alert_urgency_id"); openapiFields.add("deduplicate_alerts_by_key"); @@ -934,7 +967,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the optional field `sourceable_attributes` if (jsonObj.get("sourceable_attributes") != null && !jsonObj.get("sourceable_attributes").isJsonNull()) { - NewAlertsSourceDataAttributesSourceableAttributes.validateJsonElement(jsonObj.get("sourceable_attributes")); + AlertsSourceSourceableAttributes.validateJsonElement(jsonObj.get("sourceable_attributes")); } // validate the optional field `resolution_rule_attributes` if (jsonObj.get("resolution_rule_attributes") != null && !jsonObj.get("resolution_rule_attributes").isJsonNull()) { diff --git a/src/main/java/com/rootly/client/model/AlertsSourceList.java b/src/main/java/com/rootly/client/model/AlertsSourceList.java index 02093b42..ef2742e4 100644 --- a/src/main/java/com/rootly/client/model/AlertsSourceList.java +++ b/src/main/java/com/rootly/client/model/AlertsSourceList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertsSourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AlertsSourceList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertsSourceList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AlertsSourceList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertsSourceList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AlertsSourceList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertsSourceList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AlertsSourceList alertsSourceList = (AlertsSourceList) o; return Objects.equals(this.data, alertsSourceList.data) && Objects.equals(this.links, alertsSourceList.links) && - Objects.equals(this.meta, alertsSourceList.meta); + Objects.equals(this.meta, alertsSourceList.meta) && + Objects.equals(this.included, alertsSourceList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertsSourceResponse.java b/src/main/java/com/rootly/client/model/AlertsSourceResponse.java index fb6a797c..1e0abda3 100644 --- a/src/main/java/com/rootly/client/model/AlertsSourceResponse.java +++ b/src/main/java/com/rootly/client/model/AlertsSourceResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertsSourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AlertsSourceResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertsSourceResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AlertsSourceResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AlertsSourceResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AlertsSourceResponseData data) { } + public AlertsSourceResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AlertsSourceResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AlertsSourceResponse alertsSourceResponse = (AlertsSourceResponse) o; - return Objects.equals(this.data, alertsSourceResponse.data); + return Objects.equals(this.data, alertsSourceResponse.data) && + Objects.equals(this.included, alertsSourceResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AlertsSourceResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AlertsSourceResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AlertsSourceResponseData.java b/src/main/java/com/rootly/client/model/AlertsSourceResponseData.java index 185049a3..a8fd383e 100644 --- a/src/main/java/com/rootly/client/model/AlertsSourceResponseData.java +++ b/src/main/java/com/rootly/client/model/AlertsSourceResponseData.java @@ -49,7 +49,7 @@ /** * AlertsSourceResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AlertsSourceResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AlertsSourceSourceableAttributes.java b/src/main/java/com/rootly/client/model/AlertsSourceSourceableAttributes.java new file mode 100644 index 00000000..fc9eade3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AlertsSourceSourceableAttributes.java @@ -0,0 +1,355 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * Provide additional attributes for the underlying source. `auto_resolve`, `resolve_state` and `field_mappings_attributes` apply to generic_webhook sources; `accept_threaded_emails` applies to email sources. + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AlertsSourceSourceableAttributes { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private UUID id; + + public static final String SERIALIZED_NAME_AUTO_RESOLVE = "auto_resolve"; + @SerializedName(SERIALIZED_NAME_AUTO_RESOLVE) + @jakarta.annotation.Nullable + private Boolean autoResolve; + + public static final String SERIALIZED_NAME_RESOLVE_STATE = "resolve_state"; + @SerializedName(SERIALIZED_NAME_RESOLVE_STATE) + @jakarta.annotation.Nullable + private String resolveState; + + public static final String SERIALIZED_NAME_ACCEPT_THREADED_EMAILS = "accept_threaded_emails"; + @SerializedName(SERIALIZED_NAME_ACCEPT_THREADED_EMAILS) + @jakarta.annotation.Nullable + private Boolean acceptThreadedEmails; + + public static final String SERIALIZED_NAME_FIELD_MAPPINGS_ATTRIBUTES = "field_mappings_attributes"; + @SerializedName(SERIALIZED_NAME_FIELD_MAPPINGS_ATTRIBUTES) + @jakarta.annotation.Nullable + private List fieldMappingsAttributes = new ArrayList<>(); + + public AlertsSourceSourceableAttributes() { + } + + public AlertsSourceSourceableAttributes id(@jakarta.annotation.Nullable UUID id) { + this.id = id; + return this; + } + + /** + * Unique ID of the underlying source. Read-only; it is resolved from the alert source itself on update. + * @return id + */ + @jakarta.annotation.Nullable + public UUID getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable UUID id) { + this.id = id; + } + + + public AlertsSourceSourceableAttributes autoResolve(@jakarta.annotation.Nullable Boolean autoResolve) { + this.autoResolve = autoResolve; + return this; + } + + /** + * Set this to true to auto-resolve alerts based on field_mappings_attributes conditions + * @return autoResolve + */ + @jakarta.annotation.Nullable + public Boolean getAutoResolve() { + return autoResolve; + } + + public void setAutoResolve(@jakarta.annotation.Nullable Boolean autoResolve) { + this.autoResolve = autoResolve; + } + + + public AlertsSourceSourceableAttributes resolveState(@jakarta.annotation.Nullable String resolveState) { + this.resolveState = resolveState; + return this; + } + + /** + * This value is matched with the value extracted from alerts payload using JSON path in field_mappings_attributes + * @return resolveState + */ + @jakarta.annotation.Nullable + public String getResolveState() { + return resolveState; + } + + public void setResolveState(@jakarta.annotation.Nullable String resolveState) { + this.resolveState = resolveState; + } + + + public AlertsSourceSourceableAttributes acceptThreadedEmails(@jakarta.annotation.Nullable Boolean acceptThreadedEmails) { + this.acceptThreadedEmails = acceptThreadedEmails; + return this; + } + + /** + * Set this to false to reject threaded emails + * @return acceptThreadedEmails + */ + @jakarta.annotation.Nullable + public Boolean getAcceptThreadedEmails() { + return acceptThreadedEmails; + } + + public void setAcceptThreadedEmails(@jakarta.annotation.Nullable Boolean acceptThreadedEmails) { + this.acceptThreadedEmails = acceptThreadedEmails; + } + + + public AlertsSourceSourceableAttributes fieldMappingsAttributes(@jakarta.annotation.Nullable List fieldMappingsAttributes) { + this.fieldMappingsAttributes = fieldMappingsAttributes; + return this; + } + + public AlertsSourceSourceableAttributes addFieldMappingsAttributesItem(NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner fieldMappingsAttributesItem) { + if (this.fieldMappingsAttributes == null) { + this.fieldMappingsAttributes = new ArrayList<>(); + } + this.fieldMappingsAttributes.add(fieldMappingsAttributesItem); + return this; + } + + /** + * Specify rules to auto resolve alerts + * @return fieldMappingsAttributes + */ + @jakarta.annotation.Nullable + public List getFieldMappingsAttributes() { + return fieldMappingsAttributes; + } + + public void setFieldMappingsAttributes(@jakarta.annotation.Nullable List fieldMappingsAttributes) { + this.fieldMappingsAttributes = fieldMappingsAttributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AlertsSourceSourceableAttributes alertsSourceSourceableAttributes = (AlertsSourceSourceableAttributes) o; + return Objects.equals(this.id, alertsSourceSourceableAttributes.id) && + Objects.equals(this.autoResolve, alertsSourceSourceableAttributes.autoResolve) && + Objects.equals(this.resolveState, alertsSourceSourceableAttributes.resolveState) && + Objects.equals(this.acceptThreadedEmails, alertsSourceSourceableAttributes.acceptThreadedEmails) && + Objects.equals(this.fieldMappingsAttributes, alertsSourceSourceableAttributes.fieldMappingsAttributes); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, autoResolve, resolveState, acceptThreadedEmails, fieldMappingsAttributes); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AlertsSourceSourceableAttributes {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" autoResolve: ").append(toIndentedString(autoResolve)).append("\n"); + sb.append(" resolveState: ").append(toIndentedString(resolveState)).append("\n"); + sb.append(" acceptThreadedEmails: ").append(toIndentedString(acceptThreadedEmails)).append("\n"); + sb.append(" fieldMappingsAttributes: ").append(toIndentedString(fieldMappingsAttributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("auto_resolve"); + openapiFields.add("resolve_state"); + openapiFields.add("accept_threaded_emails"); + openapiFields.add("field_mappings_attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AlertsSourceSourceableAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AlertsSourceSourceableAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AlertsSourceSourceableAttributes is not found in the empty JSON string", AlertsSourceSourceableAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AlertsSourceSourceableAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlertsSourceSourceableAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("resolve_state") != null && !jsonObj.get("resolve_state").isJsonNull()) && !jsonObj.get("resolve_state").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `resolve_state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("resolve_state").toString())); + } + if (jsonObj.get("field_mappings_attributes") != null && !jsonObj.get("field_mappings_attributes").isJsonNull()) { + JsonArray jsonArrayfieldMappingsAttributes = jsonObj.getAsJsonArray("field_mappings_attributes"); + if (jsonArrayfieldMappingsAttributes != null) { + // ensure the json data is an array + if (!jsonObj.get("field_mappings_attributes").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `field_mappings_attributes` to be an array in the JSON string but got `%s`", jsonObj.get("field_mappings_attributes").toString())); + } + + // validate the optional field `field_mappings_attributes` (array) + for (int i = 0; i < jsonArrayfieldMappingsAttributes.size(); i++) { + NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.validateJsonElement(jsonArrayfieldMappingsAttributes.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AlertsSourceSourceableAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AlertsSourceSourceableAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AlertsSourceSourceableAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AlertsSourceSourceableAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AlertsSourceSourceableAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AlertsSourceSourceableAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of AlertsSourceSourceableAttributes + * @throws IOException if the JSON string is invalid with respect to AlertsSourceSourceableAttributes + */ + public static AlertsSourceSourceableAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AlertsSourceSourceableAttributes.class); + } + + /** + * Convert an instance of AlertsSourceSourceableAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/ApiKey.java b/src/main/java/com/rootly/client/model/ApiKey.java index 1e903791..dda7939e 100644 --- a/src/main/java/com/rootly/client/model/ApiKey.java +++ b/src/main/java/com/rootly/client/model/ApiKey.java @@ -49,16 +49,16 @@ /** * ApiKey */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKey { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; /** @@ -117,48 +117,48 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_KIND = "kind"; @SerializedName(SERIALIZED_NAME_KIND) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private KindEnum kind; public static final String SERIALIZED_NAME_ROLE_ID = "role_id"; @SerializedName(SERIALIZED_NAME_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String roleId; public static final String SERIALIZED_NAME_ON_CALL_ROLE_ID = "on_call_role_id"; @SerializedName(SERIALIZED_NAME_ON_CALL_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String onCallRoleId; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String updatedAt; public static final String SERIALIZED_NAME_EXPIRES_AT = "expires_at"; @SerializedName(SERIALIZED_NAME_EXPIRES_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String expiresAt; public static final String SERIALIZED_NAME_LAST_USED_AT = "last_used_at"; @SerializedName(SERIALIZED_NAME_LAST_USED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String lastUsedAt; public static final String SERIALIZED_NAME_GRACE_PERIOD_ENDS_AT = "grace_period_ends_at"; @SerializedName(SERIALIZED_NAME_GRACE_PERIOD_ENDS_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String gracePeriodEndsAt; public ApiKey() { } - public ApiKey name(@javax.annotation.Nonnull String name) { + public ApiKey name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -167,17 +167,17 @@ public ApiKey name(@javax.annotation.Nonnull String name) { * The name of the API key * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public ApiKey description(@javax.annotation.Nullable String description) { + public ApiKey description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -186,17 +186,17 @@ public ApiKey description(@javax.annotation.Nullable String description) { * A description of the API key * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public ApiKey kind(@javax.annotation.Nonnull KindEnum kind) { + public ApiKey kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; } @@ -205,17 +205,17 @@ public ApiKey kind(@javax.annotation.Nonnull KindEnum kind) { * The kind of the API key * @return kind */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public KindEnum getKind() { return kind; } - public void setKind(@javax.annotation.Nonnull KindEnum kind) { + public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; } - public ApiKey roleId(@javax.annotation.Nullable String roleId) { + public ApiKey roleId(@jakarta.annotation.Nullable String roleId) { this.roleId = roleId; return this; } @@ -224,17 +224,17 @@ public ApiKey roleId(@javax.annotation.Nullable String roleId) { * The role ID * @return roleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getRoleId() { return roleId; } - public void setRoleId(@javax.annotation.Nullable String roleId) { + public void setRoleId(@jakarta.annotation.Nullable String roleId) { this.roleId = roleId; } - public ApiKey onCallRoleId(@javax.annotation.Nullable String onCallRoleId) { + public ApiKey onCallRoleId(@jakarta.annotation.Nullable String onCallRoleId) { this.onCallRoleId = onCallRoleId; return this; } @@ -243,17 +243,17 @@ public ApiKey onCallRoleId(@javax.annotation.Nullable String onCallRoleId) { * The on-call role ID * @return onCallRoleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getOnCallRoleId() { return onCallRoleId; } - public void setOnCallRoleId(@javax.annotation.Nullable String onCallRoleId) { + public void setOnCallRoleId(@jakarta.annotation.Nullable String onCallRoleId) { this.onCallRoleId = onCallRoleId; } - public ApiKey createdAt(@javax.annotation.Nonnull String createdAt) { + public ApiKey createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; } @@ -262,17 +262,17 @@ public ApiKey createdAt(@javax.annotation.Nonnull String createdAt) { * Date of creation * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; } - public ApiKey updatedAt(@javax.annotation.Nonnull String updatedAt) { + public ApiKey updatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -281,17 +281,17 @@ public ApiKey updatedAt(@javax.annotation.Nonnull String updatedAt) { * Date of last update * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; } - public ApiKey expiresAt(@javax.annotation.Nullable String expiresAt) { + public ApiKey expiresAt(@jakarta.annotation.Nullable String expiresAt) { this.expiresAt = expiresAt; return this; } @@ -300,17 +300,17 @@ public ApiKey expiresAt(@javax.annotation.Nullable String expiresAt) { * Expiration date * @return expiresAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getExpiresAt() { return expiresAt; } - public void setExpiresAt(@javax.annotation.Nullable String expiresAt) { + public void setExpiresAt(@jakarta.annotation.Nullable String expiresAt) { this.expiresAt = expiresAt; } - public ApiKey lastUsedAt(@javax.annotation.Nullable String lastUsedAt) { + public ApiKey lastUsedAt(@jakarta.annotation.Nullable String lastUsedAt) { this.lastUsedAt = lastUsedAt; return this; } @@ -319,17 +319,17 @@ public ApiKey lastUsedAt(@javax.annotation.Nullable String lastUsedAt) { * Date of last use * @return lastUsedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getLastUsedAt() { return lastUsedAt; } - public void setLastUsedAt(@javax.annotation.Nullable String lastUsedAt) { + public void setLastUsedAt(@jakarta.annotation.Nullable String lastUsedAt) { this.lastUsedAt = lastUsedAt; } - public ApiKey gracePeriodEndsAt(@javax.annotation.Nullable String gracePeriodEndsAt) { + public ApiKey gracePeriodEndsAt(@jakarta.annotation.Nullable String gracePeriodEndsAt) { this.gracePeriodEndsAt = gracePeriodEndsAt; return this; } @@ -338,12 +338,12 @@ public ApiKey gracePeriodEndsAt(@javax.annotation.Nullable String gracePeriodEnd * Grace period end date * @return gracePeriodEndsAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getGracePeriodEndsAt() { return gracePeriodEndsAt; } - public void setGracePeriodEndsAt(@javax.annotation.Nullable String gracePeriodEndsAt) { + public void setGracePeriodEndsAt(@jakarta.annotation.Nullable String gracePeriodEndsAt) { this.gracePeriodEndsAt = gracePeriodEndsAt; } diff --git a/src/main/java/com/rootly/client/model/ApiKeyList.java b/src/main/java/com/rootly/client/model/ApiKeyList.java index 89c81b02..6edf9351 100644 --- a/src/main/java/com/rootly/client/model/ApiKeyList.java +++ b/src/main/java/com/rootly/client/model/ApiKeyList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.ApiKeyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,27 +54,32 @@ /** * ApiKeyList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKeyList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List data = new ArrayList<>(); public static final String SERIALIZED_NAME_LINKS = "links"; @SerializedName(SERIALIZED_NAME_LINKS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Links links; public static final String SERIALIZED_NAME_META = "meta"; @SerializedName(SERIALIZED_NAME_META) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ApiKeyList() { } - public ApiKeyList data(@javax.annotation.Nonnull List data) { + public ApiKeyList data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } @@ -90,17 +96,17 @@ public ApiKeyList addDataItem(ApiKeyResponseData dataItem) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getData() { return data; } - public void setData(@javax.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public ApiKeyList links(@javax.annotation.Nonnull Links links) { + public ApiKeyList links(@jakarta.annotation.Nonnull Links links) { this.links = links; return this; } @@ -109,17 +115,17 @@ public ApiKeyList links(@javax.annotation.Nonnull Links links) { * Get links * @return links */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Links getLinks() { return links; } - public void setLinks(@javax.annotation.Nonnull Links links) { + public void setLinks(@jakarta.annotation.Nonnull Links links) { this.links = links; } - public ApiKeyList meta(@javax.annotation.Nonnull Meta meta) { + public ApiKeyList meta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; return this; } @@ -128,16 +134,43 @@ public ApiKeyList meta(@javax.annotation.Nonnull Meta meta) { * Get meta * @return meta */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Meta getMeta() { return meta; } - public void setMeta(@javax.annotation.Nonnull Meta meta) { + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; } + public ApiKeyList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ApiKeyList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { ApiKeyList apiKeyList = (ApiKeyList) o; return Objects.equals(this.data, apiKeyList.data) && Objects.equals(this.links, apiKeyList.links) && - Objects.equals(this.meta, apiKeyList.meta); + Objects.equals(this.meta, apiKeyList.meta) && + Objects.equals(this.included, apiKeyList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ApiKeyResponse.java b/src/main/java/com/rootly/client/model/ApiKeyResponse.java index 94830633..1505c2fc 100644 --- a/src/main/java/com/rootly/client/model/ApiKeyResponse.java +++ b/src/main/java/com/rootly/client/model/ApiKeyResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.ApiKeyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,17 +52,22 @@ /** * ApiKeyResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKeyResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ApiKeyResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ApiKeyResponse() { } - public ApiKeyResponse data(@javax.annotation.Nonnull ApiKeyResponseData data) { + public ApiKeyResponse data(@jakarta.annotation.Nonnull ApiKeyResponseData data) { this.data = data; return this; } @@ -68,16 +76,43 @@ public ApiKeyResponse data(@javax.annotation.Nonnull ApiKeyResponseData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ApiKeyResponseData getData() { return data; } - public void setData(@javax.annotation.Nonnull ApiKeyResponseData data) { + public void setData(@jakarta.annotation.Nonnull ApiKeyResponseData data) { this.data = data; } + public ApiKeyResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ApiKeyResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ApiKeyResponse apiKeyResponse = (ApiKeyResponse) o; - return Objects.equals(this.data, apiKeyResponse.data); + return Objects.equals(this.data, apiKeyResponse.data) && + Objects.equals(this.included, apiKeyResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ApiKeyResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` ApiKeyResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ApiKeyResponseData.java b/src/main/java/com/rootly/client/model/ApiKeyResponseData.java index b604a396..68c8a59e 100644 --- a/src/main/java/com/rootly/client/model/ApiKeyResponseData.java +++ b/src/main/java/com/rootly/client/model/ApiKeyResponseData.java @@ -49,11 +49,11 @@ /** * ApiKeyResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKeyResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ApiKey attributes; public ApiKeyResponseData() { } - public ApiKeyResponseData id(@javax.annotation.Nonnull String id) { + public ApiKeyResponseData id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public ApiKeyResponseData id(@javax.annotation.Nonnull String id) { * Unique ID of the API key * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public ApiKeyResponseData type(@javax.annotation.Nonnull TypeEnum type) { + public ApiKeyResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public ApiKeyResponseData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public ApiKeyResponseData attributes(@javax.annotation.Nonnull ApiKey attributes) { + public ApiKeyResponseData attributes(@jakarta.annotation.Nonnull ApiKey attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public ApiKeyResponseData attributes(@javax.annotation.Nonnull ApiKey attributes * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ApiKey getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull ApiKey attributes) { + public void setAttributes(@jakarta.annotation.Nonnull ApiKey attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponse.java b/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponse.java index 307a3c7a..7f8e73ce 100644 --- a/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponse.java +++ b/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.ApiKeyWithTokenResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,17 +52,22 @@ /** * ApiKeyWithTokenResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKeyWithTokenResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ApiKeyWithTokenResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ApiKeyWithTokenResponse() { } - public ApiKeyWithTokenResponse data(@javax.annotation.Nonnull ApiKeyWithTokenResponseData data) { + public ApiKeyWithTokenResponse data(@jakarta.annotation.Nonnull ApiKeyWithTokenResponseData data) { this.data = data; return this; } @@ -68,16 +76,43 @@ public ApiKeyWithTokenResponse data(@javax.annotation.Nonnull ApiKeyWithTokenRes * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ApiKeyWithTokenResponseData getData() { return data; } - public void setData(@javax.annotation.Nonnull ApiKeyWithTokenResponseData data) { + public void setData(@jakarta.annotation.Nonnull ApiKeyWithTokenResponseData data) { this.data = data; } + public ApiKeyWithTokenResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ApiKeyWithTokenResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ApiKeyWithTokenResponse apiKeyWithTokenResponse = (ApiKeyWithTokenResponse) o; - return Objects.equals(this.data, apiKeyWithTokenResponse.data); + return Objects.equals(this.data, apiKeyWithTokenResponse.data) && + Objects.equals(this.included, apiKeyWithTokenResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ApiKeyWithTokenResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` ApiKeyWithTokenResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseData.java b/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseData.java index ded1f272..c8aa4b6d 100644 --- a/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseData.java +++ b/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseData.java @@ -49,11 +49,11 @@ /** * ApiKeyWithTokenResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKeyWithTokenResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ApiKeyWithTokenResponseDataAttributes attributes; public ApiKeyWithTokenResponseData() { } - public ApiKeyWithTokenResponseData id(@javax.annotation.Nonnull String id) { + public ApiKeyWithTokenResponseData id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public ApiKeyWithTokenResponseData id(@javax.annotation.Nonnull String id) { * Unique ID of the API key * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public ApiKeyWithTokenResponseData type(@javax.annotation.Nonnull TypeEnum type) { + public ApiKeyWithTokenResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public ApiKeyWithTokenResponseData type(@javax.annotation.Nonnull TypeEnum type) * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public ApiKeyWithTokenResponseData attributes(@javax.annotation.Nonnull ApiKeyWithTokenResponseDataAttributes attributes) { + public ApiKeyWithTokenResponseData attributes(@jakarta.annotation.Nonnull ApiKeyWithTokenResponseDataAttributes attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public ApiKeyWithTokenResponseData attributes(@javax.annotation.Nonnull ApiKeyWi * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ApiKeyWithTokenResponseDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull ApiKeyWithTokenResponseDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull ApiKeyWithTokenResponseDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseDataAttributes.java b/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseDataAttributes.java index 7149583a..0ddfccf0 100644 --- a/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseDataAttributes.java +++ b/src/main/java/com/rootly/client/model/ApiKeyWithTokenResponseDataAttributes.java @@ -49,16 +49,16 @@ /** * ApiKeyWithTokenResponseDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ApiKeyWithTokenResponseDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; /** @@ -117,53 +117,53 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_KIND = "kind"; @SerializedName(SERIALIZED_NAME_KIND) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private KindEnum kind; public static final String SERIALIZED_NAME_ROLE_ID = "role_id"; @SerializedName(SERIALIZED_NAME_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String roleId; public static final String SERIALIZED_NAME_ON_CALL_ROLE_ID = "on_call_role_id"; @SerializedName(SERIALIZED_NAME_ON_CALL_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String onCallRoleId; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String updatedAt; public static final String SERIALIZED_NAME_EXPIRES_AT = "expires_at"; @SerializedName(SERIALIZED_NAME_EXPIRES_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String expiresAt; public static final String SERIALIZED_NAME_LAST_USED_AT = "last_used_at"; @SerializedName(SERIALIZED_NAME_LAST_USED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String lastUsedAt; public static final String SERIALIZED_NAME_GRACE_PERIOD_ENDS_AT = "grace_period_ends_at"; @SerializedName(SERIALIZED_NAME_GRACE_PERIOD_ENDS_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String gracePeriodEndsAt; public static final String SERIALIZED_NAME_TOKEN = "token"; @SerializedName(SERIALIZED_NAME_TOKEN) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String token; public ApiKeyWithTokenResponseDataAttributes() { } - public ApiKeyWithTokenResponseDataAttributes name(@javax.annotation.Nonnull String name) { + public ApiKeyWithTokenResponseDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -172,17 +172,17 @@ public ApiKeyWithTokenResponseDataAttributes name(@javax.annotation.Nonnull Stri * The name of the API key * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public ApiKeyWithTokenResponseDataAttributes description(@javax.annotation.Nullable String description) { + public ApiKeyWithTokenResponseDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -191,17 +191,17 @@ public ApiKeyWithTokenResponseDataAttributes description(@javax.annotation.Nulla * A description of the API key * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public ApiKeyWithTokenResponseDataAttributes kind(@javax.annotation.Nonnull KindEnum kind) { + public ApiKeyWithTokenResponseDataAttributes kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; } @@ -210,17 +210,17 @@ public ApiKeyWithTokenResponseDataAttributes kind(@javax.annotation.Nonnull Kind * The kind of the API key * @return kind */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public KindEnum getKind() { return kind; } - public void setKind(@javax.annotation.Nonnull KindEnum kind) { + public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; } - public ApiKeyWithTokenResponseDataAttributes roleId(@javax.annotation.Nullable String roleId) { + public ApiKeyWithTokenResponseDataAttributes roleId(@jakarta.annotation.Nullable String roleId) { this.roleId = roleId; return this; } @@ -229,17 +229,17 @@ public ApiKeyWithTokenResponseDataAttributes roleId(@javax.annotation.Nullable S * The role ID * @return roleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getRoleId() { return roleId; } - public void setRoleId(@javax.annotation.Nullable String roleId) { + public void setRoleId(@jakarta.annotation.Nullable String roleId) { this.roleId = roleId; } - public ApiKeyWithTokenResponseDataAttributes onCallRoleId(@javax.annotation.Nullable String onCallRoleId) { + public ApiKeyWithTokenResponseDataAttributes onCallRoleId(@jakarta.annotation.Nullable String onCallRoleId) { this.onCallRoleId = onCallRoleId; return this; } @@ -248,17 +248,17 @@ public ApiKeyWithTokenResponseDataAttributes onCallRoleId(@javax.annotation.Null * The on-call role ID * @return onCallRoleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getOnCallRoleId() { return onCallRoleId; } - public void setOnCallRoleId(@javax.annotation.Nullable String onCallRoleId) { + public void setOnCallRoleId(@jakarta.annotation.Nullable String onCallRoleId) { this.onCallRoleId = onCallRoleId; } - public ApiKeyWithTokenResponseDataAttributes createdAt(@javax.annotation.Nonnull String createdAt) { + public ApiKeyWithTokenResponseDataAttributes createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; } @@ -267,17 +267,17 @@ public ApiKeyWithTokenResponseDataAttributes createdAt(@javax.annotation.Nonnull * Date of creation * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; } - public ApiKeyWithTokenResponseDataAttributes updatedAt(@javax.annotation.Nonnull String updatedAt) { + public ApiKeyWithTokenResponseDataAttributes updatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -286,17 +286,17 @@ public ApiKeyWithTokenResponseDataAttributes updatedAt(@javax.annotation.Nonnull * Date of last update * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; } - public ApiKeyWithTokenResponseDataAttributes expiresAt(@javax.annotation.Nullable String expiresAt) { + public ApiKeyWithTokenResponseDataAttributes expiresAt(@jakarta.annotation.Nullable String expiresAt) { this.expiresAt = expiresAt; return this; } @@ -305,17 +305,17 @@ public ApiKeyWithTokenResponseDataAttributes expiresAt(@javax.annotation.Nullabl * Expiration date * @return expiresAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getExpiresAt() { return expiresAt; } - public void setExpiresAt(@javax.annotation.Nullable String expiresAt) { + public void setExpiresAt(@jakarta.annotation.Nullable String expiresAt) { this.expiresAt = expiresAt; } - public ApiKeyWithTokenResponseDataAttributes lastUsedAt(@javax.annotation.Nullable String lastUsedAt) { + public ApiKeyWithTokenResponseDataAttributes lastUsedAt(@jakarta.annotation.Nullable String lastUsedAt) { this.lastUsedAt = lastUsedAt; return this; } @@ -324,17 +324,17 @@ public ApiKeyWithTokenResponseDataAttributes lastUsedAt(@javax.annotation.Nullab * Date of last use * @return lastUsedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getLastUsedAt() { return lastUsedAt; } - public void setLastUsedAt(@javax.annotation.Nullable String lastUsedAt) { + public void setLastUsedAt(@jakarta.annotation.Nullable String lastUsedAt) { this.lastUsedAt = lastUsedAt; } - public ApiKeyWithTokenResponseDataAttributes gracePeriodEndsAt(@javax.annotation.Nullable String gracePeriodEndsAt) { + public ApiKeyWithTokenResponseDataAttributes gracePeriodEndsAt(@jakarta.annotation.Nullable String gracePeriodEndsAt) { this.gracePeriodEndsAt = gracePeriodEndsAt; return this; } @@ -343,17 +343,17 @@ public ApiKeyWithTokenResponseDataAttributes gracePeriodEndsAt(@javax.annotation * Grace period end date * @return gracePeriodEndsAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getGracePeriodEndsAt() { return gracePeriodEndsAt; } - public void setGracePeriodEndsAt(@javax.annotation.Nullable String gracePeriodEndsAt) { + public void setGracePeriodEndsAt(@jakarta.annotation.Nullable String gracePeriodEndsAt) { this.gracePeriodEndsAt = gracePeriodEndsAt; } - public ApiKeyWithTokenResponseDataAttributes token(@javax.annotation.Nonnull String token) { + public ApiKeyWithTokenResponseDataAttributes token(@jakarta.annotation.Nonnull String token) { this.token = token; return this; } @@ -362,12 +362,12 @@ public ApiKeyWithTokenResponseDataAttributes token(@javax.annotation.Nonnull Str * The API key token (only shown once) * @return token */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getToken() { return token; } - public void setToken(@javax.annotation.Nonnull String token) { + public void setToken(@jakarta.annotation.Nonnull String token) { this.token = token; } diff --git a/src/main/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParams.java b/src/main/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParams.java new file mode 100644 index 00000000..80a73f13 --- /dev/null +++ b/src/main/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParams.java @@ -0,0 +1,316 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * ArchiveGoogleChatSpacesTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class ArchiveGoogleChatSpacesTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + ARCHIVE_GOOGLE_CHAT_SPACES("archive_google_chat_spaces"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_SPACES = "spaces"; + @SerializedName(SERIALIZED_NAME_SPACES) + @jakarta.annotation.Nonnull + private List spaces = new ArrayList<>(); + + public ArchiveGoogleChatSpacesTaskParams() { + } + + public ArchiveGoogleChatSpacesTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public ArchiveGoogleChatSpacesTaskParams spaces(@jakarta.annotation.Nonnull List spaces) { + this.spaces = spaces; + return this; + } + + public ArchiveGoogleChatSpacesTaskParams addSpacesItem(AddActionItemTaskParamsPostToSlackChannelsInner spacesItem) { + if (this.spaces == null) { + this.spaces = new ArrayList<>(); + } + this.spaces.add(spacesItem); + return this; + } + + /** + * Get spaces + * @return spaces + */ + @jakarta.annotation.Nonnull + public List getSpaces() { + return spaces; + } + + public void setSpaces(@jakarta.annotation.Nonnull List spaces) { + this.spaces = spaces; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ArchiveGoogleChatSpacesTaskParams archiveGoogleChatSpacesTaskParams = (ArchiveGoogleChatSpacesTaskParams) o; + return Objects.equals(this.taskType, archiveGoogleChatSpacesTaskParams.taskType) && + Objects.equals(this.spaces, archiveGoogleChatSpacesTaskParams.spaces); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, spaces); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ArchiveGoogleChatSpacesTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" spaces: ").append(toIndentedString(spaces)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("spaces"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("spaces"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ArchiveGoogleChatSpacesTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ArchiveGoogleChatSpacesTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ArchiveGoogleChatSpacesTaskParams is not found in the empty JSON string", ArchiveGoogleChatSpacesTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ArchiveGoogleChatSpacesTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ArchiveGoogleChatSpacesTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ArchiveGoogleChatSpacesTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // ensure the json data is an array + if (!jsonObj.get("spaces").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `spaces` to be an array in the JSON string but got `%s`", jsonObj.get("spaces").toString())); + } + + JsonArray jsonArrayspaces = jsonObj.getAsJsonArray("spaces"); + // validate the required field `spaces` (array) + for (int i = 0; i < jsonArrayspaces.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArrayspaces.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ArchiveGoogleChatSpacesTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ArchiveGoogleChatSpacesTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ArchiveGoogleChatSpacesTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ArchiveGoogleChatSpacesTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ArchiveGoogleChatSpacesTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ArchiveGoogleChatSpacesTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of ArchiveGoogleChatSpacesTaskParams + * @throws IOException if the JSON string is invalid with respect to ArchiveGoogleChatSpacesTaskParams + */ + public static ArchiveGoogleChatSpacesTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ArchiveGoogleChatSpacesTaskParams.class); + } + + /** + * Convert an instance of ArchiveGoogleChatSpacesTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/ArchiveMicrosoftTeamsChannelsTaskParams.java b/src/main/java/com/rootly/client/model/ArchiveMicrosoftTeamsChannelsTaskParams.java index 060b536b..9778dbb7 100644 --- a/src/main/java/com/rootly/client/model/ArchiveMicrosoftTeamsChannelsTaskParams.java +++ b/src/main/java/com/rootly/client/model/ArchiveMicrosoftTeamsChannelsTaskParams.java @@ -51,7 +51,7 @@ /** * ArchiveMicrosoftTeamsChannelsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ArchiveMicrosoftTeamsChannelsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/ArchiveSlackChannelsTaskParams.java b/src/main/java/com/rootly/client/model/ArchiveSlackChannelsTaskParams.java index 257faf53..b31bbe51 100644 --- a/src/main/java/com/rootly/client/model/ArchiveSlackChannelsTaskParams.java +++ b/src/main/java/com/rootly/client/model/ArchiveSlackChannelsTaskParams.java @@ -51,7 +51,7 @@ /** * ArchiveSlackChannelsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ArchiveSlackChannelsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/AssignRoleToUser.java b/src/main/java/com/rootly/client/model/AssignRoleToUser.java index 6f1d0001..395cb947 100644 --- a/src/main/java/com/rootly/client/model/AssignRoleToUser.java +++ b/src/main/java/com/rootly/client/model/AssignRoleToUser.java @@ -49,7 +49,7 @@ /** * AssignRoleToUser */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AssignRoleToUser { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/AssignRoleToUserData.java b/src/main/java/com/rootly/client/model/AssignRoleToUserData.java index 58a73e15..0034c1d1 100644 --- a/src/main/java/com/rootly/client/model/AssignRoleToUserData.java +++ b/src/main/java/com/rootly/client/model/AssignRoleToUserData.java @@ -49,7 +49,7 @@ /** * AssignRoleToUserData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AssignRoleToUserData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/AssignRoleToUserDataAttributes.java b/src/main/java/com/rootly/client/model/AssignRoleToUserDataAttributes.java index 8eb61f01..b66a1acc 100644 --- a/src/main/java/com/rootly/client/model/AssignRoleToUserDataAttributes.java +++ b/src/main/java/com/rootly/client/model/AssignRoleToUserDataAttributes.java @@ -48,7 +48,7 @@ /** * AssignRoleToUserDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AssignRoleToUserDataAttributes { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/AttachAlert.java b/src/main/java/com/rootly/client/model/AttachAlert.java index e9114cf0..8cd02f59 100644 --- a/src/main/java/com/rootly/client/model/AttachAlert.java +++ b/src/main/java/com/rootly/client/model/AttachAlert.java @@ -49,7 +49,7 @@ /** * AttachAlert */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AttachAlert { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/AttachAlertData.java b/src/main/java/com/rootly/client/model/AttachAlertData.java index 05a6f21f..fa9be644 100644 --- a/src/main/java/com/rootly/client/model/AttachAlertData.java +++ b/src/main/java/com/rootly/client/model/AttachAlertData.java @@ -49,7 +49,7 @@ /** * AttachAlertData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AttachAlertData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/AttachAlertDataAttributes.java b/src/main/java/com/rootly/client/model/AttachAlertDataAttributes.java index 94dcb2a8..202fc706 100644 --- a/src/main/java/com/rootly/client/model/AttachAlertDataAttributes.java +++ b/src/main/java/com/rootly/client/model/AttachAlertDataAttributes.java @@ -50,7 +50,7 @@ /** * AttachAlertDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AttachAlertDataAttributes { public static final String SERIALIZED_NAME_ALERT_IDS = "alert_ids"; @SerializedName(SERIALIZED_NAME_ALERT_IDS) diff --git a/src/main/java/com/rootly/client/model/AttachDatadogDashboardsTaskParams.java b/src/main/java/com/rootly/client/model/AttachDatadogDashboardsTaskParams.java index 01627709..95c375a3 100644 --- a/src/main/java/com/rootly/client/model/AttachDatadogDashboardsTaskParams.java +++ b/src/main/java/com/rootly/client/model/AttachDatadogDashboardsTaskParams.java @@ -51,7 +51,7 @@ /** * AttachDatadogDashboardsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AttachDatadogDashboardsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParams.java b/src/main/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParams.java new file mode 100644 index 00000000..35c0736b --- /dev/null +++ b/src/main/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParams.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AttachRetrospectivePdfToFreshserviceTicketTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AttachRetrospectivePdfToFreshserviceTicketTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + ATTACH_RETROSPECTIVE_PDF_TO_FRESHSERVICE_TICKET("attach_retrospective_pdf_to_freshservice_ticket"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_TICKET_ID = "ticket_id"; + @SerializedName(SERIALIZED_NAME_TICKET_ID) + @jakarta.annotation.Nonnull + private String ticketId; + + public static final String SERIALIZED_NAME_FILENAME = "filename"; + @SerializedName(SERIALIZED_NAME_FILENAME) + @jakarta.annotation.Nullable + private String filename; + + public AttachRetrospectivePdfToFreshserviceTicketTaskParams() { + } + + public AttachRetrospectivePdfToFreshserviceTicketTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public AttachRetrospectivePdfToFreshserviceTicketTaskParams ticketId(@jakarta.annotation.Nonnull String ticketId) { + this.ticketId = ticketId; + return this; + } + + /** + * The Freshservice ticket id + * @return ticketId + */ + @jakarta.annotation.Nonnull + public String getTicketId() { + return ticketId; + } + + public void setTicketId(@jakarta.annotation.Nonnull String ticketId) { + this.ticketId = ticketId; + } + + + public AttachRetrospectivePdfToFreshserviceTicketTaskParams filename(@jakarta.annotation.Nullable String filename) { + this.filename = filename; + return this; + } + + /** + * The attachment filename + * @return filename + */ + @jakarta.annotation.Nullable + public String getFilename() { + return filename; + } + + public void setFilename(@jakarta.annotation.Nullable String filename) { + this.filename = filename; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AttachRetrospectivePdfToFreshserviceTicketTaskParams attachRetrospectivePdfToFreshserviceTicketTaskParams = (AttachRetrospectivePdfToFreshserviceTicketTaskParams) o; + return Objects.equals(this.taskType, attachRetrospectivePdfToFreshserviceTicketTaskParams.taskType) && + Objects.equals(this.ticketId, attachRetrospectivePdfToFreshserviceTicketTaskParams.ticketId) && + Objects.equals(this.filename, attachRetrospectivePdfToFreshserviceTicketTaskParams.filename); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, ticketId, filename); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AttachRetrospectivePdfToFreshserviceTicketTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" ticketId: ").append(toIndentedString(ticketId)).append("\n"); + sb.append(" filename: ").append(toIndentedString(filename)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("ticket_id"); + openapiFields.add("filename"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ticket_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AttachRetrospectivePdfToFreshserviceTicketTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AttachRetrospectivePdfToFreshserviceTicketTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AttachRetrospectivePdfToFreshserviceTicketTaskParams is not found in the empty JSON string", AttachRetrospectivePdfToFreshserviceTicketTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AttachRetrospectivePdfToFreshserviceTicketTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AttachRetrospectivePdfToFreshserviceTicketTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AttachRetrospectivePdfToFreshserviceTicketTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + if (!jsonObj.get("ticket_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ticket_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ticket_id").toString())); + } + if ((jsonObj.get("filename") != null && !jsonObj.get("filename").isJsonNull()) && !jsonObj.get("filename").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `filename` to be a primitive type in the JSON string but got `%s`", jsonObj.get("filename").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AttachRetrospectivePdfToFreshserviceTicketTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AttachRetrospectivePdfToFreshserviceTicketTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AttachRetrospectivePdfToFreshserviceTicketTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AttachRetrospectivePdfToFreshserviceTicketTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AttachRetrospectivePdfToFreshserviceTicketTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AttachRetrospectivePdfToFreshserviceTicketTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of AttachRetrospectivePdfToFreshserviceTicketTaskParams + * @throws IOException if the JSON string is invalid with respect to AttachRetrospectivePdfToFreshserviceTicketTaskParams + */ + public static AttachRetrospectivePdfToFreshserviceTicketTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AttachRetrospectivePdfToFreshserviceTicketTaskParams.class); + } + + /** + * Convert an instance of AttachRetrospectivePdfToFreshserviceTicketTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParams.java b/src/main/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParams.java new file mode 100644 index 00000000..f3556d60 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParams.java @@ -0,0 +1,360 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateJiraIssueTaskParamsIntegration; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AttachRetrospectivePdfToJiraIssueTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AttachRetrospectivePdfToJiraIssueTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + ATTACH_RETROSPECTIVE_PDF_TO_JIRA_ISSUE("attach_retrospective_pdf_to_jira_issue"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_INTEGRATION = "integration"; + @SerializedName(SERIALIZED_NAME_INTEGRATION) + @jakarta.annotation.Nullable + private CreateJiraIssueTaskParamsIntegration integration; + + public static final String SERIALIZED_NAME_ISSUE_ID = "issue_id"; + @SerializedName(SERIALIZED_NAME_ISSUE_ID) + @jakarta.annotation.Nonnull + private String issueId; + + public static final String SERIALIZED_NAME_FILENAME = "filename"; + @SerializedName(SERIALIZED_NAME_FILENAME) + @jakarta.annotation.Nullable + private String filename; + + public AttachRetrospectivePdfToJiraIssueTaskParams() { + } + + public AttachRetrospectivePdfToJiraIssueTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public AttachRetrospectivePdfToJiraIssueTaskParams integration(@jakarta.annotation.Nullable CreateJiraIssueTaskParamsIntegration integration) { + this.integration = integration; + return this; + } + + /** + * Get integration + * @return integration + */ + @jakarta.annotation.Nullable + public CreateJiraIssueTaskParamsIntegration getIntegration() { + return integration; + } + + public void setIntegration(@jakarta.annotation.Nullable CreateJiraIssueTaskParamsIntegration integration) { + this.integration = integration; + } + + + public AttachRetrospectivePdfToJiraIssueTaskParams issueId(@jakarta.annotation.Nonnull String issueId) { + this.issueId = issueId; + return this; + } + + /** + * The issue id + * @return issueId + */ + @jakarta.annotation.Nonnull + public String getIssueId() { + return issueId; + } + + public void setIssueId(@jakarta.annotation.Nonnull String issueId) { + this.issueId = issueId; + } + + + public AttachRetrospectivePdfToJiraIssueTaskParams filename(@jakarta.annotation.Nullable String filename) { + this.filename = filename; + return this; + } + + /** + * The attachment filename + * @return filename + */ + @jakarta.annotation.Nullable + public String getFilename() { + return filename; + } + + public void setFilename(@jakarta.annotation.Nullable String filename) { + this.filename = filename; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AttachRetrospectivePdfToJiraIssueTaskParams attachRetrospectivePdfToJiraIssueTaskParams = (AttachRetrospectivePdfToJiraIssueTaskParams) o; + return Objects.equals(this.taskType, attachRetrospectivePdfToJiraIssueTaskParams.taskType) && + Objects.equals(this.integration, attachRetrospectivePdfToJiraIssueTaskParams.integration) && + Objects.equals(this.issueId, attachRetrospectivePdfToJiraIssueTaskParams.issueId) && + Objects.equals(this.filename, attachRetrospectivePdfToJiraIssueTaskParams.filename); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, integration, issueId, filename); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AttachRetrospectivePdfToJiraIssueTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" integration: ").append(toIndentedString(integration)).append("\n"); + sb.append(" issueId: ").append(toIndentedString(issueId)).append("\n"); + sb.append(" filename: ").append(toIndentedString(filename)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("integration"); + openapiFields.add("issue_id"); + openapiFields.add("filename"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("issue_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AttachRetrospectivePdfToJiraIssueTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AttachRetrospectivePdfToJiraIssueTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AttachRetrospectivePdfToJiraIssueTaskParams is not found in the empty JSON string", AttachRetrospectivePdfToJiraIssueTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AttachRetrospectivePdfToJiraIssueTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AttachRetrospectivePdfToJiraIssueTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AttachRetrospectivePdfToJiraIssueTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // validate the optional field `integration` + if (jsonObj.get("integration") != null && !jsonObj.get("integration").isJsonNull()) { + CreateJiraIssueTaskParamsIntegration.validateJsonElement(jsonObj.get("integration")); + } + if (!jsonObj.get("issue_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `issue_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("issue_id").toString())); + } + if ((jsonObj.get("filename") != null && !jsonObj.get("filename").isJsonNull()) && !jsonObj.get("filename").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `filename` to be a primitive type in the JSON string but got `%s`", jsonObj.get("filename").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AttachRetrospectivePdfToJiraIssueTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AttachRetrospectivePdfToJiraIssueTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AttachRetrospectivePdfToJiraIssueTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AttachRetrospectivePdfToJiraIssueTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AttachRetrospectivePdfToJiraIssueTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AttachRetrospectivePdfToJiraIssueTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of AttachRetrospectivePdfToJiraIssueTaskParams + * @throws IOException if the JSON string is invalid with respect to AttachRetrospectivePdfToJiraIssueTaskParams + */ + public static AttachRetrospectivePdfToJiraIssueTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AttachRetrospectivePdfToJiraIssueTaskParams.class); + } + + /** + * Convert an instance of AttachRetrospectivePdfToJiraIssueTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/Audit.java b/src/main/java/com/rootly/client/model/Audit.java index 69e25ee5..2367519e 100644 --- a/src/main/java/com/rootly/client/model/Audit.java +++ b/src/main/java/com/rootly/client/model/Audit.java @@ -49,7 +49,7 @@ /** * Audit */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Audit { public static final String SERIALIZED_NAME_EVENT = "event"; @SerializedName(SERIALIZED_NAME_EVENT) @@ -61,8 +61,22 @@ public class Audit { */ @JsonAdapter(ItemTypeEnum.Adapter.class) public enum ItemTypeEnum { + ALERT_ROUTE("AlertRoute"), + + ALERT_ROUTING_RULE("AlertRoutingRule"), + + ALERTS_SOURCE("Alerts::Source"), + API_KEY("ApiKey"), + CATALOG("Catalog"), + + CATALOG_ENTITY("CatalogEntity"), + + CATALOG_ENTITY_PROPERTY("CatalogEntityProperty"), + + CATALOG_FIELD("CatalogField"), + CAUSE("Cause"), CUSTOM_FIELD("CustomField"), @@ -97,6 +111,8 @@ public enum ItemTypeEnum { GROUP("Group"), + GROUP_USER("GroupUser"), + HEARTBEAT("Heartbeat"), INCIDENT("Incident"), @@ -109,6 +125,8 @@ public enum ItemTypeEnum { INCIDENT_FORM_FIELD_SELECTION_USER("IncidentFormFieldSelectionUser"), + INCIDENT_PERMISSION_SET("IncidentPermissionSet"), + INCIDENT_POST_MORTEM("IncidentPostMortem"), INCIDENT_ROLE_ASSIGNMENT("IncidentRoleAssignment"), @@ -121,8 +139,38 @@ public enum ItemTypeEnum { INCIDENT_TYPE("IncidentType"), + INTEGRATIONS_DATADOG_ACCOUNT("Integrations::DatadogAccount"), + + INTEGRATIONS_GITHUB_ACCOUNT("Integrations::GithubAccount"), + + INTEGRATIONS_GOOGLE_MEET_ACCOUNT("Integrations::GoogleMeetAccount"), + + INTEGRATIONS_JIRA_ACCOUNT("Integrations::JiraAccount"), + + INTEGRATIONS_MICROSOFT_TEAMS_ACCOUNT("Integrations::MicrosoftTeamsAccount"), + + INTEGRATIONS_NOTION_ACCOUNT("Integrations::NotionAccount"), + + INTEGRATIONS_OPSGENIE_ACCOUNT("Integrations::OpsgenieAccount"), + + INTEGRATIONS_PAGERDUTY_ACCOUNT("Integrations::PagerdutyAccount"), + + INTEGRATIONS_SERVICE_NOW_ACCOUNT("Integrations::ServiceNowAccount"), + + INTEGRATIONS_SLACK_ACCOUNT("Integrations::SlackAccount"), + + INTEGRATIONS_STATUS_PAGE_IO_ACCOUNT("Integrations::StatusPageIoAccount"), + + INTEGRATIONS_ZENDESK_ACCOUNT("Integrations::ZendeskAccount"), + + INTEGRATIONS_ZOOM_ACCOUNT("Integrations::ZoomAccount"), + LIVE_CALL_ROUTER("LiveCallRouter"), + LOGIN_ACTIVITY("LoginActivity"), + + MEMBERSHIP("Membership"), + ON_CALL_ROLE("OnCallRole"), PLAYBOOK("Playbook"), @@ -133,6 +181,8 @@ public enum ItemTypeEnum { SCHEDULE("Schedule"), + SECRET("Secret"), + SERVICE("Service"), SEVERITY("Severity"), @@ -187,6 +237,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private ItemTypeEnum itemType; + public static final String SERIALIZED_NAME_ITEM_TYPE_DISPLAY = "item_type_display"; + @SerializedName(SERIALIZED_NAME_ITEM_TYPE_DISPLAY) + @jakarta.annotation.Nullable + private String itemTypeDisplay; + public static final String SERIALIZED_NAME_OBJECT = "object"; @SerializedName(SERIALIZED_NAME_OBJECT) @jakarta.annotation.Nullable @@ -202,6 +257,36 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer userId; + public static final String SERIALIZED_NAME_USER_NAME = "user_name"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + @jakarta.annotation.Nullable + private String userName; + + public static final String SERIALIZED_NAME_USER_EMAIL = "user_email"; + @SerializedName(SERIALIZED_NAME_USER_EMAIL) + @jakarta.annotation.Nullable + private String userEmail; + + public static final String SERIALIZED_NAME_IP_ADDRESS = "ip_address"; + @SerializedName(SERIALIZED_NAME_IP_ADDRESS) + @jakarta.annotation.Nullable + private String ipAddress; + + public static final String SERIALIZED_NAME_USER_AGENT = "user_agent"; + @SerializedName(SERIALIZED_NAME_USER_AGENT) + @jakarta.annotation.Nullable + private String userAgent; + + public static final String SERIALIZED_NAME_REQUEST_ID = "request_id"; + @SerializedName(SERIALIZED_NAME_REQUEST_ID) + @jakarta.annotation.Nullable + private String requestId; + + public static final String SERIALIZED_NAME_SESSION_ID = "session_id"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @jakarta.annotation.Nullable + private String sessionId; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -258,6 +343,25 @@ public void setItemType(@jakarta.annotation.Nullable ItemTypeEnum itemType) { } + public Audit itemTypeDisplay(@jakarta.annotation.Nullable String itemTypeDisplay) { + this.itemTypeDisplay = itemTypeDisplay; + return this; + } + + /** + * Human-friendly display name for the item type + * @return itemTypeDisplay + */ + @jakarta.annotation.Nullable + public String getItemTypeDisplay() { + return itemTypeDisplay; + } + + public void setItemTypeDisplay(@jakarta.annotation.Nullable String itemTypeDisplay) { + this.itemTypeDisplay = itemTypeDisplay; + } + + public Audit _object(@jakarta.annotation.Nullable Object _object) { this._object = _object; return this; @@ -315,6 +419,120 @@ public void setUserId(@jakarta.annotation.Nullable Integer userId) { } + public Audit userName(@jakarta.annotation.Nullable String userName) { + this.userName = userName; + return this; + } + + /** + * Display name of the user who performed the action + * @return userName + */ + @jakarta.annotation.Nullable + public String getUserName() { + return userName; + } + + public void setUserName(@jakarta.annotation.Nullable String userName) { + this.userName = userName; + } + + + public Audit userEmail(@jakarta.annotation.Nullable String userEmail) { + this.userEmail = userEmail; + return this; + } + + /** + * Email address of the user who performed the action + * @return userEmail + */ + @jakarta.annotation.Nullable + public String getUserEmail() { + return userEmail; + } + + public void setUserEmail(@jakarta.annotation.Nullable String userEmail) { + this.userEmail = userEmail; + } + + + public Audit ipAddress(@jakarta.annotation.Nullable String ipAddress) { + this.ipAddress = ipAddress; + return this; + } + + /** + * IP address of the client that performed the action + * @return ipAddress + */ + @jakarta.annotation.Nullable + public String getIpAddress() { + return ipAddress; + } + + public void setIpAddress(@jakarta.annotation.Nullable String ipAddress) { + this.ipAddress = ipAddress; + } + + + public Audit userAgent(@jakarta.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + return this; + } + + /** + * User-Agent header of the client that performed the action + * @return userAgent + */ + @jakarta.annotation.Nullable + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(@jakarta.annotation.Nullable String userAgent) { + this.userAgent = userAgent; + } + + + public Audit requestId(@jakarta.annotation.Nullable String requestId) { + this.requestId = requestId; + return this; + } + + /** + * Unique request ID (UUID) for the HTTP request that triggered the action + * @return requestId + */ + @jakarta.annotation.Nullable + public String getRequestId() { + return requestId; + } + + public void setRequestId(@jakarta.annotation.Nullable String requestId) { + this.requestId = requestId; + } + + + public Audit sessionId(@jakarta.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * SHA-256 fingerprint of the web session for correlating multiple actions within the same browser session + * @return sessionId + */ + @jakarta.annotation.Nullable + public String getSessionId() { + return sessionId; + } + + public void setSessionId(@jakarta.annotation.Nullable String sessionId) { + this.sessionId = sessionId; + } + + public Audit createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -384,9 +602,16 @@ public boolean equals(Object o) { Audit audit = (Audit) o; return Objects.equals(this.event, audit.event) && Objects.equals(this.itemType, audit.itemType) && + Objects.equals(this.itemTypeDisplay, audit.itemTypeDisplay) && Objects.equals(this._object, audit._object) && Objects.equals(this.objectChanges, audit.objectChanges) && Objects.equals(this.userId, audit.userId) && + Objects.equals(this.userName, audit.userName) && + Objects.equals(this.userEmail, audit.userEmail) && + Objects.equals(this.ipAddress, audit.ipAddress) && + Objects.equals(this.userAgent, audit.userAgent) && + Objects.equals(this.requestId, audit.requestId) && + Objects.equals(this.sessionId, audit.sessionId) && Objects.equals(this.createdAt, audit.createdAt) && Objects.equals(this.itemId, audit.itemId) && Objects.equals(this.id, audit.id); @@ -398,7 +623,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(event, itemType, _object, objectChanges, userId, createdAt, itemId, id); + return Objects.hash(event, itemType, itemTypeDisplay, _object, objectChanges, userId, userName, userEmail, ipAddress, userAgent, requestId, sessionId, createdAt, itemId, id); } private static int hashCodeNullable(JsonNullable a) { @@ -414,9 +639,16 @@ public String toString() { sb.append("class Audit {\n"); sb.append(" event: ").append(toIndentedString(event)).append("\n"); sb.append(" itemType: ").append(toIndentedString(itemType)).append("\n"); + sb.append(" itemTypeDisplay: ").append(toIndentedString(itemTypeDisplay)).append("\n"); sb.append(" _object: ").append(toIndentedString(_object)).append("\n"); sb.append(" objectChanges: ").append(toIndentedString(objectChanges)).append("\n"); sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append(" userEmail: ").append(toIndentedString(userEmail)).append("\n"); + sb.append(" ipAddress: ").append(toIndentedString(ipAddress)).append("\n"); + sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); + sb.append(" requestId: ").append(toIndentedString(requestId)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" itemId: ").append(toIndentedString(itemId)).append("\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); @@ -444,9 +676,16 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("event"); openapiFields.add("item_type"); + openapiFields.add("item_type_display"); openapiFields.add("object"); openapiFields.add("object_changes"); openapiFields.add("user_id"); + openapiFields.add("user_name"); + openapiFields.add("user_email"); + openapiFields.add("ip_address"); + openapiFields.add("user_agent"); + openapiFields.add("request_id"); + openapiFields.add("session_id"); openapiFields.add("created_at"); openapiFields.add("item_id"); openapiFields.add("id"); @@ -495,6 +734,27 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("item_type") != null && !jsonObj.get("item_type").isJsonNull()) { ItemTypeEnum.validateJsonElement(jsonObj.get("item_type")); } + if ((jsonObj.get("item_type_display") != null && !jsonObj.get("item_type_display").isJsonNull()) && !jsonObj.get("item_type_display").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `item_type_display` to be a primitive type in the JSON string but got `%s`", jsonObj.get("item_type_display").toString())); + } + if ((jsonObj.get("user_name") != null && !jsonObj.get("user_name").isJsonNull()) && !jsonObj.get("user_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `user_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("user_name").toString())); + } + if ((jsonObj.get("user_email") != null && !jsonObj.get("user_email").isJsonNull()) && !jsonObj.get("user_email").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `user_email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("user_email").toString())); + } + if ((jsonObj.get("ip_address") != null && !jsonObj.get("ip_address").isJsonNull()) && !jsonObj.get("ip_address").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ip_address` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ip_address").toString())); + } + if ((jsonObj.get("user_agent") != null && !jsonObj.get("user_agent").isJsonNull()) && !jsonObj.get("user_agent").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `user_agent` to be a primitive type in the JSON string but got `%s`", jsonObj.get("user_agent").toString())); + } + if ((jsonObj.get("request_id") != null && !jsonObj.get("request_id").isJsonNull()) && !jsonObj.get("request_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `request_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("request_id").toString())); + } + if ((jsonObj.get("session_id") != null && !jsonObj.get("session_id").isJsonNull()) && !jsonObj.get("session_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `session_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("session_id").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/AuditsList.java b/src/main/java/com/rootly/client/model/AuditsList.java index dee43a47..8e64b9b3 100644 --- a/src/main/java/com/rootly/client/model/AuditsList.java +++ b/src/main/java/com/rootly/client/model/AuditsList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AuditsListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AuditsList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AuditsList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AuditsList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AuditsList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AuditsList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AuditsList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AuditsList auditsList = (AuditsList) o; return Objects.equals(this.data, auditsList.data) && Objects.equals(this.links, auditsList.links) && - Objects.equals(this.meta, auditsList.meta); + Objects.equals(this.meta, auditsList.meta) && + Objects.equals(this.included, auditsList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AuditsListDataInner.java b/src/main/java/com/rootly/client/model/AuditsListDataInner.java index 9e19c4de..be160eab 100644 --- a/src/main/java/com/rootly/client/model/AuditsListDataInner.java +++ b/src/main/java/com/rootly/client/model/AuditsListDataInner.java @@ -49,7 +49,7 @@ /** * AuditsListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AuditsListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Authorization.java b/src/main/java/com/rootly/client/model/Authorization.java index 327ac085..6645c5eb 100644 --- a/src/main/java/com/rootly/client/model/Authorization.java +++ b/src/main/java/com/rootly/client/model/Authorization.java @@ -50,7 +50,7 @@ /** * Authorization */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Authorization { public static final String SERIALIZED_NAME_AUTHORIZABLE_ID = "authorizable_id"; @SerializedName(SERIALIZED_NAME_AUTHORIZABLE_ID) diff --git a/src/main/java/com/rootly/client/model/AuthorizationList.java b/src/main/java/com/rootly/client/model/AuthorizationList.java index 4b371d26..4e338d0a 100644 --- a/src/main/java/com/rootly/client/model/AuthorizationList.java +++ b/src/main/java/com/rootly/client/model/AuthorizationList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AuthorizationResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * AuthorizationList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AuthorizationList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class AuthorizationList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AuthorizationList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public AuthorizationList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AuthorizationList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { AuthorizationList authorizationList = (AuthorizationList) o; return Objects.equals(this.data, authorizationList.data) && Objects.equals(this.links, authorizationList.links) && - Objects.equals(this.meta, authorizationList.meta); + Objects.equals(this.meta, authorizationList.meta) && + Objects.equals(this.included, authorizationList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AuthorizationResponse.java b/src/main/java/com/rootly/client/model/AuthorizationResponse.java index 48d9c740..06cafa53 100644 --- a/src/main/java/com/rootly/client/model/AuthorizationResponse.java +++ b/src/main/java/com/rootly/client/model/AuthorizationResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AuthorizationResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * AuthorizationResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AuthorizationResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private AuthorizationResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public AuthorizationResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull AuthorizationResponseData data) } + public AuthorizationResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public AuthorizationResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } AuthorizationResponse authorizationResponse = (AuthorizationResponse) o; - return Objects.equals(this.data, authorizationResponse.data); + return Objects.equals(this.data, authorizationResponse.data) && + Objects.equals(this.included, authorizationResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AuthorizationResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` AuthorizationResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/AuthorizationResponseData.java b/src/main/java/com/rootly/client/model/AuthorizationResponseData.java index 7e27bed4..d931440a 100644 --- a/src/main/java/com/rootly/client/model/AuthorizationResponseData.java +++ b/src/main/java/com/rootly/client/model/AuthorizationResponseData.java @@ -49,7 +49,7 @@ /** * AuthorizationResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AuthorizationResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleOpsgenieTaskParams.java b/src/main/java/com/rootly/client/model/AutoAssignRoleOpsgenieTaskParams.java index 5d4a443b..e6c5b742 100644 --- a/src/main/java/com/rootly/client/model/AutoAssignRoleOpsgenieTaskParams.java +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleOpsgenieTaskParams.java @@ -49,7 +49,7 @@ /** * AutoAssignRoleOpsgenieTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AutoAssignRoleOpsgenieTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParams.java b/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParams.java index 8f5964ce..052347df 100644 --- a/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParams.java +++ b/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParams.java @@ -19,365 +19,250 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * AutoAssignRolePagerdutyTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class AutoAssignRolePagerdutyTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - AUTO_ASSIGN_ROLE_PAGERDUTY("auto_assign_role_pagerduty"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRolePagerdutyTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(AutoAssignRolePagerdutyTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRolePagerdutyTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRolePagerdutyTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterAutoAssignRolePagerdutyTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRolePagerdutyTaskParamsAnyOf.class)); + final TypeAdapter adapterAutoAssignRolePagerdutyTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRolePagerdutyTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRolePagerdutyTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `AutoAssignRolePagerdutyTaskParamsAnyOf` + if (value.getActualInstance() instanceof AutoAssignRolePagerdutyTaskParamsAnyOf) { + JsonElement element = adapterAutoAssignRolePagerdutyTaskParamsAnyOf.toJsonTree((AutoAssignRolePagerdutyTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AutoAssignRolePagerdutyTaskParamsAnyOf1` + if (value.getActualInstance() instanceof AutoAssignRolePagerdutyTaskParamsAnyOf1) { + JsonElement element = adapterAutoAssignRolePagerdutyTaskParamsAnyOf1.toJsonTree((AutoAssignRolePagerdutyTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1"); + } + + @Override + public AutoAssignRolePagerdutyTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize AutoAssignRolePagerdutyTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRolePagerdutyTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRolePagerdutyTaskParamsAnyOf; + AutoAssignRolePagerdutyTaskParams ret = new AutoAssignRolePagerdutyTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRolePagerdutyTaskParamsAnyOf'", e); + } + // deserialize AutoAssignRolePagerdutyTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRolePagerdutyTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRolePagerdutyTaskParamsAnyOf1; + AutoAssignRolePagerdutyTaskParams ret = new AutoAssignRolePagerdutyTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRolePagerdutyTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for AutoAssignRolePagerdutyTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + public AutoAssignRolePagerdutyTaskParams() { + super("anyOf", Boolean.FALSE); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); + public AutoAssignRolePagerdutyTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_INCIDENT_ROLE_ID = "incident_role_id"; - @SerializedName(SERIALIZED_NAME_INCIDENT_ROLE_ID) - @jakarta.annotation.Nonnull - private String incidentRoleId; - - public static final String SERIALIZED_NAME_SERVICE = "service"; - @SerializedName(SERIALIZED_NAME_SERVICE) - @jakarta.annotation.Nullable - private Object service; - public static final String SERIALIZED_NAME_SCHEDULE = "schedule"; - @SerializedName(SERIALIZED_NAME_SCHEDULE) - @jakarta.annotation.Nullable - private Object schedule; - - public static final String SERIALIZED_NAME_ESCALATION_POLICY = "escalation_policy"; - @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY) - @jakarta.annotation.Nullable - private Object escalationPolicy; - - public AutoAssignRolePagerdutyTaskParams() { - } - - public AutoAssignRolePagerdutyTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public AutoAssignRolePagerdutyTaskParams incidentRoleId(@jakarta.annotation.Nonnull String incidentRoleId) { - this.incidentRoleId = incidentRoleId; - return this; - } - - /** - * The role id - * @return incidentRoleId - */ - @jakarta.annotation.Nonnull - public String getIncidentRoleId() { - return incidentRoleId; - } - - public void setIncidentRoleId(@jakarta.annotation.Nonnull String incidentRoleId) { - this.incidentRoleId = incidentRoleId; - } - - - public AutoAssignRolePagerdutyTaskParams service(@jakarta.annotation.Nullable Object service) { - this.service = service; - return this; - } - - /** - * Get service - * @return service - */ - @jakarta.annotation.Nullable - public Object getService() { - return service; - } - - public void setService(@jakarta.annotation.Nullable Object service) { - this.service = service; - } - - - public AutoAssignRolePagerdutyTaskParams schedule(@jakarta.annotation.Nullable Object schedule) { - this.schedule = schedule; - return this; - } - - /** - * Get schedule - * @return schedule - */ - @jakarta.annotation.Nullable - public Object getSchedule() { - return schedule; - } - - public void setSchedule(@jakarta.annotation.Nullable Object schedule) { - this.schedule = schedule; - } - - - public AutoAssignRolePagerdutyTaskParams escalationPolicy(@jakarta.annotation.Nullable Object escalationPolicy) { - this.escalationPolicy = escalationPolicy; - return this; - } - - /** - * Get escalationPolicy - * @return escalationPolicy - */ - @jakarta.annotation.Nullable - public Object getEscalationPolicy() { - return escalationPolicy; - } - - public void setEscalationPolicy(@jakarta.annotation.Nullable Object escalationPolicy) { - this.escalationPolicy = escalationPolicy; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; + static { + schemas.put("AutoAssignRolePagerdutyTaskParamsAnyOf", AutoAssignRolePagerdutyTaskParamsAnyOf.class); + schemas.put("AutoAssignRolePagerdutyTaskParamsAnyOf1", AutoAssignRolePagerdutyTaskParamsAnyOf1.class); } - AutoAssignRolePagerdutyTaskParams autoAssignRolePagerdutyTaskParams = (AutoAssignRolePagerdutyTaskParams) o; - return Objects.equals(this.taskType, autoAssignRolePagerdutyTaskParams.taskType) && - Objects.equals(this.incidentRoleId, autoAssignRolePagerdutyTaskParams.incidentRoleId) && - Objects.equals(this.service, autoAssignRolePagerdutyTaskParams.service) && - Objects.equals(this.schedule, autoAssignRolePagerdutyTaskParams.schedule) && - Objects.equals(this.escalationPolicy, autoAssignRolePagerdutyTaskParams.escalationPolicy); - } - @Override - public int hashCode() { - return Objects.hash(taskType, incidentRoleId, service, schedule, escalationPolicy); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AutoAssignRolePagerdutyTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" incidentRoleId: ").append(toIndentedString(incidentRoleId)).append("\n"); - sb.append(" service: ").append(toIndentedString(service)).append("\n"); - sb.append(" schedule: ").append(toIndentedString(schedule)).append("\n"); - sb.append(" escalationPolicy: ").append(toIndentedString(escalationPolicy)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + @Override + public Map> getSchemas() { + return AutoAssignRolePagerdutyTaskParams.schemas; } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("incident_role_id"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to AutoAssignRolePagerdutyTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!AutoAssignRolePagerdutyTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRolePagerdutyTaskParams is not found in the empty JSON string", AutoAssignRolePagerdutyTaskParams.openapiRequiredFields.toString())); + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof AutoAssignRolePagerdutyTaskParamsAnyOf) { + super.setActualInstance(instance); + return; } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!AutoAssignRolePagerdutyTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRolePagerdutyTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + if (instance instanceof AutoAssignRolePagerdutyTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; } - } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : AutoAssignRolePagerdutyTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if (!jsonObj.get("incident_role_id").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `incident_role_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_role_id").toString())); - } - // validate the optional field `service` - if (jsonObj.get("service") != null && !jsonObj.get("service").isJsonNull()) { - } - // validate the optional field `schedule` - if (jsonObj.get("schedule") != null && !jsonObj.get("schedule").isJsonNull()) { - } - // validate the optional field `escalation_policy` - if (jsonObj.get("escalation_policy") != null && !jsonObj.get("escalation_policy").isJsonNull()) { - } - } + throw new RuntimeException("Invalid instance type. Must be AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1"); + } - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + /** + * Get the actual instance, which can be the following: + * AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1 + * + * @return The actual instance (AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1) + */ @SuppressWarnings("unchecked") @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!AutoAssignRolePagerdutyTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'AutoAssignRolePagerdutyTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRolePagerdutyTaskParams.class)); + public Object getActualInstance() { + return super.getActualInstance(); + } - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, AutoAssignRolePagerdutyTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } + /** + * Get the actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf`. If the actual instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf` + */ + public AutoAssignRolePagerdutyTaskParamsAnyOf getAutoAssignRolePagerdutyTaskParamsAnyOf() throws ClassCastException { + return (AutoAssignRolePagerdutyTaskParamsAnyOf)super.getActualInstance(); + } - @Override - public AutoAssignRolePagerdutyTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } + /** + * Get the actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf1`. If the actual instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf1` + */ + public AutoAssignRolePagerdutyTaskParamsAnyOf1 getAutoAssignRolePagerdutyTaskParamsAnyOf1() throws ClassCastException { + return (AutoAssignRolePagerdutyTaskParamsAnyOf1)super.getActualInstance(); + } - }.nullSafe(); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRolePagerdutyTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with AutoAssignRolePagerdutyTaskParamsAnyOf + try { + AutoAssignRolePagerdutyTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AutoAssignRolePagerdutyTaskParamsAnyOf1 + try { + AutoAssignRolePagerdutyTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for AutoAssignRolePagerdutyTaskParams with anyOf schemas: AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of AutoAssignRolePagerdutyTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of AutoAssignRolePagerdutyTaskParams - * @throws IOException if the JSON string is invalid with respect to AutoAssignRolePagerdutyTaskParams - */ - public static AutoAssignRolePagerdutyTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, AutoAssignRolePagerdutyTaskParams.class); - } + /** + * Create an instance of AutoAssignRolePagerdutyTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRolePagerdutyTaskParams + * @throws IOException if the JSON string is invalid with respect to AutoAssignRolePagerdutyTaskParams + */ + public static AutoAssignRolePagerdutyTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRolePagerdutyTaskParams.class); + } - /** - * Convert an instance of AutoAssignRolePagerdutyTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of AutoAssignRolePagerdutyTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf.java new file mode 100644 index 00000000..d5129882 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AutoAssignRolePagerdutyTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRolePagerdutyTaskParamsAnyOf { + public static final String SERIALIZED_NAME_SCHEDULE = "schedule"; + @SerializedName(SERIALIZED_NAME_SCHEDULE) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner schedule; + + public AutoAssignRolePagerdutyTaskParamsAnyOf() { + } + + public AutoAssignRolePagerdutyTaskParamsAnyOf schedule(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner schedule) { + this.schedule = schedule; + return this; + } + + /** + * Get schedule + * @return schedule + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getSchedule() { + return schedule; + } + + public void setSchedule(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner schedule) { + this.schedule = schedule; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoAssignRolePagerdutyTaskParamsAnyOf autoAssignRolePagerdutyTaskParamsAnyOf = (AutoAssignRolePagerdutyTaskParamsAnyOf) o; + return Objects.equals(this.schedule, autoAssignRolePagerdutyTaskParamsAnyOf.schedule); + } + + @Override + public int hashCode() { + return Objects.hash(schedule); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoAssignRolePagerdutyTaskParamsAnyOf {\n"); + sb.append(" schedule: ").append(toIndentedString(schedule)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("schedule"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("schedule"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRolePagerdutyTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoAssignRolePagerdutyTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRolePagerdutyTaskParamsAnyOf is not found in the empty JSON string", AutoAssignRolePagerdutyTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AutoAssignRolePagerdutyTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRolePagerdutyTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AutoAssignRolePagerdutyTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `schedule` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("schedule")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRolePagerdutyTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRolePagerdutyTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRolePagerdutyTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRolePagerdutyTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AutoAssignRolePagerdutyTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoAssignRolePagerdutyTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRolePagerdutyTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to AutoAssignRolePagerdutyTaskParamsAnyOf + */ + public static AutoAssignRolePagerdutyTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRolePagerdutyTaskParamsAnyOf.class); + } + + /** + * Convert an instance of AutoAssignRolePagerdutyTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1.java b/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1.java new file mode 100644 index 00000000..00dbe200 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AutoAssignRolePagerdutyTaskParamsAnyOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRolePagerdutyTaskParamsAnyOf1 { + public static final String SERIALIZED_NAME_ESCALATION_POLICY = "escalation_policy"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicy; + + public AutoAssignRolePagerdutyTaskParamsAnyOf1() { + } + + public AutoAssignRolePagerdutyTaskParamsAnyOf1 escalationPolicy(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicy) { + this.escalationPolicy = escalationPolicy; + return this; + } + + /** + * Get escalationPolicy + * @return escalationPolicy + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getEscalationPolicy() { + return escalationPolicy; + } + + public void setEscalationPolicy(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicy) { + this.escalationPolicy = escalationPolicy; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoAssignRolePagerdutyTaskParamsAnyOf1 autoAssignRolePagerdutyTaskParamsAnyOf1 = (AutoAssignRolePagerdutyTaskParamsAnyOf1) o; + return Objects.equals(this.escalationPolicy, autoAssignRolePagerdutyTaskParamsAnyOf1.escalationPolicy); + } + + @Override + public int hashCode() { + return Objects.hash(escalationPolicy); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoAssignRolePagerdutyTaskParamsAnyOf1 {\n"); + sb.append(" escalationPolicy: ").append(toIndentedString(escalationPolicy)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("escalation_policy"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("escalation_policy"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRolePagerdutyTaskParamsAnyOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoAssignRolePagerdutyTaskParamsAnyOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRolePagerdutyTaskParamsAnyOf1 is not found in the empty JSON string", AutoAssignRolePagerdutyTaskParamsAnyOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AutoAssignRolePagerdutyTaskParamsAnyOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRolePagerdutyTaskParamsAnyOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AutoAssignRolePagerdutyTaskParamsAnyOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `escalation_policy` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("escalation_policy")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRolePagerdutyTaskParamsAnyOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRolePagerdutyTaskParamsAnyOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRolePagerdutyTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRolePagerdutyTaskParamsAnyOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AutoAssignRolePagerdutyTaskParamsAnyOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoAssignRolePagerdutyTaskParamsAnyOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRolePagerdutyTaskParamsAnyOf1 + * @throws IOException if the JSON string is invalid with respect to AutoAssignRolePagerdutyTaskParamsAnyOf1 + */ + public static AutoAssignRolePagerdutyTaskParamsAnyOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRolePagerdutyTaskParamsAnyOf1.class); + } + + /** + * Convert an instance of AutoAssignRolePagerdutyTaskParamsAnyOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParams.java b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParams.java index 5eadd159..0ce8ee8d 100644 --- a/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParams.java +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParams.java @@ -20,435 +20,392 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf1; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf2; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf3; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf4; import java.io.IOException; import java.util.Arrays; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * AutoAssignRoleRootlyTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class AutoAssignRoleRootlyTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - AUTO_ASSIGN_ROLE_ROOTLY("auto_assign_role_rootly"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRoleRootlyTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(AutoAssignRoleRootlyTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRoleRootlyTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRoleRootlyTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterAutoAssignRoleRootlyTaskParamsOneOf = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf.class)); + final TypeAdapter adapterAutoAssignRoleRootlyTaskParamsOneOf1 = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf1.class)); + final TypeAdapter adapterAutoAssignRoleRootlyTaskParamsOneOf2 = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf2.class)); + final TypeAdapter adapterAutoAssignRoleRootlyTaskParamsOneOf3 = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf3.class)); + final TypeAdapter adapterAutoAssignRoleRootlyTaskParamsOneOf4 = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf4.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRoleRootlyTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `AutoAssignRoleRootlyTaskParamsOneOf` + if (value.getActualInstance() instanceof AutoAssignRoleRootlyTaskParamsOneOf) { + JsonElement element = adapterAutoAssignRoleRootlyTaskParamsOneOf.toJsonTree((AutoAssignRoleRootlyTaskParamsOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AutoAssignRoleRootlyTaskParamsOneOf1` + if (value.getActualInstance() instanceof AutoAssignRoleRootlyTaskParamsOneOf1) { + JsonElement element = adapterAutoAssignRoleRootlyTaskParamsOneOf1.toJsonTree((AutoAssignRoleRootlyTaskParamsOneOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AutoAssignRoleRootlyTaskParamsOneOf2` + if (value.getActualInstance() instanceof AutoAssignRoleRootlyTaskParamsOneOf2) { + JsonElement element = adapterAutoAssignRoleRootlyTaskParamsOneOf2.toJsonTree((AutoAssignRoleRootlyTaskParamsOneOf2)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AutoAssignRoleRootlyTaskParamsOneOf3` + if (value.getActualInstance() instanceof AutoAssignRoleRootlyTaskParamsOneOf3) { + JsonElement element = adapterAutoAssignRoleRootlyTaskParamsOneOf3.toJsonTree((AutoAssignRoleRootlyTaskParamsOneOf3)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AutoAssignRoleRootlyTaskParamsOneOf4` + if (value.getActualInstance() instanceof AutoAssignRoleRootlyTaskParamsOneOf4) { + JsonElement element = adapterAutoAssignRoleRootlyTaskParamsOneOf4.toJsonTree((AutoAssignRoleRootlyTaskParamsOneOf4)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: AutoAssignRoleRootlyTaskParamsOneOf, AutoAssignRoleRootlyTaskParamsOneOf1, AutoAssignRoleRootlyTaskParamsOneOf2, AutoAssignRoleRootlyTaskParamsOneOf3, AutoAssignRoleRootlyTaskParamsOneOf4"); + } + + @Override + public AutoAssignRoleRootlyTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize AutoAssignRoleRootlyTaskParamsOneOf + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRoleRootlyTaskParamsOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRoleRootlyTaskParamsOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'AutoAssignRoleRootlyTaskParamsOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRoleRootlyTaskParamsOneOf'", e); + } + // deserialize AutoAssignRoleRootlyTaskParamsOneOf1 + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRoleRootlyTaskParamsOneOf1.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRoleRootlyTaskParamsOneOf1; + match++; + log.log(Level.FINER, "Input data matches schema 'AutoAssignRoleRootlyTaskParamsOneOf1'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRoleRootlyTaskParamsOneOf1'", e); + } + // deserialize AutoAssignRoleRootlyTaskParamsOneOf2 + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRoleRootlyTaskParamsOneOf2.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRoleRootlyTaskParamsOneOf2; + match++; + log.log(Level.FINER, "Input data matches schema 'AutoAssignRoleRootlyTaskParamsOneOf2'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf2 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRoleRootlyTaskParamsOneOf2'", e); + } + // deserialize AutoAssignRoleRootlyTaskParamsOneOf3 + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRoleRootlyTaskParamsOneOf3.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRoleRootlyTaskParamsOneOf3; + match++; + log.log(Level.FINER, "Input data matches schema 'AutoAssignRoleRootlyTaskParamsOneOf3'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf3 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRoleRootlyTaskParamsOneOf3'", e); + } + // deserialize AutoAssignRoleRootlyTaskParamsOneOf4 + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRoleRootlyTaskParamsOneOf4.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRoleRootlyTaskParamsOneOf4; + match++; + log.log(Level.FINER, "Input data matches schema 'AutoAssignRoleRootlyTaskParamsOneOf4'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf4 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRoleRootlyTaskParamsOneOf4'", e); + } + + if (match == 1) { + AutoAssignRoleRootlyTaskParams ret = new AutoAssignRoleRootlyTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for AutoAssignRoleRootlyTaskParams: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public AutoAssignRoleRootlyTaskParams() { + super("oneOf", Boolean.FALSE); } - public String getValue() { - return value; + public AutoAssignRoleRootlyTaskParams(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("AutoAssignRoleRootlyTaskParamsOneOf", AutoAssignRoleRootlyTaskParamsOneOf.class); + schemas.put("AutoAssignRoleRootlyTaskParamsOneOf1", AutoAssignRoleRootlyTaskParamsOneOf1.class); + schemas.put("AutoAssignRoleRootlyTaskParamsOneOf2", AutoAssignRoleRootlyTaskParamsOneOf2.class); + schemas.put("AutoAssignRoleRootlyTaskParamsOneOf3", AutoAssignRoleRootlyTaskParamsOneOf3.class); + schemas.put("AutoAssignRoleRootlyTaskParamsOneOf4", AutoAssignRoleRootlyTaskParamsOneOf4.class); } @Override - public String toString() { - return String.valueOf(value); + public Map> getSchemas() { + return AutoAssignRoleRootlyTaskParams.schemas; } - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * AutoAssignRoleRootlyTaskParamsOneOf, AutoAssignRoleRootlyTaskParamsOneOf1, AutoAssignRoleRootlyTaskParamsOneOf2, AutoAssignRoleRootlyTaskParamsOneOf3, AutoAssignRoleRootlyTaskParamsOneOf4 + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof AutoAssignRoleRootlyTaskParamsOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof AutoAssignRoleRootlyTaskParamsOneOf1) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof AutoAssignRoleRootlyTaskParamsOneOf2) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof AutoAssignRoleRootlyTaskParamsOneOf3) { + super.setActualInstance(instance); + return; } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); + + if (instance instanceof AutoAssignRoleRootlyTaskParamsOneOf4) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be AutoAssignRoleRootlyTaskParamsOneOf, AutoAssignRoleRootlyTaskParamsOneOf1, AutoAssignRoleRootlyTaskParamsOneOf2, AutoAssignRoleRootlyTaskParamsOneOf3, AutoAssignRoleRootlyTaskParamsOneOf4"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + /** + * Get the actual instance, which can be the following: + * AutoAssignRoleRootlyTaskParamsOneOf, AutoAssignRoleRootlyTaskParamsOneOf1, AutoAssignRoleRootlyTaskParamsOneOf2, AutoAssignRoleRootlyTaskParamsOneOf3, AutoAssignRoleRootlyTaskParamsOneOf4 + * + * @return The actual instance (AutoAssignRoleRootlyTaskParamsOneOf, AutoAssignRoleRootlyTaskParamsOneOf1, AutoAssignRoleRootlyTaskParamsOneOf2, AutoAssignRoleRootlyTaskParamsOneOf3, AutoAssignRoleRootlyTaskParamsOneOf4) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); + /** + * Get the actual instance of `AutoAssignRoleRootlyTaskParamsOneOf`. If the actual instance is not `AutoAssignRoleRootlyTaskParamsOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRoleRootlyTaskParamsOneOf` + * @throws ClassCastException if the instance is not `AutoAssignRoleRootlyTaskParamsOneOf` + */ + public AutoAssignRoleRootlyTaskParamsOneOf getAutoAssignRoleRootlyTaskParamsOneOf() throws ClassCastException { + return (AutoAssignRoleRootlyTaskParamsOneOf)super.getActualInstance(); } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_INCIDENT_ROLE_ID = "incident_role_id"; - @SerializedName(SERIALIZED_NAME_INCIDENT_ROLE_ID) - @jakarta.annotation.Nonnull - private String incidentRoleId; - - public static final String SERIALIZED_NAME_ESCALATION_POLICY_TARGET = "escalation_policy_target"; - @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_TARGET) - @jakarta.annotation.Nullable - private AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget; - - public static final String SERIALIZED_NAME_SERVICE_TARGET = "service_target"; - @SerializedName(SERIALIZED_NAME_SERVICE_TARGET) - @jakarta.annotation.Nullable - private AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget; - - public static final String SERIALIZED_NAME_USER_TARGET = "user_target"; - @SerializedName(SERIALIZED_NAME_USER_TARGET) - @jakarta.annotation.Nullable - private AddActionItemTaskParamsPostToSlackChannelsInner userTarget; - - public static final String SERIALIZED_NAME_GROUP_TARGET = "group_target"; - @SerializedName(SERIALIZED_NAME_GROUP_TARGET) - @jakarta.annotation.Nullable - private AddActionItemTaskParamsPostToSlackChannelsInner groupTarget; - - public static final String SERIALIZED_NAME_SCHEDULE_TARGET = "schedule_target"; - @SerializedName(SERIALIZED_NAME_SCHEDULE_TARGET) - @jakarta.annotation.Nullable - private AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget; - - public AutoAssignRoleRootlyTaskParams() { - } - - public AutoAssignRoleRootlyTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public AutoAssignRoleRootlyTaskParams incidentRoleId(@jakarta.annotation.Nonnull String incidentRoleId) { - this.incidentRoleId = incidentRoleId; - return this; - } - - /** - * The role id - * @return incidentRoleId - */ - @jakarta.annotation.Nonnull - public String getIncidentRoleId() { - return incidentRoleId; - } - - public void setIncidentRoleId(@jakarta.annotation.Nonnull String incidentRoleId) { - this.incidentRoleId = incidentRoleId; - } - - - public AutoAssignRoleRootlyTaskParams escalationPolicyTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget) { - this.escalationPolicyTarget = escalationPolicyTarget; - return this; - } - - /** - * Get escalationPolicyTarget - * @return escalationPolicyTarget - */ - @jakarta.annotation.Nullable - public AddActionItemTaskParamsPostToSlackChannelsInner getEscalationPolicyTarget() { - return escalationPolicyTarget; - } - - public void setEscalationPolicyTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget) { - this.escalationPolicyTarget = escalationPolicyTarget; - } - - - public AutoAssignRoleRootlyTaskParams serviceTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget) { - this.serviceTarget = serviceTarget; - return this; - } - - /** - * Get serviceTarget - * @return serviceTarget - */ - @jakarta.annotation.Nullable - public AddActionItemTaskParamsPostToSlackChannelsInner getServiceTarget() { - return serviceTarget; - } - - public void setServiceTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget) { - this.serviceTarget = serviceTarget; - } - - - public AutoAssignRoleRootlyTaskParams userTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner userTarget) { - this.userTarget = userTarget; - return this; - } - - /** - * Get userTarget - * @return userTarget - */ - @jakarta.annotation.Nullable - public AddActionItemTaskParamsPostToSlackChannelsInner getUserTarget() { - return userTarget; - } - - public void setUserTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner userTarget) { - this.userTarget = userTarget; - } - - - public AutoAssignRoleRootlyTaskParams groupTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner groupTarget) { - this.groupTarget = groupTarget; - return this; - } - - /** - * Get groupTarget - * @return groupTarget - */ - @jakarta.annotation.Nullable - public AddActionItemTaskParamsPostToSlackChannelsInner getGroupTarget() { - return groupTarget; - } - - public void setGroupTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner groupTarget) { - this.groupTarget = groupTarget; - } - - - public AutoAssignRoleRootlyTaskParams scheduleTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget) { - this.scheduleTarget = scheduleTarget; - return this; - } - - /** - * Get scheduleTarget - * @return scheduleTarget - */ - @jakarta.annotation.Nullable - public AddActionItemTaskParamsPostToSlackChannelsInner getScheduleTarget() { - return scheduleTarget; - } - - public void setScheduleTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget) { - this.scheduleTarget = scheduleTarget; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; + + /** + * Get the actual instance of `AutoAssignRoleRootlyTaskParamsOneOf1`. If the actual instance is not `AutoAssignRoleRootlyTaskParamsOneOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRoleRootlyTaskParamsOneOf1` + * @throws ClassCastException if the instance is not `AutoAssignRoleRootlyTaskParamsOneOf1` + */ + public AutoAssignRoleRootlyTaskParamsOneOf1 getAutoAssignRoleRootlyTaskParamsOneOf1() throws ClassCastException { + return (AutoAssignRoleRootlyTaskParamsOneOf1)super.getActualInstance(); } - if (o == null || getClass() != o.getClass()) { - return false; + + /** + * Get the actual instance of `AutoAssignRoleRootlyTaskParamsOneOf2`. If the actual instance is not `AutoAssignRoleRootlyTaskParamsOneOf2`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRoleRootlyTaskParamsOneOf2` + * @throws ClassCastException if the instance is not `AutoAssignRoleRootlyTaskParamsOneOf2` + */ + public AutoAssignRoleRootlyTaskParamsOneOf2 getAutoAssignRoleRootlyTaskParamsOneOf2() throws ClassCastException { + return (AutoAssignRoleRootlyTaskParamsOneOf2)super.getActualInstance(); } - AutoAssignRoleRootlyTaskParams autoAssignRoleRootlyTaskParams = (AutoAssignRoleRootlyTaskParams) o; - return Objects.equals(this.taskType, autoAssignRoleRootlyTaskParams.taskType) && - Objects.equals(this.incidentRoleId, autoAssignRoleRootlyTaskParams.incidentRoleId) && - Objects.equals(this.escalationPolicyTarget, autoAssignRoleRootlyTaskParams.escalationPolicyTarget) && - Objects.equals(this.serviceTarget, autoAssignRoleRootlyTaskParams.serviceTarget) && - Objects.equals(this.userTarget, autoAssignRoleRootlyTaskParams.userTarget) && - Objects.equals(this.groupTarget, autoAssignRoleRootlyTaskParams.groupTarget) && - Objects.equals(this.scheduleTarget, autoAssignRoleRootlyTaskParams.scheduleTarget); - } - - @Override - public int hashCode() { - return Objects.hash(taskType, incidentRoleId, escalationPolicyTarget, serviceTarget, userTarget, groupTarget, scheduleTarget); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AutoAssignRoleRootlyTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" incidentRoleId: ").append(toIndentedString(incidentRoleId)).append("\n"); - sb.append(" escalationPolicyTarget: ").append(toIndentedString(escalationPolicyTarget)).append("\n"); - sb.append(" serviceTarget: ").append(toIndentedString(serviceTarget)).append("\n"); - sb.append(" userTarget: ").append(toIndentedString(userTarget)).append("\n"); - sb.append(" groupTarget: ").append(toIndentedString(groupTarget)).append("\n"); - sb.append(" scheduleTarget: ").append(toIndentedString(scheduleTarget)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + + /** + * Get the actual instance of `AutoAssignRoleRootlyTaskParamsOneOf3`. If the actual instance is not `AutoAssignRoleRootlyTaskParamsOneOf3`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRoleRootlyTaskParamsOneOf3` + * @throws ClassCastException if the instance is not `AutoAssignRoleRootlyTaskParamsOneOf3` + */ + public AutoAssignRoleRootlyTaskParamsOneOf3 getAutoAssignRoleRootlyTaskParamsOneOf3() throws ClassCastException { + return (AutoAssignRoleRootlyTaskParamsOneOf3)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("task_type"); - openapiFields.add("incident_role_id"); - openapiFields.add("escalation_policy_target"); - openapiFields.add("service_target"); - openapiFields.add("user_target"); - openapiFields.add("group_target"); - openapiFields.add("schedule_target"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("incident_role_id"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to AutoAssignRoleRootlyTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!AutoAssignRoleRootlyTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRoleRootlyTaskParams is not found in the empty JSON string", AutoAssignRoleRootlyTaskParams.openapiRequiredFields.toString())); - } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!AutoAssignRoleRootlyTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRoleRootlyTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); - } - } + /** + * Get the actual instance of `AutoAssignRoleRootlyTaskParamsOneOf4`. If the actual instance is not `AutoAssignRoleRootlyTaskParamsOneOf4`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRoleRootlyTaskParamsOneOf4` + * @throws ClassCastException if the instance is not `AutoAssignRoleRootlyTaskParamsOneOf4` + */ + public AutoAssignRoleRootlyTaskParamsOneOf4 getAutoAssignRoleRootlyTaskParamsOneOf4() throws ClassCastException { + return (AutoAssignRoleRootlyTaskParamsOneOf4)super.getActualInstance(); + } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : AutoAssignRoleRootlyTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRoleRootlyTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with AutoAssignRoleRootlyTaskParamsOneOf + try { + AutoAssignRoleRootlyTaskParamsOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if (!jsonObj.get("incident_role_id").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `incident_role_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_role_id").toString())); - } - // validate the optional field `escalation_policy_target` - if (jsonObj.get("escalation_policy_target") != null && !jsonObj.get("escalation_policy_target").isJsonNull()) { - AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("escalation_policy_target")); - } - // validate the optional field `service_target` - if (jsonObj.get("service_target") != null && !jsonObj.get("service_target").isJsonNull()) { - AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("service_target")); - } - // validate the optional field `user_target` - if (jsonObj.get("user_target") != null && !jsonObj.get("user_target").isJsonNull()) { - AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("user_target")); - } - // validate the optional field `group_target` - if (jsonObj.get("group_target") != null && !jsonObj.get("group_target").isJsonNull()) { - AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("group_target")); - } - // validate the optional field `schedule_target` - if (jsonObj.get("schedule_target") != null && !jsonObj.get("schedule_target").isJsonNull()) { - AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("schedule_target")); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!AutoAssignRoleRootlyTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'AutoAssignRoleRootlyTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, AutoAssignRoleRootlyTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public AutoAssignRoleRootlyTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + // validate the json string with AutoAssignRoleRootlyTaskParamsOneOf1 + try { + AutoAssignRoleRootlyTaskParamsOneOf1.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf1 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AutoAssignRoleRootlyTaskParamsOneOf2 + try { + AutoAssignRoleRootlyTaskParamsOneOf2.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf2 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AutoAssignRoleRootlyTaskParamsOneOf3 + try { + AutoAssignRoleRootlyTaskParamsOneOf3.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf3 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AutoAssignRoleRootlyTaskParamsOneOf4 + try { + AutoAssignRoleRootlyTaskParamsOneOf4.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRoleRootlyTaskParamsOneOf4 failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for AutoAssignRoleRootlyTaskParams with oneOf schemas: AutoAssignRoleRootlyTaskParamsOneOf, AutoAssignRoleRootlyTaskParamsOneOf1, AutoAssignRoleRootlyTaskParamsOneOf2, AutoAssignRoleRootlyTaskParamsOneOf3, AutoAssignRoleRootlyTaskParamsOneOf4. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of AutoAssignRoleRootlyTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRoleRootlyTaskParams + * @throws IOException if the JSON string is invalid with respect to AutoAssignRoleRootlyTaskParams + */ + public static AutoAssignRoleRootlyTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRoleRootlyTaskParams.class); + } + + /** + * Convert an instance of AutoAssignRoleRootlyTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); } - } - - /** - * Create an instance of AutoAssignRoleRootlyTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of AutoAssignRoleRootlyTaskParams - * @throws IOException if the JSON string is invalid with respect to AutoAssignRoleRootlyTaskParams - */ - public static AutoAssignRoleRootlyTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, AutoAssignRoleRootlyTaskParams.class); - } - - /** - * Convert an instance of AutoAssignRoleRootlyTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } } diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf.java b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf.java new file mode 100644 index 00000000..e1f412ae --- /dev/null +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AutoAssignRoleRootlyTaskParamsOneOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRoleRootlyTaskParamsOneOf { + public static final String SERIALIZED_NAME_ESCALATION_POLICY_TARGET = "escalation_policy_target"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_TARGET) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget; + + public AutoAssignRoleRootlyTaskParamsOneOf() { + } + + public AutoAssignRoleRootlyTaskParamsOneOf escalationPolicyTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget) { + this.escalationPolicyTarget = escalationPolicyTarget; + return this; + } + + /** + * Get escalationPolicyTarget + * @return escalationPolicyTarget + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getEscalationPolicyTarget() { + return escalationPolicyTarget; + } + + public void setEscalationPolicyTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget) { + this.escalationPolicyTarget = escalationPolicyTarget; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoAssignRoleRootlyTaskParamsOneOf autoAssignRoleRootlyTaskParamsOneOf = (AutoAssignRoleRootlyTaskParamsOneOf) o; + return Objects.equals(this.escalationPolicyTarget, autoAssignRoleRootlyTaskParamsOneOf.escalationPolicyTarget); + } + + @Override + public int hashCode() { + return Objects.hash(escalationPolicyTarget); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoAssignRoleRootlyTaskParamsOneOf {\n"); + sb.append(" escalationPolicyTarget: ").append(toIndentedString(escalationPolicyTarget)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("escalation_policy_target"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("escalation_policy_target"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoAssignRoleRootlyTaskParamsOneOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRoleRootlyTaskParamsOneOf is not found in the empty JSON string", AutoAssignRoleRootlyTaskParamsOneOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AutoAssignRoleRootlyTaskParamsOneOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRoleRootlyTaskParamsOneOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AutoAssignRoleRootlyTaskParamsOneOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `escalation_policy_target` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("escalation_policy_target")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRoleRootlyTaskParamsOneOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRoleRootlyTaskParamsOneOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRoleRootlyTaskParamsOneOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AutoAssignRoleRootlyTaskParamsOneOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoAssignRoleRootlyTaskParamsOneOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRoleRootlyTaskParamsOneOf + * @throws IOException if the JSON string is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf + */ + public static AutoAssignRoleRootlyTaskParamsOneOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRoleRootlyTaskParamsOneOf.class); + } + + /** + * Convert an instance of AutoAssignRoleRootlyTaskParamsOneOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1.java b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1.java new file mode 100644 index 00000000..ba29204e --- /dev/null +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AutoAssignRoleRootlyTaskParamsOneOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRoleRootlyTaskParamsOneOf1 { + public static final String SERIALIZED_NAME_SERVICE_TARGET = "service_target"; + @SerializedName(SERIALIZED_NAME_SERVICE_TARGET) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget; + + public AutoAssignRoleRootlyTaskParamsOneOf1() { + } + + public AutoAssignRoleRootlyTaskParamsOneOf1 serviceTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget) { + this.serviceTarget = serviceTarget; + return this; + } + + /** + * Get serviceTarget + * @return serviceTarget + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getServiceTarget() { + return serviceTarget; + } + + public void setServiceTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget) { + this.serviceTarget = serviceTarget; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoAssignRoleRootlyTaskParamsOneOf1 autoAssignRoleRootlyTaskParamsOneOf1 = (AutoAssignRoleRootlyTaskParamsOneOf1) o; + return Objects.equals(this.serviceTarget, autoAssignRoleRootlyTaskParamsOneOf1.serviceTarget); + } + + @Override + public int hashCode() { + return Objects.hash(serviceTarget); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoAssignRoleRootlyTaskParamsOneOf1 {\n"); + sb.append(" serviceTarget: ").append(toIndentedString(serviceTarget)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("service_target"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("service_target"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoAssignRoleRootlyTaskParamsOneOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRoleRootlyTaskParamsOneOf1 is not found in the empty JSON string", AutoAssignRoleRootlyTaskParamsOneOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AutoAssignRoleRootlyTaskParamsOneOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRoleRootlyTaskParamsOneOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AutoAssignRoleRootlyTaskParamsOneOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `service_target` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("service_target")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRoleRootlyTaskParamsOneOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRoleRootlyTaskParamsOneOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRoleRootlyTaskParamsOneOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AutoAssignRoleRootlyTaskParamsOneOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoAssignRoleRootlyTaskParamsOneOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRoleRootlyTaskParamsOneOf1 + * @throws IOException if the JSON string is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf1 + */ + public static AutoAssignRoleRootlyTaskParamsOneOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRoleRootlyTaskParamsOneOf1.class); + } + + /** + * Convert an instance of AutoAssignRoleRootlyTaskParamsOneOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2.java b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2.java new file mode 100644 index 00000000..cb6f118f --- /dev/null +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AutoAssignRoleRootlyTaskParamsOneOf2 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRoleRootlyTaskParamsOneOf2 { + public static final String SERIALIZED_NAME_USER_TARGET = "user_target"; + @SerializedName(SERIALIZED_NAME_USER_TARGET) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner userTarget; + + public AutoAssignRoleRootlyTaskParamsOneOf2() { + } + + public AutoAssignRoleRootlyTaskParamsOneOf2 userTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner userTarget) { + this.userTarget = userTarget; + return this; + } + + /** + * Get userTarget + * @return userTarget + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getUserTarget() { + return userTarget; + } + + public void setUserTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner userTarget) { + this.userTarget = userTarget; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoAssignRoleRootlyTaskParamsOneOf2 autoAssignRoleRootlyTaskParamsOneOf2 = (AutoAssignRoleRootlyTaskParamsOneOf2) o; + return Objects.equals(this.userTarget, autoAssignRoleRootlyTaskParamsOneOf2.userTarget); + } + + @Override + public int hashCode() { + return Objects.hash(userTarget); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoAssignRoleRootlyTaskParamsOneOf2 {\n"); + sb.append(" userTarget: ").append(toIndentedString(userTarget)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("user_target"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("user_target"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf2 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoAssignRoleRootlyTaskParamsOneOf2.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRoleRootlyTaskParamsOneOf2 is not found in the empty JSON string", AutoAssignRoleRootlyTaskParamsOneOf2.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AutoAssignRoleRootlyTaskParamsOneOf2.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRoleRootlyTaskParamsOneOf2` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AutoAssignRoleRootlyTaskParamsOneOf2.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `user_target` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("user_target")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRoleRootlyTaskParamsOneOf2.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRoleRootlyTaskParamsOneOf2' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf2.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRoleRootlyTaskParamsOneOf2 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AutoAssignRoleRootlyTaskParamsOneOf2 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoAssignRoleRootlyTaskParamsOneOf2 given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRoleRootlyTaskParamsOneOf2 + * @throws IOException if the JSON string is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf2 + */ + public static AutoAssignRoleRootlyTaskParamsOneOf2 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRoleRootlyTaskParamsOneOf2.class); + } + + /** + * Convert an instance of AutoAssignRoleRootlyTaskParamsOneOf2 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3.java b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3.java new file mode 100644 index 00000000..2e358f18 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AutoAssignRoleRootlyTaskParamsOneOf3 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRoleRootlyTaskParamsOneOf3 { + public static final String SERIALIZED_NAME_GROUP_TARGET = "group_target"; + @SerializedName(SERIALIZED_NAME_GROUP_TARGET) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner groupTarget; + + public AutoAssignRoleRootlyTaskParamsOneOf3() { + } + + public AutoAssignRoleRootlyTaskParamsOneOf3 groupTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner groupTarget) { + this.groupTarget = groupTarget; + return this; + } + + /** + * Get groupTarget + * @return groupTarget + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getGroupTarget() { + return groupTarget; + } + + public void setGroupTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner groupTarget) { + this.groupTarget = groupTarget; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoAssignRoleRootlyTaskParamsOneOf3 autoAssignRoleRootlyTaskParamsOneOf3 = (AutoAssignRoleRootlyTaskParamsOneOf3) o; + return Objects.equals(this.groupTarget, autoAssignRoleRootlyTaskParamsOneOf3.groupTarget); + } + + @Override + public int hashCode() { + return Objects.hash(groupTarget); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoAssignRoleRootlyTaskParamsOneOf3 {\n"); + sb.append(" groupTarget: ").append(toIndentedString(groupTarget)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("group_target"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("group_target"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf3 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoAssignRoleRootlyTaskParamsOneOf3.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRoleRootlyTaskParamsOneOf3 is not found in the empty JSON string", AutoAssignRoleRootlyTaskParamsOneOf3.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AutoAssignRoleRootlyTaskParamsOneOf3.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRoleRootlyTaskParamsOneOf3` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AutoAssignRoleRootlyTaskParamsOneOf3.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `group_target` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("group_target")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRoleRootlyTaskParamsOneOf3.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRoleRootlyTaskParamsOneOf3' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf3.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRoleRootlyTaskParamsOneOf3 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AutoAssignRoleRootlyTaskParamsOneOf3 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoAssignRoleRootlyTaskParamsOneOf3 given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRoleRootlyTaskParamsOneOf3 + * @throws IOException if the JSON string is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf3 + */ + public static AutoAssignRoleRootlyTaskParamsOneOf3 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRoleRootlyTaskParamsOneOf3.class); + } + + /** + * Convert an instance of AutoAssignRoleRootlyTaskParamsOneOf3 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4.java b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4.java new file mode 100644 index 00000000..f59912d9 --- /dev/null +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * AutoAssignRoleRootlyTaskParamsOneOf4 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class AutoAssignRoleRootlyTaskParamsOneOf4 { + public static final String SERIALIZED_NAME_SCHEDULE_TARGET = "schedule_target"; + @SerializedName(SERIALIZED_NAME_SCHEDULE_TARGET) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget; + + public AutoAssignRoleRootlyTaskParamsOneOf4() { + } + + public AutoAssignRoleRootlyTaskParamsOneOf4 scheduleTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget) { + this.scheduleTarget = scheduleTarget; + return this; + } + + /** + * Get scheduleTarget + * @return scheduleTarget + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getScheduleTarget() { + return scheduleTarget; + } + + public void setScheduleTarget(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget) { + this.scheduleTarget = scheduleTarget; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AutoAssignRoleRootlyTaskParamsOneOf4 autoAssignRoleRootlyTaskParamsOneOf4 = (AutoAssignRoleRootlyTaskParamsOneOf4) o; + return Objects.equals(this.scheduleTarget, autoAssignRoleRootlyTaskParamsOneOf4.scheduleTarget); + } + + @Override + public int hashCode() { + return Objects.hash(scheduleTarget); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AutoAssignRoleRootlyTaskParamsOneOf4 {\n"); + sb.append(" scheduleTarget: ").append(toIndentedString(scheduleTarget)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("schedule_target"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("schedule_target"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf4 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AutoAssignRoleRootlyTaskParamsOneOf4.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in AutoAssignRoleRootlyTaskParamsOneOf4 is not found in the empty JSON string", AutoAssignRoleRootlyTaskParamsOneOf4.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AutoAssignRoleRootlyTaskParamsOneOf4.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AutoAssignRoleRootlyTaskParamsOneOf4` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AutoAssignRoleRootlyTaskParamsOneOf4.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `schedule_target` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("schedule_target")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AutoAssignRoleRootlyTaskParamsOneOf4.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AutoAssignRoleRootlyTaskParamsOneOf4' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRoleRootlyTaskParamsOneOf4.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AutoAssignRoleRootlyTaskParamsOneOf4 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AutoAssignRoleRootlyTaskParamsOneOf4 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of AutoAssignRoleRootlyTaskParamsOneOf4 given an JSON string + * + * @param jsonString JSON string + * @return An instance of AutoAssignRoleRootlyTaskParamsOneOf4 + * @throws IOException if the JSON string is invalid with respect to AutoAssignRoleRootlyTaskParamsOneOf4 + */ + public static AutoAssignRoleRootlyTaskParamsOneOf4 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AutoAssignRoleRootlyTaskParamsOneOf4.class); + } + + /** + * Convert an instance of AutoAssignRoleRootlyTaskParamsOneOf4 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/AutoAssignRoleVictorOpsTaskParams.java b/src/main/java/com/rootly/client/model/AutoAssignRoleVictorOpsTaskParams.java index 572f9c3e..6cd3d337 100644 --- a/src/main/java/com/rootly/client/model/AutoAssignRoleVictorOpsTaskParams.java +++ b/src/main/java/com/rootly/client/model/AutoAssignRoleVictorOpsTaskParams.java @@ -49,7 +49,7 @@ /** * AutoAssignRoleVictorOpsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class AutoAssignRoleVictorOpsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/BuiltinField.java b/src/main/java/com/rootly/client/model/BuiltinField.java index 9480fc2b..73d31444 100644 --- a/src/main/java/com/rootly/client/model/BuiltinField.java +++ b/src/main/java/com/rootly/client/model/BuiltinField.java @@ -48,7 +48,7 @@ /** * BuiltinField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class BuiltinField { /** * Gets or Sets fieldSource @@ -102,18 +102,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_FIELD_SOURCE = "field_source"; @SerializedName(SERIALIZED_NAME_FIELD_SOURCE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private FieldSourceEnum fieldSource; public static final String SERIALIZED_NAME_FIELD_KEY = "field_key"; @SerializedName(SERIALIZED_NAME_FIELD_KEY) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String fieldKey; public BuiltinField() { } - public BuiltinField fieldSource(@javax.annotation.Nonnull FieldSourceEnum fieldSource) { + public BuiltinField fieldSource(@jakarta.annotation.Nonnull FieldSourceEnum fieldSource) { this.fieldSource = fieldSource; return this; } @@ -122,17 +122,17 @@ public BuiltinField fieldSource(@javax.annotation.Nonnull FieldSourceEnum fieldS * Get fieldSource * @return fieldSource */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public FieldSourceEnum getFieldSource() { return fieldSource; } - public void setFieldSource(@javax.annotation.Nonnull FieldSourceEnum fieldSource) { + public void setFieldSource(@jakarta.annotation.Nonnull FieldSourceEnum fieldSource) { this.fieldSource = fieldSource; } - public BuiltinField fieldKey(@javax.annotation.Nonnull String fieldKey) { + public BuiltinField fieldKey(@jakarta.annotation.Nonnull String fieldKey) { this.fieldKey = fieldKey; return this; } @@ -141,12 +141,12 @@ public BuiltinField fieldKey(@javax.annotation.Nonnull String fieldKey) { * Key identifying the builtin field * @return fieldKey */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getFieldKey() { return fieldKey; } - public void setFieldKey(@javax.annotation.Nonnull String fieldKey) { + public void setFieldKey(@jakarta.annotation.Nonnull String fieldKey) { this.fieldKey = fieldKey; } diff --git a/src/main/java/com/rootly/client/model/BulkDeleteCatalogEntities422Response.java b/src/main/java/com/rootly/client/model/BulkDeleteCatalogEntities422Response.java new file mode 100644 index 00000000..67890cd6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDeleteCatalogEntities422Response.java @@ -0,0 +1,271 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponse; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDeleteCatalogEntities422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDeleteCatalogEntities422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDeleteCatalogEntities422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDeleteCatalogEntities422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkDestroyCatalogEntitiesResponse = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDeleteCatalogEntities422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyCatalogEntitiesResponse` + if (value.getActualInstance() instanceof BulkDestroyCatalogEntitiesResponse) { + JsonElement element = adapterBulkDestroyCatalogEntitiesResponse.toJsonTree((BulkDestroyCatalogEntitiesResponse)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkDestroyCatalogEntitiesResponse, ErrorsList"); + } + + @Override + public BulkDeleteCatalogEntities422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkDeleteCatalogEntities422Response ret = new BulkDeleteCatalogEntities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkDestroyCatalogEntitiesResponse + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyCatalogEntitiesResponse.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyCatalogEntitiesResponse; + BulkDeleteCatalogEntities422Response ret = new BulkDeleteCatalogEntities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesResponse failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyCatalogEntitiesResponse'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkDeleteCatalogEntities422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkDeleteCatalogEntities422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkDeleteCatalogEntities422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkDestroyCatalogEntitiesResponse", BulkDestroyCatalogEntitiesResponse.class); + } + + @Override + public Map> getSchemas() { + return BulkDeleteCatalogEntities422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkDestroyCatalogEntitiesResponse, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyCatalogEntitiesResponse) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyCatalogEntitiesResponse, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyCatalogEntitiesResponse, ErrorsList + * + * @return The actual instance (BulkDestroyCatalogEntitiesResponse, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyCatalogEntitiesResponse`. If the actual instance is not `BulkDestroyCatalogEntitiesResponse`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyCatalogEntitiesResponse` + * @throws ClassCastException if the instance is not `BulkDestroyCatalogEntitiesResponse` + */ + public BulkDestroyCatalogEntitiesResponse getBulkDestroyCatalogEntitiesResponse() throws ClassCastException { + return (BulkDestroyCatalogEntitiesResponse)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDeleteCatalogEntities422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyCatalogEntitiesResponse + try { + BulkDestroyCatalogEntitiesResponse.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesResponse failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkDeleteCatalogEntities422Response with anyOf schemas: BulkDestroyCatalogEntitiesResponse, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkDeleteCatalogEntities422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDeleteCatalogEntities422Response + * @throws IOException if the JSON string is invalid with respect to BulkDeleteCatalogEntities422Response + */ + public static BulkDeleteCatalogEntities422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDeleteCatalogEntities422Response.class); + } + + /** + * Convert an instance of BulkDeleteCatalogEntities422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDeleteEnvironments422Response.java b/src/main/java/com/rootly/client/model/BulkDeleteEnvironments422Response.java new file mode 100644 index 00000000..539bc70f --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDeleteEnvironments422Response.java @@ -0,0 +1,271 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyEnvironmentsResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDeleteEnvironments422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDeleteEnvironments422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDeleteEnvironments422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDeleteEnvironments422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkDestroyEnvironmentsResponse = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyEnvironmentsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDeleteEnvironments422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyEnvironmentsResponse` + if (value.getActualInstance() instanceof BulkDestroyEnvironmentsResponse) { + JsonElement element = adapterBulkDestroyEnvironmentsResponse.toJsonTree((BulkDestroyEnvironmentsResponse)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkDestroyEnvironmentsResponse, ErrorsList"); + } + + @Override + public BulkDeleteEnvironments422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkDeleteEnvironments422Response ret = new BulkDeleteEnvironments422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkDestroyEnvironmentsResponse + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyEnvironmentsResponse.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyEnvironmentsResponse; + BulkDeleteEnvironments422Response ret = new BulkDeleteEnvironments422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsResponse failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyEnvironmentsResponse'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkDeleteEnvironments422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkDeleteEnvironments422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkDeleteEnvironments422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkDestroyEnvironmentsResponse", BulkDestroyEnvironmentsResponse.class); + } + + @Override + public Map> getSchemas() { + return BulkDeleteEnvironments422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkDestroyEnvironmentsResponse, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyEnvironmentsResponse) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyEnvironmentsResponse, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyEnvironmentsResponse, ErrorsList + * + * @return The actual instance (BulkDestroyEnvironmentsResponse, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyEnvironmentsResponse`. If the actual instance is not `BulkDestroyEnvironmentsResponse`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyEnvironmentsResponse` + * @throws ClassCastException if the instance is not `BulkDestroyEnvironmentsResponse` + */ + public BulkDestroyEnvironmentsResponse getBulkDestroyEnvironmentsResponse() throws ClassCastException { + return (BulkDestroyEnvironmentsResponse)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDeleteEnvironments422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyEnvironmentsResponse + try { + BulkDestroyEnvironmentsResponse.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsResponse failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkDeleteEnvironments422Response with anyOf schemas: BulkDestroyEnvironmentsResponse, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkDeleteEnvironments422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDeleteEnvironments422Response + * @throws IOException if the JSON string is invalid with respect to BulkDeleteEnvironments422Response + */ + public static BulkDeleteEnvironments422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDeleteEnvironments422Response.class); + } + + /** + * Convert an instance of BulkDeleteEnvironments422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDeleteFunctionalities422Response.java b/src/main/java/com/rootly/client/model/BulkDeleteFunctionalities422Response.java new file mode 100644 index 00000000..5cf291ed --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDeleteFunctionalities422Response.java @@ -0,0 +1,271 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyFunctionalitiesResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDeleteFunctionalities422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDeleteFunctionalities422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDeleteFunctionalities422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDeleteFunctionalities422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkDestroyFunctionalitiesResponse = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyFunctionalitiesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDeleteFunctionalities422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyFunctionalitiesResponse` + if (value.getActualInstance() instanceof BulkDestroyFunctionalitiesResponse) { + JsonElement element = adapterBulkDestroyFunctionalitiesResponse.toJsonTree((BulkDestroyFunctionalitiesResponse)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkDestroyFunctionalitiesResponse, ErrorsList"); + } + + @Override + public BulkDeleteFunctionalities422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkDeleteFunctionalities422Response ret = new BulkDeleteFunctionalities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkDestroyFunctionalitiesResponse + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyFunctionalitiesResponse.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyFunctionalitiesResponse; + BulkDeleteFunctionalities422Response ret = new BulkDeleteFunctionalities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyFunctionalitiesResponse failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyFunctionalitiesResponse'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkDeleteFunctionalities422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkDeleteFunctionalities422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkDeleteFunctionalities422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkDestroyFunctionalitiesResponse", BulkDestroyFunctionalitiesResponse.class); + } + + @Override + public Map> getSchemas() { + return BulkDeleteFunctionalities422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkDestroyFunctionalitiesResponse, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyFunctionalitiesResponse) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyFunctionalitiesResponse, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyFunctionalitiesResponse, ErrorsList + * + * @return The actual instance (BulkDestroyFunctionalitiesResponse, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyFunctionalitiesResponse`. If the actual instance is not `BulkDestroyFunctionalitiesResponse`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyFunctionalitiesResponse` + * @throws ClassCastException if the instance is not `BulkDestroyFunctionalitiesResponse` + */ + public BulkDestroyFunctionalitiesResponse getBulkDestroyFunctionalitiesResponse() throws ClassCastException { + return (BulkDestroyFunctionalitiesResponse)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDeleteFunctionalities422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyFunctionalitiesResponse + try { + BulkDestroyFunctionalitiesResponse.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyFunctionalitiesResponse failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkDeleteFunctionalities422Response with anyOf schemas: BulkDestroyFunctionalitiesResponse, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkDeleteFunctionalities422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDeleteFunctionalities422Response + * @throws IOException if the JSON string is invalid with respect to BulkDeleteFunctionalities422Response + */ + public static BulkDeleteFunctionalities422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDeleteFunctionalities422Response.class); + } + + /** + * Convert an instance of BulkDeleteFunctionalities422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDeleteGroups422Response.java b/src/main/java/com/rootly/client/model/BulkDeleteGroups422Response.java new file mode 100644 index 00000000..e08ffc47 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDeleteGroups422Response.java @@ -0,0 +1,271 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyTeamsResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDeleteGroups422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDeleteGroups422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDeleteGroups422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDeleteGroups422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkDestroyTeamsResponse = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyTeamsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDeleteGroups422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyTeamsResponse` + if (value.getActualInstance() instanceof BulkDestroyTeamsResponse) { + JsonElement element = adapterBulkDestroyTeamsResponse.toJsonTree((BulkDestroyTeamsResponse)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkDestroyTeamsResponse, ErrorsList"); + } + + @Override + public BulkDeleteGroups422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkDeleteGroups422Response ret = new BulkDeleteGroups422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkDestroyTeamsResponse + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyTeamsResponse.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyTeamsResponse; + BulkDeleteGroups422Response ret = new BulkDeleteGroups422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyTeamsResponse failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyTeamsResponse'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkDeleteGroups422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkDeleteGroups422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkDeleteGroups422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkDestroyTeamsResponse", BulkDestroyTeamsResponse.class); + } + + @Override + public Map> getSchemas() { + return BulkDeleteGroups422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkDestroyTeamsResponse, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyTeamsResponse) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyTeamsResponse, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyTeamsResponse, ErrorsList + * + * @return The actual instance (BulkDestroyTeamsResponse, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyTeamsResponse`. If the actual instance is not `BulkDestroyTeamsResponse`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyTeamsResponse` + * @throws ClassCastException if the instance is not `BulkDestroyTeamsResponse` + */ + public BulkDestroyTeamsResponse getBulkDestroyTeamsResponse() throws ClassCastException { + return (BulkDestroyTeamsResponse)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDeleteGroups422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyTeamsResponse + try { + BulkDestroyTeamsResponse.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyTeamsResponse failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkDeleteGroups422Response with anyOf schemas: BulkDestroyTeamsResponse, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkDeleteGroups422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDeleteGroups422Response + * @throws IOException if the JSON string is invalid with respect to BulkDeleteGroups422Response + */ + public static BulkDeleteGroups422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDeleteGroups422Response.class); + } + + /** + * Convert an instance of BulkDeleteGroups422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDeleteServices422Response.java b/src/main/java/com/rootly/client/model/BulkDeleteServices422Response.java new file mode 100644 index 00000000..003b1904 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDeleteServices422Response.java @@ -0,0 +1,271 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyServicesResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDeleteServices422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDeleteServices422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDeleteServices422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDeleteServices422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkDestroyServicesResponse = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyServicesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDeleteServices422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyServicesResponse` + if (value.getActualInstance() instanceof BulkDestroyServicesResponse) { + JsonElement element = adapterBulkDestroyServicesResponse.toJsonTree((BulkDestroyServicesResponse)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkDestroyServicesResponse, ErrorsList"); + } + + @Override + public BulkDeleteServices422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkDeleteServices422Response ret = new BulkDeleteServices422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkDestroyServicesResponse + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyServicesResponse.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyServicesResponse; + BulkDeleteServices422Response ret = new BulkDeleteServices422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyServicesResponse failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyServicesResponse'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkDeleteServices422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkDeleteServices422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkDeleteServices422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkDestroyServicesResponse", BulkDestroyServicesResponse.class); + } + + @Override + public Map> getSchemas() { + return BulkDeleteServices422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkDestroyServicesResponse, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyServicesResponse) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyServicesResponse, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyServicesResponse, ErrorsList + * + * @return The actual instance (BulkDestroyServicesResponse, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyServicesResponse`. If the actual instance is not `BulkDestroyServicesResponse`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyServicesResponse` + * @throws ClassCastException if the instance is not `BulkDestroyServicesResponse` + */ + public BulkDestroyServicesResponse getBulkDestroyServicesResponse() throws ClassCastException { + return (BulkDestroyServicesResponse)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDeleteServices422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyServicesResponse + try { + BulkDestroyServicesResponse.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyServicesResponse failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkDeleteServices422Response with anyOf schemas: BulkDestroyServicesResponse, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkDeleteServices422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDeleteServices422Response + * @throws IOException if the JSON string is invalid with respect to BulkDeleteServices422Response + */ + public static BulkDeleteServices422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDeleteServices422Response.class); + } + + /** + * Convert an instance of BulkDeleteServices422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntities.java b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntities.java new file mode 100644 index 00000000..894d710a --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntities.java @@ -0,0 +1,277 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf1; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyCatalogEntities extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDestroyCatalogEntities.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyCatalogEntities.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyCatalogEntities' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterBulkDestroyCatalogEntitiesOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf.class)); + final TypeAdapter adapterBulkDestroyCatalogEntitiesOneOf1 = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyCatalogEntities value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `BulkDestroyCatalogEntitiesOneOf` + if (value.getActualInstance() instanceof BulkDestroyCatalogEntitiesOneOf) { + JsonElement element = adapterBulkDestroyCatalogEntitiesOneOf.toJsonTree((BulkDestroyCatalogEntitiesOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyCatalogEntitiesOneOf1` + if (value.getActualInstance() instanceof BulkDestroyCatalogEntitiesOneOf1) { + JsonElement element = adapterBulkDestroyCatalogEntitiesOneOf1.toJsonTree((BulkDestroyCatalogEntitiesOneOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyCatalogEntitiesOneOf1"); + } + + @Override + public BulkDestroyCatalogEntities read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize BulkDestroyCatalogEntitiesOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyCatalogEntitiesOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyCatalogEntitiesOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyCatalogEntitiesOneOf'", e); + } + // deserialize BulkDestroyCatalogEntitiesOneOf1 + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyCatalogEntitiesOneOf1.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyCatalogEntitiesOneOf1; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyCatalogEntitiesOneOf1'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyCatalogEntitiesOneOf1'", e); + } + + if (match == 1) { + BulkDestroyCatalogEntities ret = new BulkDestroyCatalogEntities(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for BulkDestroyCatalogEntities: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public BulkDestroyCatalogEntities() { + super("oneOf", Boolean.FALSE); + } + + public BulkDestroyCatalogEntities(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("BulkDestroyCatalogEntitiesOneOf", BulkDestroyCatalogEntitiesOneOf.class); + schemas.put("BulkDestroyCatalogEntitiesOneOf1", BulkDestroyCatalogEntitiesOneOf1.class); + } + + @Override + public Map> getSchemas() { + return BulkDestroyCatalogEntities.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyCatalogEntitiesOneOf1 + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof BulkDestroyCatalogEntitiesOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyCatalogEntitiesOneOf1) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyCatalogEntitiesOneOf, BulkDestroyCatalogEntitiesOneOf1"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyCatalogEntitiesOneOf1 + * + * @return The actual instance (BulkDestroyCatalogEntitiesOneOf, BulkDestroyCatalogEntitiesOneOf1) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyCatalogEntitiesOneOf`. If the actual instance is not `BulkDestroyCatalogEntitiesOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyCatalogEntitiesOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyCatalogEntitiesOneOf` + */ + public BulkDestroyCatalogEntitiesOneOf getBulkDestroyCatalogEntitiesOneOf() throws ClassCastException { + return (BulkDestroyCatalogEntitiesOneOf)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyCatalogEntitiesOneOf1`. If the actual instance is not `BulkDestroyCatalogEntitiesOneOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyCatalogEntitiesOneOf1` + * @throws ClassCastException if the instance is not `BulkDestroyCatalogEntitiesOneOf1` + */ + public BulkDestroyCatalogEntitiesOneOf1 getBulkDestroyCatalogEntitiesOneOf1() throws ClassCastException { + return (BulkDestroyCatalogEntitiesOneOf1)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyCatalogEntities + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with BulkDestroyCatalogEntitiesOneOf + try { + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyCatalogEntitiesOneOf1 + try { + BulkDestroyCatalogEntitiesOneOf1.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf1 failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for BulkDestroyCatalogEntities with oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyCatalogEntitiesOneOf1. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of BulkDestroyCatalogEntities given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyCatalogEntities + * @throws IOException if the JSON string is invalid with respect to BulkDestroyCatalogEntities + */ + public static BulkDestroyCatalogEntities fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyCatalogEntities.class); + } + + /** + * Convert an instance of BulkDestroyCatalogEntities to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf.java b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf.java new file mode 100644 index 00000000..e1d77818 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf.java @@ -0,0 +1,227 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyCatalogEntitiesOneOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyCatalogEntitiesOneOf { + public static final String SERIALIZED_NAME_EXTERNAL_IDS = "external_ids"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_IDS) + @jakarta.annotation.Nonnull + private List externalIds = new ArrayList<>(); + + public BulkDestroyCatalogEntitiesOneOf() { + } + + public BulkDestroyCatalogEntitiesOneOf externalIds(@jakarta.annotation.Nonnull List externalIds) { + this.externalIds = externalIds; + return this; + } + + public BulkDestroyCatalogEntitiesOneOf addExternalIdsItem(String externalIdsItem) { + if (this.externalIds == null) { + this.externalIds = new ArrayList<>(); + } + this.externalIds.add(externalIdsItem); + return this; + } + + /** + * Array of external_ids to delete. Max 100 per request. + * @return externalIds + */ + @jakarta.annotation.Nonnull + public List getExternalIds() { + return externalIds; + } + + public void setExternalIds(@jakarta.annotation.Nonnull List externalIds) { + this.externalIds = externalIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyCatalogEntitiesOneOf bulkDestroyCatalogEntitiesOneOf = (BulkDestroyCatalogEntitiesOneOf) o; + return Objects.equals(this.externalIds, bulkDestroyCatalogEntitiesOneOf.externalIds); + } + + @Override + public int hashCode() { + return Objects.hash(externalIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyCatalogEntitiesOneOf {\n"); + sb.append(" externalIds: ").append(toIndentedString(externalIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("external_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("external_ids"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyCatalogEntitiesOneOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyCatalogEntitiesOneOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyCatalogEntitiesOneOf is not found in the empty JSON string", BulkDestroyCatalogEntitiesOneOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyCatalogEntitiesOneOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyCatalogEntitiesOneOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkDestroyCatalogEntitiesOneOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the required json array is present + if (jsonObj.get("external_ids") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("external_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `external_ids` to be an array in the JSON string but got `%s`", jsonObj.get("external_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyCatalogEntitiesOneOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyCatalogEntitiesOneOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyCatalogEntitiesOneOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyCatalogEntitiesOneOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyCatalogEntitiesOneOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyCatalogEntitiesOneOf + * @throws IOException if the JSON string is invalid with respect to BulkDestroyCatalogEntitiesOneOf + */ + public static BulkDestroyCatalogEntitiesOneOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyCatalogEntitiesOneOf.class); + } + + /** + * Convert an instance of BulkDestroyCatalogEntitiesOneOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1.java b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1.java new file mode 100644 index 00000000..c052852c --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1.java @@ -0,0 +1,315 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyCatalogEntitiesOneOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyCatalogEntitiesOneOf1 { + /** + * Delete all entities with this managed_by value (web/admin_web not allowed). + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nonnull + private ManagedByEnum managedBy; + + public static final String SERIALIZED_NAME_KEEP_EXTERNAL_IDS = "keep_external_ids"; + @SerializedName(SERIALIZED_NAME_KEEP_EXTERNAL_IDS) + @jakarta.annotation.Nullable + private List keepExternalIds = new ArrayList<>(); + + public BulkDestroyCatalogEntitiesOneOf1() { + } + + public BulkDestroyCatalogEntitiesOneOf1 managedBy(@jakarta.annotation.Nonnull ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * Delete all entities with this managed_by value (web/admin_web not allowed). + * @return managedBy + */ + @jakarta.annotation.Nonnull + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nonnull ManagedByEnum managedBy) { + this.managedBy = managedBy; + } + + + public BulkDestroyCatalogEntitiesOneOf1 keepExternalIds(@jakarta.annotation.Nullable List keepExternalIds) { + this.keepExternalIds = keepExternalIds; + return this; + } + + public BulkDestroyCatalogEntitiesOneOf1 addKeepExternalIdsItem(String keepExternalIdsItem) { + if (this.keepExternalIds == null) { + this.keepExternalIds = new ArrayList<>(); + } + this.keepExternalIds.add(keepExternalIdsItem); + return this; + } + + /** + * Entities with these external_ids are preserved. + * @return keepExternalIds + */ + @jakarta.annotation.Nullable + public List getKeepExternalIds() { + return keepExternalIds; + } + + public void setKeepExternalIds(@jakarta.annotation.Nullable List keepExternalIds) { + this.keepExternalIds = keepExternalIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyCatalogEntitiesOneOf1 bulkDestroyCatalogEntitiesOneOf1 = (BulkDestroyCatalogEntitiesOneOf1) o; + return Objects.equals(this.managedBy, bulkDestroyCatalogEntitiesOneOf1.managedBy) && + Objects.equals(this.keepExternalIds, bulkDestroyCatalogEntitiesOneOf1.keepExternalIds); + } + + @Override + public int hashCode() { + return Objects.hash(managedBy, keepExternalIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyCatalogEntitiesOneOf1 {\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); + sb.append(" keepExternalIds: ").append(toIndentedString(keepExternalIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("managed_by"); + openapiFields.add("keep_external_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("managed_by"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyCatalogEntitiesOneOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyCatalogEntitiesOneOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyCatalogEntitiesOneOf1 is not found in the empty JSON string", BulkDestroyCatalogEntitiesOneOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyCatalogEntitiesOneOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyCatalogEntitiesOneOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkDestroyCatalogEntitiesOneOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the required field `managed_by` + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + // ensure the optional json data is an array if present + if (jsonObj.get("keep_external_ids") != null && !jsonObj.get("keep_external_ids").isJsonNull() && !jsonObj.get("keep_external_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `keep_external_ids` to be an array in the JSON string but got `%s`", jsonObj.get("keep_external_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyCatalogEntitiesOneOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyCatalogEntitiesOneOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyCatalogEntitiesOneOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyCatalogEntitiesOneOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyCatalogEntitiesOneOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyCatalogEntitiesOneOf1 + * @throws IOException if the JSON string is invalid with respect to BulkDestroyCatalogEntitiesOneOf1 + */ + public static BulkDestroyCatalogEntitiesOneOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyCatalogEntitiesOneOf1.class); + } + + /** + * Convert an instance of BulkDestroyCatalogEntitiesOneOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponse.java b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponse.java new file mode 100644 index 00000000..797d6d4c --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponse.java @@ -0,0 +1,208 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyCatalogEntitiesResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyCatalogEntitiesResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private BulkDestroyCatalogEntitiesResponseData data; + + public BulkDestroyCatalogEntitiesResponse() { + } + + public BulkDestroyCatalogEntitiesResponse data(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public BulkDestroyCatalogEntitiesResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyCatalogEntitiesResponse bulkDestroyCatalogEntitiesResponse = (BulkDestroyCatalogEntitiesResponse) o; + return Objects.equals(this.data, bulkDestroyCatalogEntitiesResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyCatalogEntitiesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyCatalogEntitiesResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyCatalogEntitiesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyCatalogEntitiesResponse is not found in the empty JSON string", BulkDestroyCatalogEntitiesResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyCatalogEntitiesResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyCatalogEntitiesResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + BulkDestroyCatalogEntitiesResponseData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyCatalogEntitiesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyCatalogEntitiesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyCatalogEntitiesResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyCatalogEntitiesResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyCatalogEntitiesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyCatalogEntitiesResponse + * @throws IOException if the JSON string is invalid with respect to BulkDestroyCatalogEntitiesResponse + */ + public static BulkDestroyCatalogEntitiesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyCatalogEntitiesResponse.class); + } + + /** + * Convert an instance of BulkDestroyCatalogEntitiesResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseData.java b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseData.java new file mode 100644 index 00000000..78808035 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseData.java @@ -0,0 +1,295 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyCatalogEntitiesResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyCatalogEntitiesResponseData { + public static final String SERIALIZED_NAME_DELETED_EXTERNAL_IDS = "deleted_external_ids"; + @SerializedName(SERIALIZED_NAME_DELETED_EXTERNAL_IDS) + @jakarta.annotation.Nullable + private List deletedExternalIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_FAILED_EXTERNAL_IDS = "failed_external_ids"; + @SerializedName(SERIALIZED_NAME_FAILED_EXTERNAL_IDS) + @jakarta.annotation.Nullable + private List failedExternalIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_NOT_FOUND_EXTERNAL_IDS = "not_found_external_ids"; + @SerializedName(SERIALIZED_NAME_NOT_FOUND_EXTERNAL_IDS) + @jakarta.annotation.Nullable + private List notFoundExternalIds = new ArrayList<>(); + + public BulkDestroyCatalogEntitiesResponseData() { + } + + public BulkDestroyCatalogEntitiesResponseData deletedExternalIds(@jakarta.annotation.Nullable List deletedExternalIds) { + this.deletedExternalIds = deletedExternalIds; + return this; + } + + public BulkDestroyCatalogEntitiesResponseData addDeletedExternalIdsItem(String deletedExternalIdsItem) { + if (this.deletedExternalIds == null) { + this.deletedExternalIds = new ArrayList<>(); + } + this.deletedExternalIds.add(deletedExternalIdsItem); + return this; + } + + /** + * External IDs that were successfully deleted + * @return deletedExternalIds + */ + @jakarta.annotation.Nullable + public List getDeletedExternalIds() { + return deletedExternalIds; + } + + public void setDeletedExternalIds(@jakarta.annotation.Nullable List deletedExternalIds) { + this.deletedExternalIds = deletedExternalIds; + } + + + public BulkDestroyCatalogEntitiesResponseData failedExternalIds(@jakarta.annotation.Nullable List failedExternalIds) { + this.failedExternalIds = failedExternalIds; + return this; + } + + public BulkDestroyCatalogEntitiesResponseData addFailedExternalIdsItem(String failedExternalIdsItem) { + if (this.failedExternalIds == null) { + this.failedExternalIds = new ArrayList<>(); + } + this.failedExternalIds.add(failedExternalIdsItem); + return this; + } + + /** + * External IDs whose deletion the record itself blocked (e.g. minimum-one guard, restrict associations). Records the caller is not authorized to destroy are NOT listed here. + * @return failedExternalIds + */ + @jakarta.annotation.Nullable + public List getFailedExternalIds() { + return failedExternalIds; + } + + public void setFailedExternalIds(@jakarta.annotation.Nullable List failedExternalIds) { + this.failedExternalIds = failedExternalIds; + } + + + public BulkDestroyCatalogEntitiesResponseData notFoundExternalIds(@jakarta.annotation.Nullable List notFoundExternalIds) { + this.notFoundExternalIds = notFoundExternalIds; + return this; + } + + public BulkDestroyCatalogEntitiesResponseData addNotFoundExternalIdsItem(String notFoundExternalIdsItem) { + if (this.notFoundExternalIds == null) { + this.notFoundExternalIds = new ArrayList<>(); + } + this.notFoundExternalIds.add(notFoundExternalIdsItem); + return this; + } + + /** + * External IDs that were not found or not accessible to the caller (external_ids mode only) + * @return notFoundExternalIds + */ + @jakarta.annotation.Nullable + public List getNotFoundExternalIds() { + return notFoundExternalIds; + } + + public void setNotFoundExternalIds(@jakarta.annotation.Nullable List notFoundExternalIds) { + this.notFoundExternalIds = notFoundExternalIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyCatalogEntitiesResponseData bulkDestroyCatalogEntitiesResponseData = (BulkDestroyCatalogEntitiesResponseData) o; + return Objects.equals(this.deletedExternalIds, bulkDestroyCatalogEntitiesResponseData.deletedExternalIds) && + Objects.equals(this.failedExternalIds, bulkDestroyCatalogEntitiesResponseData.failedExternalIds) && + Objects.equals(this.notFoundExternalIds, bulkDestroyCatalogEntitiesResponseData.notFoundExternalIds); + } + + @Override + public int hashCode() { + return Objects.hash(deletedExternalIds, failedExternalIds, notFoundExternalIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyCatalogEntitiesResponseData {\n"); + sb.append(" deletedExternalIds: ").append(toIndentedString(deletedExternalIds)).append("\n"); + sb.append(" failedExternalIds: ").append(toIndentedString(failedExternalIds)).append("\n"); + sb.append(" notFoundExternalIds: ").append(toIndentedString(notFoundExternalIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("deleted_external_ids"); + openapiFields.add("failed_external_ids"); + openapiFields.add("not_found_external_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyCatalogEntitiesResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyCatalogEntitiesResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyCatalogEntitiesResponseData is not found in the empty JSON string", BulkDestroyCatalogEntitiesResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyCatalogEntitiesResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyCatalogEntitiesResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("deleted_external_ids") != null && !jsonObj.get("deleted_external_ids").isJsonNull() && !jsonObj.get("deleted_external_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `deleted_external_ids` to be an array in the JSON string but got `%s`", jsonObj.get("deleted_external_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("failed_external_ids") != null && !jsonObj.get("failed_external_ids").isJsonNull() && !jsonObj.get("failed_external_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `failed_external_ids` to be an array in the JSON string but got `%s`", jsonObj.get("failed_external_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("not_found_external_ids") != null && !jsonObj.get("not_found_external_ids").isJsonNull() && !jsonObj.get("not_found_external_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `not_found_external_ids` to be an array in the JSON string but got `%s`", jsonObj.get("not_found_external_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyCatalogEntitiesResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyCatalogEntitiesResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyCatalogEntitiesResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyCatalogEntitiesResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyCatalogEntitiesResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyCatalogEntitiesResponseData + * @throws IOException if the JSON string is invalid with respect to BulkDestroyCatalogEntitiesResponseData + */ + public static BulkDestroyCatalogEntitiesResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyCatalogEntitiesResponseData.class); + } + + /** + * Convert an instance of BulkDestroyCatalogEntitiesResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyEnvironments.java b/src/main/java/com/rootly/client/model/BulkDestroyEnvironments.java new file mode 100644 index 00000000..625d8b61 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyEnvironments.java @@ -0,0 +1,277 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyEnvironments extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDestroyEnvironments.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyEnvironments.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyEnvironments' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterBulkDestroyCatalogEntitiesOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf.class)); + final TypeAdapter adapterBulkDestroyEnvironmentsOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyEnvironmentsOneOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyEnvironments value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `BulkDestroyCatalogEntitiesOneOf` + if (value.getActualInstance() instanceof BulkDestroyCatalogEntitiesOneOf) { + JsonElement element = adapterBulkDestroyCatalogEntitiesOneOf.toJsonTree((BulkDestroyCatalogEntitiesOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyEnvironmentsOneOf` + if (value.getActualInstance() instanceof BulkDestroyEnvironmentsOneOf) { + JsonElement element = adapterBulkDestroyEnvironmentsOneOf.toJsonTree((BulkDestroyEnvironmentsOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + @Override + public BulkDestroyEnvironments read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize BulkDestroyCatalogEntitiesOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyCatalogEntitiesOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyCatalogEntitiesOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyCatalogEntitiesOneOf'", e); + } + // deserialize BulkDestroyEnvironmentsOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyEnvironmentsOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyEnvironmentsOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyEnvironmentsOneOf'", e); + } + + if (match == 1) { + BulkDestroyEnvironments ret = new BulkDestroyEnvironments(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for BulkDestroyEnvironments: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public BulkDestroyEnvironments() { + super("oneOf", Boolean.FALSE); + } + + public BulkDestroyEnvironments(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("BulkDestroyCatalogEntitiesOneOf", BulkDestroyCatalogEntitiesOneOf.class); + schemas.put("BulkDestroyEnvironmentsOneOf", BulkDestroyEnvironmentsOneOf.class); + } + + @Override + public Map> getSchemas() { + return BulkDestroyEnvironments.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof BulkDestroyCatalogEntitiesOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyEnvironmentsOneOf) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * @return The actual instance (BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyCatalogEntitiesOneOf`. If the actual instance is not `BulkDestroyCatalogEntitiesOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyCatalogEntitiesOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyCatalogEntitiesOneOf` + */ + public BulkDestroyCatalogEntitiesOneOf getBulkDestroyCatalogEntitiesOneOf() throws ClassCastException { + return (BulkDestroyCatalogEntitiesOneOf)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyEnvironmentsOneOf`. If the actual instance is not `BulkDestroyEnvironmentsOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyEnvironmentsOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyEnvironmentsOneOf` + */ + public BulkDestroyEnvironmentsOneOf getBulkDestroyEnvironmentsOneOf() throws ClassCastException { + return (BulkDestroyEnvironmentsOneOf)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyEnvironments + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with BulkDestroyCatalogEntitiesOneOf + try { + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyEnvironmentsOneOf + try { + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for BulkDestroyEnvironments with oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of BulkDestroyEnvironments given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyEnvironments + * @throws IOException if the JSON string is invalid with respect to BulkDestroyEnvironments + */ + public static BulkDestroyEnvironments fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyEnvironments.class); + } + + /** + * Convert an instance of BulkDestroyEnvironments to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOf.java b/src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOf.java new file mode 100644 index 00000000..bcbd9e30 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOf.java @@ -0,0 +1,315 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyEnvironmentsOneOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyEnvironmentsOneOf { + /** + * Delete all records with this managed_by value (web/admin_web not allowed). + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nonnull + private ManagedByEnum managedBy; + + public static final String SERIALIZED_NAME_KEEP_EXTERNAL_IDS = "keep_external_ids"; + @SerializedName(SERIALIZED_NAME_KEEP_EXTERNAL_IDS) + @jakarta.annotation.Nullable + private List keepExternalIds = new ArrayList<>(); + + public BulkDestroyEnvironmentsOneOf() { + } + + public BulkDestroyEnvironmentsOneOf managedBy(@jakarta.annotation.Nonnull ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * Delete all records with this managed_by value (web/admin_web not allowed). + * @return managedBy + */ + @jakarta.annotation.Nonnull + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nonnull ManagedByEnum managedBy) { + this.managedBy = managedBy; + } + + + public BulkDestroyEnvironmentsOneOf keepExternalIds(@jakarta.annotation.Nullable List keepExternalIds) { + this.keepExternalIds = keepExternalIds; + return this; + } + + public BulkDestroyEnvironmentsOneOf addKeepExternalIdsItem(String keepExternalIdsItem) { + if (this.keepExternalIds == null) { + this.keepExternalIds = new ArrayList<>(); + } + this.keepExternalIds.add(keepExternalIdsItem); + return this; + } + + /** + * Records with these external_ids are preserved. + * @return keepExternalIds + */ + @jakarta.annotation.Nullable + public List getKeepExternalIds() { + return keepExternalIds; + } + + public void setKeepExternalIds(@jakarta.annotation.Nullable List keepExternalIds) { + this.keepExternalIds = keepExternalIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyEnvironmentsOneOf bulkDestroyEnvironmentsOneOf = (BulkDestroyEnvironmentsOneOf) o; + return Objects.equals(this.managedBy, bulkDestroyEnvironmentsOneOf.managedBy) && + Objects.equals(this.keepExternalIds, bulkDestroyEnvironmentsOneOf.keepExternalIds); + } + + @Override + public int hashCode() { + return Objects.hash(managedBy, keepExternalIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyEnvironmentsOneOf {\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); + sb.append(" keepExternalIds: ").append(toIndentedString(keepExternalIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("managed_by"); + openapiFields.add("keep_external_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("managed_by"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyEnvironmentsOneOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyEnvironmentsOneOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyEnvironmentsOneOf is not found in the empty JSON string", BulkDestroyEnvironmentsOneOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyEnvironmentsOneOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyEnvironmentsOneOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkDestroyEnvironmentsOneOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the required field `managed_by` + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + // ensure the optional json data is an array if present + if (jsonObj.get("keep_external_ids") != null && !jsonObj.get("keep_external_ids").isJsonNull() && !jsonObj.get("keep_external_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `keep_external_ids` to be an array in the JSON string but got `%s`", jsonObj.get("keep_external_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyEnvironmentsOneOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyEnvironmentsOneOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyEnvironmentsOneOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyEnvironmentsOneOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyEnvironmentsOneOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyEnvironmentsOneOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyEnvironmentsOneOf + * @throws IOException if the JSON string is invalid with respect to BulkDestroyEnvironmentsOneOf + */ + public static BulkDestroyEnvironmentsOneOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyEnvironmentsOneOf.class); + } + + /** + * Convert an instance of BulkDestroyEnvironmentsOneOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsResponse.java b/src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsResponse.java new file mode 100644 index 00000000..afe43d7e --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyEnvironmentsResponse.java @@ -0,0 +1,208 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyEnvironmentsResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyEnvironmentsResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private BulkDestroyCatalogEntitiesResponseData data; + + public BulkDestroyEnvironmentsResponse() { + } + + public BulkDestroyEnvironmentsResponse data(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public BulkDestroyCatalogEntitiesResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyEnvironmentsResponse bulkDestroyEnvironmentsResponse = (BulkDestroyEnvironmentsResponse) o; + return Objects.equals(this.data, bulkDestroyEnvironmentsResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyEnvironmentsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyEnvironmentsResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyEnvironmentsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyEnvironmentsResponse is not found in the empty JSON string", BulkDestroyEnvironmentsResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyEnvironmentsResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyEnvironmentsResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + BulkDestroyCatalogEntitiesResponseData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyEnvironmentsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyEnvironmentsResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyEnvironmentsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyEnvironmentsResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyEnvironmentsResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyEnvironmentsResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyEnvironmentsResponse + * @throws IOException if the JSON string is invalid with respect to BulkDestroyEnvironmentsResponse + */ + public static BulkDestroyEnvironmentsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyEnvironmentsResponse.class); + } + + /** + * Convert an instance of BulkDestroyEnvironmentsResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyFunctionalities.java b/src/main/java/com/rootly/client/model/BulkDestroyFunctionalities.java new file mode 100644 index 00000000..a47db3e3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyFunctionalities.java @@ -0,0 +1,277 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyFunctionalities extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDestroyFunctionalities.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyFunctionalities.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyFunctionalities' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterBulkDestroyCatalogEntitiesOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf.class)); + final TypeAdapter adapterBulkDestroyEnvironmentsOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyEnvironmentsOneOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyFunctionalities value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `BulkDestroyCatalogEntitiesOneOf` + if (value.getActualInstance() instanceof BulkDestroyCatalogEntitiesOneOf) { + JsonElement element = adapterBulkDestroyCatalogEntitiesOneOf.toJsonTree((BulkDestroyCatalogEntitiesOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyEnvironmentsOneOf` + if (value.getActualInstance() instanceof BulkDestroyEnvironmentsOneOf) { + JsonElement element = adapterBulkDestroyEnvironmentsOneOf.toJsonTree((BulkDestroyEnvironmentsOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + @Override + public BulkDestroyFunctionalities read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize BulkDestroyCatalogEntitiesOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyCatalogEntitiesOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyCatalogEntitiesOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyCatalogEntitiesOneOf'", e); + } + // deserialize BulkDestroyEnvironmentsOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyEnvironmentsOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyEnvironmentsOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyEnvironmentsOneOf'", e); + } + + if (match == 1) { + BulkDestroyFunctionalities ret = new BulkDestroyFunctionalities(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for BulkDestroyFunctionalities: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public BulkDestroyFunctionalities() { + super("oneOf", Boolean.FALSE); + } + + public BulkDestroyFunctionalities(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("BulkDestroyCatalogEntitiesOneOf", BulkDestroyCatalogEntitiesOneOf.class); + schemas.put("BulkDestroyEnvironmentsOneOf", BulkDestroyEnvironmentsOneOf.class); + } + + @Override + public Map> getSchemas() { + return BulkDestroyFunctionalities.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof BulkDestroyCatalogEntitiesOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyEnvironmentsOneOf) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * @return The actual instance (BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyCatalogEntitiesOneOf`. If the actual instance is not `BulkDestroyCatalogEntitiesOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyCatalogEntitiesOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyCatalogEntitiesOneOf` + */ + public BulkDestroyCatalogEntitiesOneOf getBulkDestroyCatalogEntitiesOneOf() throws ClassCastException { + return (BulkDestroyCatalogEntitiesOneOf)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyEnvironmentsOneOf`. If the actual instance is not `BulkDestroyEnvironmentsOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyEnvironmentsOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyEnvironmentsOneOf` + */ + public BulkDestroyEnvironmentsOneOf getBulkDestroyEnvironmentsOneOf() throws ClassCastException { + return (BulkDestroyEnvironmentsOneOf)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyFunctionalities + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with BulkDestroyCatalogEntitiesOneOf + try { + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyEnvironmentsOneOf + try { + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for BulkDestroyFunctionalities with oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of BulkDestroyFunctionalities given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyFunctionalities + * @throws IOException if the JSON string is invalid with respect to BulkDestroyFunctionalities + */ + public static BulkDestroyFunctionalities fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyFunctionalities.class); + } + + /** + * Convert an instance of BulkDestroyFunctionalities to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponse.java b/src/main/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponse.java new file mode 100644 index 00000000..5c9344f6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponse.java @@ -0,0 +1,208 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyFunctionalitiesResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyFunctionalitiesResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private BulkDestroyCatalogEntitiesResponseData data; + + public BulkDestroyFunctionalitiesResponse() { + } + + public BulkDestroyFunctionalitiesResponse data(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public BulkDestroyCatalogEntitiesResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyFunctionalitiesResponse bulkDestroyFunctionalitiesResponse = (BulkDestroyFunctionalitiesResponse) o; + return Objects.equals(this.data, bulkDestroyFunctionalitiesResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyFunctionalitiesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyFunctionalitiesResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyFunctionalitiesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyFunctionalitiesResponse is not found in the empty JSON string", BulkDestroyFunctionalitiesResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyFunctionalitiesResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyFunctionalitiesResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + BulkDestroyCatalogEntitiesResponseData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyFunctionalitiesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyFunctionalitiesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyFunctionalitiesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyFunctionalitiesResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyFunctionalitiesResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyFunctionalitiesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyFunctionalitiesResponse + * @throws IOException if the JSON string is invalid with respect to BulkDestroyFunctionalitiesResponse + */ + public static BulkDestroyFunctionalitiesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyFunctionalitiesResponse.class); + } + + /** + * Convert an instance of BulkDestroyFunctionalitiesResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyServices.java b/src/main/java/com/rootly/client/model/BulkDestroyServices.java new file mode 100644 index 00000000..edcba97c --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyServices.java @@ -0,0 +1,277 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyServices extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDestroyServices.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyServices.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyServices' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterBulkDestroyCatalogEntitiesOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf.class)); + final TypeAdapter adapterBulkDestroyEnvironmentsOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyEnvironmentsOneOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyServices value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `BulkDestroyCatalogEntitiesOneOf` + if (value.getActualInstance() instanceof BulkDestroyCatalogEntitiesOneOf) { + JsonElement element = adapterBulkDestroyCatalogEntitiesOneOf.toJsonTree((BulkDestroyCatalogEntitiesOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyEnvironmentsOneOf` + if (value.getActualInstance() instanceof BulkDestroyEnvironmentsOneOf) { + JsonElement element = adapterBulkDestroyEnvironmentsOneOf.toJsonTree((BulkDestroyEnvironmentsOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + @Override + public BulkDestroyServices read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize BulkDestroyCatalogEntitiesOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyCatalogEntitiesOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyCatalogEntitiesOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyCatalogEntitiesOneOf'", e); + } + // deserialize BulkDestroyEnvironmentsOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyEnvironmentsOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyEnvironmentsOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyEnvironmentsOneOf'", e); + } + + if (match == 1) { + BulkDestroyServices ret = new BulkDestroyServices(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for BulkDestroyServices: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public BulkDestroyServices() { + super("oneOf", Boolean.FALSE); + } + + public BulkDestroyServices(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("BulkDestroyCatalogEntitiesOneOf", BulkDestroyCatalogEntitiesOneOf.class); + schemas.put("BulkDestroyEnvironmentsOneOf", BulkDestroyEnvironmentsOneOf.class); + } + + @Override + public Map> getSchemas() { + return BulkDestroyServices.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof BulkDestroyCatalogEntitiesOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyEnvironmentsOneOf) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * @return The actual instance (BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyCatalogEntitiesOneOf`. If the actual instance is not `BulkDestroyCatalogEntitiesOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyCatalogEntitiesOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyCatalogEntitiesOneOf` + */ + public BulkDestroyCatalogEntitiesOneOf getBulkDestroyCatalogEntitiesOneOf() throws ClassCastException { + return (BulkDestroyCatalogEntitiesOneOf)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyEnvironmentsOneOf`. If the actual instance is not `BulkDestroyEnvironmentsOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyEnvironmentsOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyEnvironmentsOneOf` + */ + public BulkDestroyEnvironmentsOneOf getBulkDestroyEnvironmentsOneOf() throws ClassCastException { + return (BulkDestroyEnvironmentsOneOf)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyServices + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with BulkDestroyCatalogEntitiesOneOf + try { + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyEnvironmentsOneOf + try { + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for BulkDestroyServices with oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of BulkDestroyServices given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyServices + * @throws IOException if the JSON string is invalid with respect to BulkDestroyServices + */ + public static BulkDestroyServices fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyServices.class); + } + + /** + * Convert an instance of BulkDestroyServices to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyServicesResponse.java b/src/main/java/com/rootly/client/model/BulkDestroyServicesResponse.java new file mode 100644 index 00000000..4eb5e74f --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyServicesResponse.java @@ -0,0 +1,208 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyServicesResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyServicesResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private BulkDestroyCatalogEntitiesResponseData data; + + public BulkDestroyServicesResponse() { + } + + public BulkDestroyServicesResponse data(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public BulkDestroyCatalogEntitiesResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyServicesResponse bulkDestroyServicesResponse = (BulkDestroyServicesResponse) o; + return Objects.equals(this.data, bulkDestroyServicesResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyServicesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyServicesResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyServicesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyServicesResponse is not found in the empty JSON string", BulkDestroyServicesResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyServicesResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyServicesResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + BulkDestroyCatalogEntitiesResponseData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyServicesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyServicesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyServicesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyServicesResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyServicesResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyServicesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyServicesResponse + * @throws IOException if the JSON string is invalid with respect to BulkDestroyServicesResponse + */ + public static BulkDestroyServicesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyServicesResponse.class); + } + + /** + * Convert an instance of BulkDestroyServicesResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyTeams.java b/src/main/java/com/rootly/client/model/BulkDestroyTeams.java new file mode 100644 index 00000000..cc4c63f7 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyTeams.java @@ -0,0 +1,277 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyTeams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkDestroyTeams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyTeams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyTeams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterBulkDestroyCatalogEntitiesOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyCatalogEntitiesOneOf.class)); + final TypeAdapter adapterBulkDestroyEnvironmentsOneOf = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyEnvironmentsOneOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyTeams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `BulkDestroyCatalogEntitiesOneOf` + if (value.getActualInstance() instanceof BulkDestroyCatalogEntitiesOneOf) { + JsonElement element = adapterBulkDestroyCatalogEntitiesOneOf.toJsonTree((BulkDestroyCatalogEntitiesOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkDestroyEnvironmentsOneOf` + if (value.getActualInstance() instanceof BulkDestroyEnvironmentsOneOf) { + JsonElement element = adapterBulkDestroyEnvironmentsOneOf.toJsonTree((BulkDestroyEnvironmentsOneOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + @Override + public BulkDestroyTeams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize BulkDestroyCatalogEntitiesOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyCatalogEntitiesOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyCatalogEntitiesOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyCatalogEntitiesOneOf'", e); + } + // deserialize BulkDestroyEnvironmentsOneOf + try { + // validate the JSON object to see if any exception is thrown + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterBulkDestroyEnvironmentsOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'BulkDestroyEnvironmentsOneOf'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkDestroyEnvironmentsOneOf'", e); + } + + if (match == 1) { + BulkDestroyTeams ret = new BulkDestroyTeams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for BulkDestroyTeams: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public BulkDestroyTeams() { + super("oneOf", Boolean.FALSE); + } + + public BulkDestroyTeams(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("BulkDestroyCatalogEntitiesOneOf", BulkDestroyCatalogEntitiesOneOf.class); + schemas.put("BulkDestroyEnvironmentsOneOf", BulkDestroyEnvironmentsOneOf.class); + } + + @Override + public Map> getSchemas() { + return BulkDestroyTeams.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof BulkDestroyCatalogEntitiesOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkDestroyEnvironmentsOneOf) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf"); + } + + /** + * Get the actual instance, which can be the following: + * BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf + * + * @return The actual instance (BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyCatalogEntitiesOneOf`. If the actual instance is not `BulkDestroyCatalogEntitiesOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyCatalogEntitiesOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyCatalogEntitiesOneOf` + */ + public BulkDestroyCatalogEntitiesOneOf getBulkDestroyCatalogEntitiesOneOf() throws ClassCastException { + return (BulkDestroyCatalogEntitiesOneOf)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkDestroyEnvironmentsOneOf`. If the actual instance is not `BulkDestroyEnvironmentsOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkDestroyEnvironmentsOneOf` + * @throws ClassCastException if the instance is not `BulkDestroyEnvironmentsOneOf` + */ + public BulkDestroyEnvironmentsOneOf getBulkDestroyEnvironmentsOneOf() throws ClassCastException { + return (BulkDestroyEnvironmentsOneOf)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyTeams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with BulkDestroyCatalogEntitiesOneOf + try { + BulkDestroyCatalogEntitiesOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyCatalogEntitiesOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkDestroyEnvironmentsOneOf + try { + BulkDestroyEnvironmentsOneOf.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkDestroyEnvironmentsOneOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for BulkDestroyTeams with oneOf schemas: BulkDestroyCatalogEntitiesOneOf, BulkDestroyEnvironmentsOneOf. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of BulkDestroyTeams given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyTeams + * @throws IOException if the JSON string is invalid with respect to BulkDestroyTeams + */ + public static BulkDestroyTeams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyTeams.class); + } + + /** + * Convert an instance of BulkDestroyTeams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkDestroyTeamsResponse.java b/src/main/java/com/rootly/client/model/BulkDestroyTeamsResponse.java new file mode 100644 index 00000000..2ba1d87d --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkDestroyTeamsResponse.java @@ -0,0 +1,208 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkDestroyTeamsResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkDestroyTeamsResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private BulkDestroyCatalogEntitiesResponseData data; + + public BulkDestroyTeamsResponse() { + } + + public BulkDestroyTeamsResponse data(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public BulkDestroyCatalogEntitiesResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable BulkDestroyCatalogEntitiesResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkDestroyTeamsResponse bulkDestroyTeamsResponse = (BulkDestroyTeamsResponse) o; + return Objects.equals(this.data, bulkDestroyTeamsResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkDestroyTeamsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkDestroyTeamsResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkDestroyTeamsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkDestroyTeamsResponse is not found in the empty JSON string", BulkDestroyTeamsResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkDestroyTeamsResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkDestroyTeamsResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + BulkDestroyCatalogEntitiesResponseData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkDestroyTeamsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkDestroyTeamsResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkDestroyTeamsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkDestroyTeamsResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkDestroyTeamsResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkDestroyTeamsResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkDestroyTeamsResponse + * @throws IOException if the JSON string is invalid with respect to BulkDestroyTeamsResponse + */ + public static BulkDestroyTeamsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkDestroyTeamsResponse.class); + } + + /** + * Convert an instance of BulkDestroyTeamsResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities.java new file mode 100644 index 00000000..3edee8eb --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertCatalogEntities + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntities { + public static final String SERIALIZED_NAME_ENTITIES = "entities"; + @SerializedName(SERIALIZED_NAME_ENTITIES) + @jakarta.annotation.Nonnull + private List entities = new ArrayList<>(); + + public BulkUpsertCatalogEntities() { + } + + public BulkUpsertCatalogEntities entities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + return this; + } + + public BulkUpsertCatalogEntities addEntitiesItem(BulkUpsertCatalogEntitiesEntitiesInner entitiesItem) { + if (this.entities == null) { + this.entities = new ArrayList<>(); + } + this.entities.add(entitiesItem); + return this; + } + + /** + * Array of catalog entities to upsert. Each must have an external_id. Max 100 per request. external_ids must be unique within a batch. + * @return entities + */ + @jakarta.annotation.Nonnull + public List getEntities() { + return entities; + } + + public void setEntities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertCatalogEntities bulkUpsertCatalogEntities = (BulkUpsertCatalogEntities) o; + return Objects.equals(this.entities, bulkUpsertCatalogEntities.entities); + } + + @Override + public int hashCode() { + return Objects.hash(entities); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertCatalogEntities {\n"); + sb.append(" entities: ").append(toIndentedString(entities)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("entities"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("entities"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntities + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertCatalogEntities.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertCatalogEntities is not found in the empty JSON string", BulkUpsertCatalogEntities.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertCatalogEntities.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertCatalogEntities` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertCatalogEntities.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("entities").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `entities` to be an array in the JSON string but got `%s`", jsonObj.get("entities").toString())); + } + + JsonArray jsonArrayentities = jsonObj.getAsJsonArray("entities"); + // validate the required field `entities` (array) + for (int i = 0; i < jsonArrayentities.size(); i++) { + BulkUpsertCatalogEntitiesEntitiesInner.validateJsonElement(jsonArrayentities.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntities.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntities' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntities.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntities value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertCatalogEntities read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertCatalogEntities given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntities + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntities + */ + public static BulkUpsertCatalogEntities fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntities.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntities to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities422Response.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities422Response.java new file mode 100644 index 00000000..fe49a6c3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntities422Response.java @@ -0,0 +1,270 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesError; +import com.rootly.client.model.BulkUpsertCatalogEntitiesErrorErrorsInner; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntities422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkUpsertCatalogEntities422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntities422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntities422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkUpsertCatalogEntitiesError = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntitiesError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntities422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkUpsertCatalogEntitiesError` + if (value.getActualInstance() instanceof BulkUpsertCatalogEntitiesError) { + JsonElement element = adapterBulkUpsertCatalogEntitiesError.toJsonTree((BulkUpsertCatalogEntitiesError)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkUpsertCatalogEntitiesError, ErrorsList"); + } + + @Override + public BulkUpsertCatalogEntities422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkUpsertCatalogEntities422Response ret = new BulkUpsertCatalogEntities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkUpsertCatalogEntitiesError + try { + // validate the JSON object to see if any exception is thrown + BulkUpsertCatalogEntitiesError.validateJsonElement(jsonElement); + actualAdapter = adapterBulkUpsertCatalogEntitiesError; + BulkUpsertCatalogEntities422Response ret = new BulkUpsertCatalogEntities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkUpsertCatalogEntitiesError failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkUpsertCatalogEntitiesError'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkUpsertCatalogEntities422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkUpsertCatalogEntities422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkUpsertCatalogEntities422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkUpsertCatalogEntitiesError", BulkUpsertCatalogEntitiesError.class); + } + + @Override + public Map> getSchemas() { + return BulkUpsertCatalogEntities422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkUpsertCatalogEntitiesError, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkUpsertCatalogEntitiesError) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkUpsertCatalogEntitiesError, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkUpsertCatalogEntitiesError, ErrorsList + * + * @return The actual instance (BulkUpsertCatalogEntitiesError, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkUpsertCatalogEntitiesError`. If the actual instance is not `BulkUpsertCatalogEntitiesError`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkUpsertCatalogEntitiesError` + * @throws ClassCastException if the instance is not `BulkUpsertCatalogEntitiesError` + */ + public BulkUpsertCatalogEntitiesError getBulkUpsertCatalogEntitiesError() throws ClassCastException { + return (BulkUpsertCatalogEntitiesError)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntities422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkUpsertCatalogEntitiesError + try { + BulkUpsertCatalogEntitiesError.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkUpsertCatalogEntitiesError failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkUpsertCatalogEntities422Response with anyOf schemas: BulkUpsertCatalogEntitiesError, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkUpsertCatalogEntities422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntities422Response + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntities422Response + */ + public static BulkUpsertCatalogEntities422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntities422Response.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntities422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInner.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInner.java new file mode 100644 index 00000000..f6fa796f --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInner.java @@ -0,0 +1,398 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertCatalogEntitiesEntitiesInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntitiesEntitiesInner { + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nonnull + private String externalId; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + + public static final String SERIALIZED_NAME_BACKSTAGE_ID = "backstage_id"; + @SerializedName(SERIALIZED_NAME_BACKSTAGE_ID) + @jakarta.annotation.Nullable + private String backstageId; + + public static final String SERIALIZED_NAME_FIELDS = "fields"; + @SerializedName(SERIALIZED_NAME_FIELDS) + @jakarta.annotation.Nullable + private List fields = new ArrayList<>(); + + public BulkUpsertCatalogEntitiesEntitiesInner() { + } + + public BulkUpsertCatalogEntitiesEntitiesInner externalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + return this; + } + + /** + * External identifier used as the upsert key. Must be unique within the catalog. + * @return externalId + */ + @jakarta.annotation.Nonnull + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + } + + + public BulkUpsertCatalogEntitiesEntitiesInner name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Required for new entities. Optional for updates (managed-fields: omitted attributes are preserved). + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public BulkUpsertCatalogEntitiesEntitiesInner description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public BulkUpsertCatalogEntitiesEntitiesInner publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * Get publicDescription + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + + public BulkUpsertCatalogEntitiesEntitiesInner backstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + return this; + } + + /** + * Get backstageId + * @return backstageId + */ + @jakarta.annotation.Nullable + public String getBackstageId() { + return backstageId; + } + + public void setBackstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + } + + + public BulkUpsertCatalogEntitiesEntitiesInner fields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + return this; + } + + public BulkUpsertCatalogEntitiesEntitiesInner addFieldsItem(BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Property values for this entity. Only mentioned fields are written; unmentioned fields are preserved. + * @return fields + */ + @jakarta.annotation.Nullable + public List getFields() { + return fields; + } + + public void setFields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertCatalogEntitiesEntitiesInner bulkUpsertCatalogEntitiesEntitiesInner = (BulkUpsertCatalogEntitiesEntitiesInner) o; + return Objects.equals(this.externalId, bulkUpsertCatalogEntitiesEntitiesInner.externalId) && + Objects.equals(this.name, bulkUpsertCatalogEntitiesEntitiesInner.name) && + Objects.equals(this.description, bulkUpsertCatalogEntitiesEntitiesInner.description) && + Objects.equals(this.publicDescription, bulkUpsertCatalogEntitiesEntitiesInner.publicDescription) && + Objects.equals(this.backstageId, bulkUpsertCatalogEntitiesEntitiesInner.backstageId) && + Objects.equals(this.fields, bulkUpsertCatalogEntitiesEntitiesInner.fields); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(externalId, name, description, publicDescription, backstageId, fields); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertCatalogEntitiesEntitiesInner {\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); + sb.append(" backstageId: ").append(toIndentedString(backstageId)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("external_id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("public_description"); + openapiFields.add("backstage_id"); + openapiFields.add("fields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("external_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntitiesEntitiesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertCatalogEntitiesEntitiesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertCatalogEntitiesEntitiesInner is not found in the empty JSON string", BulkUpsertCatalogEntitiesEntitiesInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertCatalogEntitiesEntitiesInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertCatalogEntitiesEntitiesInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertCatalogEntitiesEntitiesInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("backstage_id") != null && !jsonObj.get("backstage_id").isJsonNull()) && !jsonObj.get("backstage_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `backstage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("backstage_id").toString())); + } + if (jsonObj.get("fields") != null && !jsonObj.get("fields").isJsonNull()) { + JsonArray jsonArrayfields = jsonObj.getAsJsonArray("fields"); + if (jsonArrayfields != null) { + // ensure the json data is an array + if (!jsonObj.get("fields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `fields` to be an array in the JSON string but got `%s`", jsonObj.get("fields").toString())); + } + + // validate the optional field `fields` (array) + for (int i = 0; i < jsonArrayfields.size(); i++) { + BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.validateJsonElement(jsonArrayfields.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntitiesEntitiesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntitiesEntitiesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntitiesEntitiesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntitiesEntitiesInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertCatalogEntitiesEntitiesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertCatalogEntitiesEntitiesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntitiesEntitiesInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntitiesEntitiesInner + */ + public static BulkUpsertCatalogEntitiesEntitiesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntitiesEntitiesInner.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntitiesEntitiesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.java new file mode 100644 index 00000000..43f4d22f --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.java @@ -0,0 +1,274 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * Each field entry must include either catalog_field_id or catalog_property_id. + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner { + public static final String SERIALIZED_NAME_CATALOG_FIELD_ID = "catalog_field_id"; + @SerializedName(SERIALIZED_NAME_CATALOG_FIELD_ID) + @jakarta.annotation.Nullable + private String catalogFieldId; + + public static final String SERIALIZED_NAME_CATALOG_PROPERTY_ID = "catalog_property_id"; + @SerializedName(SERIALIZED_NAME_CATALOG_PROPERTY_ID) + @jakarta.annotation.Nullable + private String catalogPropertyId; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @jakarta.annotation.Nonnull + private String value; + + public BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner() { + } + + public BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner catalogFieldId(@jakarta.annotation.Nullable String catalogFieldId) { + this.catalogFieldId = catalogFieldId; + return this; + } + + /** + * UUID, slug, or external_id of the catalog field (required if catalog_property_id is absent) + * @return catalogFieldId + */ + @jakarta.annotation.Nullable + public String getCatalogFieldId() { + return catalogFieldId; + } + + public void setCatalogFieldId(@jakarta.annotation.Nullable String catalogFieldId) { + this.catalogFieldId = catalogFieldId; + } + + + public BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner catalogPropertyId(@jakarta.annotation.Nullable String catalogPropertyId) { + this.catalogPropertyId = catalogPropertyId; + return this; + } + + /** + * Alias for catalog_field_id (required if catalog_field_id is absent) + * @return catalogPropertyId + */ + @jakarta.annotation.Nullable + public String getCatalogPropertyId() { + return catalogPropertyId; + } + + public void setCatalogPropertyId(@jakarta.annotation.Nullable String catalogPropertyId) { + this.catalogPropertyId = catalogPropertyId; + } + + + public BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner value(@jakarta.annotation.Nonnull String value) { + this.value = value; + return this; + } + + /** + * The value for this field + * @return value + */ + @jakarta.annotation.Nonnull + public String getValue() { + return value; + } + + public void setValue(@jakarta.annotation.Nonnull String value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner bulkUpsertCatalogEntitiesEntitiesInnerFieldsInner = (BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner) o; + return Objects.equals(this.catalogFieldId, bulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.catalogFieldId) && + Objects.equals(this.catalogPropertyId, bulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.catalogPropertyId) && + Objects.equals(this.value, bulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.value); + } + + @Override + public int hashCode() { + return Objects.hash(catalogFieldId, catalogPropertyId, value); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner {\n"); + sb.append(" catalogFieldId: ").append(toIndentedString(catalogFieldId)).append("\n"); + sb.append(" catalogPropertyId: ").append(toIndentedString(catalogPropertyId)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("catalog_field_id"); + openapiFields.add("catalog_property_id"); + openapiFields.add("value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("value"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner is not found in the empty JSON string", BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("catalog_field_id") != null && !jsonObj.get("catalog_field_id").isJsonNull()) && !jsonObj.get("catalog_field_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `catalog_field_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("catalog_field_id").toString())); + } + if ((jsonObj.get("catalog_property_id") != null && !jsonObj.get("catalog_property_id").isJsonNull()) && !jsonObj.get("catalog_property_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `catalog_property_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("catalog_property_id").toString())); + } + if (!jsonObj.get("value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner + */ + public static BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesError.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesError.java new file mode 100644 index 00000000..bb4798b5 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesError.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertCatalogEntitiesError + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntitiesError { + public static final String SERIALIZED_NAME_ERRORS = "errors"; + @SerializedName(SERIALIZED_NAME_ERRORS) + @jakarta.annotation.Nonnull + private List errors = new ArrayList<>(); + + public BulkUpsertCatalogEntitiesError() { + } + + public BulkUpsertCatalogEntitiesError errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public BulkUpsertCatalogEntitiesError addErrorsItem(BulkUpsertCatalogEntitiesErrorErrorsInner errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Get errors + * @return errors + */ + @jakarta.annotation.Nonnull + public List getErrors() { + return errors; + } + + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertCatalogEntitiesError bulkUpsertCatalogEntitiesError = (BulkUpsertCatalogEntitiesError) o; + return Objects.equals(this.errors, bulkUpsertCatalogEntitiesError.errors); + } + + @Override + public int hashCode() { + return Objects.hash(errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertCatalogEntitiesError {\n"); + sb.append(" errors: ").append(toIndentedString(errors)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("errors"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("errors"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntitiesError + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertCatalogEntitiesError.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertCatalogEntitiesError is not found in the empty JSON string", BulkUpsertCatalogEntitiesError.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertCatalogEntitiesError.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertCatalogEntitiesError` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertCatalogEntitiesError.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("errors").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `errors` to be an array in the JSON string but got `%s`", jsonObj.get("errors").toString())); + } + + JsonArray jsonArrayerrors = jsonObj.getAsJsonArray("errors"); + // validate the required field `errors` (array) + for (int i = 0; i < jsonArrayerrors.size(); i++) { + BulkUpsertCatalogEntitiesErrorErrorsInner.validateJsonElement(jsonArrayerrors.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntitiesError.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntitiesError' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntitiesError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntitiesError value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertCatalogEntitiesError read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertCatalogEntitiesError given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntitiesError + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntitiesError + */ + public static BulkUpsertCatalogEntitiesError fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntitiesError.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntitiesError to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInner.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInner.java new file mode 100644 index 00000000..b2fd33b3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInner.java @@ -0,0 +1,286 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertCatalogEntitiesErrorErrorsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntitiesErrorErrorsInner { + public static final String SERIALIZED_NAME_INDEX = "index"; + @SerializedName(SERIALIZED_NAME_INDEX) + @jakarta.annotation.Nonnull + private Integer index; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nonnull + private String externalId; + + public static final String SERIALIZED_NAME_ERRORS = "errors"; + @SerializedName(SERIALIZED_NAME_ERRORS) + @jakarta.annotation.Nonnull + private List errors = new ArrayList<>(); + + public BulkUpsertCatalogEntitiesErrorErrorsInner() { + } + + public BulkUpsertCatalogEntitiesErrorErrorsInner index(@jakarta.annotation.Nonnull Integer index) { + this.index = index; + return this; + } + + /** + * Position of the failed entity in the batch + * @return index + */ + @jakarta.annotation.Nonnull + public Integer getIndex() { + return index; + } + + public void setIndex(@jakarta.annotation.Nonnull Integer index) { + this.index = index; + } + + + public BulkUpsertCatalogEntitiesErrorErrorsInner externalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + return this; + } + + /** + * Get externalId + * @return externalId + */ + @jakarta.annotation.Nonnull + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + } + + + public BulkUpsertCatalogEntitiesErrorErrorsInner errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public BulkUpsertCatalogEntitiesErrorErrorsInner addErrorsItem(String errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Get errors + * @return errors + */ + @jakarta.annotation.Nonnull + public List getErrors() { + return errors; + } + + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertCatalogEntitiesErrorErrorsInner bulkUpsertCatalogEntitiesErrorErrorsInner = (BulkUpsertCatalogEntitiesErrorErrorsInner) o; + return Objects.equals(this.index, bulkUpsertCatalogEntitiesErrorErrorsInner.index) && + Objects.equals(this.externalId, bulkUpsertCatalogEntitiesErrorErrorsInner.externalId) && + Objects.equals(this.errors, bulkUpsertCatalogEntitiesErrorErrorsInner.errors); + } + + @Override + public int hashCode() { + return Objects.hash(index, externalId, errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertCatalogEntitiesErrorErrorsInner {\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" errors: ").append(toIndentedString(errors)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("index"); + openapiFields.add("external_id"); + openapiFields.add("errors"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("index"); + openapiRequiredFields.add("external_id"); + openapiRequiredFields.add("errors"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntitiesErrorErrorsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertCatalogEntitiesErrorErrorsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertCatalogEntitiesErrorErrorsInner is not found in the empty JSON string", BulkUpsertCatalogEntitiesErrorErrorsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertCatalogEntitiesErrorErrorsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertCatalogEntitiesErrorErrorsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertCatalogEntitiesErrorErrorsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + // ensure the required json array is present + if (jsonObj.get("errors") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("errors").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `errors` to be an array in the JSON string but got `%s`", jsonObj.get("errors").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntitiesErrorErrorsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntitiesErrorErrorsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntitiesErrorErrorsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntitiesErrorErrorsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertCatalogEntitiesErrorErrorsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertCatalogEntitiesErrorErrorsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntitiesErrorErrorsInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntitiesErrorErrorsInner + */ + public static BulkUpsertCatalogEntitiesErrorErrorsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntitiesErrorErrorsInner.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntitiesErrorErrorsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponse.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponse.java new file mode 100644 index 00000000..a606e9a9 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponse.java @@ -0,0 +1,228 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertCatalogEntitiesResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntitiesResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private List data = new ArrayList<>(); + + public BulkUpsertCatalogEntitiesResponse() { + } + + public BulkUpsertCatalogEntitiesResponse data(@jakarta.annotation.Nullable List data) { + this.data = data; + return this; + } + + public BulkUpsertCatalogEntitiesResponse addDataItem(BulkUpsertCatalogEntitiesResponseDataInner dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable List data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertCatalogEntitiesResponse bulkUpsertCatalogEntitiesResponse = (BulkUpsertCatalogEntitiesResponse) o; + return Objects.equals(this.data, bulkUpsertCatalogEntitiesResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertCatalogEntitiesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntitiesResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertCatalogEntitiesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertCatalogEntitiesResponse is not found in the empty JSON string", BulkUpsertCatalogEntitiesResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertCatalogEntitiesResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertCatalogEntitiesResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + BulkUpsertCatalogEntitiesResponseDataInner.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntitiesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntitiesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntitiesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntitiesResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertCatalogEntitiesResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertCatalogEntitiesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntitiesResponse + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntitiesResponse + */ + public static BulkUpsertCatalogEntitiesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntitiesResponse.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntitiesResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInner.java b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInner.java new file mode 100644 index 00000000..9977a49d --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInner.java @@ -0,0 +1,322 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CatalogEntity; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertCatalogEntitiesResponseDataInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertCatalogEntitiesResponseDataInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + CATALOG_ENTITIES("catalog_entities"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nullable + private CatalogEntity attributes; + + public BulkUpsertCatalogEntitiesResponseDataInner() { + } + + public BulkUpsertCatalogEntitiesResponseDataInner id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public BulkUpsertCatalogEntitiesResponseDataInner type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + public BulkUpsertCatalogEntitiesResponseDataInner attributes(@jakarta.annotation.Nullable CatalogEntity attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nullable + public CatalogEntity getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nullable CatalogEntity attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertCatalogEntitiesResponseDataInner bulkUpsertCatalogEntitiesResponseDataInner = (BulkUpsertCatalogEntitiesResponseDataInner) o; + return Objects.equals(this.id, bulkUpsertCatalogEntitiesResponseDataInner.id) && + Objects.equals(this.type, bulkUpsertCatalogEntitiesResponseDataInner.type) && + Objects.equals(this.attributes, bulkUpsertCatalogEntitiesResponseDataInner.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertCatalogEntitiesResponseDataInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertCatalogEntitiesResponseDataInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertCatalogEntitiesResponseDataInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertCatalogEntitiesResponseDataInner is not found in the empty JSON string", BulkUpsertCatalogEntitiesResponseDataInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertCatalogEntitiesResponseDataInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertCatalogEntitiesResponseDataInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + // validate the optional field `attributes` + if (jsonObj.get("attributes") != null && !jsonObj.get("attributes").isJsonNull()) { + CatalogEntity.validateJsonElement(jsonObj.get("attributes")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertCatalogEntitiesResponseDataInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertCatalogEntitiesResponseDataInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertCatalogEntitiesResponseDataInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertCatalogEntitiesResponseDataInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertCatalogEntitiesResponseDataInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertCatalogEntitiesResponseDataInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertCatalogEntitiesResponseDataInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertCatalogEntitiesResponseDataInner + */ + public static BulkUpsertCatalogEntitiesResponseDataInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertCatalogEntitiesResponseDataInner.class); + } + + /** + * Convert an instance of BulkUpsertCatalogEntitiesResponseDataInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertEnvironments.java b/src/main/java/com/rootly/client/model/BulkUpsertEnvironments.java new file mode 100644 index 00000000..d67810be --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertEnvironments.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertEnvironments + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertEnvironments { + public static final String SERIALIZED_NAME_ENTITIES = "entities"; + @SerializedName(SERIALIZED_NAME_ENTITIES) + @jakarta.annotation.Nonnull + private List entities = new ArrayList<>(); + + public BulkUpsertEnvironments() { + } + + public BulkUpsertEnvironments entities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + return this; + } + + public BulkUpsertEnvironments addEntitiesItem(BulkUpsertEnvironmentsEntitiesInner entitiesItem) { + if (this.entities == null) { + this.entities = new ArrayList<>(); + } + this.entities.add(entitiesItem); + return this; + } + + /** + * Environments to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). + * @return entities + */ + @jakarta.annotation.Nonnull + public List getEntities() { + return entities; + } + + public void setEntities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertEnvironments bulkUpsertEnvironments = (BulkUpsertEnvironments) o; + return Objects.equals(this.entities, bulkUpsertEnvironments.entities); + } + + @Override + public int hashCode() { + return Objects.hash(entities); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertEnvironments {\n"); + sb.append(" entities: ").append(toIndentedString(entities)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("entities"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("entities"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertEnvironments + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertEnvironments.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertEnvironments is not found in the empty JSON string", BulkUpsertEnvironments.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertEnvironments.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertEnvironments` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertEnvironments.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("entities").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `entities` to be an array in the JSON string but got `%s`", jsonObj.get("entities").toString())); + } + + JsonArray jsonArrayentities = jsonObj.getAsJsonArray("entities"); + // validate the required field `entities` (array) + for (int i = 0; i < jsonArrayentities.size(); i++) { + BulkUpsertEnvironmentsEntitiesInner.validateJsonElement(jsonArrayentities.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertEnvironments.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertEnvironments' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertEnvironments.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertEnvironments value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertEnvironments read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertEnvironments given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertEnvironments + * @throws IOException if the JSON string is invalid with respect to BulkUpsertEnvironments + */ + public static BulkUpsertEnvironments fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertEnvironments.class); + } + + /** + * Convert an instance of BulkUpsertEnvironments to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertEnvironments422Response.java b/src/main/java/com/rootly/client/model/BulkUpsertEnvironments422Response.java new file mode 100644 index 00000000..f379980e --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertEnvironments422Response.java @@ -0,0 +1,270 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsError; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertEnvironments422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkUpsertEnvironments422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertEnvironments422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertEnvironments422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkUpsertEnvironmentsError = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertEnvironmentsError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertEnvironments422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkUpsertEnvironmentsError` + if (value.getActualInstance() instanceof BulkUpsertEnvironmentsError) { + JsonElement element = adapterBulkUpsertEnvironmentsError.toJsonTree((BulkUpsertEnvironmentsError)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkUpsertEnvironmentsError, ErrorsList"); + } + + @Override + public BulkUpsertEnvironments422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkUpsertEnvironments422Response ret = new BulkUpsertEnvironments422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkUpsertEnvironmentsError + try { + // validate the JSON object to see if any exception is thrown + BulkUpsertEnvironmentsError.validateJsonElement(jsonElement); + actualAdapter = adapterBulkUpsertEnvironmentsError; + BulkUpsertEnvironments422Response ret = new BulkUpsertEnvironments422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkUpsertEnvironmentsError failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkUpsertEnvironmentsError'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkUpsertEnvironments422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkUpsertEnvironments422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkUpsertEnvironments422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkUpsertEnvironmentsError", BulkUpsertEnvironmentsError.class); + } + + @Override + public Map> getSchemas() { + return BulkUpsertEnvironments422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkUpsertEnvironmentsError, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkUpsertEnvironmentsError) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkUpsertEnvironmentsError, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkUpsertEnvironmentsError, ErrorsList + * + * @return The actual instance (BulkUpsertEnvironmentsError, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkUpsertEnvironmentsError`. If the actual instance is not `BulkUpsertEnvironmentsError`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkUpsertEnvironmentsError` + * @throws ClassCastException if the instance is not `BulkUpsertEnvironmentsError` + */ + public BulkUpsertEnvironmentsError getBulkUpsertEnvironmentsError() throws ClassCastException { + return (BulkUpsertEnvironmentsError)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertEnvironments422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkUpsertEnvironmentsError + try { + BulkUpsertEnvironmentsError.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkUpsertEnvironmentsError failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkUpsertEnvironments422Response with anyOf schemas: BulkUpsertEnvironmentsError, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkUpsertEnvironments422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertEnvironments422Response + * @throws IOException if the JSON string is invalid with respect to BulkUpsertEnvironments422Response + */ + public static BulkUpsertEnvironments422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertEnvironments422Response.class); + } + + /** + * Convert an instance of BulkUpsertEnvironments422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInner.java b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInner.java new file mode 100644 index 00000000..0a03ab74 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInner.java @@ -0,0 +1,464 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertEnvironmentsEntitiesInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertEnvironmentsEntitiesInner { + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nonnull + private String externalId; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + + public static final String SERIALIZED_NAME_COLOR = "color"; + @SerializedName(SERIALIZED_NAME_COLOR) + @jakarta.annotation.Nullable + private String color; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; + @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) + @jakarta.annotation.Nullable + private List notifyEmails; + + public static final String SERIALIZED_NAME_FIELDS = "fields"; + @SerializedName(SERIALIZED_NAME_FIELDS) + @jakarta.annotation.Nullable + private List fields = new ArrayList<>(); + + public BulkUpsertEnvironmentsEntitiesInner() { + } + + public BulkUpsertEnvironmentsEntitiesInner externalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + return this; + } + + /** + * External identifier used as the upsert key. Unique per team. + * @return externalId + */ + @jakarta.annotation.Nonnull + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + } + + + public BulkUpsertEnvironmentsEntitiesInner name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Required for new records. Optional for updates. + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public BulkUpsertEnvironmentsEntitiesInner description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public BulkUpsertEnvironmentsEntitiesInner publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * Get publicDescription + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + + public BulkUpsertEnvironmentsEntitiesInner color(@jakarta.annotation.Nullable String color) { + this.color = color; + return this; + } + + /** + * Get color + * @return color + */ + @jakarta.annotation.Nullable + public String getColor() { + return color; + } + + public void setColor(@jakarta.annotation.Nullable String color) { + this.color = color; + } + + + public BulkUpsertEnvironmentsEntitiesInner position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Get position + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public BulkUpsertEnvironmentsEntitiesInner notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + return this; + } + + public BulkUpsertEnvironmentsEntitiesInner addNotifyEmailsItem(String notifyEmailsItem) { + if (this.notifyEmails == null) { + this.notifyEmails = new ArrayList<>(); + } + this.notifyEmails.add(notifyEmailsItem); + return this; + } + + /** + * Get notifyEmails + * @return notifyEmails + */ + @jakarta.annotation.Nullable + public List getNotifyEmails() { + return notifyEmails; + } + + public void setNotifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + } + + + public BulkUpsertEnvironmentsEntitiesInner fields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + return this; + } + + public BulkUpsertEnvironmentsEntitiesInner addFieldsItem(BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Catalog property values (merge semantics: only mentioned fields written). + * @return fields + */ + @jakarta.annotation.Nullable + public List getFields() { + return fields; + } + + public void setFields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertEnvironmentsEntitiesInner bulkUpsertEnvironmentsEntitiesInner = (BulkUpsertEnvironmentsEntitiesInner) o; + return Objects.equals(this.externalId, bulkUpsertEnvironmentsEntitiesInner.externalId) && + Objects.equals(this.name, bulkUpsertEnvironmentsEntitiesInner.name) && + Objects.equals(this.description, bulkUpsertEnvironmentsEntitiesInner.description) && + Objects.equals(this.publicDescription, bulkUpsertEnvironmentsEntitiesInner.publicDescription) && + Objects.equals(this.color, bulkUpsertEnvironmentsEntitiesInner.color) && + Objects.equals(this.position, bulkUpsertEnvironmentsEntitiesInner.position) && + Objects.equals(this.notifyEmails, bulkUpsertEnvironmentsEntitiesInner.notifyEmails) && + Objects.equals(this.fields, bulkUpsertEnvironmentsEntitiesInner.fields); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(externalId, name, description, publicDescription, color, position, notifyEmails, fields); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertEnvironmentsEntitiesInner {\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("external_id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("public_description"); + openapiFields.add("color"); + openapiFields.add("position"); + openapiFields.add("notify_emails"); + openapiFields.add("fields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("external_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertEnvironmentsEntitiesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertEnvironmentsEntitiesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertEnvironmentsEntitiesInner is not found in the empty JSON string", BulkUpsertEnvironmentsEntitiesInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertEnvironmentsEntitiesInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertEnvironmentsEntitiesInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertEnvironmentsEntitiesInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); + } + if (jsonObj.get("fields") != null && !jsonObj.get("fields").isJsonNull()) { + JsonArray jsonArrayfields = jsonObj.getAsJsonArray("fields"); + if (jsonArrayfields != null) { + // ensure the json data is an array + if (!jsonObj.get("fields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `fields` to be an array in the JSON string but got `%s`", jsonObj.get("fields").toString())); + } + + // validate the optional field `fields` (array) + for (int i = 0; i < jsonArrayfields.size(); i++) { + BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.validateJsonElement(jsonArrayfields.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertEnvironmentsEntitiesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertEnvironmentsEntitiesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertEnvironmentsEntitiesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertEnvironmentsEntitiesInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertEnvironmentsEntitiesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertEnvironmentsEntitiesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertEnvironmentsEntitiesInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertEnvironmentsEntitiesInner + */ + public static BulkUpsertEnvironmentsEntitiesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertEnvironmentsEntitiesInner.class); + } + + /** + * Convert an instance of BulkUpsertEnvironmentsEntitiesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsError.java b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsError.java new file mode 100644 index 00000000..61ca02cc --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsError.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertEnvironmentsError + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertEnvironmentsError { + public static final String SERIALIZED_NAME_ERRORS = "errors"; + @SerializedName(SERIALIZED_NAME_ERRORS) + @jakarta.annotation.Nonnull + private List errors = new ArrayList<>(); + + public BulkUpsertEnvironmentsError() { + } + + public BulkUpsertEnvironmentsError errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public BulkUpsertEnvironmentsError addErrorsItem(BulkUpsertEnvironmentsErrorErrorsInner errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Get errors + * @return errors + */ + @jakarta.annotation.Nonnull + public List getErrors() { + return errors; + } + + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertEnvironmentsError bulkUpsertEnvironmentsError = (BulkUpsertEnvironmentsError) o; + return Objects.equals(this.errors, bulkUpsertEnvironmentsError.errors); + } + + @Override + public int hashCode() { + return Objects.hash(errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertEnvironmentsError {\n"); + sb.append(" errors: ").append(toIndentedString(errors)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("errors"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("errors"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertEnvironmentsError + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertEnvironmentsError.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertEnvironmentsError is not found in the empty JSON string", BulkUpsertEnvironmentsError.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertEnvironmentsError.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertEnvironmentsError` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertEnvironmentsError.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("errors").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `errors` to be an array in the JSON string but got `%s`", jsonObj.get("errors").toString())); + } + + JsonArray jsonArrayerrors = jsonObj.getAsJsonArray("errors"); + // validate the required field `errors` (array) + for (int i = 0; i < jsonArrayerrors.size(); i++) { + BulkUpsertEnvironmentsErrorErrorsInner.validateJsonElement(jsonArrayerrors.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertEnvironmentsError.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertEnvironmentsError' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertEnvironmentsError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertEnvironmentsError value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertEnvironmentsError read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertEnvironmentsError given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertEnvironmentsError + * @throws IOException if the JSON string is invalid with respect to BulkUpsertEnvironmentsError + */ + public static BulkUpsertEnvironmentsError fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertEnvironmentsError.class); + } + + /** + * Convert an instance of BulkUpsertEnvironmentsError to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInner.java b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInner.java new file mode 100644 index 00000000..7a2016a5 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInner.java @@ -0,0 +1,286 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertEnvironmentsErrorErrorsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertEnvironmentsErrorErrorsInner { + public static final String SERIALIZED_NAME_INDEX = "index"; + @SerializedName(SERIALIZED_NAME_INDEX) + @jakarta.annotation.Nonnull + private Integer index; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nonnull + private String externalId; + + public static final String SERIALIZED_NAME_ERRORS = "errors"; + @SerializedName(SERIALIZED_NAME_ERRORS) + @jakarta.annotation.Nonnull + private List errors = new ArrayList<>(); + + public BulkUpsertEnvironmentsErrorErrorsInner() { + } + + public BulkUpsertEnvironmentsErrorErrorsInner index(@jakarta.annotation.Nonnull Integer index) { + this.index = index; + return this; + } + + /** + * Position of the failed record in the batch + * @return index + */ + @jakarta.annotation.Nonnull + public Integer getIndex() { + return index; + } + + public void setIndex(@jakarta.annotation.Nonnull Integer index) { + this.index = index; + } + + + public BulkUpsertEnvironmentsErrorErrorsInner externalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + return this; + } + + /** + * Get externalId + * @return externalId + */ + @jakarta.annotation.Nonnull + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + } + + + public BulkUpsertEnvironmentsErrorErrorsInner errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public BulkUpsertEnvironmentsErrorErrorsInner addErrorsItem(String errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Get errors + * @return errors + */ + @jakarta.annotation.Nonnull + public List getErrors() { + return errors; + } + + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertEnvironmentsErrorErrorsInner bulkUpsertEnvironmentsErrorErrorsInner = (BulkUpsertEnvironmentsErrorErrorsInner) o; + return Objects.equals(this.index, bulkUpsertEnvironmentsErrorErrorsInner.index) && + Objects.equals(this.externalId, bulkUpsertEnvironmentsErrorErrorsInner.externalId) && + Objects.equals(this.errors, bulkUpsertEnvironmentsErrorErrorsInner.errors); + } + + @Override + public int hashCode() { + return Objects.hash(index, externalId, errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertEnvironmentsErrorErrorsInner {\n"); + sb.append(" index: ").append(toIndentedString(index)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" errors: ").append(toIndentedString(errors)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("index"); + openapiFields.add("external_id"); + openapiFields.add("errors"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("index"); + openapiRequiredFields.add("external_id"); + openapiRequiredFields.add("errors"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertEnvironmentsErrorErrorsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertEnvironmentsErrorErrorsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertEnvironmentsErrorErrorsInner is not found in the empty JSON string", BulkUpsertEnvironmentsErrorErrorsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertEnvironmentsErrorErrorsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertEnvironmentsErrorErrorsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertEnvironmentsErrorErrorsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + // ensure the required json array is present + if (jsonObj.get("errors") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("errors").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `errors` to be an array in the JSON string but got `%s`", jsonObj.get("errors").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertEnvironmentsErrorErrorsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertEnvironmentsErrorErrorsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertEnvironmentsErrorErrorsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertEnvironmentsErrorErrorsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertEnvironmentsErrorErrorsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertEnvironmentsErrorErrorsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertEnvironmentsErrorErrorsInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertEnvironmentsErrorErrorsInner + */ + public static BulkUpsertEnvironmentsErrorErrorsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertEnvironmentsErrorErrorsInner.class); + } + + /** + * Convert an instance of BulkUpsertEnvironmentsErrorErrorsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponse.java b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponse.java new file mode 100644 index 00000000..676cfc20 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponse.java @@ -0,0 +1,228 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertEnvironmentsResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertEnvironmentsResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private List data = new ArrayList<>(); + + public BulkUpsertEnvironmentsResponse() { + } + + public BulkUpsertEnvironmentsResponse data(@jakarta.annotation.Nullable List data) { + this.data = data; + return this; + } + + public BulkUpsertEnvironmentsResponse addDataItem(BulkUpsertEnvironmentsResponseDataInner dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable List data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertEnvironmentsResponse bulkUpsertEnvironmentsResponse = (BulkUpsertEnvironmentsResponse) o; + return Objects.equals(this.data, bulkUpsertEnvironmentsResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertEnvironmentsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertEnvironmentsResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertEnvironmentsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertEnvironmentsResponse is not found in the empty JSON string", BulkUpsertEnvironmentsResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertEnvironmentsResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertEnvironmentsResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + BulkUpsertEnvironmentsResponseDataInner.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertEnvironmentsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertEnvironmentsResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertEnvironmentsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertEnvironmentsResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertEnvironmentsResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertEnvironmentsResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertEnvironmentsResponse + * @throws IOException if the JSON string is invalid with respect to BulkUpsertEnvironmentsResponse + */ + public static BulkUpsertEnvironmentsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertEnvironmentsResponse.class); + } + + /** + * Convert an instance of BulkUpsertEnvironmentsResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInner.java b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInner.java new file mode 100644 index 00000000..4900b1d6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInner.java @@ -0,0 +1,322 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Environment; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertEnvironmentsResponseDataInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertEnvironmentsResponseDataInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + ENVIRONMENTS("environments"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nullable + private Environment attributes; + + public BulkUpsertEnvironmentsResponseDataInner() { + } + + public BulkUpsertEnvironmentsResponseDataInner id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public BulkUpsertEnvironmentsResponseDataInner type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + public BulkUpsertEnvironmentsResponseDataInner attributes(@jakarta.annotation.Nullable Environment attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nullable + public Environment getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nullable Environment attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertEnvironmentsResponseDataInner bulkUpsertEnvironmentsResponseDataInner = (BulkUpsertEnvironmentsResponseDataInner) o; + return Objects.equals(this.id, bulkUpsertEnvironmentsResponseDataInner.id) && + Objects.equals(this.type, bulkUpsertEnvironmentsResponseDataInner.type) && + Objects.equals(this.attributes, bulkUpsertEnvironmentsResponseDataInner.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertEnvironmentsResponseDataInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertEnvironmentsResponseDataInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertEnvironmentsResponseDataInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertEnvironmentsResponseDataInner is not found in the empty JSON string", BulkUpsertEnvironmentsResponseDataInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertEnvironmentsResponseDataInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertEnvironmentsResponseDataInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + // validate the optional field `attributes` + if (jsonObj.get("attributes") != null && !jsonObj.get("attributes").isJsonNull()) { + Environment.validateJsonElement(jsonObj.get("attributes")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertEnvironmentsResponseDataInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertEnvironmentsResponseDataInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertEnvironmentsResponseDataInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertEnvironmentsResponseDataInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertEnvironmentsResponseDataInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertEnvironmentsResponseDataInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertEnvironmentsResponseDataInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertEnvironmentsResponseDataInner + */ + public static BulkUpsertEnvironmentsResponseDataInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertEnvironmentsResponseDataInner.class); + } + + /** + * Convert an instance of BulkUpsertEnvironmentsResponseDataInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertFunctionalities.java b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalities.java new file mode 100644 index 00000000..1266bf2a --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalities.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertFunctionalitiesEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertFunctionalities + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertFunctionalities { + public static final String SERIALIZED_NAME_ENTITIES = "entities"; + @SerializedName(SERIALIZED_NAME_ENTITIES) + @jakarta.annotation.Nonnull + private List entities = new ArrayList<>(); + + public BulkUpsertFunctionalities() { + } + + public BulkUpsertFunctionalities entities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + return this; + } + + public BulkUpsertFunctionalities addEntitiesItem(BulkUpsertFunctionalitiesEntitiesInner entitiesItem) { + if (this.entities == null) { + this.entities = new ArrayList<>(); + } + this.entities.add(entitiesItem); + return this; + } + + /** + * Functionalities to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). + * @return entities + */ + @jakarta.annotation.Nonnull + public List getEntities() { + return entities; + } + + public void setEntities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertFunctionalities bulkUpsertFunctionalities = (BulkUpsertFunctionalities) o; + return Objects.equals(this.entities, bulkUpsertFunctionalities.entities); + } + + @Override + public int hashCode() { + return Objects.hash(entities); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertFunctionalities {\n"); + sb.append(" entities: ").append(toIndentedString(entities)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("entities"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("entities"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertFunctionalities + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertFunctionalities.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertFunctionalities is not found in the empty JSON string", BulkUpsertFunctionalities.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertFunctionalities.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertFunctionalities` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertFunctionalities.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("entities").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `entities` to be an array in the JSON string but got `%s`", jsonObj.get("entities").toString())); + } + + JsonArray jsonArrayentities = jsonObj.getAsJsonArray("entities"); + // validate the required field `entities` (array) + for (int i = 0; i < jsonArrayentities.size(); i++) { + BulkUpsertFunctionalitiesEntitiesInner.validateJsonElement(jsonArrayentities.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertFunctionalities.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertFunctionalities' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertFunctionalities.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertFunctionalities value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertFunctionalities read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertFunctionalities given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertFunctionalities + * @throws IOException if the JSON string is invalid with respect to BulkUpsertFunctionalities + */ + public static BulkUpsertFunctionalities fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertFunctionalities.class); + } + + /** + * Convert an instance of BulkUpsertFunctionalities to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertFunctionalities422Response.java b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalities422Response.java new file mode 100644 index 00000000..1b3ca47e --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalities422Response.java @@ -0,0 +1,270 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.BulkUpsertFunctionalitiesError; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertFunctionalities422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkUpsertFunctionalities422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertFunctionalities422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertFunctionalities422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkUpsertFunctionalitiesError = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertFunctionalitiesError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertFunctionalities422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkUpsertFunctionalitiesError` + if (value.getActualInstance() instanceof BulkUpsertFunctionalitiesError) { + JsonElement element = adapterBulkUpsertFunctionalitiesError.toJsonTree((BulkUpsertFunctionalitiesError)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkUpsertFunctionalitiesError, ErrorsList"); + } + + @Override + public BulkUpsertFunctionalities422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkUpsertFunctionalities422Response ret = new BulkUpsertFunctionalities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkUpsertFunctionalitiesError + try { + // validate the JSON object to see if any exception is thrown + BulkUpsertFunctionalitiesError.validateJsonElement(jsonElement); + actualAdapter = adapterBulkUpsertFunctionalitiesError; + BulkUpsertFunctionalities422Response ret = new BulkUpsertFunctionalities422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkUpsertFunctionalitiesError failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkUpsertFunctionalitiesError'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkUpsertFunctionalities422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkUpsertFunctionalities422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkUpsertFunctionalities422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkUpsertFunctionalitiesError", BulkUpsertFunctionalitiesError.class); + } + + @Override + public Map> getSchemas() { + return BulkUpsertFunctionalities422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkUpsertFunctionalitiesError, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkUpsertFunctionalitiesError) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkUpsertFunctionalitiesError, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkUpsertFunctionalitiesError, ErrorsList + * + * @return The actual instance (BulkUpsertFunctionalitiesError, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkUpsertFunctionalitiesError`. If the actual instance is not `BulkUpsertFunctionalitiesError`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkUpsertFunctionalitiesError` + * @throws ClassCastException if the instance is not `BulkUpsertFunctionalitiesError` + */ + public BulkUpsertFunctionalitiesError getBulkUpsertFunctionalitiesError() throws ClassCastException { + return (BulkUpsertFunctionalitiesError)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertFunctionalities422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkUpsertFunctionalitiesError + try { + BulkUpsertFunctionalitiesError.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkUpsertFunctionalitiesError failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkUpsertFunctionalities422Response with anyOf schemas: BulkUpsertFunctionalitiesError, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkUpsertFunctionalities422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertFunctionalities422Response + * @throws IOException if the JSON string is invalid with respect to BulkUpsertFunctionalities422Response + */ + public static BulkUpsertFunctionalities422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertFunctionalities422Response.class); + } + + /** + * Convert an instance of BulkUpsertFunctionalities422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInner.java b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInner.java new file mode 100644 index 00000000..dd73ca97 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInner.java @@ -0,0 +1,728 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertFunctionalitiesEntitiesInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertFunctionalitiesEntitiesInner { + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nonnull + private String externalId; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + + public static final String SERIALIZED_NAME_COLOR = "color"; + @SerializedName(SERIALIZED_NAME_COLOR) + @jakarta.annotation.Nullable + private String color; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_SHOW_UPTIME = "show_uptime"; + @SerializedName(SERIALIZED_NAME_SHOW_UPTIME) + @jakarta.annotation.Nullable + private Boolean showUptime; + + public static final String SERIALIZED_NAME_SHOW_UPTIME_LAST_DAYS = "show_uptime_last_days"; + @SerializedName(SERIALIZED_NAME_SHOW_UPTIME_LAST_DAYS) + @jakarta.annotation.Nullable + private Integer showUptimeLastDays; + + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; + @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) + @jakarta.annotation.Nullable + private List notifyEmails; + + public static final String SERIALIZED_NAME_PAGERDUTY_ID = "pagerduty_id"; + @SerializedName(SERIALIZED_NAME_PAGERDUTY_ID) + @jakarta.annotation.Nullable + private String pagerdutyId; + + public static final String SERIALIZED_NAME_OPSGENIE_ID = "opsgenie_id"; + @SerializedName(SERIALIZED_NAME_OPSGENIE_ID) + @jakarta.annotation.Nullable + private String opsgenieId; + + public static final String SERIALIZED_NAME_OPSGENIE_TEAM_ID = "opsgenie_team_id"; + @SerializedName(SERIALIZED_NAME_OPSGENIE_TEAM_ID) + @jakarta.annotation.Nullable + private String opsgenieTeamId; + + public static final String SERIALIZED_NAME_BACKSTAGE_ID = "backstage_id"; + @SerializedName(SERIALIZED_NAME_BACKSTAGE_ID) + @jakarta.annotation.Nullable + private String backstageId; + + public static final String SERIALIZED_NAME_CORTEX_ID = "cortex_id"; + @SerializedName(SERIALIZED_NAME_CORTEX_ID) + @jakarta.annotation.Nullable + private String cortexId; + + public static final String SERIALIZED_NAME_OPSLEVEL_ID = "opslevel_id"; + @SerializedName(SERIALIZED_NAME_OPSLEVEL_ID) + @jakarta.annotation.Nullable + private String opslevelId; + + public static final String SERIALIZED_NAME_SERVICE_NOW_CI_SYS_ID = "service_now_ci_sys_id"; + @SerializedName(SERIALIZED_NAME_SERVICE_NOW_CI_SYS_ID) + @jakarta.annotation.Nullable + private String serviceNowCiSysId; + + public static final String SERIALIZED_NAME_FIELDS = "fields"; + @SerializedName(SERIALIZED_NAME_FIELDS) + @jakarta.annotation.Nullable + private List fields = new ArrayList<>(); + + public BulkUpsertFunctionalitiesEntitiesInner() { + } + + public BulkUpsertFunctionalitiesEntitiesInner externalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + return this; + } + + /** + * External identifier used as the upsert key. Unique per team. + * @return externalId + */ + @jakarta.annotation.Nonnull + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Required for new records. Optional for updates. + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public BulkUpsertFunctionalitiesEntitiesInner description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public BulkUpsertFunctionalitiesEntitiesInner publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * Get publicDescription + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + + public BulkUpsertFunctionalitiesEntitiesInner color(@jakarta.annotation.Nullable String color) { + this.color = color; + return this; + } + + /** + * Get color + * @return color + */ + @jakarta.annotation.Nullable + public String getColor() { + return color; + } + + public void setColor(@jakarta.annotation.Nullable String color) { + this.color = color; + } + + + public BulkUpsertFunctionalitiesEntitiesInner position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Get position + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public BulkUpsertFunctionalitiesEntitiesInner showUptime(@jakarta.annotation.Nullable Boolean showUptime) { + this.showUptime = showUptime; + return this; + } + + /** + * Get showUptime + * @return showUptime + */ + @jakarta.annotation.Nullable + public Boolean getShowUptime() { + return showUptime; + } + + public void setShowUptime(@jakarta.annotation.Nullable Boolean showUptime) { + this.showUptime = showUptime; + } + + + public BulkUpsertFunctionalitiesEntitiesInner showUptimeLastDays(@jakarta.annotation.Nullable Integer showUptimeLastDays) { + this.showUptimeLastDays = showUptimeLastDays; + return this; + } + + /** + * Get showUptimeLastDays + * @return showUptimeLastDays + */ + @jakarta.annotation.Nullable + public Integer getShowUptimeLastDays() { + return showUptimeLastDays; + } + + public void setShowUptimeLastDays(@jakarta.annotation.Nullable Integer showUptimeLastDays) { + this.showUptimeLastDays = showUptimeLastDays; + } + + + public BulkUpsertFunctionalitiesEntitiesInner notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + return this; + } + + public BulkUpsertFunctionalitiesEntitiesInner addNotifyEmailsItem(String notifyEmailsItem) { + if (this.notifyEmails == null) { + this.notifyEmails = new ArrayList<>(); + } + this.notifyEmails.add(notifyEmailsItem); + return this; + } + + /** + * Get notifyEmails + * @return notifyEmails + */ + @jakarta.annotation.Nullable + public List getNotifyEmails() { + return notifyEmails; + } + + public void setNotifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + } + + + public BulkUpsertFunctionalitiesEntitiesInner pagerdutyId(@jakarta.annotation.Nullable String pagerdutyId) { + this.pagerdutyId = pagerdutyId; + return this; + } + + /** + * Get pagerdutyId + * @return pagerdutyId + */ + @jakarta.annotation.Nullable + public String getPagerdutyId() { + return pagerdutyId; + } + + public void setPagerdutyId(@jakarta.annotation.Nullable String pagerdutyId) { + this.pagerdutyId = pagerdutyId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner opsgenieId(@jakarta.annotation.Nullable String opsgenieId) { + this.opsgenieId = opsgenieId; + return this; + } + + /** + * Get opsgenieId + * @return opsgenieId + */ + @jakarta.annotation.Nullable + public String getOpsgenieId() { + return opsgenieId; + } + + public void setOpsgenieId(@jakarta.annotation.Nullable String opsgenieId) { + this.opsgenieId = opsgenieId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner opsgenieTeamId(@jakarta.annotation.Nullable String opsgenieTeamId) { + this.opsgenieTeamId = opsgenieTeamId; + return this; + } + + /** + * Get opsgenieTeamId + * @return opsgenieTeamId + */ + @jakarta.annotation.Nullable + public String getOpsgenieTeamId() { + return opsgenieTeamId; + } + + public void setOpsgenieTeamId(@jakarta.annotation.Nullable String opsgenieTeamId) { + this.opsgenieTeamId = opsgenieTeamId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner backstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + return this; + } + + /** + * Get backstageId + * @return backstageId + */ + @jakarta.annotation.Nullable + public String getBackstageId() { + return backstageId; + } + + public void setBackstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner cortexId(@jakarta.annotation.Nullable String cortexId) { + this.cortexId = cortexId; + return this; + } + + /** + * Get cortexId + * @return cortexId + */ + @jakarta.annotation.Nullable + public String getCortexId() { + return cortexId; + } + + public void setCortexId(@jakarta.annotation.Nullable String cortexId) { + this.cortexId = cortexId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner opslevelId(@jakarta.annotation.Nullable String opslevelId) { + this.opslevelId = opslevelId; + return this; + } + + /** + * Get opslevelId + * @return opslevelId + */ + @jakarta.annotation.Nullable + public String getOpslevelId() { + return opslevelId; + } + + public void setOpslevelId(@jakarta.annotation.Nullable String opslevelId) { + this.opslevelId = opslevelId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner serviceNowCiSysId(@jakarta.annotation.Nullable String serviceNowCiSysId) { + this.serviceNowCiSysId = serviceNowCiSysId; + return this; + } + + /** + * Get serviceNowCiSysId + * @return serviceNowCiSysId + */ + @jakarta.annotation.Nullable + public String getServiceNowCiSysId() { + return serviceNowCiSysId; + } + + public void setServiceNowCiSysId(@jakarta.annotation.Nullable String serviceNowCiSysId) { + this.serviceNowCiSysId = serviceNowCiSysId; + } + + + public BulkUpsertFunctionalitiesEntitiesInner fields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + return this; + } + + public BulkUpsertFunctionalitiesEntitiesInner addFieldsItem(BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Catalog property values (merge semantics: only mentioned fields written). + * @return fields + */ + @jakarta.annotation.Nullable + public List getFields() { + return fields; + } + + public void setFields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertFunctionalitiesEntitiesInner bulkUpsertFunctionalitiesEntitiesInner = (BulkUpsertFunctionalitiesEntitiesInner) o; + return Objects.equals(this.externalId, bulkUpsertFunctionalitiesEntitiesInner.externalId) && + Objects.equals(this.name, bulkUpsertFunctionalitiesEntitiesInner.name) && + Objects.equals(this.description, bulkUpsertFunctionalitiesEntitiesInner.description) && + Objects.equals(this.publicDescription, bulkUpsertFunctionalitiesEntitiesInner.publicDescription) && + Objects.equals(this.color, bulkUpsertFunctionalitiesEntitiesInner.color) && + Objects.equals(this.position, bulkUpsertFunctionalitiesEntitiesInner.position) && + Objects.equals(this.showUptime, bulkUpsertFunctionalitiesEntitiesInner.showUptime) && + Objects.equals(this.showUptimeLastDays, bulkUpsertFunctionalitiesEntitiesInner.showUptimeLastDays) && + Objects.equals(this.notifyEmails, bulkUpsertFunctionalitiesEntitiesInner.notifyEmails) && + Objects.equals(this.pagerdutyId, bulkUpsertFunctionalitiesEntitiesInner.pagerdutyId) && + Objects.equals(this.opsgenieId, bulkUpsertFunctionalitiesEntitiesInner.opsgenieId) && + Objects.equals(this.opsgenieTeamId, bulkUpsertFunctionalitiesEntitiesInner.opsgenieTeamId) && + Objects.equals(this.backstageId, bulkUpsertFunctionalitiesEntitiesInner.backstageId) && + Objects.equals(this.cortexId, bulkUpsertFunctionalitiesEntitiesInner.cortexId) && + Objects.equals(this.opslevelId, bulkUpsertFunctionalitiesEntitiesInner.opslevelId) && + Objects.equals(this.serviceNowCiSysId, bulkUpsertFunctionalitiesEntitiesInner.serviceNowCiSysId) && + Objects.equals(this.fields, bulkUpsertFunctionalitiesEntitiesInner.fields); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(externalId, name, description, publicDescription, color, position, showUptime, showUptimeLastDays, notifyEmails, pagerdutyId, opsgenieId, opsgenieTeamId, backstageId, cortexId, opslevelId, serviceNowCiSysId, fields); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertFunctionalitiesEntitiesInner {\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" showUptime: ").append(toIndentedString(showUptime)).append("\n"); + sb.append(" showUptimeLastDays: ").append(toIndentedString(showUptimeLastDays)).append("\n"); + sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); + sb.append(" pagerdutyId: ").append(toIndentedString(pagerdutyId)).append("\n"); + sb.append(" opsgenieId: ").append(toIndentedString(opsgenieId)).append("\n"); + sb.append(" opsgenieTeamId: ").append(toIndentedString(opsgenieTeamId)).append("\n"); + sb.append(" backstageId: ").append(toIndentedString(backstageId)).append("\n"); + sb.append(" cortexId: ").append(toIndentedString(cortexId)).append("\n"); + sb.append(" opslevelId: ").append(toIndentedString(opslevelId)).append("\n"); + sb.append(" serviceNowCiSysId: ").append(toIndentedString(serviceNowCiSysId)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("external_id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("public_description"); + openapiFields.add("color"); + openapiFields.add("position"); + openapiFields.add("show_uptime"); + openapiFields.add("show_uptime_last_days"); + openapiFields.add("notify_emails"); + openapiFields.add("pagerduty_id"); + openapiFields.add("opsgenie_id"); + openapiFields.add("opsgenie_team_id"); + openapiFields.add("backstage_id"); + openapiFields.add("cortex_id"); + openapiFields.add("opslevel_id"); + openapiFields.add("service_now_ci_sys_id"); + openapiFields.add("fields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("external_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertFunctionalitiesEntitiesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertFunctionalitiesEntitiesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertFunctionalitiesEntitiesInner is not found in the empty JSON string", BulkUpsertFunctionalitiesEntitiesInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertFunctionalitiesEntitiesInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertFunctionalitiesEntitiesInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertFunctionalitiesEntitiesInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); + } + if ((jsonObj.get("pagerduty_id") != null && !jsonObj.get("pagerduty_id").isJsonNull()) && !jsonObj.get("pagerduty_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `pagerduty_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pagerduty_id").toString())); + } + if ((jsonObj.get("opsgenie_id") != null && !jsonObj.get("opsgenie_id").isJsonNull()) && !jsonObj.get("opsgenie_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opsgenie_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opsgenie_id").toString())); + } + if ((jsonObj.get("opsgenie_team_id") != null && !jsonObj.get("opsgenie_team_id").isJsonNull()) && !jsonObj.get("opsgenie_team_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opsgenie_team_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opsgenie_team_id").toString())); + } + if ((jsonObj.get("backstage_id") != null && !jsonObj.get("backstage_id").isJsonNull()) && !jsonObj.get("backstage_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `backstage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("backstage_id").toString())); + } + if ((jsonObj.get("cortex_id") != null && !jsonObj.get("cortex_id").isJsonNull()) && !jsonObj.get("cortex_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `cortex_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("cortex_id").toString())); + } + if ((jsonObj.get("opslevel_id") != null && !jsonObj.get("opslevel_id").isJsonNull()) && !jsonObj.get("opslevel_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opslevel_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opslevel_id").toString())); + } + if ((jsonObj.get("service_now_ci_sys_id") != null && !jsonObj.get("service_now_ci_sys_id").isJsonNull()) && !jsonObj.get("service_now_ci_sys_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `service_now_ci_sys_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("service_now_ci_sys_id").toString())); + } + if (jsonObj.get("fields") != null && !jsonObj.get("fields").isJsonNull()) { + JsonArray jsonArrayfields = jsonObj.getAsJsonArray("fields"); + if (jsonArrayfields != null) { + // ensure the json data is an array + if (!jsonObj.get("fields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `fields` to be an array in the JSON string but got `%s`", jsonObj.get("fields").toString())); + } + + // validate the optional field `fields` (array) + for (int i = 0; i < jsonArrayfields.size(); i++) { + BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.validateJsonElement(jsonArrayfields.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertFunctionalitiesEntitiesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertFunctionalitiesEntitiesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertFunctionalitiesEntitiesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertFunctionalitiesEntitiesInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertFunctionalitiesEntitiesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertFunctionalitiesEntitiesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertFunctionalitiesEntitiesInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertFunctionalitiesEntitiesInner + */ + public static BulkUpsertFunctionalitiesEntitiesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertFunctionalitiesEntitiesInner.class); + } + + /** + * Convert an instance of BulkUpsertFunctionalitiesEntitiesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesError.java b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesError.java new file mode 100644 index 00000000..b65f9e9b --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesError.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertFunctionalitiesError + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertFunctionalitiesError { + public static final String SERIALIZED_NAME_ERRORS = "errors"; + @SerializedName(SERIALIZED_NAME_ERRORS) + @jakarta.annotation.Nonnull + private List errors = new ArrayList<>(); + + public BulkUpsertFunctionalitiesError() { + } + + public BulkUpsertFunctionalitiesError errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public BulkUpsertFunctionalitiesError addErrorsItem(BulkUpsertEnvironmentsErrorErrorsInner errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Get errors + * @return errors + */ + @jakarta.annotation.Nonnull + public List getErrors() { + return errors; + } + + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertFunctionalitiesError bulkUpsertFunctionalitiesError = (BulkUpsertFunctionalitiesError) o; + return Objects.equals(this.errors, bulkUpsertFunctionalitiesError.errors); + } + + @Override + public int hashCode() { + return Objects.hash(errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertFunctionalitiesError {\n"); + sb.append(" errors: ").append(toIndentedString(errors)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("errors"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("errors"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertFunctionalitiesError + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertFunctionalitiesError.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertFunctionalitiesError is not found in the empty JSON string", BulkUpsertFunctionalitiesError.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertFunctionalitiesError.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertFunctionalitiesError` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertFunctionalitiesError.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("errors").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `errors` to be an array in the JSON string but got `%s`", jsonObj.get("errors").toString())); + } + + JsonArray jsonArrayerrors = jsonObj.getAsJsonArray("errors"); + // validate the required field `errors` (array) + for (int i = 0; i < jsonArrayerrors.size(); i++) { + BulkUpsertEnvironmentsErrorErrorsInner.validateJsonElement(jsonArrayerrors.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertFunctionalitiesError.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertFunctionalitiesError' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertFunctionalitiesError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertFunctionalitiesError value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertFunctionalitiesError read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertFunctionalitiesError given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertFunctionalitiesError + * @throws IOException if the JSON string is invalid with respect to BulkUpsertFunctionalitiesError + */ + public static BulkUpsertFunctionalitiesError fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertFunctionalitiesError.class); + } + + /** + * Convert an instance of BulkUpsertFunctionalitiesError to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponse.java b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponse.java new file mode 100644 index 00000000..1f3cdc10 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponse.java @@ -0,0 +1,228 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertFunctionalitiesResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertFunctionalitiesResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertFunctionalitiesResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private List data = new ArrayList<>(); + + public BulkUpsertFunctionalitiesResponse() { + } + + public BulkUpsertFunctionalitiesResponse data(@jakarta.annotation.Nullable List data) { + this.data = data; + return this; + } + + public BulkUpsertFunctionalitiesResponse addDataItem(BulkUpsertFunctionalitiesResponseDataInner dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable List data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertFunctionalitiesResponse bulkUpsertFunctionalitiesResponse = (BulkUpsertFunctionalitiesResponse) o; + return Objects.equals(this.data, bulkUpsertFunctionalitiesResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertFunctionalitiesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertFunctionalitiesResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertFunctionalitiesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertFunctionalitiesResponse is not found in the empty JSON string", BulkUpsertFunctionalitiesResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertFunctionalitiesResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertFunctionalitiesResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + BulkUpsertFunctionalitiesResponseDataInner.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertFunctionalitiesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertFunctionalitiesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertFunctionalitiesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertFunctionalitiesResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertFunctionalitiesResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertFunctionalitiesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertFunctionalitiesResponse + * @throws IOException if the JSON string is invalid with respect to BulkUpsertFunctionalitiesResponse + */ + public static BulkUpsertFunctionalitiesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertFunctionalitiesResponse.class); + } + + /** + * Convert an instance of BulkUpsertFunctionalitiesResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInner.java b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInner.java new file mode 100644 index 00000000..c52a7caf --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInner.java @@ -0,0 +1,322 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Functionality; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertFunctionalitiesResponseDataInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertFunctionalitiesResponseDataInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + FUNCTIONALITIES("functionalities"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nullable + private Functionality attributes; + + public BulkUpsertFunctionalitiesResponseDataInner() { + } + + public BulkUpsertFunctionalitiesResponseDataInner id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public BulkUpsertFunctionalitiesResponseDataInner type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + public BulkUpsertFunctionalitiesResponseDataInner attributes(@jakarta.annotation.Nullable Functionality attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nullable + public Functionality getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nullable Functionality attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertFunctionalitiesResponseDataInner bulkUpsertFunctionalitiesResponseDataInner = (BulkUpsertFunctionalitiesResponseDataInner) o; + return Objects.equals(this.id, bulkUpsertFunctionalitiesResponseDataInner.id) && + Objects.equals(this.type, bulkUpsertFunctionalitiesResponseDataInner.type) && + Objects.equals(this.attributes, bulkUpsertFunctionalitiesResponseDataInner.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertFunctionalitiesResponseDataInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertFunctionalitiesResponseDataInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertFunctionalitiesResponseDataInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertFunctionalitiesResponseDataInner is not found in the empty JSON string", BulkUpsertFunctionalitiesResponseDataInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertFunctionalitiesResponseDataInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertFunctionalitiesResponseDataInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + // validate the optional field `attributes` + if (jsonObj.get("attributes") != null && !jsonObj.get("attributes").isJsonNull()) { + Functionality.validateJsonElement(jsonObj.get("attributes")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertFunctionalitiesResponseDataInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertFunctionalitiesResponseDataInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertFunctionalitiesResponseDataInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertFunctionalitiesResponseDataInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertFunctionalitiesResponseDataInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertFunctionalitiesResponseDataInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertFunctionalitiesResponseDataInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertFunctionalitiesResponseDataInner + */ + public static BulkUpsertFunctionalitiesResponseDataInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertFunctionalitiesResponseDataInner.class); + } + + /** + * Convert an instance of BulkUpsertFunctionalitiesResponseDataInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertGroups422Response.java b/src/main/java/com/rootly/client/model/BulkUpsertGroups422Response.java new file mode 100644 index 00000000..48e2eee5 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertGroups422Response.java @@ -0,0 +1,270 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.BulkUpsertTeamsError; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertGroups422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkUpsertGroups422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertGroups422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertGroups422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkUpsertTeamsError = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertTeamsError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertGroups422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkUpsertTeamsError` + if (value.getActualInstance() instanceof BulkUpsertTeamsError) { + JsonElement element = adapterBulkUpsertTeamsError.toJsonTree((BulkUpsertTeamsError)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkUpsertTeamsError, ErrorsList"); + } + + @Override + public BulkUpsertGroups422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkUpsertGroups422Response ret = new BulkUpsertGroups422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkUpsertTeamsError + try { + // validate the JSON object to see if any exception is thrown + BulkUpsertTeamsError.validateJsonElement(jsonElement); + actualAdapter = adapterBulkUpsertTeamsError; + BulkUpsertGroups422Response ret = new BulkUpsertGroups422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkUpsertTeamsError failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkUpsertTeamsError'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkUpsertGroups422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkUpsertGroups422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkUpsertGroups422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkUpsertTeamsError", BulkUpsertTeamsError.class); + } + + @Override + public Map> getSchemas() { + return BulkUpsertGroups422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkUpsertTeamsError, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkUpsertTeamsError) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkUpsertTeamsError, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkUpsertTeamsError, ErrorsList + * + * @return The actual instance (BulkUpsertTeamsError, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkUpsertTeamsError`. If the actual instance is not `BulkUpsertTeamsError`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkUpsertTeamsError` + * @throws ClassCastException if the instance is not `BulkUpsertTeamsError` + */ + public BulkUpsertTeamsError getBulkUpsertTeamsError() throws ClassCastException { + return (BulkUpsertTeamsError)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertGroups422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkUpsertTeamsError + try { + BulkUpsertTeamsError.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkUpsertTeamsError failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkUpsertGroups422Response with anyOf schemas: BulkUpsertTeamsError, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkUpsertGroups422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertGroups422Response + * @throws IOException if the JSON string is invalid with respect to BulkUpsertGroups422Response + */ + public static BulkUpsertGroups422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertGroups422Response.class); + } + + /** + * Convert an instance of BulkUpsertGroups422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertServices.java b/src/main/java/com/rootly/client/model/BulkUpsertServices.java new file mode 100644 index 00000000..0ec4950b --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertServices.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertServicesEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertServices + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertServices { + public static final String SERIALIZED_NAME_ENTITIES = "entities"; + @SerializedName(SERIALIZED_NAME_ENTITIES) + @jakarta.annotation.Nonnull + private List entities = new ArrayList<>(); + + public BulkUpsertServices() { + } + + public BulkUpsertServices entities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + return this; + } + + public BulkUpsertServices addEntitiesItem(BulkUpsertServicesEntitiesInner entitiesItem) { + if (this.entities == null) { + this.entities = new ArrayList<>(); + } + this.entities.add(entitiesItem); + return this; + } + + /** + * Services to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). + * @return entities + */ + @jakarta.annotation.Nonnull + public List getEntities() { + return entities; + } + + public void setEntities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertServices bulkUpsertServices = (BulkUpsertServices) o; + return Objects.equals(this.entities, bulkUpsertServices.entities); + } + + @Override + public int hashCode() { + return Objects.hash(entities); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertServices {\n"); + sb.append(" entities: ").append(toIndentedString(entities)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("entities"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("entities"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertServices + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertServices.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertServices is not found in the empty JSON string", BulkUpsertServices.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertServices.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertServices` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertServices.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("entities").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `entities` to be an array in the JSON string but got `%s`", jsonObj.get("entities").toString())); + } + + JsonArray jsonArrayentities = jsonObj.getAsJsonArray("entities"); + // validate the required field `entities` (array) + for (int i = 0; i < jsonArrayentities.size(); i++) { + BulkUpsertServicesEntitiesInner.validateJsonElement(jsonArrayentities.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertServices.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertServices' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertServices.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertServices value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertServices read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertServices given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertServices + * @throws IOException if the JSON string is invalid with respect to BulkUpsertServices + */ + public static BulkUpsertServices fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertServices.class); + } + + /** + * Convert an instance of BulkUpsertServices to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertServices422Response.java b/src/main/java/com/rootly/client/model/BulkUpsertServices422Response.java new file mode 100644 index 00000000..f2ac1a7d --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertServices422Response.java @@ -0,0 +1,270 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.BulkUpsertServicesError; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertServices422Response extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(BulkUpsertServices422Response.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertServices422Response.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertServices422Response' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterErrorsList = gson.getDelegateAdapter(this, TypeToken.get(ErrorsList.class)); + final TypeAdapter adapterBulkUpsertServicesError = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertServicesError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertServices422Response value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ErrorsList` + if (value.getActualInstance() instanceof ErrorsList) { + JsonElement element = adapterErrorsList.toJsonTree((ErrorsList)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `BulkUpsertServicesError` + if (value.getActualInstance() instanceof BulkUpsertServicesError) { + JsonElement element = adapterBulkUpsertServicesError.toJsonTree((BulkUpsertServicesError)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: BulkUpsertServicesError, ErrorsList"); + } + + @Override + public BulkUpsertServices422Response read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ErrorsList + try { + // validate the JSON object to see if any exception is thrown + ErrorsList.validateJsonElement(jsonElement); + actualAdapter = adapterErrorsList; + BulkUpsertServices422Response ret = new BulkUpsertServices422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ErrorsList'", e); + } + // deserialize BulkUpsertServicesError + try { + // validate the JSON object to see if any exception is thrown + BulkUpsertServicesError.validateJsonElement(jsonElement); + actualAdapter = adapterBulkUpsertServicesError; + BulkUpsertServices422Response ret = new BulkUpsertServices422Response(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for BulkUpsertServicesError failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'BulkUpsertServicesError'", e); + } + + throw new IOException(String.format("Failed deserialization for BulkUpsertServices422Response: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public BulkUpsertServices422Response() { + super("anyOf", Boolean.FALSE); + } + + public BulkUpsertServices422Response(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ErrorsList", ErrorsList.class); + schemas.put("BulkUpsertServicesError", BulkUpsertServicesError.class); + } + + @Override + public Map> getSchemas() { + return BulkUpsertServices422Response.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * BulkUpsertServicesError, ErrorsList + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ErrorsList) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof BulkUpsertServicesError) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be BulkUpsertServicesError, ErrorsList"); + } + + /** + * Get the actual instance, which can be the following: + * BulkUpsertServicesError, ErrorsList + * + * @return The actual instance (BulkUpsertServicesError, ErrorsList) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ErrorsList`. If the actual instance is not `ErrorsList`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ErrorsList` + * @throws ClassCastException if the instance is not `ErrorsList` + */ + public ErrorsList getErrorsList() throws ClassCastException { + return (ErrorsList)super.getActualInstance(); + } + + /** + * Get the actual instance of `BulkUpsertServicesError`. If the actual instance is not `BulkUpsertServicesError`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `BulkUpsertServicesError` + * @throws ClassCastException if the instance is not `BulkUpsertServicesError` + */ + public BulkUpsertServicesError getBulkUpsertServicesError() throws ClassCastException { + return (BulkUpsertServicesError)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertServices422Response + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ErrorsList + try { + ErrorsList.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ErrorsList failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with BulkUpsertServicesError + try { + BulkUpsertServicesError.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for BulkUpsertServicesError failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for BulkUpsertServices422Response with anyOf schemas: BulkUpsertServicesError, ErrorsList. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of BulkUpsertServices422Response given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertServices422Response + * @throws IOException if the JSON string is invalid with respect to BulkUpsertServices422Response + */ + public static BulkUpsertServices422Response fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertServices422Response.class); + } + + /** + * Convert an instance of BulkUpsertServices422Response to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertServicesEntitiesInner.java b/src/main/java/com/rootly/client/model/BulkUpsertServicesEntitiesInner.java new file mode 100644 index 00000000..61ddb08a --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertServicesEntitiesInner.java @@ -0,0 +1,905 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertServicesEntitiesInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertServicesEntitiesInner { + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nonnull + private String externalId; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + + public static final String SERIALIZED_NAME_COLOR = "color"; + @SerializedName(SERIALIZED_NAME_COLOR) + @jakarta.annotation.Nullable + private String color; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_SHOW_UPTIME = "show_uptime"; + @SerializedName(SERIALIZED_NAME_SHOW_UPTIME) + @jakarta.annotation.Nullable + private Boolean showUptime; + + public static final String SERIALIZED_NAME_SHOW_UPTIME_LAST_DAYS = "show_uptime_last_days"; + @SerializedName(SERIALIZED_NAME_SHOW_UPTIME_LAST_DAYS) + @jakarta.annotation.Nullable + private Integer showUptimeLastDays; + + public static final String SERIALIZED_NAME_GITHUB_REPOSITORY_NAME = "github_repository_name"; + @SerializedName(SERIALIZED_NAME_GITHUB_REPOSITORY_NAME) + @jakarta.annotation.Nullable + private String githubRepositoryName; + + public static final String SERIALIZED_NAME_GITHUB_REPOSITORY_BRANCH = "github_repository_branch"; + @SerializedName(SERIALIZED_NAME_GITHUB_REPOSITORY_BRANCH) + @jakarta.annotation.Nullable + private String githubRepositoryBranch; + + public static final String SERIALIZED_NAME_GITLAB_REPOSITORY_NAME = "gitlab_repository_name"; + @SerializedName(SERIALIZED_NAME_GITLAB_REPOSITORY_NAME) + @jakarta.annotation.Nullable + private String gitlabRepositoryName; + + public static final String SERIALIZED_NAME_GITLAB_REPOSITORY_BRANCH = "gitlab_repository_branch"; + @SerializedName(SERIALIZED_NAME_GITLAB_REPOSITORY_BRANCH) + @jakarta.annotation.Nullable + private String gitlabRepositoryBranch; + + public static final String SERIALIZED_NAME_KUBERNETES_DEPLOYMENT_NAME = "kubernetes_deployment_name"; + @SerializedName(SERIALIZED_NAME_KUBERNETES_DEPLOYMENT_NAME) + @jakarta.annotation.Nullable + private String kubernetesDeploymentName; + + public static final String SERIALIZED_NAME_PAGERDUTY_ID = "pagerduty_id"; + @SerializedName(SERIALIZED_NAME_PAGERDUTY_ID) + @jakarta.annotation.Nullable + private String pagerdutyId; + + public static final String SERIALIZED_NAME_OPSGENIE_ID = "opsgenie_id"; + @SerializedName(SERIALIZED_NAME_OPSGENIE_ID) + @jakarta.annotation.Nullable + private String opsgenieId; + + public static final String SERIALIZED_NAME_OPSGENIE_TEAM_ID = "opsgenie_team_id"; + @SerializedName(SERIALIZED_NAME_OPSGENIE_TEAM_ID) + @jakarta.annotation.Nullable + private String opsgenieTeamId; + + public static final String SERIALIZED_NAME_CORTEX_ID = "cortex_id"; + @SerializedName(SERIALIZED_NAME_CORTEX_ID) + @jakarta.annotation.Nullable + private String cortexId; + + public static final String SERIALIZED_NAME_OPSLEVEL_ID = "opslevel_id"; + @SerializedName(SERIALIZED_NAME_OPSLEVEL_ID) + @jakarta.annotation.Nullable + private String opslevelId; + + public static final String SERIALIZED_NAME_BACKSTAGE_ID = "backstage_id"; + @SerializedName(SERIALIZED_NAME_BACKSTAGE_ID) + @jakarta.annotation.Nullable + private String backstageId; + + public static final String SERIALIZED_NAME_SERVICE_NOW_CI_SYS_ID = "service_now_ci_sys_id"; + @SerializedName(SERIALIZED_NAME_SERVICE_NOW_CI_SYS_ID) + @jakarta.annotation.Nullable + private String serviceNowCiSysId; + + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; + @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) + @jakarta.annotation.Nullable + private List notifyEmails; + + public static final String SERIALIZED_NAME_ALERTS_EMAIL_ENABLED = "alerts_email_enabled"; + @SerializedName(SERIALIZED_NAME_ALERTS_EMAIL_ENABLED) + @jakarta.annotation.Nullable + private Boolean alertsEmailEnabled; + + public static final String SERIALIZED_NAME_FIELDS = "fields"; + @SerializedName(SERIALIZED_NAME_FIELDS) + @jakarta.annotation.Nullable + private List fields = new ArrayList<>(); + + public BulkUpsertServicesEntitiesInner() { + } + + public BulkUpsertServicesEntitiesInner externalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + return this; + } + + /** + * External identifier used as the upsert key. Unique per team. + * @return externalId + */ + @jakarta.annotation.Nonnull + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + } + + + public BulkUpsertServicesEntitiesInner name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Required for new records. Optional for updates. + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public BulkUpsertServicesEntitiesInner description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public BulkUpsertServicesEntitiesInner publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * Get publicDescription + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + + public BulkUpsertServicesEntitiesInner color(@jakarta.annotation.Nullable String color) { + this.color = color; + return this; + } + + /** + * Get color + * @return color + */ + @jakarta.annotation.Nullable + public String getColor() { + return color; + } + + public void setColor(@jakarta.annotation.Nullable String color) { + this.color = color; + } + + + public BulkUpsertServicesEntitiesInner position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Get position + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public BulkUpsertServicesEntitiesInner showUptime(@jakarta.annotation.Nullable Boolean showUptime) { + this.showUptime = showUptime; + return this; + } + + /** + * Get showUptime + * @return showUptime + */ + @jakarta.annotation.Nullable + public Boolean getShowUptime() { + return showUptime; + } + + public void setShowUptime(@jakarta.annotation.Nullable Boolean showUptime) { + this.showUptime = showUptime; + } + + + public BulkUpsertServicesEntitiesInner showUptimeLastDays(@jakarta.annotation.Nullable Integer showUptimeLastDays) { + this.showUptimeLastDays = showUptimeLastDays; + return this; + } + + /** + * Get showUptimeLastDays + * @return showUptimeLastDays + */ + @jakarta.annotation.Nullable + public Integer getShowUptimeLastDays() { + return showUptimeLastDays; + } + + public void setShowUptimeLastDays(@jakarta.annotation.Nullable Integer showUptimeLastDays) { + this.showUptimeLastDays = showUptimeLastDays; + } + + + public BulkUpsertServicesEntitiesInner githubRepositoryName(@jakarta.annotation.Nullable String githubRepositoryName) { + this.githubRepositoryName = githubRepositoryName; + return this; + } + + /** + * Get githubRepositoryName + * @return githubRepositoryName + */ + @jakarta.annotation.Nullable + public String getGithubRepositoryName() { + return githubRepositoryName; + } + + public void setGithubRepositoryName(@jakarta.annotation.Nullable String githubRepositoryName) { + this.githubRepositoryName = githubRepositoryName; + } + + + public BulkUpsertServicesEntitiesInner githubRepositoryBranch(@jakarta.annotation.Nullable String githubRepositoryBranch) { + this.githubRepositoryBranch = githubRepositoryBranch; + return this; + } + + /** + * Get githubRepositoryBranch + * @return githubRepositoryBranch + */ + @jakarta.annotation.Nullable + public String getGithubRepositoryBranch() { + return githubRepositoryBranch; + } + + public void setGithubRepositoryBranch(@jakarta.annotation.Nullable String githubRepositoryBranch) { + this.githubRepositoryBranch = githubRepositoryBranch; + } + + + public BulkUpsertServicesEntitiesInner gitlabRepositoryName(@jakarta.annotation.Nullable String gitlabRepositoryName) { + this.gitlabRepositoryName = gitlabRepositoryName; + return this; + } + + /** + * Get gitlabRepositoryName + * @return gitlabRepositoryName + */ + @jakarta.annotation.Nullable + public String getGitlabRepositoryName() { + return gitlabRepositoryName; + } + + public void setGitlabRepositoryName(@jakarta.annotation.Nullable String gitlabRepositoryName) { + this.gitlabRepositoryName = gitlabRepositoryName; + } + + + public BulkUpsertServicesEntitiesInner gitlabRepositoryBranch(@jakarta.annotation.Nullable String gitlabRepositoryBranch) { + this.gitlabRepositoryBranch = gitlabRepositoryBranch; + return this; + } + + /** + * Get gitlabRepositoryBranch + * @return gitlabRepositoryBranch + */ + @jakarta.annotation.Nullable + public String getGitlabRepositoryBranch() { + return gitlabRepositoryBranch; + } + + public void setGitlabRepositoryBranch(@jakarta.annotation.Nullable String gitlabRepositoryBranch) { + this.gitlabRepositoryBranch = gitlabRepositoryBranch; + } + + + public BulkUpsertServicesEntitiesInner kubernetesDeploymentName(@jakarta.annotation.Nullable String kubernetesDeploymentName) { + this.kubernetesDeploymentName = kubernetesDeploymentName; + return this; + } + + /** + * Get kubernetesDeploymentName + * @return kubernetesDeploymentName + */ + @jakarta.annotation.Nullable + public String getKubernetesDeploymentName() { + return kubernetesDeploymentName; + } + + public void setKubernetesDeploymentName(@jakarta.annotation.Nullable String kubernetesDeploymentName) { + this.kubernetesDeploymentName = kubernetesDeploymentName; + } + + + public BulkUpsertServicesEntitiesInner pagerdutyId(@jakarta.annotation.Nullable String pagerdutyId) { + this.pagerdutyId = pagerdutyId; + return this; + } + + /** + * Get pagerdutyId + * @return pagerdutyId + */ + @jakarta.annotation.Nullable + public String getPagerdutyId() { + return pagerdutyId; + } + + public void setPagerdutyId(@jakarta.annotation.Nullable String pagerdutyId) { + this.pagerdutyId = pagerdutyId; + } + + + public BulkUpsertServicesEntitiesInner opsgenieId(@jakarta.annotation.Nullable String opsgenieId) { + this.opsgenieId = opsgenieId; + return this; + } + + /** + * Get opsgenieId + * @return opsgenieId + */ + @jakarta.annotation.Nullable + public String getOpsgenieId() { + return opsgenieId; + } + + public void setOpsgenieId(@jakarta.annotation.Nullable String opsgenieId) { + this.opsgenieId = opsgenieId; + } + + + public BulkUpsertServicesEntitiesInner opsgenieTeamId(@jakarta.annotation.Nullable String opsgenieTeamId) { + this.opsgenieTeamId = opsgenieTeamId; + return this; + } + + /** + * Get opsgenieTeamId + * @return opsgenieTeamId + */ + @jakarta.annotation.Nullable + public String getOpsgenieTeamId() { + return opsgenieTeamId; + } + + public void setOpsgenieTeamId(@jakarta.annotation.Nullable String opsgenieTeamId) { + this.opsgenieTeamId = opsgenieTeamId; + } + + + public BulkUpsertServicesEntitiesInner cortexId(@jakarta.annotation.Nullable String cortexId) { + this.cortexId = cortexId; + return this; + } + + /** + * Get cortexId + * @return cortexId + */ + @jakarta.annotation.Nullable + public String getCortexId() { + return cortexId; + } + + public void setCortexId(@jakarta.annotation.Nullable String cortexId) { + this.cortexId = cortexId; + } + + + public BulkUpsertServicesEntitiesInner opslevelId(@jakarta.annotation.Nullable String opslevelId) { + this.opslevelId = opslevelId; + return this; + } + + /** + * Get opslevelId + * @return opslevelId + */ + @jakarta.annotation.Nullable + public String getOpslevelId() { + return opslevelId; + } + + public void setOpslevelId(@jakarta.annotation.Nullable String opslevelId) { + this.opslevelId = opslevelId; + } + + + public BulkUpsertServicesEntitiesInner backstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + return this; + } + + /** + * Get backstageId + * @return backstageId + */ + @jakarta.annotation.Nullable + public String getBackstageId() { + return backstageId; + } + + public void setBackstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + } + + + public BulkUpsertServicesEntitiesInner serviceNowCiSysId(@jakarta.annotation.Nullable String serviceNowCiSysId) { + this.serviceNowCiSysId = serviceNowCiSysId; + return this; + } + + /** + * Get serviceNowCiSysId + * @return serviceNowCiSysId + */ + @jakarta.annotation.Nullable + public String getServiceNowCiSysId() { + return serviceNowCiSysId; + } + + public void setServiceNowCiSysId(@jakarta.annotation.Nullable String serviceNowCiSysId) { + this.serviceNowCiSysId = serviceNowCiSysId; + } + + + public BulkUpsertServicesEntitiesInner notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + return this; + } + + public BulkUpsertServicesEntitiesInner addNotifyEmailsItem(String notifyEmailsItem) { + if (this.notifyEmails == null) { + this.notifyEmails = new ArrayList<>(); + } + this.notifyEmails.add(notifyEmailsItem); + return this; + } + + /** + * Get notifyEmails + * @return notifyEmails + */ + @jakarta.annotation.Nullable + public List getNotifyEmails() { + return notifyEmails; + } + + public void setNotifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + } + + + public BulkUpsertServicesEntitiesInner alertsEmailEnabled(@jakarta.annotation.Nullable Boolean alertsEmailEnabled) { + this.alertsEmailEnabled = alertsEmailEnabled; + return this; + } + + /** + * Get alertsEmailEnabled + * @return alertsEmailEnabled + */ + @jakarta.annotation.Nullable + public Boolean getAlertsEmailEnabled() { + return alertsEmailEnabled; + } + + public void setAlertsEmailEnabled(@jakarta.annotation.Nullable Boolean alertsEmailEnabled) { + this.alertsEmailEnabled = alertsEmailEnabled; + } + + + public BulkUpsertServicesEntitiesInner fields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + return this; + } + + public BulkUpsertServicesEntitiesInner addFieldsItem(BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Catalog property values (merge semantics: only mentioned fields written). + * @return fields + */ + @jakarta.annotation.Nullable + public List getFields() { + return fields; + } + + public void setFields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertServicesEntitiesInner bulkUpsertServicesEntitiesInner = (BulkUpsertServicesEntitiesInner) o; + return Objects.equals(this.externalId, bulkUpsertServicesEntitiesInner.externalId) && + Objects.equals(this.name, bulkUpsertServicesEntitiesInner.name) && + Objects.equals(this.description, bulkUpsertServicesEntitiesInner.description) && + Objects.equals(this.publicDescription, bulkUpsertServicesEntitiesInner.publicDescription) && + Objects.equals(this.color, bulkUpsertServicesEntitiesInner.color) && + Objects.equals(this.position, bulkUpsertServicesEntitiesInner.position) && + Objects.equals(this.showUptime, bulkUpsertServicesEntitiesInner.showUptime) && + Objects.equals(this.showUptimeLastDays, bulkUpsertServicesEntitiesInner.showUptimeLastDays) && + Objects.equals(this.githubRepositoryName, bulkUpsertServicesEntitiesInner.githubRepositoryName) && + Objects.equals(this.githubRepositoryBranch, bulkUpsertServicesEntitiesInner.githubRepositoryBranch) && + Objects.equals(this.gitlabRepositoryName, bulkUpsertServicesEntitiesInner.gitlabRepositoryName) && + Objects.equals(this.gitlabRepositoryBranch, bulkUpsertServicesEntitiesInner.gitlabRepositoryBranch) && + Objects.equals(this.kubernetesDeploymentName, bulkUpsertServicesEntitiesInner.kubernetesDeploymentName) && + Objects.equals(this.pagerdutyId, bulkUpsertServicesEntitiesInner.pagerdutyId) && + Objects.equals(this.opsgenieId, bulkUpsertServicesEntitiesInner.opsgenieId) && + Objects.equals(this.opsgenieTeamId, bulkUpsertServicesEntitiesInner.opsgenieTeamId) && + Objects.equals(this.cortexId, bulkUpsertServicesEntitiesInner.cortexId) && + Objects.equals(this.opslevelId, bulkUpsertServicesEntitiesInner.opslevelId) && + Objects.equals(this.backstageId, bulkUpsertServicesEntitiesInner.backstageId) && + Objects.equals(this.serviceNowCiSysId, bulkUpsertServicesEntitiesInner.serviceNowCiSysId) && + Objects.equals(this.notifyEmails, bulkUpsertServicesEntitiesInner.notifyEmails) && + Objects.equals(this.alertsEmailEnabled, bulkUpsertServicesEntitiesInner.alertsEmailEnabled) && + Objects.equals(this.fields, bulkUpsertServicesEntitiesInner.fields); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(externalId, name, description, publicDescription, color, position, showUptime, showUptimeLastDays, githubRepositoryName, githubRepositoryBranch, gitlabRepositoryName, gitlabRepositoryBranch, kubernetesDeploymentName, pagerdutyId, opsgenieId, opsgenieTeamId, cortexId, opslevelId, backstageId, serviceNowCiSysId, notifyEmails, alertsEmailEnabled, fields); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertServicesEntitiesInner {\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" showUptime: ").append(toIndentedString(showUptime)).append("\n"); + sb.append(" showUptimeLastDays: ").append(toIndentedString(showUptimeLastDays)).append("\n"); + sb.append(" githubRepositoryName: ").append(toIndentedString(githubRepositoryName)).append("\n"); + sb.append(" githubRepositoryBranch: ").append(toIndentedString(githubRepositoryBranch)).append("\n"); + sb.append(" gitlabRepositoryName: ").append(toIndentedString(gitlabRepositoryName)).append("\n"); + sb.append(" gitlabRepositoryBranch: ").append(toIndentedString(gitlabRepositoryBranch)).append("\n"); + sb.append(" kubernetesDeploymentName: ").append(toIndentedString(kubernetesDeploymentName)).append("\n"); + sb.append(" pagerdutyId: ").append(toIndentedString(pagerdutyId)).append("\n"); + sb.append(" opsgenieId: ").append(toIndentedString(opsgenieId)).append("\n"); + sb.append(" opsgenieTeamId: ").append(toIndentedString(opsgenieTeamId)).append("\n"); + sb.append(" cortexId: ").append(toIndentedString(cortexId)).append("\n"); + sb.append(" opslevelId: ").append(toIndentedString(opslevelId)).append("\n"); + sb.append(" backstageId: ").append(toIndentedString(backstageId)).append("\n"); + sb.append(" serviceNowCiSysId: ").append(toIndentedString(serviceNowCiSysId)).append("\n"); + sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); + sb.append(" alertsEmailEnabled: ").append(toIndentedString(alertsEmailEnabled)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("external_id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("public_description"); + openapiFields.add("color"); + openapiFields.add("position"); + openapiFields.add("show_uptime"); + openapiFields.add("show_uptime_last_days"); + openapiFields.add("github_repository_name"); + openapiFields.add("github_repository_branch"); + openapiFields.add("gitlab_repository_name"); + openapiFields.add("gitlab_repository_branch"); + openapiFields.add("kubernetes_deployment_name"); + openapiFields.add("pagerduty_id"); + openapiFields.add("opsgenie_id"); + openapiFields.add("opsgenie_team_id"); + openapiFields.add("cortex_id"); + openapiFields.add("opslevel_id"); + openapiFields.add("backstage_id"); + openapiFields.add("service_now_ci_sys_id"); + openapiFields.add("notify_emails"); + openapiFields.add("alerts_email_enabled"); + openapiFields.add("fields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("external_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertServicesEntitiesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertServicesEntitiesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertServicesEntitiesInner is not found in the empty JSON string", BulkUpsertServicesEntitiesInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertServicesEntitiesInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertServicesEntitiesInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertServicesEntitiesInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); + } + if ((jsonObj.get("github_repository_name") != null && !jsonObj.get("github_repository_name").isJsonNull()) && !jsonObj.get("github_repository_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `github_repository_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("github_repository_name").toString())); + } + if ((jsonObj.get("github_repository_branch") != null && !jsonObj.get("github_repository_branch").isJsonNull()) && !jsonObj.get("github_repository_branch").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `github_repository_branch` to be a primitive type in the JSON string but got `%s`", jsonObj.get("github_repository_branch").toString())); + } + if ((jsonObj.get("gitlab_repository_name") != null && !jsonObj.get("gitlab_repository_name").isJsonNull()) && !jsonObj.get("gitlab_repository_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `gitlab_repository_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("gitlab_repository_name").toString())); + } + if ((jsonObj.get("gitlab_repository_branch") != null && !jsonObj.get("gitlab_repository_branch").isJsonNull()) && !jsonObj.get("gitlab_repository_branch").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `gitlab_repository_branch` to be a primitive type in the JSON string but got `%s`", jsonObj.get("gitlab_repository_branch").toString())); + } + if ((jsonObj.get("kubernetes_deployment_name") != null && !jsonObj.get("kubernetes_deployment_name").isJsonNull()) && !jsonObj.get("kubernetes_deployment_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `kubernetes_deployment_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kubernetes_deployment_name").toString())); + } + if ((jsonObj.get("pagerduty_id") != null && !jsonObj.get("pagerduty_id").isJsonNull()) && !jsonObj.get("pagerduty_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `pagerduty_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pagerduty_id").toString())); + } + if ((jsonObj.get("opsgenie_id") != null && !jsonObj.get("opsgenie_id").isJsonNull()) && !jsonObj.get("opsgenie_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opsgenie_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opsgenie_id").toString())); + } + if ((jsonObj.get("opsgenie_team_id") != null && !jsonObj.get("opsgenie_team_id").isJsonNull()) && !jsonObj.get("opsgenie_team_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opsgenie_team_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opsgenie_team_id").toString())); + } + if ((jsonObj.get("cortex_id") != null && !jsonObj.get("cortex_id").isJsonNull()) && !jsonObj.get("cortex_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `cortex_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("cortex_id").toString())); + } + if ((jsonObj.get("opslevel_id") != null && !jsonObj.get("opslevel_id").isJsonNull()) && !jsonObj.get("opslevel_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opslevel_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opslevel_id").toString())); + } + if ((jsonObj.get("backstage_id") != null && !jsonObj.get("backstage_id").isJsonNull()) && !jsonObj.get("backstage_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `backstage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("backstage_id").toString())); + } + if ((jsonObj.get("service_now_ci_sys_id") != null && !jsonObj.get("service_now_ci_sys_id").isJsonNull()) && !jsonObj.get("service_now_ci_sys_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `service_now_ci_sys_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("service_now_ci_sys_id").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); + } + if (jsonObj.get("fields") != null && !jsonObj.get("fields").isJsonNull()) { + JsonArray jsonArrayfields = jsonObj.getAsJsonArray("fields"); + if (jsonArrayfields != null) { + // ensure the json data is an array + if (!jsonObj.get("fields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `fields` to be an array in the JSON string but got `%s`", jsonObj.get("fields").toString())); + } + + // validate the optional field `fields` (array) + for (int i = 0; i < jsonArrayfields.size(); i++) { + BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.validateJsonElement(jsonArrayfields.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertServicesEntitiesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertServicesEntitiesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertServicesEntitiesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertServicesEntitiesInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertServicesEntitiesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertServicesEntitiesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertServicesEntitiesInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertServicesEntitiesInner + */ + public static BulkUpsertServicesEntitiesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertServicesEntitiesInner.class); + } + + /** + * Convert an instance of BulkUpsertServicesEntitiesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertServicesError.java b/src/main/java/com/rootly/client/model/BulkUpsertServicesError.java new file mode 100644 index 00000000..7649e7f7 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertServicesError.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertServicesError + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertServicesError { + public static final String SERIALIZED_NAME_ERRORS = "errors"; + @SerializedName(SERIALIZED_NAME_ERRORS) + @jakarta.annotation.Nonnull + private List errors = new ArrayList<>(); + + public BulkUpsertServicesError() { + } + + public BulkUpsertServicesError errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public BulkUpsertServicesError addErrorsItem(BulkUpsertEnvironmentsErrorErrorsInner errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Get errors + * @return errors + */ + @jakarta.annotation.Nonnull + public List getErrors() { + return errors; + } + + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertServicesError bulkUpsertServicesError = (BulkUpsertServicesError) o; + return Objects.equals(this.errors, bulkUpsertServicesError.errors); + } + + @Override + public int hashCode() { + return Objects.hash(errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertServicesError {\n"); + sb.append(" errors: ").append(toIndentedString(errors)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("errors"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("errors"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertServicesError + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertServicesError.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertServicesError is not found in the empty JSON string", BulkUpsertServicesError.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertServicesError.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertServicesError` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertServicesError.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("errors").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `errors` to be an array in the JSON string but got `%s`", jsonObj.get("errors").toString())); + } + + JsonArray jsonArrayerrors = jsonObj.getAsJsonArray("errors"); + // validate the required field `errors` (array) + for (int i = 0; i < jsonArrayerrors.size(); i++) { + BulkUpsertEnvironmentsErrorErrorsInner.validateJsonElement(jsonArrayerrors.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertServicesError.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertServicesError' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertServicesError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertServicesError value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertServicesError read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertServicesError given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertServicesError + * @throws IOException if the JSON string is invalid with respect to BulkUpsertServicesError + */ + public static BulkUpsertServicesError fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertServicesError.class); + } + + /** + * Convert an instance of BulkUpsertServicesError to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertServicesResponse.java b/src/main/java/com/rootly/client/model/BulkUpsertServicesResponse.java new file mode 100644 index 00000000..ebe53952 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertServicesResponse.java @@ -0,0 +1,228 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertServicesResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertServicesResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertServicesResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private List data = new ArrayList<>(); + + public BulkUpsertServicesResponse() { + } + + public BulkUpsertServicesResponse data(@jakarta.annotation.Nullable List data) { + this.data = data; + return this; + } + + public BulkUpsertServicesResponse addDataItem(BulkUpsertServicesResponseDataInner dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable List data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertServicesResponse bulkUpsertServicesResponse = (BulkUpsertServicesResponse) o; + return Objects.equals(this.data, bulkUpsertServicesResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertServicesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertServicesResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertServicesResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertServicesResponse is not found in the empty JSON string", BulkUpsertServicesResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertServicesResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertServicesResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + BulkUpsertServicesResponseDataInner.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertServicesResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertServicesResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertServicesResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertServicesResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertServicesResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertServicesResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertServicesResponse + * @throws IOException if the JSON string is invalid with respect to BulkUpsertServicesResponse + */ + public static BulkUpsertServicesResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertServicesResponse.class); + } + + /** + * Convert an instance of BulkUpsertServicesResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertServicesResponseDataInner.java b/src/main/java/com/rootly/client/model/BulkUpsertServicesResponseDataInner.java new file mode 100644 index 00000000..da1004d9 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertServicesResponseDataInner.java @@ -0,0 +1,322 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Service; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertServicesResponseDataInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertServicesResponseDataInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + SERVICES("services"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nullable + private Service attributes; + + public BulkUpsertServicesResponseDataInner() { + } + + public BulkUpsertServicesResponseDataInner id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public BulkUpsertServicesResponseDataInner type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + public BulkUpsertServicesResponseDataInner attributes(@jakarta.annotation.Nullable Service attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nullable + public Service getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nullable Service attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertServicesResponseDataInner bulkUpsertServicesResponseDataInner = (BulkUpsertServicesResponseDataInner) o; + return Objects.equals(this.id, bulkUpsertServicesResponseDataInner.id) && + Objects.equals(this.type, bulkUpsertServicesResponseDataInner.type) && + Objects.equals(this.attributes, bulkUpsertServicesResponseDataInner.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertServicesResponseDataInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertServicesResponseDataInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertServicesResponseDataInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertServicesResponseDataInner is not found in the empty JSON string", BulkUpsertServicesResponseDataInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertServicesResponseDataInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertServicesResponseDataInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + // validate the optional field `attributes` + if (jsonObj.get("attributes") != null && !jsonObj.get("attributes").isJsonNull()) { + Service.validateJsonElement(jsonObj.get("attributes")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertServicesResponseDataInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertServicesResponseDataInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertServicesResponseDataInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertServicesResponseDataInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertServicesResponseDataInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertServicesResponseDataInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertServicesResponseDataInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertServicesResponseDataInner + */ + public static BulkUpsertServicesResponseDataInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertServicesResponseDataInner.class); + } + + /** + * Convert an instance of BulkUpsertServicesResponseDataInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertTeams.java b/src/main/java/com/rootly/client/model/BulkUpsertTeams.java new file mode 100644 index 00000000..ac2a1df2 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertTeams.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertTeamsEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertTeams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertTeams { + public static final String SERIALIZED_NAME_ENTITIES = "entities"; + @SerializedName(SERIALIZED_NAME_ENTITIES) + @jakarta.annotation.Nonnull + private List entities = new ArrayList<>(); + + public BulkUpsertTeams() { + } + + public BulkUpsertTeams entities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + return this; + } + + public BulkUpsertTeams addEntitiesItem(BulkUpsertTeamsEntitiesInner entitiesItem) { + if (this.entities == null) { + this.entities = new ArrayList<>(); + } + this.entities.add(entitiesItem); + return this; + } + + /** + * Teams to upsert, matched by external_id. Max 100 per request; external_ids unique within a batch. Only attributes present are written (managed-fields semantics). + * @return entities + */ + @jakarta.annotation.Nonnull + public List getEntities() { + return entities; + } + + public void setEntities(@jakarta.annotation.Nonnull List entities) { + this.entities = entities; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertTeams bulkUpsertTeams = (BulkUpsertTeams) o; + return Objects.equals(this.entities, bulkUpsertTeams.entities); + } + + @Override + public int hashCode() { + return Objects.hash(entities); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertTeams {\n"); + sb.append(" entities: ").append(toIndentedString(entities)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("entities"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("entities"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertTeams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertTeams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertTeams is not found in the empty JSON string", BulkUpsertTeams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertTeams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertTeams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertTeams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("entities").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `entities` to be an array in the JSON string but got `%s`", jsonObj.get("entities").toString())); + } + + JsonArray jsonArrayentities = jsonObj.getAsJsonArray("entities"); + // validate the required field `entities` (array) + for (int i = 0; i < jsonArrayentities.size(); i++) { + BulkUpsertTeamsEntitiesInner.validateJsonElement(jsonArrayentities.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertTeams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertTeams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertTeams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertTeams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertTeams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertTeams given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertTeams + * @throws IOException if the JSON string is invalid with respect to BulkUpsertTeams + */ + public static BulkUpsertTeams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertTeams.class); + } + + /** + * Convert an instance of BulkUpsertTeams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInner.java b/src/main/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInner.java new file mode 100644 index 00000000..013783f4 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInner.java @@ -0,0 +1,761 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertTeamsEntitiesInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertTeamsEntitiesInner { + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nonnull + private String externalId; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + + public static final String SERIALIZED_NAME_COLOR = "color"; + @SerializedName(SERIALIZED_NAME_COLOR) + @jakarta.annotation.Nullable + private String color; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; + @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) + @jakarta.annotation.Nullable + private List notifyEmails; + + public static final String SERIALIZED_NAME_PAGERDUTY_ID = "pagerduty_id"; + @SerializedName(SERIALIZED_NAME_PAGERDUTY_ID) + @jakarta.annotation.Nullable + private String pagerdutyId; + + public static final String SERIALIZED_NAME_PAGERDUTY_SERVICE_ID = "pagerduty_service_id"; + @SerializedName(SERIALIZED_NAME_PAGERDUTY_SERVICE_ID) + @jakarta.annotation.Nullable + private String pagerdutyServiceId; + + public static final String SERIALIZED_NAME_OPSGENIE_ID = "opsgenie_id"; + @SerializedName(SERIALIZED_NAME_OPSGENIE_ID) + @jakarta.annotation.Nullable + private String opsgenieId; + + public static final String SERIALIZED_NAME_VICTOR_OPS_ID = "victor_ops_id"; + @SerializedName(SERIALIZED_NAME_VICTOR_OPS_ID) + @jakarta.annotation.Nullable + private String victorOpsId; + + public static final String SERIALIZED_NAME_PAGERTREE_ID = "pagertree_id"; + @SerializedName(SERIALIZED_NAME_PAGERTREE_ID) + @jakarta.annotation.Nullable + private String pagertreeId; + + public static final String SERIALIZED_NAME_BACKSTAGE_ID = "backstage_id"; + @SerializedName(SERIALIZED_NAME_BACKSTAGE_ID) + @jakarta.annotation.Nullable + private String backstageId; + + public static final String SERIALIZED_NAME_CORTEX_ID = "cortex_id"; + @SerializedName(SERIALIZED_NAME_CORTEX_ID) + @jakarta.annotation.Nullable + private String cortexId; + + public static final String SERIALIZED_NAME_OPSLEVEL_ID = "opslevel_id"; + @SerializedName(SERIALIZED_NAME_OPSLEVEL_ID) + @jakarta.annotation.Nullable + private String opslevelId; + + public static final String SERIALIZED_NAME_SERVICE_NOW_CI_SYS_ID = "service_now_ci_sys_id"; + @SerializedName(SERIALIZED_NAME_SERVICE_NOW_CI_SYS_ID) + @jakarta.annotation.Nullable + private String serviceNowCiSysId; + + public static final String SERIALIZED_NAME_ALERTS_EMAIL_ENABLED = "alerts_email_enabled"; + @SerializedName(SERIALIZED_NAME_ALERTS_EMAIL_ENABLED) + @jakarta.annotation.Nullable + private Boolean alertsEmailEnabled; + + public static final String SERIALIZED_NAME_FIELDS = "fields"; + @SerializedName(SERIALIZED_NAME_FIELDS) + @jakarta.annotation.Nullable + private List fields = new ArrayList<>(); + + public BulkUpsertTeamsEntitiesInner() { + } + + public BulkUpsertTeamsEntitiesInner externalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + return this; + } + + /** + * External identifier used as the upsert key. Unique per team. + * @return externalId + */ + @jakarta.annotation.Nonnull + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nonnull String externalId) { + this.externalId = externalId; + } + + + public BulkUpsertTeamsEntitiesInner name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Required for new records. Optional for updates. + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public BulkUpsertTeamsEntitiesInner description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public BulkUpsertTeamsEntitiesInner publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * Get publicDescription + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + + public BulkUpsertTeamsEntitiesInner color(@jakarta.annotation.Nullable String color) { + this.color = color; + return this; + } + + /** + * Get color + * @return color + */ + @jakarta.annotation.Nullable + public String getColor() { + return color; + } + + public void setColor(@jakarta.annotation.Nullable String color) { + this.color = color; + } + + + public BulkUpsertTeamsEntitiesInner position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Get position + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public BulkUpsertTeamsEntitiesInner notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + return this; + } + + public BulkUpsertTeamsEntitiesInner addNotifyEmailsItem(String notifyEmailsItem) { + if (this.notifyEmails == null) { + this.notifyEmails = new ArrayList<>(); + } + this.notifyEmails.add(notifyEmailsItem); + return this; + } + + /** + * Get notifyEmails + * @return notifyEmails + */ + @jakarta.annotation.Nullable + public List getNotifyEmails() { + return notifyEmails; + } + + public void setNotifyEmails(@jakarta.annotation.Nullable List notifyEmails) { + this.notifyEmails = notifyEmails; + } + + + public BulkUpsertTeamsEntitiesInner pagerdutyId(@jakarta.annotation.Nullable String pagerdutyId) { + this.pagerdutyId = pagerdutyId; + return this; + } + + /** + * Get pagerdutyId + * @return pagerdutyId + */ + @jakarta.annotation.Nullable + public String getPagerdutyId() { + return pagerdutyId; + } + + public void setPagerdutyId(@jakarta.annotation.Nullable String pagerdutyId) { + this.pagerdutyId = pagerdutyId; + } + + + public BulkUpsertTeamsEntitiesInner pagerdutyServiceId(@jakarta.annotation.Nullable String pagerdutyServiceId) { + this.pagerdutyServiceId = pagerdutyServiceId; + return this; + } + + /** + * Get pagerdutyServiceId + * @return pagerdutyServiceId + */ + @jakarta.annotation.Nullable + public String getPagerdutyServiceId() { + return pagerdutyServiceId; + } + + public void setPagerdutyServiceId(@jakarta.annotation.Nullable String pagerdutyServiceId) { + this.pagerdutyServiceId = pagerdutyServiceId; + } + + + public BulkUpsertTeamsEntitiesInner opsgenieId(@jakarta.annotation.Nullable String opsgenieId) { + this.opsgenieId = opsgenieId; + return this; + } + + /** + * Get opsgenieId + * @return opsgenieId + */ + @jakarta.annotation.Nullable + public String getOpsgenieId() { + return opsgenieId; + } + + public void setOpsgenieId(@jakarta.annotation.Nullable String opsgenieId) { + this.opsgenieId = opsgenieId; + } + + + public BulkUpsertTeamsEntitiesInner victorOpsId(@jakarta.annotation.Nullable String victorOpsId) { + this.victorOpsId = victorOpsId; + return this; + } + + /** + * Get victorOpsId + * @return victorOpsId + */ + @jakarta.annotation.Nullable + public String getVictorOpsId() { + return victorOpsId; + } + + public void setVictorOpsId(@jakarta.annotation.Nullable String victorOpsId) { + this.victorOpsId = victorOpsId; + } + + + public BulkUpsertTeamsEntitiesInner pagertreeId(@jakarta.annotation.Nullable String pagertreeId) { + this.pagertreeId = pagertreeId; + return this; + } + + /** + * Get pagertreeId + * @return pagertreeId + */ + @jakarta.annotation.Nullable + public String getPagertreeId() { + return pagertreeId; + } + + public void setPagertreeId(@jakarta.annotation.Nullable String pagertreeId) { + this.pagertreeId = pagertreeId; + } + + + public BulkUpsertTeamsEntitiesInner backstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + return this; + } + + /** + * Get backstageId + * @return backstageId + */ + @jakarta.annotation.Nullable + public String getBackstageId() { + return backstageId; + } + + public void setBackstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + } + + + public BulkUpsertTeamsEntitiesInner cortexId(@jakarta.annotation.Nullable String cortexId) { + this.cortexId = cortexId; + return this; + } + + /** + * Get cortexId + * @return cortexId + */ + @jakarta.annotation.Nullable + public String getCortexId() { + return cortexId; + } + + public void setCortexId(@jakarta.annotation.Nullable String cortexId) { + this.cortexId = cortexId; + } + + + public BulkUpsertTeamsEntitiesInner opslevelId(@jakarta.annotation.Nullable String opslevelId) { + this.opslevelId = opslevelId; + return this; + } + + /** + * Get opslevelId + * @return opslevelId + */ + @jakarta.annotation.Nullable + public String getOpslevelId() { + return opslevelId; + } + + public void setOpslevelId(@jakarta.annotation.Nullable String opslevelId) { + this.opslevelId = opslevelId; + } + + + public BulkUpsertTeamsEntitiesInner serviceNowCiSysId(@jakarta.annotation.Nullable String serviceNowCiSysId) { + this.serviceNowCiSysId = serviceNowCiSysId; + return this; + } + + /** + * Get serviceNowCiSysId + * @return serviceNowCiSysId + */ + @jakarta.annotation.Nullable + public String getServiceNowCiSysId() { + return serviceNowCiSysId; + } + + public void setServiceNowCiSysId(@jakarta.annotation.Nullable String serviceNowCiSysId) { + this.serviceNowCiSysId = serviceNowCiSysId; + } + + + public BulkUpsertTeamsEntitiesInner alertsEmailEnabled(@jakarta.annotation.Nullable Boolean alertsEmailEnabled) { + this.alertsEmailEnabled = alertsEmailEnabled; + return this; + } + + /** + * Get alertsEmailEnabled + * @return alertsEmailEnabled + */ + @jakarta.annotation.Nullable + public Boolean getAlertsEmailEnabled() { + return alertsEmailEnabled; + } + + public void setAlertsEmailEnabled(@jakarta.annotation.Nullable Boolean alertsEmailEnabled) { + this.alertsEmailEnabled = alertsEmailEnabled; + } + + + public BulkUpsertTeamsEntitiesInner fields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + return this; + } + + public BulkUpsertTeamsEntitiesInner addFieldsItem(BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Catalog property values (merge semantics: only mentioned fields written). + * @return fields + */ + @jakarta.annotation.Nullable + public List getFields() { + return fields; + } + + public void setFields(@jakarta.annotation.Nullable List fields) { + this.fields = fields; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertTeamsEntitiesInner bulkUpsertTeamsEntitiesInner = (BulkUpsertTeamsEntitiesInner) o; + return Objects.equals(this.externalId, bulkUpsertTeamsEntitiesInner.externalId) && + Objects.equals(this.name, bulkUpsertTeamsEntitiesInner.name) && + Objects.equals(this.description, bulkUpsertTeamsEntitiesInner.description) && + Objects.equals(this.publicDescription, bulkUpsertTeamsEntitiesInner.publicDescription) && + Objects.equals(this.color, bulkUpsertTeamsEntitiesInner.color) && + Objects.equals(this.position, bulkUpsertTeamsEntitiesInner.position) && + Objects.equals(this.notifyEmails, bulkUpsertTeamsEntitiesInner.notifyEmails) && + Objects.equals(this.pagerdutyId, bulkUpsertTeamsEntitiesInner.pagerdutyId) && + Objects.equals(this.pagerdutyServiceId, bulkUpsertTeamsEntitiesInner.pagerdutyServiceId) && + Objects.equals(this.opsgenieId, bulkUpsertTeamsEntitiesInner.opsgenieId) && + Objects.equals(this.victorOpsId, bulkUpsertTeamsEntitiesInner.victorOpsId) && + Objects.equals(this.pagertreeId, bulkUpsertTeamsEntitiesInner.pagertreeId) && + Objects.equals(this.backstageId, bulkUpsertTeamsEntitiesInner.backstageId) && + Objects.equals(this.cortexId, bulkUpsertTeamsEntitiesInner.cortexId) && + Objects.equals(this.opslevelId, bulkUpsertTeamsEntitiesInner.opslevelId) && + Objects.equals(this.serviceNowCiSysId, bulkUpsertTeamsEntitiesInner.serviceNowCiSysId) && + Objects.equals(this.alertsEmailEnabled, bulkUpsertTeamsEntitiesInner.alertsEmailEnabled) && + Objects.equals(this.fields, bulkUpsertTeamsEntitiesInner.fields); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(externalId, name, description, publicDescription, color, position, notifyEmails, pagerdutyId, pagerdutyServiceId, opsgenieId, victorOpsId, pagertreeId, backstageId, cortexId, opslevelId, serviceNowCiSysId, alertsEmailEnabled, fields); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertTeamsEntitiesInner {\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); + sb.append(" color: ").append(toIndentedString(color)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); + sb.append(" pagerdutyId: ").append(toIndentedString(pagerdutyId)).append("\n"); + sb.append(" pagerdutyServiceId: ").append(toIndentedString(pagerdutyServiceId)).append("\n"); + sb.append(" opsgenieId: ").append(toIndentedString(opsgenieId)).append("\n"); + sb.append(" victorOpsId: ").append(toIndentedString(victorOpsId)).append("\n"); + sb.append(" pagertreeId: ").append(toIndentedString(pagertreeId)).append("\n"); + sb.append(" backstageId: ").append(toIndentedString(backstageId)).append("\n"); + sb.append(" cortexId: ").append(toIndentedString(cortexId)).append("\n"); + sb.append(" opslevelId: ").append(toIndentedString(opslevelId)).append("\n"); + sb.append(" serviceNowCiSysId: ").append(toIndentedString(serviceNowCiSysId)).append("\n"); + sb.append(" alertsEmailEnabled: ").append(toIndentedString(alertsEmailEnabled)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("external_id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("public_description"); + openapiFields.add("color"); + openapiFields.add("position"); + openapiFields.add("notify_emails"); + openapiFields.add("pagerduty_id"); + openapiFields.add("pagerduty_service_id"); + openapiFields.add("opsgenie_id"); + openapiFields.add("victor_ops_id"); + openapiFields.add("pagertree_id"); + openapiFields.add("backstage_id"); + openapiFields.add("cortex_id"); + openapiFields.add("opslevel_id"); + openapiFields.add("service_now_ci_sys_id"); + openapiFields.add("alerts_email_enabled"); + openapiFields.add("fields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("external_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertTeamsEntitiesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertTeamsEntitiesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertTeamsEntitiesInner is not found in the empty JSON string", BulkUpsertTeamsEntitiesInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertTeamsEntitiesInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertTeamsEntitiesInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertTeamsEntitiesInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); + } + if ((jsonObj.get("pagerduty_id") != null && !jsonObj.get("pagerduty_id").isJsonNull()) && !jsonObj.get("pagerduty_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `pagerduty_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pagerduty_id").toString())); + } + if ((jsonObj.get("pagerduty_service_id") != null && !jsonObj.get("pagerduty_service_id").isJsonNull()) && !jsonObj.get("pagerduty_service_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `pagerduty_service_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pagerduty_service_id").toString())); + } + if ((jsonObj.get("opsgenie_id") != null && !jsonObj.get("opsgenie_id").isJsonNull()) && !jsonObj.get("opsgenie_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opsgenie_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opsgenie_id").toString())); + } + if ((jsonObj.get("victor_ops_id") != null && !jsonObj.get("victor_ops_id").isJsonNull()) && !jsonObj.get("victor_ops_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `victor_ops_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("victor_ops_id").toString())); + } + if ((jsonObj.get("pagertree_id") != null && !jsonObj.get("pagertree_id").isJsonNull()) && !jsonObj.get("pagertree_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `pagertree_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pagertree_id").toString())); + } + if ((jsonObj.get("backstage_id") != null && !jsonObj.get("backstage_id").isJsonNull()) && !jsonObj.get("backstage_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `backstage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("backstage_id").toString())); + } + if ((jsonObj.get("cortex_id") != null && !jsonObj.get("cortex_id").isJsonNull()) && !jsonObj.get("cortex_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `cortex_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("cortex_id").toString())); + } + if ((jsonObj.get("opslevel_id") != null && !jsonObj.get("opslevel_id").isJsonNull()) && !jsonObj.get("opslevel_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `opslevel_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("opslevel_id").toString())); + } + if ((jsonObj.get("service_now_ci_sys_id") != null && !jsonObj.get("service_now_ci_sys_id").isJsonNull()) && !jsonObj.get("service_now_ci_sys_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `service_now_ci_sys_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("service_now_ci_sys_id").toString())); + } + if (jsonObj.get("fields") != null && !jsonObj.get("fields").isJsonNull()) { + JsonArray jsonArrayfields = jsonObj.getAsJsonArray("fields"); + if (jsonArrayfields != null) { + // ensure the json data is an array + if (!jsonObj.get("fields").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `fields` to be an array in the JSON string but got `%s`", jsonObj.get("fields").toString())); + } + + // validate the optional field `fields` (array) + for (int i = 0; i < jsonArrayfields.size(); i++) { + BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner.validateJsonElement(jsonArrayfields.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertTeamsEntitiesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertTeamsEntitiesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertTeamsEntitiesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertTeamsEntitiesInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertTeamsEntitiesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertTeamsEntitiesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertTeamsEntitiesInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertTeamsEntitiesInner + */ + public static BulkUpsertTeamsEntitiesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertTeamsEntitiesInner.class); + } + + /** + * Convert an instance of BulkUpsertTeamsEntitiesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertTeamsError.java b/src/main/java/com/rootly/client/model/BulkUpsertTeamsError.java new file mode 100644 index 00000000..7b857b5b --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertTeamsError.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertTeamsError + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertTeamsError { + public static final String SERIALIZED_NAME_ERRORS = "errors"; + @SerializedName(SERIALIZED_NAME_ERRORS) + @jakarta.annotation.Nonnull + private List errors = new ArrayList<>(); + + public BulkUpsertTeamsError() { + } + + public BulkUpsertTeamsError errors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + return this; + } + + public BulkUpsertTeamsError addErrorsItem(BulkUpsertEnvironmentsErrorErrorsInner errorsItem) { + if (this.errors == null) { + this.errors = new ArrayList<>(); + } + this.errors.add(errorsItem); + return this; + } + + /** + * Get errors + * @return errors + */ + @jakarta.annotation.Nonnull + public List getErrors() { + return errors; + } + + public void setErrors(@jakarta.annotation.Nonnull List errors) { + this.errors = errors; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertTeamsError bulkUpsertTeamsError = (BulkUpsertTeamsError) o; + return Objects.equals(this.errors, bulkUpsertTeamsError.errors); + } + + @Override + public int hashCode() { + return Objects.hash(errors); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertTeamsError {\n"); + sb.append(" errors: ").append(toIndentedString(errors)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("errors"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("errors"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertTeamsError + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertTeamsError.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertTeamsError is not found in the empty JSON string", BulkUpsertTeamsError.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertTeamsError.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertTeamsError` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BulkUpsertTeamsError.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("errors").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `errors` to be an array in the JSON string but got `%s`", jsonObj.get("errors").toString())); + } + + JsonArray jsonArrayerrors = jsonObj.getAsJsonArray("errors"); + // validate the required field `errors` (array) + for (int i = 0; i < jsonArrayerrors.size(); i++) { + BulkUpsertEnvironmentsErrorErrorsInner.validateJsonElement(jsonArrayerrors.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertTeamsError.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertTeamsError' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertTeamsError.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertTeamsError value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertTeamsError read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertTeamsError given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertTeamsError + * @throws IOException if the JSON string is invalid with respect to BulkUpsertTeamsError + */ + public static BulkUpsertTeamsError fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertTeamsError.class); + } + + /** + * Convert an instance of BulkUpsertTeamsError to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertTeamsResponse.java b/src/main/java/com/rootly/client/model/BulkUpsertTeamsResponse.java new file mode 100644 index 00000000..beff87a5 --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertTeamsResponse.java @@ -0,0 +1,228 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertTeamsResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertTeamsResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertTeamsResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private List data = new ArrayList<>(); + + public BulkUpsertTeamsResponse() { + } + + public BulkUpsertTeamsResponse data(@jakarta.annotation.Nullable List data) { + this.data = data; + return this; + } + + public BulkUpsertTeamsResponse addDataItem(BulkUpsertTeamsResponseDataInner dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable List data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertTeamsResponse bulkUpsertTeamsResponse = (BulkUpsertTeamsResponse) o; + return Objects.equals(this.data, bulkUpsertTeamsResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertTeamsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertTeamsResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertTeamsResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertTeamsResponse is not found in the empty JSON string", BulkUpsertTeamsResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertTeamsResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertTeamsResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + if (jsonArraydata != null) { + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + BulkUpsertTeamsResponseDataInner.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertTeamsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertTeamsResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertTeamsResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertTeamsResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertTeamsResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertTeamsResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertTeamsResponse + * @throws IOException if the JSON string is invalid with respect to BulkUpsertTeamsResponse + */ + public static BulkUpsertTeamsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertTeamsResponse.class); + } + + /** + * Convert an instance of BulkUpsertTeamsResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInner.java b/src/main/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInner.java new file mode 100644 index 00000000..2f4e0fcc --- /dev/null +++ b/src/main/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInner.java @@ -0,0 +1,322 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Team; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * BulkUpsertTeamsResponseDataInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class BulkUpsertTeamsResponseDataInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + GROUPS("groups"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nullable + private Team attributes; + + public BulkUpsertTeamsResponseDataInner() { + } + + public BulkUpsertTeamsResponseDataInner id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public BulkUpsertTeamsResponseDataInner type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + public BulkUpsertTeamsResponseDataInner attributes(@jakarta.annotation.Nullable Team attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nullable + public Team getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nullable Team attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BulkUpsertTeamsResponseDataInner bulkUpsertTeamsResponseDataInner = (BulkUpsertTeamsResponseDataInner) o; + return Objects.equals(this.id, bulkUpsertTeamsResponseDataInner.id) && + Objects.equals(this.type, bulkUpsertTeamsResponseDataInner.type) && + Objects.equals(this.attributes, bulkUpsertTeamsResponseDataInner.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BulkUpsertTeamsResponseDataInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BulkUpsertTeamsResponseDataInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BulkUpsertTeamsResponseDataInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in BulkUpsertTeamsResponseDataInner is not found in the empty JSON string", BulkUpsertTeamsResponseDataInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BulkUpsertTeamsResponseDataInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `BulkUpsertTeamsResponseDataInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + // validate the optional field `attributes` + if (jsonObj.get("attributes") != null && !jsonObj.get("attributes").isJsonNull()) { + Team.validateJsonElement(jsonObj.get("attributes")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BulkUpsertTeamsResponseDataInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BulkUpsertTeamsResponseDataInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(BulkUpsertTeamsResponseDataInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, BulkUpsertTeamsResponseDataInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BulkUpsertTeamsResponseDataInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of BulkUpsertTeamsResponseDataInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of BulkUpsertTeamsResponseDataInner + * @throws IOException if the JSON string is invalid with respect to BulkUpsertTeamsResponseDataInner + */ + public static BulkUpsertTeamsResponseDataInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BulkUpsertTeamsResponseDataInner.class); + } + + /** + * Convert an instance of BulkUpsertTeamsResponseDataInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/CallPeopleTaskParams.java b/src/main/java/com/rootly/client/model/CallPeopleTaskParams.java index 3514b095..875bfd96 100644 --- a/src/main/java/com/rootly/client/model/CallPeopleTaskParams.java +++ b/src/main/java/com/rootly/client/model/CallPeopleTaskParams.java @@ -50,7 +50,7 @@ /** * CallPeopleTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CallPeopleTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CancelIncident.java b/src/main/java/com/rootly/client/model/CancelIncident.java index 6855289d..179fad64 100644 --- a/src/main/java/com/rootly/client/model/CancelIncident.java +++ b/src/main/java/com/rootly/client/model/CancelIncident.java @@ -49,7 +49,7 @@ /** * CancelIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CancelIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/CancelIncidentData.java b/src/main/java/com/rootly/client/model/CancelIncidentData.java index 799af0d4..5510a1e9 100644 --- a/src/main/java/com/rootly/client/model/CancelIncidentData.java +++ b/src/main/java/com/rootly/client/model/CancelIncidentData.java @@ -49,7 +49,7 @@ /** * CancelIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CancelIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/CancelIncidentDataAttributes.java b/src/main/java/com/rootly/client/model/CancelIncidentDataAttributes.java index 77619aed..ffea39f1 100644 --- a/src/main/java/com/rootly/client/model/CancelIncidentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/CancelIncidentDataAttributes.java @@ -49,7 +49,7 @@ /** * CancelIncidentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CancelIncidentDataAttributes { public static final String SERIALIZED_NAME_CANCELLATION_MESSAGE = "cancellation_message"; @SerializedName(SERIALIZED_NAME_CANCELLATION_MESSAGE) diff --git a/src/main/java/com/rootly/client/model/Catalog.java b/src/main/java/com/rootly/client/model/Catalog.java index 94da3147..2c46bcc6 100644 --- a/src/main/java/com/rootly/client/model/Catalog.java +++ b/src/main/java/com/rootly/client/model/Catalog.java @@ -49,13 +49,18 @@ /** * Catalog */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Catalog { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull private String name; + public static final String SERIALIZED_NAME_SLUG = "slug"; + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -135,6 +140,78 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + + /** + * Which source manages this resource (read-only). + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -148,6 +225,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public Catalog() { } + public Catalog( + String slug + ) { + this(); + this.slug = slug; + } + public Catalog name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -167,6 +251,17 @@ public void setName(@jakarta.annotation.Nonnull String name) { } + /** + * The slug of the catalog. Derived from `name`. + * @return slug + */ + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + + public Catalog description(@jakarta.annotation.Nullable String description) { this.description = description; return this; @@ -224,6 +319,44 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public Catalog externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog. Must be unique within the team. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public Catalog managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * Which source manages this resource (read-only). + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + } + + public Catalog createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -273,9 +406,12 @@ public boolean equals(Object o) { } Catalog catalog = (Catalog) o; return Objects.equals(this.name, catalog.name) && + Objects.equals(this.slug, catalog.slug) && Objects.equals(this.description, catalog.description) && Objects.equals(this.icon, catalog.icon) && Objects.equals(this.position, catalog.position) && + Objects.equals(this.externalId, catalog.externalId) && + Objects.equals(this.managedBy, catalog.managedBy) && Objects.equals(this.createdAt, catalog.createdAt) && Objects.equals(this.updatedAt, catalog.updatedAt); } @@ -286,7 +422,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, icon, position, createdAt, updatedAt); + return Objects.hash(name, slug, description, icon, position, externalId, managedBy, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -301,9 +437,12 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class Catalog {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" icon: ").append(toIndentedString(icon)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -329,9 +468,12 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("name"); + openapiFields.add("slug"); openapiFields.add("description"); openapiFields.add("icon"); openapiFields.add("position"); + openapiFields.add("external_id"); + openapiFields.add("managed_by"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -375,6 +517,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } @@ -383,6 +528,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the required field `icon` IconEnum.validateJsonElement(jsonObj.get("icon")); + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/CatalogChecklistTemplate.java b/src/main/java/com/rootly/client/model/CatalogChecklistTemplate.java index 1e901cd9..defc37e1 100644 --- a/src/main/java/com/rootly/client/model/CatalogChecklistTemplate.java +++ b/src/main/java/com/rootly/client/model/CatalogChecklistTemplate.java @@ -53,21 +53,21 @@ /** * CatalogChecklistTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogChecklistTemplate { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; /** @@ -134,7 +134,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogTypeEnum catalogType; /** @@ -191,38 +191,45 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_SCOPE_TYPE = "scope_type"; @SerializedName(SERIALIZED_NAME_SCOPE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ScopeTypeEnum scopeType; public static final String SERIALIZED_NAME_SCOPE_ID = "scope_id"; @SerializedName(SERIALIZED_NAME_SCOPE_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String scopeId; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String updatedAt; public static final String SERIALIZED_NAME_FIELDS = "fields"; @SerializedName(SERIALIZED_NAME_FIELDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List fields; public static final String SERIALIZED_NAME_OWNERS = "owners"; @SerializedName(SERIALIZED_NAME_OWNERS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List owners; public CatalogChecklistTemplate() { } - public CatalogChecklistTemplate name(@javax.annotation.Nonnull String name) { + public CatalogChecklistTemplate( + String slug + ) { + this(); + this.slug = slug; + } + + public CatalogChecklistTemplate name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -231,36 +238,28 @@ public CatalogChecklistTemplate name(@javax.annotation.Nonnull String name) { * The name of the checklist template * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public CatalogChecklistTemplate slug(@javax.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the checklist template * @return slug */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@javax.annotation.Nullable String slug) { - this.slug = slug; - } - public CatalogChecklistTemplate description(@javax.annotation.Nullable String description) { + public CatalogChecklistTemplate description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -269,17 +268,17 @@ public CatalogChecklistTemplate description(@javax.annotation.Nullable String de * The description of the checklist template * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public CatalogChecklistTemplate catalogType(@javax.annotation.Nonnull CatalogTypeEnum catalogType) { + public CatalogChecklistTemplate catalogType(@jakarta.annotation.Nonnull CatalogTypeEnum catalogType) { this.catalogType = catalogType; return this; } @@ -288,17 +287,17 @@ public CatalogChecklistTemplate catalogType(@javax.annotation.Nonnull CatalogTyp * The catalog type * @return catalogType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogTypeEnum getCatalogType() { return catalogType; } - public void setCatalogType(@javax.annotation.Nonnull CatalogTypeEnum catalogType) { + public void setCatalogType(@jakarta.annotation.Nonnull CatalogTypeEnum catalogType) { this.catalogType = catalogType; } - public CatalogChecklistTemplate scopeType(@javax.annotation.Nonnull ScopeTypeEnum scopeType) { + public CatalogChecklistTemplate scopeType(@jakarta.annotation.Nonnull ScopeTypeEnum scopeType) { this.scopeType = scopeType; return this; } @@ -307,17 +306,17 @@ public CatalogChecklistTemplate scopeType(@javax.annotation.Nonnull ScopeTypeEnu * The scope type * @return scopeType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ScopeTypeEnum getScopeType() { return scopeType; } - public void setScopeType(@javax.annotation.Nonnull ScopeTypeEnum scopeType) { + public void setScopeType(@jakarta.annotation.Nonnull ScopeTypeEnum scopeType) { this.scopeType = scopeType; } - public CatalogChecklistTemplate scopeId(@javax.annotation.Nonnull String scopeId) { + public CatalogChecklistTemplate scopeId(@jakarta.annotation.Nonnull String scopeId) { this.scopeId = scopeId; return this; } @@ -326,17 +325,17 @@ public CatalogChecklistTemplate scopeId(@javax.annotation.Nonnull String scopeId * The scope ID * @return scopeId */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getScopeId() { return scopeId; } - public void setScopeId(@javax.annotation.Nonnull String scopeId) { + public void setScopeId(@jakarta.annotation.Nonnull String scopeId) { this.scopeId = scopeId; } - public CatalogChecklistTemplate createdAt(@javax.annotation.Nonnull String createdAt) { + public CatalogChecklistTemplate createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; } @@ -345,17 +344,17 @@ public CatalogChecklistTemplate createdAt(@javax.annotation.Nonnull String creat * Date of creation * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; } - public CatalogChecklistTemplate updatedAt(@javax.annotation.Nonnull String updatedAt) { + public CatalogChecklistTemplate updatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -364,17 +363,17 @@ public CatalogChecklistTemplate updatedAt(@javax.annotation.Nonnull String updat * Date of last update * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; } - public CatalogChecklistTemplate fields(@javax.annotation.Nullable List fields) { + public CatalogChecklistTemplate fields(@jakarta.annotation.Nullable List fields) { this.fields = fields; return this; } @@ -391,17 +390,17 @@ public CatalogChecklistTemplate addFieldsItem(CatalogChecklistTemplateFieldsInne * Template fields in position order * @return fields */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getFields() { return fields; } - public void setFields(@javax.annotation.Nullable List fields) { + public void setFields(@jakarta.annotation.Nullable List fields) { this.fields = fields; } - public CatalogChecklistTemplate owners(@javax.annotation.Nullable List owners) { + public CatalogChecklistTemplate owners(@jakarta.annotation.Nullable List owners) { this.owners = owners; return this; } @@ -418,12 +417,12 @@ public CatalogChecklistTemplate addOwnersItem(CatalogChecklistTemplateOwnersInne * Template owners * @return owners */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getOwners() { return owners; } - public void setOwners(@javax.annotation.Nullable List owners) { + public void setOwners(@jakarta.annotation.Nullable List owners) { this.owners = owners; } diff --git a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateFieldsInner.java b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateFieldsInner.java index 94e583c1..fcdebee5 100644 --- a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateFieldsInner.java +++ b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateFieldsInner.java @@ -49,7 +49,7 @@ /** * CatalogChecklistTemplateFieldsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogChecklistTemplateFieldsInner { /** * Source of the field @@ -105,23 +105,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_FIELD_SOURCE = "field_source"; @SerializedName(SERIALIZED_NAME_FIELD_SOURCE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private FieldSourceEnum fieldSource; public static final String SERIALIZED_NAME_FIELD_KEY = "field_key"; @SerializedName(SERIALIZED_NAME_FIELD_KEY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String fieldKey; public static final String SERIALIZED_NAME_CATALOG_PROPERTY_ID = "catalog_property_id"; @SerializedName(SERIALIZED_NAME_CATALOG_PROPERTY_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String catalogPropertyId; public CatalogChecklistTemplateFieldsInner() { } - public CatalogChecklistTemplateFieldsInner fieldSource(@javax.annotation.Nullable FieldSourceEnum fieldSource) { + public CatalogChecklistTemplateFieldsInner fieldSource(@jakarta.annotation.Nullable FieldSourceEnum fieldSource) { this.fieldSource = fieldSource; return this; } @@ -130,17 +130,17 @@ public CatalogChecklistTemplateFieldsInner fieldSource(@javax.annotation.Nullabl * Source of the field * @return fieldSource */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public FieldSourceEnum getFieldSource() { return fieldSource; } - public void setFieldSource(@javax.annotation.Nullable FieldSourceEnum fieldSource) { + public void setFieldSource(@jakarta.annotation.Nullable FieldSourceEnum fieldSource) { this.fieldSource = fieldSource; } - public CatalogChecklistTemplateFieldsInner fieldKey(@javax.annotation.Nullable String fieldKey) { + public CatalogChecklistTemplateFieldsInner fieldKey(@jakarta.annotation.Nullable String fieldKey) { this.fieldKey = fieldKey; return this; } @@ -149,17 +149,17 @@ public CatalogChecklistTemplateFieldsInner fieldKey(@javax.annotation.Nullable S * Key identifying the field * @return fieldKey */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getFieldKey() { return fieldKey; } - public void setFieldKey(@javax.annotation.Nullable String fieldKey) { + public void setFieldKey(@jakarta.annotation.Nullable String fieldKey) { this.fieldKey = fieldKey; } - public CatalogChecklistTemplateFieldsInner catalogPropertyId(@javax.annotation.Nullable String catalogPropertyId) { + public CatalogChecklistTemplateFieldsInner catalogPropertyId(@jakarta.annotation.Nullable String catalogPropertyId) { this.catalogPropertyId = catalogPropertyId; return this; } @@ -168,12 +168,12 @@ public CatalogChecklistTemplateFieldsInner catalogPropertyId(@javax.annotation.N * ID of the catalog property for custom fields * @return catalogPropertyId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCatalogPropertyId() { return catalogPropertyId; } - public void setCatalogPropertyId(@javax.annotation.Nullable String catalogPropertyId) { + public void setCatalogPropertyId(@jakarta.annotation.Nullable String catalogPropertyId) { this.catalogPropertyId = catalogPropertyId; } diff --git a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateList.java b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateList.java index afcc186d..b9a06d58 100644 --- a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateList.java +++ b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogChecklistTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,27 +54,32 @@ /** * CatalogChecklistTemplateList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogChecklistTemplateList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List data = new ArrayList<>(); public static final String SERIALIZED_NAME_LINKS = "links"; @SerializedName(SERIALIZED_NAME_LINKS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Links links; public static final String SERIALIZED_NAME_META = "meta"; @SerializedName(SERIALIZED_NAME_META) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogChecklistTemplateList() { } - public CatalogChecklistTemplateList data(@javax.annotation.Nonnull List data) { + public CatalogChecklistTemplateList data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } @@ -90,17 +96,17 @@ public CatalogChecklistTemplateList addDataItem(CatalogChecklistTemplateResponse * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getData() { return data; } - public void setData(@javax.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public CatalogChecklistTemplateList links(@javax.annotation.Nullable Links links) { + public CatalogChecklistTemplateList links(@jakarta.annotation.Nullable Links links) { this.links = links; return this; } @@ -109,17 +115,17 @@ public CatalogChecklistTemplateList links(@javax.annotation.Nullable Links links * Get links * @return links */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Links getLinks() { return links; } - public void setLinks(@javax.annotation.Nullable Links links) { + public void setLinks(@jakarta.annotation.Nullable Links links) { this.links = links; } - public CatalogChecklistTemplateList meta(@javax.annotation.Nullable Meta meta) { + public CatalogChecklistTemplateList meta(@jakarta.annotation.Nullable Meta meta) { this.meta = meta; return this; } @@ -128,16 +134,43 @@ public CatalogChecklistTemplateList meta(@javax.annotation.Nullable Meta meta) { * Get meta * @return meta */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Meta getMeta() { return meta; } - public void setMeta(@javax.annotation.Nullable Meta meta) { + public void setMeta(@jakarta.annotation.Nullable Meta meta) { this.meta = meta; } + public CatalogChecklistTemplateList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogChecklistTemplateList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CatalogChecklistTemplateList catalogChecklistTemplateList = (CatalogChecklistTemplateList) o; return Objects.equals(this.data, catalogChecklistTemplateList.data) && Objects.equals(this.links, catalogChecklistTemplateList.links) && - Objects.equals(this.meta, catalogChecklistTemplateList.meta); + Objects.equals(this.meta, catalogChecklistTemplateList.meta) && + Objects.equals(this.included, catalogChecklistTemplateList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateOwnersInner.java b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateOwnersInner.java index 9f715263..8d2bad32 100644 --- a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateOwnersInner.java +++ b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateOwnersInner.java @@ -48,11 +48,11 @@ /** * CatalogChecklistTemplateOwnersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogChecklistTemplateOwnersInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; /** @@ -109,13 +109,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TypeEnum type; public CatalogChecklistTemplateOwnersInner() { } - public CatalogChecklistTemplateOwnersInner id(@javax.annotation.Nullable String id) { + public CatalogChecklistTemplateOwnersInner id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -124,17 +124,17 @@ public CatalogChecklistTemplateOwnersInner id(@javax.annotation.Nullable String * User ID for user owners, or field key for field owners * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public CatalogChecklistTemplateOwnersInner type(@javax.annotation.Nullable TypeEnum type) { + public CatalogChecklistTemplateOwnersInner type(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; return this; } @@ -143,12 +143,12 @@ public CatalogChecklistTemplateOwnersInner type(@javax.annotation.Nullable TypeE * Type of owner * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; } diff --git a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponse.java b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponse.java index 1ab26164..a7b99efc 100644 --- a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponse.java +++ b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogChecklistTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,17 +52,22 @@ /** * CatalogChecklistTemplateResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogChecklistTemplateResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogChecklistTemplateResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogChecklistTemplateResponse() { } - public CatalogChecklistTemplateResponse data(@javax.annotation.Nonnull CatalogChecklistTemplateResponseData data) { + public CatalogChecklistTemplateResponse data(@jakarta.annotation.Nonnull CatalogChecklistTemplateResponseData data) { this.data = data; return this; } @@ -68,16 +76,43 @@ public CatalogChecklistTemplateResponse data(@javax.annotation.Nonnull CatalogCh * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogChecklistTemplateResponseData getData() { return data; } - public void setData(@javax.annotation.Nonnull CatalogChecklistTemplateResponseData data) { + public void setData(@jakarta.annotation.Nonnull CatalogChecklistTemplateResponseData data) { this.data = data; } + public CatalogChecklistTemplateResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogChecklistTemplateResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CatalogChecklistTemplateResponse catalogChecklistTemplateResponse = (CatalogChecklistTemplateResponse) o; - return Objects.equals(this.data, catalogChecklistTemplateResponse.data); + return Objects.equals(this.data, catalogChecklistTemplateResponse.data) && + Objects.equals(this.included, catalogChecklistTemplateResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogChecklistTemplateResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CatalogChecklistTemplateResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponseData.java b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponseData.java index 4d644edd..f06ec624 100644 --- a/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponseData.java +++ b/src/main/java/com/rootly/client/model/CatalogChecklistTemplateResponseData.java @@ -49,11 +49,11 @@ /** * CatalogChecklistTemplateResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogChecklistTemplateResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogChecklistTemplate attributes; public CatalogChecklistTemplateResponseData() { } - public CatalogChecklistTemplateResponseData id(@javax.annotation.Nonnull String id) { + public CatalogChecklistTemplateResponseData id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public CatalogChecklistTemplateResponseData id(@javax.annotation.Nonnull String * Unique ID of the checklist template * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public CatalogChecklistTemplateResponseData type(@javax.annotation.Nonnull TypeEnum type) { + public CatalogChecklistTemplateResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public CatalogChecklistTemplateResponseData type(@javax.annotation.Nonnull TypeE * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public CatalogChecklistTemplateResponseData attributes(@javax.annotation.Nonnull CatalogChecklistTemplate attributes) { + public CatalogChecklistTemplateResponseData attributes(@jakarta.annotation.Nonnull CatalogChecklistTemplate attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public CatalogChecklistTemplateResponseData attributes(@javax.annotation.Nonnull * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogChecklistTemplate getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull CatalogChecklistTemplate attributes) { + public void setAttributes(@jakarta.annotation.Nonnull CatalogChecklistTemplate attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntity.java b/src/main/java/com/rootly/client/model/CatalogEntity.java index c1f147e1..69445903 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntity.java +++ b/src/main/java/com/rootly/client/model/CatalogEntity.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCatalogEntityDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,23 +52,110 @@ /** * CatalogEntity */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntity { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull private String name; + public static final String SERIALIZED_NAME_SLUG = "slug"; + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_BACKSTAGE_ID = "backstage_id"; + @SerializedName(SERIALIZED_NAME_BACKSTAGE_ID) + @jakarta.annotation.Nullable + private String backstageId; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + + /** + * Which source manages this resource (read-only). + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -76,9 +166,21 @@ public class CatalogEntity { @jakarta.annotation.Nonnull private String updatedAt; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public CatalogEntity() { } + public CatalogEntity( + String slug + ) { + this(); + this.slug = slug; + } + public CatalogEntity name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -98,6 +200,17 @@ public void setName(@jakarta.annotation.Nonnull String name) { } + /** + * The slug of the catalog entity. Derived from `name`. + * @return slug + */ + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + + public CatalogEntity description(@jakarta.annotation.Nullable String description) { this.description = description; return this; @@ -117,6 +230,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public CatalogEntity publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the catalog entity + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public CatalogEntity position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; @@ -136,6 +268,63 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public CatalogEntity backstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + return this; + } + + /** + * The Backstage entity ID this catalog entity is linked to. + * @return backstageId + */ + @jakarta.annotation.Nullable + public String getBackstageId() { + return backstageId; + } + + public void setBackstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + } + + + public CatalogEntity externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog entity. Must be unique within the catalog. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public CatalogEntity managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * Which source manages this resource (read-only). + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + } + + public CatalogEntity createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -174,6 +363,33 @@ public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { } + public CatalogEntity properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public CatalogEntity addPropertiesItem(NewCatalogEntityDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this catalog entity + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -185,10 +401,16 @@ public boolean equals(Object o) { } CatalogEntity catalogEntity = (CatalogEntity) o; return Objects.equals(this.name, catalogEntity.name) && + Objects.equals(this.slug, catalogEntity.slug) && Objects.equals(this.description, catalogEntity.description) && + Objects.equals(this.publicDescription, catalogEntity.publicDescription) && Objects.equals(this.position, catalogEntity.position) && + Objects.equals(this.backstageId, catalogEntity.backstageId) && + Objects.equals(this.externalId, catalogEntity.externalId) && + Objects.equals(this.managedBy, catalogEntity.managedBy) && Objects.equals(this.createdAt, catalogEntity.createdAt) && - Objects.equals(this.updatedAt, catalogEntity.updatedAt); + Objects.equals(this.updatedAt, catalogEntity.updatedAt) && + Objects.equals(this.properties, catalogEntity.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -197,7 +419,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position, createdAt, updatedAt); + return Objects.hash(name, slug, description, publicDescription, position, backstageId, externalId, managedBy, createdAt, updatedAt, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -212,10 +434,16 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogEntity {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" backstageId: ").append(toIndentedString(backstageId)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -239,10 +467,16 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("name"); + openapiFields.add("slug"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("position"); + openapiFields.add("backstage_id"); + openapiFields.add("external_id"); + openapiFields.add("managed_by"); openapiFields.add("created_at"); openapiFields.add("updated_at"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -283,15 +517,48 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("backstage_id") != null && !jsonObj.get("backstage_id").isJsonNull()) && !jsonObj.get("backstage_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `backstage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("backstage_id").toString())); + } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } if (!jsonObj.get("updated_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCatalogEntityDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklist.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklist.java index c42b60ff..746e3aa2 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklist.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklist.java @@ -53,11 +53,11 @@ /** * CatalogEntityChecklist */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklist { public static final String SERIALIZED_NAME_CATALOG_CHECKLIST_TEMPLATE_ID = "catalog_checklist_template_id"; @SerializedName(SERIALIZED_NAME_CATALOG_CHECKLIST_TEMPLATE_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String catalogChecklistTemplateId; /** @@ -124,12 +124,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_AUDITABLE_TYPE = "auditable_type"; @SerializedName(SERIALIZED_NAME_AUDITABLE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private AuditableTypeEnum auditableType; public static final String SERIALIZED_NAME_AUDITABLE_ID = "auditable_id"; @SerializedName(SERIALIZED_NAME_AUDITABLE_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String auditableId; /** @@ -190,48 +190,48 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private StatusEnum status; public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; @SerializedName(SERIALIZED_NAME_STARTED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String startedAt; public static final String SERIALIZED_NAME_COMPLETED_AT = "completed_at"; @SerializedName(SERIALIZED_NAME_COMPLETED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String completedAt; public static final String SERIALIZED_NAME_COMPLETED_BY_USER_ID = "completed_by_user_id"; @SerializedName(SERIALIZED_NAME_COMPLETED_BY_USER_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String completedByUserId; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String updatedAt; public static final String SERIALIZED_NAME_CHECKLIST_FIELDS = "checklist_fields"; @SerializedName(SERIALIZED_NAME_CHECKLIST_FIELDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List checklistFields; public static final String SERIALIZED_NAME_CHECKLIST_OWNERS = "checklist_owners"; @SerializedName(SERIALIZED_NAME_CHECKLIST_OWNERS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List checklistOwners; public CatalogEntityChecklist() { } - public CatalogEntityChecklist catalogChecklistTemplateId(@javax.annotation.Nonnull String catalogChecklistTemplateId) { + public CatalogEntityChecklist catalogChecklistTemplateId(@jakarta.annotation.Nonnull String catalogChecklistTemplateId) { this.catalogChecklistTemplateId = catalogChecklistTemplateId; return this; } @@ -240,17 +240,17 @@ public CatalogEntityChecklist catalogChecklistTemplateId(@javax.annotation.Nonnu * The ID of the checklist template * @return catalogChecklistTemplateId */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCatalogChecklistTemplateId() { return catalogChecklistTemplateId; } - public void setCatalogChecklistTemplateId(@javax.annotation.Nonnull String catalogChecklistTemplateId) { + public void setCatalogChecklistTemplateId(@jakarta.annotation.Nonnull String catalogChecklistTemplateId) { this.catalogChecklistTemplateId = catalogChecklistTemplateId; } - public CatalogEntityChecklist auditableType(@javax.annotation.Nonnull AuditableTypeEnum auditableType) { + public CatalogEntityChecklist auditableType(@jakarta.annotation.Nonnull AuditableTypeEnum auditableType) { this.auditableType = auditableType; return this; } @@ -259,17 +259,17 @@ public CatalogEntityChecklist auditableType(@javax.annotation.Nonnull AuditableT * The type of the auditable entity * @return auditableType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public AuditableTypeEnum getAuditableType() { return auditableType; } - public void setAuditableType(@javax.annotation.Nonnull AuditableTypeEnum auditableType) { + public void setAuditableType(@jakarta.annotation.Nonnull AuditableTypeEnum auditableType) { this.auditableType = auditableType; } - public CatalogEntityChecklist auditableId(@javax.annotation.Nonnull String auditableId) { + public CatalogEntityChecklist auditableId(@jakarta.annotation.Nonnull String auditableId) { this.auditableId = auditableId; return this; } @@ -278,17 +278,17 @@ public CatalogEntityChecklist auditableId(@javax.annotation.Nonnull String audit * The ID of the auditable entity * @return auditableId */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getAuditableId() { return auditableId; } - public void setAuditableId(@javax.annotation.Nonnull String auditableId) { + public void setAuditableId(@jakarta.annotation.Nonnull String auditableId) { this.auditableId = auditableId; } - public CatalogEntityChecklist status(@javax.annotation.Nonnull StatusEnum status) { + public CatalogEntityChecklist status(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; return this; } @@ -297,17 +297,17 @@ public CatalogEntityChecklist status(@javax.annotation.Nonnull StatusEnum status * The status of the checklist * @return status */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public StatusEnum getStatus() { return status; } - public void setStatus(@javax.annotation.Nonnull StatusEnum status) { + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; } - public CatalogEntityChecklist startedAt(@javax.annotation.Nullable String startedAt) { + public CatalogEntityChecklist startedAt(@jakarta.annotation.Nullable String startedAt) { this.startedAt = startedAt; return this; } @@ -316,17 +316,17 @@ public CatalogEntityChecklist startedAt(@javax.annotation.Nullable String starte * When the checklist was started * @return startedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getStartedAt() { return startedAt; } - public void setStartedAt(@javax.annotation.Nullable String startedAt) { + public void setStartedAt(@jakarta.annotation.Nullable String startedAt) { this.startedAt = startedAt; } - public CatalogEntityChecklist completedAt(@javax.annotation.Nullable String completedAt) { + public CatalogEntityChecklist completedAt(@jakarta.annotation.Nullable String completedAt) { this.completedAt = completedAt; return this; } @@ -335,17 +335,17 @@ public CatalogEntityChecklist completedAt(@javax.annotation.Nullable String comp * When the checklist was completed * @return completedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCompletedAt() { return completedAt; } - public void setCompletedAt(@javax.annotation.Nullable String completedAt) { + public void setCompletedAt(@jakarta.annotation.Nullable String completedAt) { this.completedAt = completedAt; } - public CatalogEntityChecklist completedByUserId(@javax.annotation.Nullable String completedByUserId) { + public CatalogEntityChecklist completedByUserId(@jakarta.annotation.Nullable String completedByUserId) { this.completedByUserId = completedByUserId; return this; } @@ -354,17 +354,17 @@ public CatalogEntityChecklist completedByUserId(@javax.annotation.Nullable Strin * The ID of the user who completed the checklist * @return completedByUserId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCompletedByUserId() { return completedByUserId; } - public void setCompletedByUserId(@javax.annotation.Nullable String completedByUserId) { + public void setCompletedByUserId(@jakarta.annotation.Nullable String completedByUserId) { this.completedByUserId = completedByUserId; } - public CatalogEntityChecklist createdAt(@javax.annotation.Nonnull String createdAt) { + public CatalogEntityChecklist createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; } @@ -373,17 +373,17 @@ public CatalogEntityChecklist createdAt(@javax.annotation.Nonnull String created * Date of creation * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; } - public CatalogEntityChecklist updatedAt(@javax.annotation.Nonnull String updatedAt) { + public CatalogEntityChecklist updatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -392,17 +392,17 @@ public CatalogEntityChecklist updatedAt(@javax.annotation.Nonnull String updated * Date of last update * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; } - public CatalogEntityChecklist checklistFields(@javax.annotation.Nullable List checklistFields) { + public CatalogEntityChecklist checklistFields(@jakarta.annotation.Nullable List checklistFields) { this.checklistFields = checklistFields; return this; } @@ -419,17 +419,17 @@ public CatalogEntityChecklist addChecklistFieldsItem(CatalogEntityChecklistCheck * Checklist fields * @return checklistFields */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getChecklistFields() { return checklistFields; } - public void setChecklistFields(@javax.annotation.Nullable List checklistFields) { + public void setChecklistFields(@jakarta.annotation.Nullable List checklistFields) { this.checklistFields = checklistFields; } - public CatalogEntityChecklist checklistOwners(@javax.annotation.Nullable List checklistOwners) { + public CatalogEntityChecklist checklistOwners(@jakarta.annotation.Nullable List checklistOwners) { this.checklistOwners = checklistOwners; return this; } @@ -446,12 +446,12 @@ public CatalogEntityChecklist addChecklistOwnersItem(CatalogEntityChecklistCheck * Checklist owners * @return checklistOwners */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getChecklistOwners() { return checklistOwners; } - public void setChecklistOwners(@javax.annotation.Nullable List checklistOwners) { + public void setChecklistOwners(@jakarta.annotation.Nullable List checklistOwners) { this.checklistOwners = checklistOwners; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInner.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInner.java index dfbf34ef..5256dcb1 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInner.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInner.java @@ -49,17 +49,17 @@ /** * CatalogEntityChecklistChecklistFieldsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistChecklistFieldsInner { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CatalogEntityChecklistChecklistFieldsInnerData data; public CatalogEntityChecklistChecklistFieldsInner() { } - public CatalogEntityChecklistChecklistFieldsInner data(@javax.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerData data) { + public CatalogEntityChecklistChecklistFieldsInner data(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public CatalogEntityChecklistChecklistFieldsInner data(@javax.annotation.Nullabl * Get data * @return data */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CatalogEntityChecklistChecklistFieldsInnerData getData() { return data; } - public void setData(@javax.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerData data) { + public void setData(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerData.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerData.java index 63235852..e358ef63 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerData.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerData.java @@ -49,11 +49,11 @@ /** * CatalogEntityChecklistChecklistFieldsInnerData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistChecklistFieldsInnerData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CatalogEntityChecklistChecklistFieldsInnerDataAttributes attributes; public CatalogEntityChecklistChecklistFieldsInnerData() { } - public CatalogEntityChecklistChecklistFieldsInnerData id(@javax.annotation.Nullable String id) { + public CatalogEntityChecklistChecklistFieldsInnerData id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public CatalogEntityChecklistChecklistFieldsInnerData id(@javax.annotation.Nulla * ID of the checklist field * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public CatalogEntityChecklistChecklistFieldsInnerData type(@javax.annotation.Nullable TypeEnum type) { + public CatalogEntityChecklistChecklistFieldsInnerData type(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public CatalogEntityChecklistChecklistFieldsInnerData type(@javax.annotation.Nul * Get type * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; } - public CatalogEntityChecklistChecklistFieldsInnerData attributes(@javax.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerDataAttributes attributes) { + public CatalogEntityChecklistChecklistFieldsInnerData attributes(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerDataAttributes attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public CatalogEntityChecklistChecklistFieldsInnerData attributes(@javax.annotati * Get attributes * @return attributes */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CatalogEntityChecklistChecklistFieldsInnerDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistFieldsInnerDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.java index 3179b9bc..a40a71b5 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistFieldsInnerDataAttributes.java @@ -49,57 +49,57 @@ /** * CatalogEntityChecklistChecklistFieldsInnerDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistChecklistFieldsInnerDataAttributes { public static final String SERIALIZED_NAME_CATALOG_ENTITY_CHECKLIST_ID = "catalog_entity_checklist_id"; @SerializedName(SERIALIZED_NAME_CATALOG_ENTITY_CHECKLIST_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String catalogEntityChecklistId; public static final String SERIALIZED_NAME_CATALOG_CHECKLIST_TEMPLATE_FIELD_ID = "catalog_checklist_template_field_id"; @SerializedName(SERIALIZED_NAME_CATALOG_CHECKLIST_TEMPLATE_FIELD_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String catalogChecklistTemplateFieldId; public static final String SERIALIZED_NAME_FIELD_KEY = "field_key"; @SerializedName(SERIALIZED_NAME_FIELD_KEY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String fieldKey; public static final String SERIALIZED_NAME_CHECKED = "checked"; @SerializedName(SERIALIZED_NAME_CHECKED) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean checked; public static final String SERIALIZED_NAME_VALUE_SNAPSHOT = "value_snapshot"; @SerializedName(SERIALIZED_NAME_VALUE_SNAPSHOT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Object valueSnapshot; public static final String SERIALIZED_NAME_COMPLETED_BY_USER_ID = "completed_by_user_id"; @SerializedName(SERIALIZED_NAME_COMPLETED_BY_USER_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String completedByUserId; public static final String SERIALIZED_NAME_COMPLETED_AT = "completed_at"; @SerializedName(SERIALIZED_NAME_COMPLETED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String completedAt; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String updatedAt; public CatalogEntityChecklistChecklistFieldsInnerDataAttributes() { } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes catalogEntityChecklistId(@javax.annotation.Nullable String catalogEntityChecklistId) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes catalogEntityChecklistId(@jakarta.annotation.Nullable String catalogEntityChecklistId) { this.catalogEntityChecklistId = catalogEntityChecklistId; return this; } @@ -108,17 +108,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes catalogEntityChe * The ID of the parent checklist * @return catalogEntityChecklistId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCatalogEntityChecklistId() { return catalogEntityChecklistId; } - public void setCatalogEntityChecklistId(@javax.annotation.Nullable String catalogEntityChecklistId) { + public void setCatalogEntityChecklistId(@jakarta.annotation.Nullable String catalogEntityChecklistId) { this.catalogEntityChecklistId = catalogEntityChecklistId; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes catalogChecklistTemplateFieldId(@javax.annotation.Nullable String catalogChecklistTemplateFieldId) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes catalogChecklistTemplateFieldId(@jakarta.annotation.Nullable String catalogChecklistTemplateFieldId) { this.catalogChecklistTemplateFieldId = catalogChecklistTemplateFieldId; return this; } @@ -127,17 +127,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes catalogChecklist * The ID of the template field * @return catalogChecklistTemplateFieldId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCatalogChecklistTemplateFieldId() { return catalogChecklistTemplateFieldId; } - public void setCatalogChecklistTemplateFieldId(@javax.annotation.Nullable String catalogChecklistTemplateFieldId) { + public void setCatalogChecklistTemplateFieldId(@jakarta.annotation.Nullable String catalogChecklistTemplateFieldId) { this.catalogChecklistTemplateFieldId = catalogChecklistTemplateFieldId; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes fieldKey(@javax.annotation.Nullable String fieldKey) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes fieldKey(@jakarta.annotation.Nullable String fieldKey) { this.fieldKey = fieldKey; return this; } @@ -146,17 +146,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes fieldKey(@javax. * The field key * @return fieldKey */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getFieldKey() { return fieldKey; } - public void setFieldKey(@javax.annotation.Nullable String fieldKey) { + public void setFieldKey(@jakarta.annotation.Nullable String fieldKey) { this.fieldKey = fieldKey; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes checked(@javax.annotation.Nullable Boolean checked) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes checked(@jakarta.annotation.Nullable Boolean checked) { this.checked = checked; return this; } @@ -165,17 +165,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes checked(@javax.a * Whether the field is checked * @return checked */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getChecked() { return checked; } - public void setChecked(@javax.annotation.Nullable Boolean checked) { + public void setChecked(@jakarta.annotation.Nullable Boolean checked) { this.checked = checked; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes valueSnapshot(@javax.annotation.Nullable Object valueSnapshot) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes valueSnapshot(@jakarta.annotation.Nullable Object valueSnapshot) { this.valueSnapshot = valueSnapshot; return this; } @@ -184,17 +184,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes valueSnapshot(@j * The value snapshot at time of checking * @return valueSnapshot */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Object getValueSnapshot() { return valueSnapshot; } - public void setValueSnapshot(@javax.annotation.Nullable Object valueSnapshot) { + public void setValueSnapshot(@jakarta.annotation.Nullable Object valueSnapshot) { this.valueSnapshot = valueSnapshot; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes completedByUserId(@javax.annotation.Nullable String completedByUserId) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes completedByUserId(@jakarta.annotation.Nullable String completedByUserId) { this.completedByUserId = completedByUserId; return this; } @@ -203,17 +203,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes completedByUserI * The ID of the user who checked the field * @return completedByUserId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCompletedByUserId() { return completedByUserId; } - public void setCompletedByUserId(@javax.annotation.Nullable String completedByUserId) { + public void setCompletedByUserId(@jakarta.annotation.Nullable String completedByUserId) { this.completedByUserId = completedByUserId; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes completedAt(@javax.annotation.Nullable String completedAt) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes completedAt(@jakarta.annotation.Nullable String completedAt) { this.completedAt = completedAt; return this; } @@ -222,17 +222,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes completedAt(@jav * When the field was checked * @return completedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCompletedAt() { return completedAt; } - public void setCompletedAt(@javax.annotation.Nullable String completedAt) { + public void setCompletedAt(@jakarta.annotation.Nullable String completedAt) { this.completedAt = completedAt; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes createdAt(@javax.annotation.Nullable String createdAt) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes createdAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; return this; } @@ -241,17 +241,17 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes createdAt(@javax * Date of creation * @return createdAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nullable String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; } - public CatalogEntityChecklistChecklistFieldsInnerDataAttributes updatedAt(@javax.annotation.Nullable String updatedAt) { + public CatalogEntityChecklistChecklistFieldsInnerDataAttributes updatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -260,12 +260,12 @@ public CatalogEntityChecklistChecklistFieldsInnerDataAttributes updatedAt(@javax * Date of last update * @return updatedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nullable String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInner.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInner.java index b83ba77a..823545e2 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInner.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInner.java @@ -49,17 +49,17 @@ /** * CatalogEntityChecklistChecklistOwnersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistChecklistOwnersInner { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CatalogEntityChecklistChecklistOwnersInnerData data; public CatalogEntityChecklistChecklistOwnersInner() { } - public CatalogEntityChecklistChecklistOwnersInner data(@javax.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerData data) { + public CatalogEntityChecklistChecklistOwnersInner data(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public CatalogEntityChecklistChecklistOwnersInner data(@javax.annotation.Nullabl * Get data * @return data */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CatalogEntityChecklistChecklistOwnersInnerData getData() { return data; } - public void setData(@javax.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerData data) { + public void setData(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerData.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerData.java index 84ff3c08..8015d153 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerData.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerData.java @@ -49,11 +49,11 @@ /** * CatalogEntityChecklistChecklistOwnersInnerData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistChecklistOwnersInnerData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CatalogEntityChecklistChecklistOwnersInnerDataAttributes attributes; public CatalogEntityChecklistChecklistOwnersInnerData() { } - public CatalogEntityChecklistChecklistOwnersInnerData id(@javax.annotation.Nullable String id) { + public CatalogEntityChecklistChecklistOwnersInnerData id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public CatalogEntityChecklistChecklistOwnersInnerData id(@javax.annotation.Nulla * ID of the checklist owner * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public CatalogEntityChecklistChecklistOwnersInnerData type(@javax.annotation.Nullable TypeEnum type) { + public CatalogEntityChecklistChecklistOwnersInnerData type(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public CatalogEntityChecklistChecklistOwnersInnerData type(@javax.annotation.Nul * Get type * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; } - public CatalogEntityChecklistChecklistOwnersInnerData attributes(@javax.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerDataAttributes attributes) { + public CatalogEntityChecklistChecklistOwnersInnerData attributes(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerDataAttributes attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public CatalogEntityChecklistChecklistOwnersInnerData attributes(@javax.annotati * Get attributes * @return attributes */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CatalogEntityChecklistChecklistOwnersInnerDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nullable CatalogEntityChecklistChecklistOwnersInnerDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.java index fbb3e10f..437b207c 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistChecklistOwnersInnerDataAttributes.java @@ -48,32 +48,32 @@ /** * CatalogEntityChecklistChecklistOwnersInnerDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistChecklistOwnersInnerDataAttributes { public static final String SERIALIZED_NAME_CATALOG_ENTITY_CHECKLIST_ID = "catalog_entity_checklist_id"; @SerializedName(SERIALIZED_NAME_CATALOG_ENTITY_CHECKLIST_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String catalogEntityChecklistId; public static final String SERIALIZED_NAME_OWNER_USER_ID = "owner_user_id"; @SerializedName(SERIALIZED_NAME_OWNER_USER_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String ownerUserId; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String updatedAt; public CatalogEntityChecklistChecklistOwnersInnerDataAttributes() { } - public CatalogEntityChecklistChecklistOwnersInnerDataAttributes catalogEntityChecklistId(@javax.annotation.Nullable String catalogEntityChecklistId) { + public CatalogEntityChecklistChecklistOwnersInnerDataAttributes catalogEntityChecklistId(@jakarta.annotation.Nullable String catalogEntityChecklistId) { this.catalogEntityChecklistId = catalogEntityChecklistId; return this; } @@ -82,17 +82,17 @@ public CatalogEntityChecklistChecklistOwnersInnerDataAttributes catalogEntityChe * The ID of the parent checklist * @return catalogEntityChecklistId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCatalogEntityChecklistId() { return catalogEntityChecklistId; } - public void setCatalogEntityChecklistId(@javax.annotation.Nullable String catalogEntityChecklistId) { + public void setCatalogEntityChecklistId(@jakarta.annotation.Nullable String catalogEntityChecklistId) { this.catalogEntityChecklistId = catalogEntityChecklistId; } - public CatalogEntityChecklistChecklistOwnersInnerDataAttributes ownerUserId(@javax.annotation.Nullable String ownerUserId) { + public CatalogEntityChecklistChecklistOwnersInnerDataAttributes ownerUserId(@jakarta.annotation.Nullable String ownerUserId) { this.ownerUserId = ownerUserId; return this; } @@ -101,17 +101,17 @@ public CatalogEntityChecklistChecklistOwnersInnerDataAttributes ownerUserId(@jav * The ID of the owner user * @return ownerUserId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getOwnerUserId() { return ownerUserId; } - public void setOwnerUserId(@javax.annotation.Nullable String ownerUserId) { + public void setOwnerUserId(@jakarta.annotation.Nullable String ownerUserId) { this.ownerUserId = ownerUserId; } - public CatalogEntityChecklistChecklistOwnersInnerDataAttributes createdAt(@javax.annotation.Nullable String createdAt) { + public CatalogEntityChecklistChecklistOwnersInnerDataAttributes createdAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; return this; } @@ -120,17 +120,17 @@ public CatalogEntityChecklistChecklistOwnersInnerDataAttributes createdAt(@javax * Date of creation * @return createdAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nullable String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; } - public CatalogEntityChecklistChecklistOwnersInnerDataAttributes updatedAt(@javax.annotation.Nullable String updatedAt) { + public CatalogEntityChecklistChecklistOwnersInnerDataAttributes updatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -139,12 +139,12 @@ public CatalogEntityChecklistChecklistOwnersInnerDataAttributes updatedAt(@javax * Date of last update * @return updatedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nullable String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistList.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistList.java index 75f33756..08bb8ed1 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistList.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityChecklistResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,27 +54,32 @@ /** * CatalogEntityChecklistList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List data = new ArrayList<>(); public static final String SERIALIZED_NAME_LINKS = "links"; @SerializedName(SERIALIZED_NAME_LINKS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Links links; public static final String SERIALIZED_NAME_META = "meta"; @SerializedName(SERIALIZED_NAME_META) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogEntityChecklistList() { } - public CatalogEntityChecklistList data(@javax.annotation.Nonnull List data) { + public CatalogEntityChecklistList data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } @@ -90,17 +96,17 @@ public CatalogEntityChecklistList addDataItem(CatalogEntityChecklistResponseData * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getData() { return data; } - public void setData(@javax.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public CatalogEntityChecklistList links(@javax.annotation.Nullable Links links) { + public CatalogEntityChecklistList links(@jakarta.annotation.Nullable Links links) { this.links = links; return this; } @@ -109,17 +115,17 @@ public CatalogEntityChecklistList links(@javax.annotation.Nullable Links links) * Get links * @return links */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Links getLinks() { return links; } - public void setLinks(@javax.annotation.Nullable Links links) { + public void setLinks(@jakarta.annotation.Nullable Links links) { this.links = links; } - public CatalogEntityChecklistList meta(@javax.annotation.Nullable Meta meta) { + public CatalogEntityChecklistList meta(@jakarta.annotation.Nullable Meta meta) { this.meta = meta; return this; } @@ -128,16 +134,43 @@ public CatalogEntityChecklistList meta(@javax.annotation.Nullable Meta meta) { * Get meta * @return meta */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Meta getMeta() { return meta; } - public void setMeta(@javax.annotation.Nullable Meta meta) { + public void setMeta(@jakarta.annotation.Nullable Meta meta) { this.meta = meta; } + public CatalogEntityChecklistList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogEntityChecklistList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CatalogEntityChecklistList catalogEntityChecklistList = (CatalogEntityChecklistList) o; return Objects.equals(this.data, catalogEntityChecklistList.data) && Objects.equals(this.links, catalogEntityChecklistList.links) && - Objects.equals(this.meta, catalogEntityChecklistList.meta); + Objects.equals(this.meta, catalogEntityChecklistList.meta) && + Objects.equals(this.included, catalogEntityChecklistList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponse.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponse.java index 2b96030e..dd33b952 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponse.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityChecklistResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,17 +52,22 @@ /** * CatalogEntityChecklistResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogEntityChecklistResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogEntityChecklistResponse() { } - public CatalogEntityChecklistResponse data(@javax.annotation.Nonnull CatalogEntityChecklistResponseData data) { + public CatalogEntityChecklistResponse data(@jakarta.annotation.Nonnull CatalogEntityChecklistResponseData data) { this.data = data; return this; } @@ -68,16 +76,43 @@ public CatalogEntityChecklistResponse data(@javax.annotation.Nonnull CatalogEnti * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogEntityChecklistResponseData getData() { return data; } - public void setData(@javax.annotation.Nonnull CatalogEntityChecklistResponseData data) { + public void setData(@jakarta.annotation.Nonnull CatalogEntityChecklistResponseData data) { this.data = data; } + public CatalogEntityChecklistResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogEntityChecklistResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CatalogEntityChecklistResponse catalogEntityChecklistResponse = (CatalogEntityChecklistResponse) o; - return Objects.equals(this.data, catalogEntityChecklistResponse.data); + return Objects.equals(this.data, catalogEntityChecklistResponse.data) && + Objects.equals(this.included, catalogEntityChecklistResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogEntityChecklistResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CatalogEntityChecklistResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponseData.java b/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponseData.java index 4da0881e..7efc34e1 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponseData.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityChecklistResponseData.java @@ -49,11 +49,11 @@ /** * CatalogEntityChecklistResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityChecklistResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogEntityChecklist attributes; public CatalogEntityChecklistResponseData() { } - public CatalogEntityChecklistResponseData id(@javax.annotation.Nonnull String id) { + public CatalogEntityChecklistResponseData id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public CatalogEntityChecklistResponseData id(@javax.annotation.Nonnull String id * Unique ID of the entity checklist * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public CatalogEntityChecklistResponseData type(@javax.annotation.Nonnull TypeEnum type) { + public CatalogEntityChecklistResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public CatalogEntityChecklistResponseData type(@javax.annotation.Nonnull TypeEnu * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public CatalogEntityChecklistResponseData attributes(@javax.annotation.Nonnull CatalogEntityChecklist attributes) { + public CatalogEntityChecklistResponseData attributes(@jakarta.annotation.Nonnull CatalogEntityChecklist attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public CatalogEntityChecklistResponseData attributes(@javax.annotation.Nonnull C * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogEntityChecklist getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull CatalogEntityChecklist attributes) { + public void setAttributes(@jakarta.annotation.Nonnull CatalogEntityChecklist attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityList.java b/src/main/java/com/rootly/client/model/CatalogEntityList.java index 0ab4d392..3870ac88 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityList.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CatalogEntityList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CatalogEntityList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogEntityList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CatalogEntityList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogEntityList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CatalogEntityList catalogEntityList = (CatalogEntityList) o; return Objects.equals(this.data, catalogEntityList.data) && Objects.equals(this.links, catalogEntityList.links) && - Objects.equals(this.meta, catalogEntityList.meta); + Objects.equals(this.meta, catalogEntityList.meta) && + Objects.equals(this.included, catalogEntityList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogEntityProperty.java b/src/main/java/com/rootly/client/model/CatalogEntityProperty.java index da32bb50..71c23a77 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityProperty.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityProperty.java @@ -46,9 +46,11 @@ import com.rootly.client.JSON; /** - * CatalogEntityProperty + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. + * @deprecated */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@Deprecated +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityProperty { public static final String SERIALIZED_NAME_CATALOG_ENTITY_ID = "catalog_entity_id"; @SerializedName(SERIALIZED_NAME_CATALOG_ENTITY_ID) @@ -67,7 +69,9 @@ public class CatalogEntityProperty { public enum KeyEnum { TEXT("text"), - CATALOG_ENTITY("catalog_entity"); + CATALOG_ENTITY("catalog_entity"), + + SLACK("slack"); private String value; diff --git a/src/main/java/com/rootly/client/model/CatalogEntityPropertyList.java b/src/main/java/com/rootly/client/model/CatalogEntityPropertyList.java index 79cdd955..e95aed1d 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityPropertyList.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityPropertyList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -51,9 +52,11 @@ import com.rootly.client.JSON; /** - * CatalogEntityPropertyList + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. + * @deprecated */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@Deprecated +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityPropertyList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +73,11 @@ public class CatalogEntityPropertyList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogEntityPropertyList() { } @@ -138,6 +146,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CatalogEntityPropertyList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogEntityPropertyList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +185,13 @@ public boolean equals(Object o) { CatalogEntityPropertyList catalogEntityPropertyList = (CatalogEntityPropertyList) o; return Objects.equals(this.data, catalogEntityPropertyList.data) && Objects.equals(this.links, catalogEntityPropertyList.links) && - Objects.equals(this.meta, catalogEntityPropertyList.meta); + Objects.equals(this.meta, catalogEntityPropertyList.meta) && + Objects.equals(this.included, catalogEntityPropertyList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +201,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +227,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponse.java b/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponse.java index 639dfbbe..78057380 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponse.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -47,15 +50,22 @@ import com.rootly.client.JSON; /** - * CatalogEntityPropertyResponse + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. + * @deprecated */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@Deprecated +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityPropertyResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CatalogEntityPropertyResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogEntityPropertyResponse() { } @@ -78,6 +88,33 @@ public void setData(@jakarta.annotation.Nonnull CatalogEntityPropertyResponseDat } + public CatalogEntityPropertyResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogEntityPropertyResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +125,13 @@ public boolean equals(Object o) { return false; } CatalogEntityPropertyResponse catalogEntityPropertyResponse = (CatalogEntityPropertyResponse) o; - return Objects.equals(this.data, catalogEntityPropertyResponse.data); + return Objects.equals(this.data, catalogEntityPropertyResponse.data) && + Objects.equals(this.included, catalogEntityPropertyResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +139,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogEntityPropertyResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +163,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +200,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CatalogEntityPropertyResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponseData.java b/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponseData.java index c114717a..0ceebcbd 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponseData.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityPropertyResponseData.java @@ -49,7 +49,7 @@ /** * CatalogEntityPropertyResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityPropertyResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -112,6 +112,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @Deprecated @SerializedName(SERIALIZED_NAME_ATTRIBUTES) @jakarta.annotation.Nonnull private CatalogEntityProperty attributes; @@ -157,6 +158,7 @@ public void setType(@jakarta.annotation.Nonnull TypeEnum type) { } + @Deprecated public CatalogEntityPropertyResponseData attributes(@jakarta.annotation.Nonnull CatalogEntityProperty attributes) { this.attributes = attributes; return this; @@ -165,12 +167,15 @@ public CatalogEntityPropertyResponseData attributes(@jakarta.annotation.Nonnull /** * Get attributes * @return attributes + * @deprecated */ + @Deprecated @jakarta.annotation.Nonnull public CatalogEntityProperty getAttributes() { return attributes; } + @Deprecated public void setAttributes(@jakarta.annotation.Nonnull CatalogEntityProperty attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CatalogEntityResponse.java b/src/main/java/com/rootly/client/model/CatalogEntityResponse.java index 904e50d2..764007d5 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityResponse.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CatalogEntityResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CatalogEntityResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogEntityResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CatalogEntityResponseData data) } + public CatalogEntityResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogEntityResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CatalogEntityResponse catalogEntityResponse = (CatalogEntityResponse) o; - return Objects.equals(this.data, catalogEntityResponse.data); + return Objects.equals(this.data, catalogEntityResponse.data) && + Objects.equals(this.included, catalogEntityResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogEntityResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CatalogEntityResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogEntityResponseData.java b/src/main/java/com/rootly/client/model/CatalogEntityResponseData.java index 9d179b62..be66b392 100644 --- a/src/main/java/com/rootly/client/model/CatalogEntityResponseData.java +++ b/src/main/java/com/rootly/client/model/CatalogEntityResponseData.java @@ -49,7 +49,7 @@ /** * CatalogEntityResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogEntityResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CatalogField.java b/src/main/java/com/rootly/client/model/CatalogField.java index acb0815d..e8d876a5 100644 --- a/src/main/java/com/rootly/client/model/CatalogField.java +++ b/src/main/java/com/rootly/client/model/CatalogField.java @@ -49,11 +49,11 @@ /** * CatalogField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogField { public static final String SERIALIZED_NAME_CATALOG_ID = "catalog_id"; @SerializedName(SERIALIZED_NAME_CATALOG_ID) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String catalogId; public static final String SERIALIZED_NAME_NAME = "name"; @@ -63,7 +63,7 @@ public class CatalogField { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; /** @@ -138,6 +138,150 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_REQUIRED = "required"; + @SerializedName(SERIALIZED_NAME_REQUIRED) + @jakarta.annotation.Nullable + private Boolean required; + + /** + * The type of catalog the field belongs to. + */ + @JsonAdapter(CatalogTypeEnum.Adapter.class) + public enum CatalogTypeEnum { + CATALOG("catalog"), + + CAUSE("cause"), + + ENVIRONMENT("environment"), + + FUNCTIONALITY("functionality"), + + INCIDENT_TYPE("incident_type"), + + SERVICE("service"), + + TEAM("team"); + + private String value; + + CatalogTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogTypeEnum fromValue(String value) { + for (CatalogTypeEnum b : CatalogTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; + @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) + @jakarta.annotation.Nullable + private CatalogTypeEnum catalogType; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + + /** + * Which source manages this resource (read-only). + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -151,7 +295,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public CatalogField() { } - public CatalogField catalogId(@jakarta.annotation.Nonnull String catalogId) { + public CatalogField( + String slug + ) { + this(); + this.slug = slug; + } + + public CatalogField catalogId(@jakarta.annotation.Nullable String catalogId) { this.catalogId = catalogId; return this; } @@ -160,12 +311,12 @@ public CatalogField catalogId(@jakarta.annotation.Nonnull String catalogId) { * Get catalogId * @return catalogId */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getCatalogId() { return catalogId; } - public void setCatalogId(@jakarta.annotation.Nonnull String catalogId) { + public void setCatalogId(@jakarta.annotation.Nullable String catalogId) { this.catalogId = catalogId; } @@ -189,23 +340,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public CatalogField slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * Get slug * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public CatalogField kind(@jakarta.annotation.Nonnull KindEnum kind) { @@ -284,6 +427,82 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public CatalogField required(@jakarta.annotation.Nullable Boolean required) { + this.required = required; + return this; + } + + /** + * Whether the field is required. + * @return required + */ + @jakarta.annotation.Nullable + public Boolean getRequired() { + return required; + } + + public void setRequired(@jakarta.annotation.Nullable Boolean required) { + this.required = required; + } + + + public CatalogField catalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { + this.catalogType = catalogType; + return this; + } + + /** + * The type of catalog the field belongs to. + * @return catalogType + */ + @jakarta.annotation.Nullable + public CatalogTypeEnum getCatalogType() { + return catalogType; + } + + public void setCatalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { + this.catalogType = catalogType; + } + + + public CatalogField externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog field. Must be unique within the scope. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public CatalogField managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * Which source manages this resource (read-only). + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + } + + public CatalogField createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -339,6 +558,10 @@ public boolean equals(Object o) { Objects.equals(this.kindCatalogId, catalogField.kindCatalogId) && Objects.equals(this.multiple, catalogField.multiple) && Objects.equals(this.position, catalogField.position) && + Objects.equals(this.required, catalogField.required) && + Objects.equals(this.catalogType, catalogField.catalogType) && + Objects.equals(this.externalId, catalogField.externalId) && + Objects.equals(this.managedBy, catalogField.managedBy) && Objects.equals(this.createdAt, catalogField.createdAt) && Objects.equals(this.updatedAt, catalogField.updatedAt); } @@ -349,7 +572,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(catalogId, name, slug, kind, kindCatalogId, multiple, position, createdAt, updatedAt); + return Objects.hash(catalogId, name, slug, kind, kindCatalogId, multiple, position, required, catalogType, externalId, managedBy, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -370,6 +593,10 @@ public String toString() { sb.append(" kindCatalogId: ").append(toIndentedString(kindCatalogId)).append("\n"); sb.append(" multiple: ").append(toIndentedString(multiple)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" required: ").append(toIndentedString(required)).append("\n"); + sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -401,6 +628,10 @@ private String toIndentedString(Object o) { openapiFields.add("kind_catalog_id"); openapiFields.add("multiple"); openapiFields.add("position"); + openapiFields.add("required"); + openapiFields.add("catalog_type"); + openapiFields.add("external_id"); + openapiFields.add("managed_by"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -408,7 +639,6 @@ private String toIndentedString(Object o) { openapiRequiredFields = new HashSet(); openapiRequiredFields.add("catalog_id"); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("kind"); openapiRequiredFields.add("multiple"); openapiRequiredFields.add("position"); @@ -444,13 +674,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("catalog_id").isJsonPrimitive()) { + if ((jsonObj.get("catalog_id") != null && !jsonObj.get("catalog_id").isJsonNull()) && !jsonObj.get("catalog_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `catalog_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("catalog_id").toString())); } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if (!jsonObj.get("kind").isJsonPrimitive()) { @@ -461,6 +691,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("kind_catalog_id") != null && !jsonObj.get("kind_catalog_id").isJsonNull()) && !jsonObj.get("kind_catalog_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind_catalog_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind_catalog_id").toString())); } + if ((jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) && !jsonObj.get("catalog_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `catalog_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("catalog_type").toString())); + } + // validate the optional field `catalog_type` + if (jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) { + CatalogTypeEnum.validateJsonElement(jsonObj.get("catalog_type")); + } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/CatalogFieldList.java b/src/main/java/com/rootly/client/model/CatalogFieldList.java index c60b5fce..9c933b05 100644 --- a/src/main/java/com/rootly/client/model/CatalogFieldList.java +++ b/src/main/java/com/rootly/client/model/CatalogFieldList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CatalogFieldList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogFieldList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CatalogFieldList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogFieldList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CatalogFieldList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogFieldList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CatalogFieldList catalogFieldList = (CatalogFieldList) o; return Objects.equals(this.data, catalogFieldList.data) && Objects.equals(this.links, catalogFieldList.links) && - Objects.equals(this.meta, catalogFieldList.meta); + Objects.equals(this.meta, catalogFieldList.meta) && + Objects.equals(this.included, catalogFieldList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogFieldResponse.java b/src/main/java/com/rootly/client/model/CatalogFieldResponse.java index 8ec320a5..520f797b 100644 --- a/src/main/java/com/rootly/client/model/CatalogFieldResponse.java +++ b/src/main/java/com/rootly/client/model/CatalogFieldResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CatalogFieldResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogFieldResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CatalogFieldResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogFieldResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CatalogFieldResponseData data) { } + public CatalogFieldResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogFieldResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CatalogFieldResponse catalogFieldResponse = (CatalogFieldResponse) o; - return Objects.equals(this.data, catalogFieldResponse.data); + return Objects.equals(this.data, catalogFieldResponse.data) && + Objects.equals(this.included, catalogFieldResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogFieldResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CatalogFieldResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogFieldResponseData.java b/src/main/java/com/rootly/client/model/CatalogFieldResponseData.java index c88275a3..d71a35ba 100644 --- a/src/main/java/com/rootly/client/model/CatalogFieldResponseData.java +++ b/src/main/java/com/rootly/client/model/CatalogFieldResponseData.java @@ -49,7 +49,7 @@ /** * CatalogFieldResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogFieldResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -61,7 +61,7 @@ public class CatalogFieldResponseData { */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { - CATALOG_FIELDS("catalog_fields"); + CATALOG_PROPERTIES("catalog_properties"); private String value; diff --git a/src/main/java/com/rootly/client/model/CatalogList.java b/src/main/java/com/rootly/client/model/CatalogList.java index 63fa7a52..cdb20fff 100644 --- a/src/main/java/com/rootly/client/model/CatalogList.java +++ b/src/main/java/com/rootly/client/model/CatalogList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CatalogList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CatalogList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CatalogList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CatalogList catalogList = (CatalogList) o; return Objects.equals(this.data, catalogList.data) && Objects.equals(this.links, catalogList.links) && - Objects.equals(this.meta, catalogList.meta); + Objects.equals(this.meta, catalogList.meta) && + Objects.equals(this.included, catalogList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogProperty.java b/src/main/java/com/rootly/client/model/CatalogProperty.java index 892b4e52..0aee1b57 100644 --- a/src/main/java/com/rootly/client/model/CatalogProperty.java +++ b/src/main/java/com/rootly/client/model/CatalogProperty.java @@ -49,21 +49,21 @@ /** * CatalogProperty */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogProperty { public static final String SERIALIZED_NAME_CATALOG_ID = "catalog_id"; @SerializedName(SERIALIZED_NAME_CATALOG_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String catalogId; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String slug; /** @@ -120,27 +120,27 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_KIND = "kind"; @SerializedName(SERIALIZED_NAME_KIND) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private KindEnum kind; public static final String SERIALIZED_NAME_KIND_CATALOG_ID = "kind_catalog_id"; @SerializedName(SERIALIZED_NAME_KIND_CATALOG_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String kindCatalogId; public static final String SERIALIZED_NAME_MULTIPLE = "multiple"; @SerializedName(SERIALIZED_NAME_MULTIPLE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Boolean multiple; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; public static final String SERIALIZED_NAME_REQUIRED = "required"; @SerializedName(SERIALIZED_NAME_REQUIRED) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean required; /** @@ -207,23 +207,102 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CatalogTypeEnum catalogType; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + + /** + * Which source manages this resource (read-only). + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String updatedAt; public CatalogProperty() { } - public CatalogProperty catalogId(@javax.annotation.Nullable String catalogId) { + public CatalogProperty( + String slug + ) { + this(); + this.slug = slug; + } + + public CatalogProperty catalogId(@jakarta.annotation.Nullable String catalogId) { this.catalogId = catalogId; return this; } @@ -232,17 +311,17 @@ public CatalogProperty catalogId(@javax.annotation.Nullable String catalogId) { * Get catalogId * @return catalogId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCatalogId() { return catalogId; } - public void setCatalogId(@javax.annotation.Nullable String catalogId) { + public void setCatalogId(@jakarta.annotation.Nullable String catalogId) { this.catalogId = catalogId; } - public CatalogProperty name(@javax.annotation.Nonnull String name) { + public CatalogProperty name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -251,36 +330,28 @@ public CatalogProperty name(@javax.annotation.Nonnull String name) { * Get name * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public CatalogProperty slug(@javax.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * Get slug * @return slug */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@javax.annotation.Nullable String slug) { - this.slug = slug; - } - public CatalogProperty kind(@javax.annotation.Nonnull KindEnum kind) { + public CatalogProperty kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; } @@ -289,17 +360,17 @@ public CatalogProperty kind(@javax.annotation.Nonnull KindEnum kind) { * Get kind * @return kind */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public KindEnum getKind() { return kind; } - public void setKind(@javax.annotation.Nonnull KindEnum kind) { + public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; } - public CatalogProperty kindCatalogId(@javax.annotation.Nullable String kindCatalogId) { + public CatalogProperty kindCatalogId(@jakarta.annotation.Nullable String kindCatalogId) { this.kindCatalogId = kindCatalogId; return this; } @@ -308,17 +379,17 @@ public CatalogProperty kindCatalogId(@javax.annotation.Nullable String kindCatal * Restricts values to items of specified catalog. * @return kindCatalogId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getKindCatalogId() { return kindCatalogId; } - public void setKindCatalogId(@javax.annotation.Nullable String kindCatalogId) { + public void setKindCatalogId(@jakarta.annotation.Nullable String kindCatalogId) { this.kindCatalogId = kindCatalogId; } - public CatalogProperty multiple(@javax.annotation.Nonnull Boolean multiple) { + public CatalogProperty multiple(@jakarta.annotation.Nonnull Boolean multiple) { this.multiple = multiple; return this; } @@ -327,17 +398,17 @@ public CatalogProperty multiple(@javax.annotation.Nonnull Boolean multiple) { * Whether the attribute accepts multiple values. * @return multiple */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Boolean getMultiple() { return multiple; } - public void setMultiple(@javax.annotation.Nonnull Boolean multiple) { + public void setMultiple(@jakarta.annotation.Nonnull Boolean multiple) { this.multiple = multiple; } - public CatalogProperty position(@javax.annotation.Nullable Integer position) { + public CatalogProperty position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -346,17 +417,17 @@ public CatalogProperty position(@javax.annotation.Nullable Integer position) { * Default position of the item when displayed in a list. * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public CatalogProperty required(@javax.annotation.Nullable Boolean required) { + public CatalogProperty required(@jakarta.annotation.Nullable Boolean required) { this.required = required; return this; } @@ -365,17 +436,17 @@ public CatalogProperty required(@javax.annotation.Nullable Boolean required) { * Whether the property is required. * @return required */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getRequired() { return required; } - public void setRequired(@javax.annotation.Nullable Boolean required) { + public void setRequired(@jakarta.annotation.Nullable Boolean required) { this.required = required; } - public CatalogProperty catalogType(@javax.annotation.Nullable CatalogTypeEnum catalogType) { + public CatalogProperty catalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { this.catalogType = catalogType; return this; } @@ -384,17 +455,55 @@ public CatalogProperty catalogType(@javax.annotation.Nullable CatalogTypeEnum ca * The type of catalog the property belongs to. * @return catalogType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CatalogTypeEnum getCatalogType() { return catalogType; } - public void setCatalogType(@javax.annotation.Nullable CatalogTypeEnum catalogType) { + public void setCatalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { this.catalogType = catalogType; } - public CatalogProperty createdAt(@javax.annotation.Nonnull String createdAt) { + public CatalogProperty externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog property. Must be unique within the scope. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public CatalogProperty managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * Which source manages this resource (read-only). + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + } + + + public CatalogProperty createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; } @@ -403,17 +512,17 @@ public CatalogProperty createdAt(@javax.annotation.Nonnull String createdAt) { * Get createdAt * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; } - public CatalogProperty updatedAt(@javax.annotation.Nonnull String updatedAt) { + public CatalogProperty updatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -422,12 +531,12 @@ public CatalogProperty updatedAt(@javax.annotation.Nonnull String updatedAt) { * Get updatedAt * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; } @@ -451,6 +560,8 @@ public boolean equals(Object o) { Objects.equals(this.position, catalogProperty.position) && Objects.equals(this.required, catalogProperty.required) && Objects.equals(this.catalogType, catalogProperty.catalogType) && + Objects.equals(this.externalId, catalogProperty.externalId) && + Objects.equals(this.managedBy, catalogProperty.managedBy) && Objects.equals(this.createdAt, catalogProperty.createdAt) && Objects.equals(this.updatedAt, catalogProperty.updatedAt); } @@ -461,7 +572,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(catalogId, name, slug, kind, kindCatalogId, multiple, position, required, catalogType, createdAt, updatedAt); + return Objects.hash(catalogId, name, slug, kind, kindCatalogId, multiple, position, required, catalogType, externalId, managedBy, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -484,6 +595,8 @@ public String toString() { sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" required: ").append(toIndentedString(required)).append("\n"); sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -517,6 +630,8 @@ private String toIndentedString(Object o) { openapiFields.add("position"); openapiFields.add("required"); openapiFields.add("catalog_type"); + openapiFields.add("external_id"); + openapiFields.add("managed_by"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -583,6 +698,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) { CatalogTypeEnum.validateJsonElement(jsonObj.get("catalog_type")); } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/CatalogPropertyList.java b/src/main/java/com/rootly/client/model/CatalogPropertyList.java index 4144ea8d..99ef9716 100644 --- a/src/main/java/com/rootly/client/model/CatalogPropertyList.java +++ b/src/main/java/com/rootly/client/model/CatalogPropertyList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,27 +54,32 @@ /** * CatalogPropertyList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogPropertyList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List data = new ArrayList<>(); public static final String SERIALIZED_NAME_LINKS = "links"; @SerializedName(SERIALIZED_NAME_LINKS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Links links; public static final String SERIALIZED_NAME_META = "meta"; @SerializedName(SERIALIZED_NAME_META) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogPropertyList() { } - public CatalogPropertyList data(@javax.annotation.Nonnull List data) { + public CatalogPropertyList data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } @@ -90,17 +96,17 @@ public CatalogPropertyList addDataItem(CatalogPropertyResponseData dataItem) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getData() { return data; } - public void setData(@javax.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public CatalogPropertyList links(@javax.annotation.Nonnull Links links) { + public CatalogPropertyList links(@jakarta.annotation.Nonnull Links links) { this.links = links; return this; } @@ -109,17 +115,17 @@ public CatalogPropertyList links(@javax.annotation.Nonnull Links links) { * Get links * @return links */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Links getLinks() { return links; } - public void setLinks(@javax.annotation.Nonnull Links links) { + public void setLinks(@jakarta.annotation.Nonnull Links links) { this.links = links; } - public CatalogPropertyList meta(@javax.annotation.Nonnull Meta meta) { + public CatalogPropertyList meta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; return this; } @@ -128,16 +134,43 @@ public CatalogPropertyList meta(@javax.annotation.Nonnull Meta meta) { * Get meta * @return meta */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Meta getMeta() { return meta; } - public void setMeta(@javax.annotation.Nonnull Meta meta) { + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; } + public CatalogPropertyList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogPropertyList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CatalogPropertyList catalogPropertyList = (CatalogPropertyList) o; return Objects.equals(this.data, catalogPropertyList.data) && Objects.equals(this.links, catalogPropertyList.links) && - Objects.equals(this.meta, catalogPropertyList.meta); + Objects.equals(this.meta, catalogPropertyList.meta) && + Objects.equals(this.included, catalogPropertyList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogPropertyResponse.java b/src/main/java/com/rootly/client/model/CatalogPropertyResponse.java index 33372392..bd3ddbcf 100644 --- a/src/main/java/com/rootly/client/model/CatalogPropertyResponse.java +++ b/src/main/java/com/rootly/client/model/CatalogPropertyResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,17 +52,22 @@ /** * CatalogPropertyResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogPropertyResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogPropertyResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogPropertyResponse() { } - public CatalogPropertyResponse data(@javax.annotation.Nonnull CatalogPropertyResponseData data) { + public CatalogPropertyResponse data(@jakarta.annotation.Nonnull CatalogPropertyResponseData data) { this.data = data; return this; } @@ -68,16 +76,43 @@ public CatalogPropertyResponse data(@javax.annotation.Nonnull CatalogPropertyRes * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogPropertyResponseData getData() { return data; } - public void setData(@javax.annotation.Nonnull CatalogPropertyResponseData data) { + public void setData(@jakarta.annotation.Nonnull CatalogPropertyResponseData data) { this.data = data; } + public CatalogPropertyResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogPropertyResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CatalogPropertyResponse catalogPropertyResponse = (CatalogPropertyResponse) o; - return Objects.equals(this.data, catalogPropertyResponse.data); + return Objects.equals(this.data, catalogPropertyResponse.data) && + Objects.equals(this.included, catalogPropertyResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogPropertyResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CatalogPropertyResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogPropertyResponseData.java b/src/main/java/com/rootly/client/model/CatalogPropertyResponseData.java index f63b4162..1ba975fd 100644 --- a/src/main/java/com/rootly/client/model/CatalogPropertyResponseData.java +++ b/src/main/java/com/rootly/client/model/CatalogPropertyResponseData.java @@ -49,11 +49,11 @@ /** * CatalogPropertyResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogPropertyResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogProperty attributes; public CatalogPropertyResponseData() { } - public CatalogPropertyResponseData id(@javax.annotation.Nonnull String id) { + public CatalogPropertyResponseData id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public CatalogPropertyResponseData id(@javax.annotation.Nonnull String id) { * Unique ID of the catalog_property * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public CatalogPropertyResponseData type(@javax.annotation.Nonnull TypeEnum type) { + public CatalogPropertyResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public CatalogPropertyResponseData type(@javax.annotation.Nonnull TypeEnum type) * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public CatalogPropertyResponseData attributes(@javax.annotation.Nonnull CatalogProperty attributes) { + public CatalogPropertyResponseData attributes(@jakarta.annotation.Nonnull CatalogProperty attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public CatalogPropertyResponseData attributes(@javax.annotation.Nonnull CatalogP * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogProperty getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull CatalogProperty attributes) { + public void setAttributes(@jakarta.annotation.Nonnull CatalogProperty attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CatalogResponse.java b/src/main/java/com/rootly/client/model/CatalogResponse.java index 79806a3b..4fd74d2a 100644 --- a/src/main/java/com/rootly/client/model/CatalogResponse.java +++ b/src/main/java/com/rootly/client/model/CatalogResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CatalogResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CatalogResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CatalogResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CatalogResponseData data) { } + public CatalogResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CatalogResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CatalogResponse catalogResponse = (CatalogResponse) o; - return Objects.equals(this.data, catalogResponse.data); + return Objects.equals(this.data, catalogResponse.data) && + Objects.equals(this.included, catalogResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CatalogResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CatalogResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CatalogResponseData.java b/src/main/java/com/rootly/client/model/CatalogResponseData.java index 994ca129..e15edfcb 100644 --- a/src/main/java/com/rootly/client/model/CatalogResponseData.java +++ b/src/main/java/com/rootly/client/model/CatalogResponseData.java @@ -49,7 +49,7 @@ /** * CatalogResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CatalogResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Cause.java b/src/main/java/com/rootly/client/model/Cause.java index 98e989e5..db1d097a 100644 --- a/src/main/java/com/rootly/client/model/Cause.java +++ b/src/main/java/com/rootly/client/model/Cause.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,7 +52,7 @@ /** * Cause */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Cause { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -66,11 +69,21 @@ public class Cause { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -84,6 +97,13 @@ public class Cause { public Cause() { } + public Cause( + String slug + ) { + this(); + this.slug = slug; + } + public Cause name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -103,11 +123,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Cause slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the cause * @return slug @@ -117,9 +132,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public Cause description(@jakarta.annotation.Nullable String description) { @@ -141,6 +153,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public Cause publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the cause + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public Cause position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; @@ -160,6 +191,33 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public Cause properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public Cause addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this cause. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + public Cause createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -211,7 +269,9 @@ public boolean equals(Object o) { return Objects.equals(this.name, cause.name) && Objects.equals(this.slug, cause.slug) && Objects.equals(this.description, cause.description) && + Objects.equals(this.publicDescription, cause.publicDescription) && Objects.equals(this.position, cause.position) && + Objects.equals(this.properties, cause.properties) && Objects.equals(this.createdAt, cause.createdAt) && Objects.equals(this.updatedAt, cause.updatedAt); } @@ -222,7 +282,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, position, createdAt, updatedAt); + return Objects.hash(name, slug, description, publicDescription, position, properties, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -239,7 +299,9 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -267,7 +329,9 @@ private String toIndentedString(Object o) { openapiFields.add("name"); openapiFields.add("slug"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("position"); + openapiFields.add("properties"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -315,6 +379,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/CauseList.java b/src/main/java/com/rootly/client/model/CauseList.java index 63424e2a..835bf3a9 100644 --- a/src/main/java/com/rootly/client/model/CauseList.java +++ b/src/main/java/com/rootly/client/model/CauseList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CauseResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CauseList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CauseList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CauseList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CauseList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CauseList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CauseList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CauseList causeList = (CauseList) o; return Objects.equals(this.data, causeList.data) && Objects.equals(this.links, causeList.links) && - Objects.equals(this.meta, causeList.meta); + Objects.equals(this.meta, causeList.meta) && + Objects.equals(this.included, causeList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CauseResponse.java b/src/main/java/com/rootly/client/model/CauseResponse.java index ff50ff10..9d95b79d 100644 --- a/src/main/java/com/rootly/client/model/CauseResponse.java +++ b/src/main/java/com/rootly/client/model/CauseResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CauseResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CauseResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CauseResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CauseResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CauseResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CauseResponseData data) { } + public CauseResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CauseResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CauseResponse causeResponse = (CauseResponse) o; - return Objects.equals(this.data, causeResponse.data); + return Objects.equals(this.data, causeResponse.data) && + Objects.equals(this.included, causeResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CauseResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CauseResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CauseResponseData.java b/src/main/java/com/rootly/client/model/CauseResponseData.java index cb5962a9..00fbb295 100644 --- a/src/main/java/com/rootly/client/model/CauseResponseData.java +++ b/src/main/java/com/rootly/client/model/CauseResponseData.java @@ -49,7 +49,7 @@ /** * CauseResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CauseResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParams.java b/src/main/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParams.java new file mode 100644 index 00000000..b0a65eb0 --- /dev/null +++ b/src/main/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParams.java @@ -0,0 +1,340 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * ChangeGoogleChatSpacePrivacyTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class ChangeGoogleChatSpacePrivacyTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + CHANGE_GOOGLE_CHAT_SPACE_PRIVACY("change_google_chat_space_privacy"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_SPACE = "space"; + @SerializedName(SERIALIZED_NAME_SPACE) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner space; + + public static final String SERIALIZED_NAME_AUDIENCE = "audience"; + @SerializedName(SERIALIZED_NAME_AUDIENCE) + @jakarta.annotation.Nullable + private String audience; + + public ChangeGoogleChatSpacePrivacyTaskParams() { + } + + public ChangeGoogleChatSpacePrivacyTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public ChangeGoogleChatSpacePrivacyTaskParams space(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + return this; + } + + /** + * Get space + * @return space + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getSpace() { + return space; + } + + public void setSpace(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + } + + + public ChangeGoogleChatSpacePrivacyTaskParams audience(@jakarta.annotation.Nullable String audience) { + this.audience = audience; + return this; + } + + /** + * Target audience resource name (e.g. audiences/default). Leave blank to make private. + * @return audience + */ + @jakarta.annotation.Nullable + public String getAudience() { + return audience; + } + + public void setAudience(@jakarta.annotation.Nullable String audience) { + this.audience = audience; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChangeGoogleChatSpacePrivacyTaskParams changeGoogleChatSpacePrivacyTaskParams = (ChangeGoogleChatSpacePrivacyTaskParams) o; + return Objects.equals(this.taskType, changeGoogleChatSpacePrivacyTaskParams.taskType) && + Objects.equals(this.space, changeGoogleChatSpacePrivacyTaskParams.space) && + Objects.equals(this.audience, changeGoogleChatSpacePrivacyTaskParams.audience); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, space, audience); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChangeGoogleChatSpacePrivacyTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" space: ").append(toIndentedString(space)).append("\n"); + sb.append(" audience: ").append(toIndentedString(audience)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("space"); + openapiFields.add("audience"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("space"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChangeGoogleChatSpacePrivacyTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChangeGoogleChatSpacePrivacyTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ChangeGoogleChatSpacePrivacyTaskParams is not found in the empty JSON string", ChangeGoogleChatSpacePrivacyTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChangeGoogleChatSpacePrivacyTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ChangeGoogleChatSpacePrivacyTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ChangeGoogleChatSpacePrivacyTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // validate the required field `space` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("space")); + if ((jsonObj.get("audience") != null && !jsonObj.get("audience").isJsonNull()) && !jsonObj.get("audience").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `audience` to be a primitive type in the JSON string but got `%s`", jsonObj.get("audience").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChangeGoogleChatSpacePrivacyTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChangeGoogleChatSpacePrivacyTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChangeGoogleChatSpacePrivacyTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChangeGoogleChatSpacePrivacyTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChangeGoogleChatSpacePrivacyTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ChangeGoogleChatSpacePrivacyTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChangeGoogleChatSpacePrivacyTaskParams + * @throws IOException if the JSON string is invalid with respect to ChangeGoogleChatSpacePrivacyTaskParams + */ + public static ChangeGoogleChatSpacePrivacyTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChangeGoogleChatSpacePrivacyTaskParams.class); + } + + /** + * Convert an instance of ChangeGoogleChatSpacePrivacyTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/ChangeSlackChannelPrivacyTaskParams.java b/src/main/java/com/rootly/client/model/ChangeSlackChannelPrivacyTaskParams.java index 181f8a6a..14dde189 100644 --- a/src/main/java/com/rootly/client/model/ChangeSlackChannelPrivacyTaskParams.java +++ b/src/main/java/com/rootly/client/model/ChangeSlackChannelPrivacyTaskParams.java @@ -49,14 +49,14 @@ /** * ChangeSlackChannelPrivacyTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ChangeSlackChannelPrivacyTaskParams { /** * Gets or Sets taskType */ @JsonAdapter(TaskTypeEnum.Adapter.class) public enum TaskTypeEnum { - RENAME_SLACK_CHANNEL("rename_slack_channel"); + CHANGE_SLACK_CHANNEL_PRIVACY("change_slack_channel_privacy"); private String value; @@ -108,7 +108,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CHANNEL = "channel"; @SerializedName(SERIALIZED_NAME_CHANNEL) - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull private AddActionItemTaskParamsPostToSlackChannelsInner channel; /** @@ -190,7 +190,7 @@ public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { } - public ChangeSlackChannelPrivacyTaskParams channel(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner channel) { + public ChangeSlackChannelPrivacyTaskParams channel(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner channel) { this.channel = channel; return this; } @@ -199,12 +199,12 @@ public ChangeSlackChannelPrivacyTaskParams channel(@jakarta.annotation.Nullable * Get channel * @return channel */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull public AddActionItemTaskParamsPostToSlackChannelsInner getChannel() { return channel; } - public void setChannel(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner channel) { + public void setChannel(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner channel) { this.channel = channel; } @@ -283,6 +283,7 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("channel"); openapiRequiredFields.add("privacy"); } @@ -321,10 +322,8 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); } - // validate the optional field `channel` - if (jsonObj.get("channel") != null && !jsonObj.get("channel").isJsonNull()) { - AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("channel")); - } + // validate the required field `channel` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("channel")); if (!jsonObj.get("privacy").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `privacy` to be a primitive type in the JSON string but got `%s`", jsonObj.get("privacy").toString())); } diff --git a/src/main/java/com/rootly/client/model/CommunicationsGroup.java b/src/main/java/com/rootly/client/model/CommunicationsGroup.java index b5e1e43b..c405782c 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsGroup.java +++ b/src/main/java/com/rootly/client/model/CommunicationsGroup.java @@ -53,7 +53,7 @@ /** * CommunicationsGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsGroup { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -62,7 +62,7 @@ public class CommunicationsGroup { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -180,6 +180,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public CommunicationsGroup() { } + public CommunicationsGroup( + String slug + ) { + this(); + this.slug = slug; + } + public CommunicationsGroup name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -199,23 +206,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public CommunicationsGroup slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the communications group * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public CommunicationsGroup description(@jakarta.annotation.Nullable String description) { @@ -578,7 +577,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("communication_type_id"); openapiRequiredFields.add("is_private"); openapiRequiredFields.add("condition_type"); @@ -619,7 +617,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/CommunicationsGroupCommunicationExternalGroupMembersInner.java b/src/main/java/com/rootly/client/model/CommunicationsGroupCommunicationExternalGroupMembersInner.java index b3d107b8..134f6d76 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsGroupCommunicationExternalGroupMembersInner.java +++ b/src/main/java/com/rootly/client/model/CommunicationsGroupCommunicationExternalGroupMembersInner.java @@ -48,7 +48,7 @@ /** * CommunicationsGroupCommunicationExternalGroupMembersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsGroupCommunicationExternalGroupMembersInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CommunicationsGroupResponse.java b/src/main/java/com/rootly/client/model/CommunicationsGroupResponse.java index a665fe05..2ac53c2d 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsGroupResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsGroupResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CommunicationsGroupResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsGroupResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CommunicationsGroupResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsGroupResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CommunicationsGroupResponseData } + public CommunicationsGroupResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsGroupResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CommunicationsGroupResponse communicationsGroupResponse = (CommunicationsGroupResponse) o; - return Objects.equals(this.data, communicationsGroupResponse.data); + return Objects.equals(this.data, communicationsGroupResponse.data) && + Objects.equals(this.included, communicationsGroupResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CommunicationsGroupResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CommunicationsGroupResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CommunicationsGroupResponseData.java b/src/main/java/com/rootly/client/model/CommunicationsGroupResponseData.java index 4cf02a4e..b277e89c 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsGroupResponseData.java +++ b/src/main/java/com/rootly/client/model/CommunicationsGroupResponseData.java @@ -49,7 +49,7 @@ /** * CommunicationsGroupResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsGroupResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CommunicationsGroupsResponse.java b/src/main/java/com/rootly/client/model/CommunicationsGroupsResponse.java index 53d1e8fe..1e34f004 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsGroupsResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsGroupsResponse.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CommunicationsGroupsResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsGroupsResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CommunicationsGroupsResponse { @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsGroupsResponse() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nullable Meta meta) { } + public CommunicationsGroupsResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsGroupsResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CommunicationsGroupsResponse communicationsGroupsResponse = (CommunicationsGroupsResponse) o; return Objects.equals(this.data, communicationsGroupsResponse.data) && Objects.equals(this.links, communicationsGroupsResponse.links) && - Objects.equals(this.meta, communicationsGroupsResponse.meta); + Objects.equals(this.meta, communicationsGroupsResponse.meta) && + Objects.equals(this.included, communicationsGroupsResponse.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CommunicationsStage.java b/src/main/java/com/rootly/client/model/CommunicationsStage.java index b18ad734..8a56704a 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsStage.java +++ b/src/main/java/com/rootly/client/model/CommunicationsStage.java @@ -49,7 +49,7 @@ /** * CommunicationsStage */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsStage { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -58,7 +58,7 @@ public class CommunicationsStage { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -84,6 +84,13 @@ public class CommunicationsStage { public CommunicationsStage() { } + public CommunicationsStage( + String slug + ) { + this(); + this.slug = slug; + } + public CommunicationsStage name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -103,23 +110,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public CommunicationsStage slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the communications stage * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public CommunicationsStage description(@jakarta.annotation.Nullable String description) { @@ -274,7 +273,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("position"); openapiRequiredFields.add("created_at"); openapiRequiredFields.add("updated_at"); @@ -311,7 +309,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/CommunicationsStageResponse.java b/src/main/java/com/rootly/client/model/CommunicationsStageResponse.java index c3db0473..614121f0 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsStageResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsStageResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsStageResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CommunicationsStageResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsStageResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CommunicationsStageResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsStageResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CommunicationsStageResponseData } + public CommunicationsStageResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsStageResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CommunicationsStageResponse communicationsStageResponse = (CommunicationsStageResponse) o; - return Objects.equals(this.data, communicationsStageResponse.data); + return Objects.equals(this.data, communicationsStageResponse.data) && + Objects.equals(this.included, communicationsStageResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CommunicationsStageResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CommunicationsStageResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CommunicationsStageResponseData.java b/src/main/java/com/rootly/client/model/CommunicationsStageResponseData.java index 38b2433d..b1803e66 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsStageResponseData.java +++ b/src/main/java/com/rootly/client/model/CommunicationsStageResponseData.java @@ -49,7 +49,7 @@ /** * CommunicationsStageResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsStageResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CommunicationsStagesResponse.java b/src/main/java/com/rootly/client/model/CommunicationsStagesResponse.java index 23588138..f43d8105 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsStagesResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsStagesResponse.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsStageResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CommunicationsStagesResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsStagesResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CommunicationsStagesResponse { @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsStagesResponse() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nullable Meta meta) { } + public CommunicationsStagesResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsStagesResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CommunicationsStagesResponse communicationsStagesResponse = (CommunicationsStagesResponse) o; return Objects.equals(this.data, communicationsStagesResponse.data) && Objects.equals(this.links, communicationsStagesResponse.links) && - Objects.equals(this.meta, communicationsStagesResponse.meta); + Objects.equals(this.meta, communicationsStagesResponse.meta) && + Objects.equals(this.included, communicationsStagesResponse.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplate.java b/src/main/java/com/rootly/client/model/CommunicationsTemplate.java index dd0846d8..d5a9ea64 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplate.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplate.java @@ -53,7 +53,7 @@ /** * CommunicationsTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplate { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -62,7 +62,7 @@ public class CommunicationsTemplate { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -103,6 +103,13 @@ public class CommunicationsTemplate { public CommunicationsTemplate() { } + public CommunicationsTemplate( + String slug + ) { + this(); + this.slug = slug; + } + public CommunicationsTemplate name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -122,23 +129,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public CommunicationsTemplate slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the communications template * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public CommunicationsTemplate description(@jakarta.annotation.Nullable String description) { @@ -367,7 +366,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("position"); openapiRequiredFields.add("created_at"); openapiRequiredFields.add("updated_at"); @@ -404,7 +402,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInner.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInner.java index 2e7fd41c..5ff7fd88 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInner.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInner.java @@ -19,9 +19,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CommunicationsTemplateCommunicationTemplateStagesInnerData; import java.io.IOException; import java.util.Arrays; -import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,152 +49,32 @@ /** * CommunicationsTemplateCommunicationTemplateStagesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateCommunicationTemplateStagesInner { - public static final String SERIALIZED_NAME_ID = "id"; - @SerializedName(SERIALIZED_NAME_ID) + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nullable - private String id; - - public static final String SERIALIZED_NAME_COMMUNICATION_STAGE_ID = "communication_stage_id"; - @SerializedName(SERIALIZED_NAME_COMMUNICATION_STAGE_ID) - @jakarta.annotation.Nullable - private String communicationStageId; - - public static final String SERIALIZED_NAME_SMS_CONTENT = "sms_content"; - @SerializedName(SERIALIZED_NAME_SMS_CONTENT) - @jakarta.annotation.Nullable - private String smsContent; - - public static final String SERIALIZED_NAME_EMAIL_SUBJECT = "email_subject"; - @SerializedName(SERIALIZED_NAME_EMAIL_SUBJECT) - @jakarta.annotation.Nullable - private String emailSubject; - - public static final String SERIALIZED_NAME_EMAIL_BODY = "email_body"; - @SerializedName(SERIALIZED_NAME_EMAIL_BODY) - @jakarta.annotation.Nullable - private String emailBody; - - public static final String SERIALIZED_NAME_SLACK_CONTENT = "slack_content"; - @SerializedName(SERIALIZED_NAME_SLACK_CONTENT) - @jakarta.annotation.Nullable - private String slackContent; + private CommunicationsTemplateCommunicationTemplateStagesInnerData data; public CommunicationsTemplateCommunicationTemplateStagesInner() { } - public CommunicationsTemplateCommunicationTemplateStagesInner id(@jakarta.annotation.Nullable String id) { - this.id = id; - return this; - } - - /** - * ID of the communication template stage - * @return id - */ - @jakarta.annotation.Nullable - public String getId() { - return id; - } - - public void setId(@jakarta.annotation.Nullable String id) { - this.id = id; - } - - - public CommunicationsTemplateCommunicationTemplateStagesInner communicationStageId(@jakarta.annotation.Nullable String communicationStageId) { - this.communicationStageId = communicationStageId; + public CommunicationsTemplateCommunicationTemplateStagesInner data(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerData data) { + this.data = data; return this; } /** - * The communication stage ID - * @return communicationStageId + * Get data + * @return data */ @jakarta.annotation.Nullable - public String getCommunicationStageId() { - return communicationStageId; + public CommunicationsTemplateCommunicationTemplateStagesInnerData getData() { + return data; } - public void setCommunicationStageId(@jakarta.annotation.Nullable String communicationStageId) { - this.communicationStageId = communicationStageId; - } - - - public CommunicationsTemplateCommunicationTemplateStagesInner smsContent(@jakarta.annotation.Nullable String smsContent) { - this.smsContent = smsContent; - return this; - } - - /** - * SMS content for the stage - * @return smsContent - */ - @jakarta.annotation.Nullable - public String getSmsContent() { - return smsContent; - } - - public void setSmsContent(@jakarta.annotation.Nullable String smsContent) { - this.smsContent = smsContent; - } - - - public CommunicationsTemplateCommunicationTemplateStagesInner emailSubject(@jakarta.annotation.Nullable String emailSubject) { - this.emailSubject = emailSubject; - return this; - } - - /** - * Email subject for the stage - * @return emailSubject - */ - @jakarta.annotation.Nullable - public String getEmailSubject() { - return emailSubject; - } - - public void setEmailSubject(@jakarta.annotation.Nullable String emailSubject) { - this.emailSubject = emailSubject; - } - - - public CommunicationsTemplateCommunicationTemplateStagesInner emailBody(@jakarta.annotation.Nullable String emailBody) { - this.emailBody = emailBody; - return this; - } - - /** - * Email body for the stage - * @return emailBody - */ - @jakarta.annotation.Nullable - public String getEmailBody() { - return emailBody; - } - - public void setEmailBody(@jakarta.annotation.Nullable String emailBody) { - this.emailBody = emailBody; - } - - - public CommunicationsTemplateCommunicationTemplateStagesInner slackContent(@jakarta.annotation.Nullable String slackContent) { - this.slackContent = slackContent; - return this; - } - - /** - * Slack content for the stage - * @return slackContent - */ - @jakarta.annotation.Nullable - public String getSlackContent() { - return slackContent; - } - - public void setSlackContent(@jakarta.annotation.Nullable String slackContent) { - this.slackContent = slackContent; + public void setData(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerData data) { + this.data = data; } @@ -208,40 +88,19 @@ public boolean equals(Object o) { return false; } CommunicationsTemplateCommunicationTemplateStagesInner communicationsTemplateCommunicationTemplateStagesInner = (CommunicationsTemplateCommunicationTemplateStagesInner) o; - return Objects.equals(this.id, communicationsTemplateCommunicationTemplateStagesInner.id) && - Objects.equals(this.communicationStageId, communicationsTemplateCommunicationTemplateStagesInner.communicationStageId) && - Objects.equals(this.smsContent, communicationsTemplateCommunicationTemplateStagesInner.smsContent) && - Objects.equals(this.emailSubject, communicationsTemplateCommunicationTemplateStagesInner.emailSubject) && - Objects.equals(this.emailBody, communicationsTemplateCommunicationTemplateStagesInner.emailBody) && - Objects.equals(this.slackContent, communicationsTemplateCommunicationTemplateStagesInner.slackContent); - } - - private static boolean equalsNullable(JsonNullable a, JsonNullable b) { - return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + return Objects.equals(this.data, communicationsTemplateCommunicationTemplateStagesInner.data); } @Override public int hashCode() { - return Objects.hash(id, communicationStageId, smsContent, emailSubject, emailBody, slackContent); - } - - private static int hashCodeNullable(JsonNullable a) { - if (a == null) { - return 1; - } - return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + return Objects.hash(data); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CommunicationsTemplateCommunicationTemplateStagesInner {\n"); - sb.append(" id: ").append(toIndentedString(id)).append("\n"); - sb.append(" communicationStageId: ").append(toIndentedString(communicationStageId)).append("\n"); - sb.append(" smsContent: ").append(toIndentedString(smsContent)).append("\n"); - sb.append(" emailSubject: ").append(toIndentedString(emailSubject)).append("\n"); - sb.append(" emailBody: ").append(toIndentedString(emailBody)).append("\n"); - sb.append(" slackContent: ").append(toIndentedString(slackContent)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append("}"); return sb.toString(); } @@ -264,12 +123,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("id"); - openapiFields.add("communication_stage_id"); - openapiFields.add("sms_content"); - openapiFields.add("email_subject"); - openapiFields.add("email_body"); - openapiFields.add("slack_content"); + openapiFields.add("data"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -296,23 +150,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); - } - if ((jsonObj.get("communication_stage_id") != null && !jsonObj.get("communication_stage_id").isJsonNull()) && !jsonObj.get("communication_stage_id").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `communication_stage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("communication_stage_id").toString())); - } - if ((jsonObj.get("sms_content") != null && !jsonObj.get("sms_content").isJsonNull()) && !jsonObj.get("sms_content").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `sms_content` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sms_content").toString())); - } - if ((jsonObj.get("email_subject") != null && !jsonObj.get("email_subject").isJsonNull()) && !jsonObj.get("email_subject").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `email_subject` to be a primitive type in the JSON string but got `%s`", jsonObj.get("email_subject").toString())); - } - if ((jsonObj.get("email_body") != null && !jsonObj.get("email_body").isJsonNull()) && !jsonObj.get("email_body").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `email_body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("email_body").toString())); - } - if ((jsonObj.get("slack_content") != null && !jsonObj.get("slack_content").isJsonNull()) && !jsonObj.get("slack_content").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_content` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slack_content").toString())); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + CommunicationsTemplateCommunicationTemplateStagesInnerData.validateJsonElement(jsonObj.get("data")); } } diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerData.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerData.java index 04ee1276..86414bc8 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerData.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerData.java @@ -49,11 +49,11 @@ /** * CommunicationsTemplateCommunicationTemplateStagesInnerData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateCommunicationTemplateStagesInnerData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes attributes; public CommunicationsTemplateCommunicationTemplateStagesInnerData() { } - public CommunicationsTemplateCommunicationTemplateStagesInnerData id(@javax.annotation.Nullable String id) { + public CommunicationsTemplateCommunicationTemplateStagesInnerData id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerData id(@javax.anno * ID of the communication template stage * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public CommunicationsTemplateCommunicationTemplateStagesInnerData type(@javax.annotation.Nullable TypeEnum type) { + public CommunicationsTemplateCommunicationTemplateStagesInnerData type(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerData type(@javax.an * Get type * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; } - public CommunicationsTemplateCommunicationTemplateStagesInnerData attributes(@javax.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes attributes) { + public CommunicationsTemplateCommunicationTemplateStagesInnerData attributes(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerData attributes(@ja * Get attributes * @return attributes */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.java index c7915871..d6e1712a 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes.java @@ -51,52 +51,52 @@ /** * CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes { public static final String SERIALIZED_NAME_EMAIL_BODY = "email_body"; @SerializedName(SERIALIZED_NAME_EMAIL_BODY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String emailBody; public static final String SERIALIZED_NAME_EMAIL_SUBJECT = "email_subject"; @SerializedName(SERIALIZED_NAME_EMAIL_SUBJECT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String emailSubject; public static final String SERIALIZED_NAME_SLACK_CONTENT = "slack_content"; @SerializedName(SERIALIZED_NAME_SLACK_CONTENT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String slackContent; public static final String SERIALIZED_NAME_SMS_CONTENT = "sms_content"; @SerializedName(SERIALIZED_NAME_SMS_CONTENT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String smsContent; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String updatedAt; public static final String SERIALIZED_NAME_COMMUNICATION_STAGE = "communication_stage"; @SerializedName(SERIALIZED_NAME_COMMUNICATION_STAGE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage communicationStage; public static final String SERIALIZED_NAME_COMMUNICATION_TEMPLATE = "communication_template"; @SerializedName(SERIALIZED_NAME_COMMUNICATION_TEMPLATE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate communicationTemplate; public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes() { } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes emailBody(@javax.annotation.Nullable String emailBody) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes emailBody(@jakarta.annotation.Nullable String emailBody) { this.emailBody = emailBody; return this; } @@ -105,17 +105,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes emai * Email body for the stage * @return emailBody */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getEmailBody() { return emailBody; } - public void setEmailBody(@javax.annotation.Nullable String emailBody) { + public void setEmailBody(@jakarta.annotation.Nullable String emailBody) { this.emailBody = emailBody; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes emailSubject(@javax.annotation.Nullable String emailSubject) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes emailSubject(@jakarta.annotation.Nullable String emailSubject) { this.emailSubject = emailSubject; return this; } @@ -124,17 +124,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes emai * Email subject for the stage * @return emailSubject */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getEmailSubject() { return emailSubject; } - public void setEmailSubject(@javax.annotation.Nullable String emailSubject) { + public void setEmailSubject(@jakarta.annotation.Nullable String emailSubject) { this.emailSubject = emailSubject; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes slackContent(@javax.annotation.Nullable String slackContent) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes slackContent(@jakarta.annotation.Nullable String slackContent) { this.slackContent = slackContent; return this; } @@ -143,17 +143,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes slac * Slack content for the stage * @return slackContent */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getSlackContent() { return slackContent; } - public void setSlackContent(@javax.annotation.Nullable String slackContent) { + public void setSlackContent(@jakarta.annotation.Nullable String slackContent) { this.slackContent = slackContent; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes smsContent(@javax.annotation.Nullable String smsContent) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes smsContent(@jakarta.annotation.Nullable String smsContent) { this.smsContent = smsContent; return this; } @@ -162,17 +162,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes smsC * SMS content for the stage * @return smsContent */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getSmsContent() { return smsContent; } - public void setSmsContent(@javax.annotation.Nullable String smsContent) { + public void setSmsContent(@jakarta.annotation.Nullable String smsContent) { this.smsContent = smsContent; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes createdAt(@javax.annotation.Nullable String createdAt) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes createdAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; return this; } @@ -181,17 +181,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes crea * Date of creation * @return createdAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nullable String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes updatedAt(@javax.annotation.Nullable String updatedAt) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes updatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -200,17 +200,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes upda * Date of last update * @return updatedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nullable String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes communicationStage(@javax.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage communicationStage) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes communicationStage(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage communicationStage) { this.communicationStage = communicationStage; return this; } @@ -219,17 +219,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes comm * Get communicationStage * @return communicationStage */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage getCommunicationStage() { return communicationStage; } - public void setCommunicationStage(@javax.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage communicationStage) { + public void setCommunicationStage(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage communicationStage) { this.communicationStage = communicationStage; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes communicationTemplate(@javax.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate communicationTemplate) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes communicationTemplate(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate communicationTemplate) { this.communicationTemplate = communicationTemplate; return this; } @@ -238,12 +238,12 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributes comm * Get communicationTemplate * @return communicationTemplate */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate getCommunicationTemplate() { return communicationTemplate; } - public void setCommunicationTemplate(@javax.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate communicationTemplate) { + public void setCommunicationTemplate(@jakarta.annotation.Nullable CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate communicationTemplate) { this.communicationTemplate = communicationTemplate; } diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.java index a460676e..1085350d 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage.java @@ -48,22 +48,22 @@ /** * CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage() { } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage id(@javax.annotation.Nullable String id) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -72,17 +72,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommu * The communication stage ID * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage name(@javax.annotation.Nullable String name) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationStage name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -91,12 +91,12 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommu * The communication stage name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.java index e14b6a72..27a61bc4 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate.java @@ -48,22 +48,22 @@ /** * CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate() { } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate id(@javax.annotation.Nullable String id) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -72,17 +72,17 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommu * The communication template ID * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate name(@javax.annotation.Nullable String name) { + public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommunicationTemplate name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -91,12 +91,12 @@ public CommunicationsTemplateCommunicationTemplateStagesInnerDataAttributesCommu * The communication template name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationType.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationType.java index ac9766a5..79455829 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationType.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateCommunicationType.java @@ -48,7 +48,7 @@ /** * CommunicationsTemplateCommunicationType */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateCommunicationType { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateResponse.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateResponse.java index fe4d47f6..9af7841d 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CommunicationsTemplateResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CommunicationsTemplateResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsTemplateResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CommunicationsTemplateResponseDa } + public CommunicationsTemplateResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsTemplateResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CommunicationsTemplateResponse communicationsTemplateResponse = (CommunicationsTemplateResponse) o; - return Objects.equals(this.data, communicationsTemplateResponse.data); + return Objects.equals(this.data, communicationsTemplateResponse.data) && + Objects.equals(this.included, communicationsTemplateResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CommunicationsTemplateResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CommunicationsTemplateResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplateResponseData.java b/src/main/java/com/rootly/client/model/CommunicationsTemplateResponseData.java index 91dba20b..3de59462 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplateResponseData.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplateResponseData.java @@ -49,7 +49,7 @@ /** * CommunicationsTemplateResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplateResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CommunicationsTemplatesResponse.java b/src/main/java/com/rootly/client/model/CommunicationsTemplatesResponse.java index 98b6f2b4..93b55f35 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTemplatesResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTemplatesResponse.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CommunicationsTemplatesResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTemplatesResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CommunicationsTemplatesResponse { @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsTemplatesResponse() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nullable Meta meta) { } + public CommunicationsTemplatesResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsTemplatesResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CommunicationsTemplatesResponse communicationsTemplatesResponse = (CommunicationsTemplatesResponse) o; return Objects.equals(this.data, communicationsTemplatesResponse.data) && Objects.equals(this.links, communicationsTemplatesResponse.links) && - Objects.equals(this.meta, communicationsTemplatesResponse.meta); + Objects.equals(this.meta, communicationsTemplatesResponse.meta) && + Objects.equals(this.included, communicationsTemplatesResponse.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CommunicationsType.java b/src/main/java/com/rootly/client/model/CommunicationsType.java index 18cfb1bd..5a876088 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsType.java +++ b/src/main/java/com/rootly/client/model/CommunicationsType.java @@ -49,7 +49,7 @@ /** * CommunicationsType */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsType { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -58,7 +58,7 @@ public class CommunicationsType { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -89,6 +89,13 @@ public class CommunicationsType { public CommunicationsType() { } + public CommunicationsType( + String slug + ) { + this(); + this.slug = slug; + } + public CommunicationsType name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -108,23 +115,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public CommunicationsType slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the communications type * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public CommunicationsType description(@jakarta.annotation.Nullable String description) { @@ -301,7 +300,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("color"); openapiRequiredFields.add("position"); openapiRequiredFields.add("created_at"); @@ -339,7 +337,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/CommunicationsTypeResponse.java b/src/main/java/com/rootly/client/model/CommunicationsTypeResponse.java index 88d80a0a..d399a7e0 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTypeResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTypeResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CommunicationsTypeResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTypeResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CommunicationsTypeResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsTypeResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CommunicationsTypeResponseData d } + public CommunicationsTypeResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsTypeResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CommunicationsTypeResponse communicationsTypeResponse = (CommunicationsTypeResponse) o; - return Objects.equals(this.data, communicationsTypeResponse.data); + return Objects.equals(this.data, communicationsTypeResponse.data) && + Objects.equals(this.included, communicationsTypeResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CommunicationsTypeResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CommunicationsTypeResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CommunicationsTypeResponseData.java b/src/main/java/com/rootly/client/model/CommunicationsTypeResponseData.java index 163066b0..2708129f 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTypeResponseData.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTypeResponseData.java @@ -49,7 +49,7 @@ /** * CommunicationsTypeResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTypeResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CommunicationsTypesResponse.java b/src/main/java/com/rootly/client/model/CommunicationsTypesResponse.java index aa28e987..eb00492d 100644 --- a/src/main/java/com/rootly/client/model/CommunicationsTypesResponse.java +++ b/src/main/java/com/rootly/client/model/CommunicationsTypesResponse.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CommunicationsTypesResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CommunicationsTypesResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CommunicationsTypesResponse { @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CommunicationsTypesResponse() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nullable Meta meta) { } + public CommunicationsTypesResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CommunicationsTypesResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CommunicationsTypesResponse communicationsTypesResponse = (CommunicationsTypesResponse) o; return Objects.equals(this.data, communicationsTypesResponse.data) && Objects.equals(this.links, communicationsTypesResponse.links) && - Objects.equals(this.meta, communicationsTypesResponse.meta); + Objects.equals(this.meta, communicationsTypesResponse.meta) && + Objects.equals(this.included, communicationsTypesResponse.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CreateAirtableTableRecordTaskParams.java b/src/main/java/com/rootly/client/model/CreateAirtableTableRecordTaskParams.java index 50320cd6..ed8c70e0 100644 --- a/src/main/java/com/rootly/client/model/CreateAirtableTableRecordTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateAirtableTableRecordTaskParams.java @@ -50,7 +50,7 @@ /** * CreateAirtableTableRecordTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateAirtableTableRecordTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParams.java b/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParams.java index eb3603b4..badf525f 100644 --- a/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParams.java @@ -49,7 +49,7 @@ /** * CreateAnthropicChatCompletionTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateAnthropicChatCompletionTaskParams { /** * Gets or Sets taskType @@ -121,6 +121,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private String prompt; + public static final String SERIALIZED_NAME_MAX_TOKENS = "max_tokens"; + @SerializedName(SERIALIZED_NAME_MAX_TOKENS) + @jakarta.annotation.Nullable + private Integer maxTokens; + public CreateAnthropicChatCompletionTaskParams() { } @@ -200,6 +205,26 @@ public void setPrompt(@jakarta.annotation.Nonnull String prompt) { } + public CreateAnthropicChatCompletionTaskParams maxTokens(@jakarta.annotation.Nullable Integer maxTokens) { + this.maxTokens = maxTokens; + return this; + } + + /** + * Maximum number of tokens to generate. Defaults to 4000 when omitted + * minimum: 1 + * @return maxTokens + */ + @jakarta.annotation.Nullable + public Integer getMaxTokens() { + return maxTokens; + } + + public void setMaxTokens(@jakarta.annotation.Nullable Integer maxTokens) { + this.maxTokens = maxTokens; + } + + @Override public boolean equals(Object o) { @@ -213,12 +238,13 @@ public boolean equals(Object o) { return Objects.equals(this.taskType, createAnthropicChatCompletionTaskParams.taskType) && Objects.equals(this.model, createAnthropicChatCompletionTaskParams.model) && Objects.equals(this.systemPrompt, createAnthropicChatCompletionTaskParams.systemPrompt) && - Objects.equals(this.prompt, createAnthropicChatCompletionTaskParams.prompt); + Objects.equals(this.prompt, createAnthropicChatCompletionTaskParams.prompt) && + Objects.equals(this.maxTokens, createAnthropicChatCompletionTaskParams.maxTokens); } @Override public int hashCode() { - return Objects.hash(taskType, model, systemPrompt, prompt); + return Objects.hash(taskType, model, systemPrompt, prompt, maxTokens); } @Override @@ -229,6 +255,7 @@ public String toString() { sb.append(" model: ").append(toIndentedString(model)).append("\n"); sb.append(" systemPrompt: ").append(toIndentedString(systemPrompt)).append("\n"); sb.append(" prompt: ").append(toIndentedString(prompt)).append("\n"); + sb.append(" maxTokens: ").append(toIndentedString(maxTokens)).append("\n"); sb.append("}"); return sb.toString(); } @@ -255,6 +282,7 @@ private String toIndentedString(Object o) { openapiFields.add("model"); openapiFields.add("system_prompt"); openapiFields.add("prompt"); + openapiFields.add("max_tokens"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsModel.java b/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsModel.java index c1608ca6..fd89ad17 100644 --- a/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsModel.java +++ b/src/main/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsModel.java @@ -48,7 +48,7 @@ /** * The Anthropic model. eg: claude-3-5-sonnet-20241022 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateAnthropicChatCompletionTaskParamsModel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateAsanaSubtaskTaskParams.java b/src/main/java/com/rootly/client/model/CreateAsanaSubtaskTaskParams.java index 9093dea5..2eaaa778 100644 --- a/src/main/java/com/rootly/client/model/CreateAsanaSubtaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateAsanaSubtaskTaskParams.java @@ -52,7 +52,7 @@ /** * CreateAsanaSubtaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateAsanaSubtaskTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateAsanaTaskTaskParams.java b/src/main/java/com/rootly/client/model/CreateAsanaTaskTaskParams.java index 450ef1cb..64e1dfc8 100644 --- a/src/main/java/com/rootly/client/model/CreateAsanaTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateAsanaTaskTaskParams.java @@ -52,7 +52,7 @@ /** * CreateAsanaTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateAsanaTaskTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateClickupTaskTaskParams.java b/src/main/java/com/rootly/client/model/CreateClickupTaskTaskParams.java index df0d2f20..32eb7a5b 100644 --- a/src/main/java/com/rootly/client/model/CreateClickupTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateClickupTaskTaskParams.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import java.io.IOException; import java.util.Arrays; @@ -50,7 +51,7 @@ /** * CreateClickupTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateClickupTaskTaskParams { /** * Gets or Sets taskType @@ -117,6 +118,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_LIST = "list"; + @SerializedName(SERIALIZED_NAME_LIST) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner _list; + public static final String SERIALIZED_NAME_TAGS = "tags"; @SerializedName(SERIALIZED_NAME_TAGS) @jakarta.annotation.Nullable @@ -202,6 +208,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public CreateClickupTaskTaskParams _list(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner _list) { + this._list = _list; + return this; + } + + /** + * Get _list + * @return _list + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getList() { + return _list; + } + + public void setList(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner _list) { + this._list = _list; + } + + public CreateClickupTaskTaskParams tags(@jakarta.annotation.Nullable String tags) { this.tags = tags; return this; @@ -310,6 +335,7 @@ public boolean equals(Object o) { return Objects.equals(this.taskType, createClickupTaskTaskParams.taskType) && Objects.equals(this.title, createClickupTaskTaskParams.title) && Objects.equals(this.description, createClickupTaskTaskParams.description) && + Objects.equals(this._list, createClickupTaskTaskParams._list) && Objects.equals(this.tags, createClickupTaskTaskParams.tags) && Objects.equals(this.priority, createClickupTaskTaskParams.priority) && Objects.equals(this.dueDate, createClickupTaskTaskParams.dueDate) && @@ -323,7 +349,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(taskType, title, description, tags, priority, dueDate, customFieldsMapping, taskPayload); + return Objects.hash(taskType, title, description, _list, tags, priority, dueDate, customFieldsMapping, taskPayload); } private static int hashCodeNullable(JsonNullable a) { @@ -340,6 +366,7 @@ public String toString() { sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" _list: ").append(toIndentedString(_list)).append("\n"); sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); sb.append(" dueDate: ").append(toIndentedString(dueDate)).append("\n"); @@ -370,6 +397,7 @@ private String toIndentedString(Object o) { openapiFields.add("task_type"); openapiFields.add("title"); openapiFields.add("description"); + openapiFields.add("list"); openapiFields.add("tags"); openapiFields.add("priority"); openapiFields.add("due_date"); @@ -379,6 +407,7 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("title"); + openapiRequiredFields.add("list"); } /** @@ -422,6 +451,8 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + // validate the required field `list` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("list")); if ((jsonObj.get("tags") != null && !jsonObj.get("tags").isJsonNull()) && !jsonObj.get("tags").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `tags` to be a primitive type in the JSON string but got `%s`", jsonObj.get("tags").toString())); } diff --git a/src/main/java/com/rootly/client/model/CreateCodaPageTaskParams.java b/src/main/java/com/rootly/client/model/CreateCodaPageTaskParams.java index 2bcb4dd8..7af0fae1 100644 --- a/src/main/java/com/rootly/client/model/CreateCodaPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateCodaPageTaskParams.java @@ -50,7 +50,7 @@ /** * CreateCodaPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateCodaPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsDoc.java b/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsDoc.java index cdf3baac..bea7e203 100644 --- a/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsDoc.java +++ b/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsDoc.java @@ -48,7 +48,7 @@ /** * The Coda doc object with id and name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateCodaPageTaskParamsDoc { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsTemplate.java b/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsTemplate.java index 9b36c290..eafab0ab 100644 --- a/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsTemplate.java +++ b/src/main/java/com/rootly/client/model/CreateCodaPageTaskParamsTemplate.java @@ -48,7 +48,7 @@ /** * CreateCodaPageTaskParamsTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateCodaPageTaskParamsTemplate { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParams.java b/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParams.java index 90b4b4be..f6bba3a9 100644 --- a/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParams.java @@ -50,7 +50,7 @@ /** * CreateConfluencePageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateConfluencePageTaskParams { /** * Gets or Sets taskType @@ -147,6 +147,26 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean markPostMortemAsPublished = true; + public static final String SERIALIZED_NAME_INCLUDE_OVERVIEW = "include_overview"; + @SerializedName(SERIALIZED_NAME_INCLUDE_OVERVIEW) + @jakarta.annotation.Nullable + private Boolean includeOverview = true; + + public static final String SERIALIZED_NAME_INCLUDE_TIMELINE = "include_timeline"; + @SerializedName(SERIALIZED_NAME_INCLUDE_TIMELINE) + @jakarta.annotation.Nullable + private Boolean includeTimeline = true; + + public static final String SERIALIZED_NAME_INCLUDE_FOLLOW_UPS = "include_follow_ups"; + @SerializedName(SERIALIZED_NAME_INCLUDE_FOLLOW_UPS) + @jakarta.annotation.Nullable + private Boolean includeFollowUps = true; + + public static final String SERIALIZED_NAME_CREATE_AS_LIVE_DOC = "create_as_live_doc"; + @SerializedName(SERIALIZED_NAME_CREATE_AS_LIVE_DOC) + @jakarta.annotation.Nullable + private Boolean createAsLiveDoc = false; + public CreateConfluencePageTaskParams() { } @@ -321,6 +341,82 @@ public void setMarkPostMortemAsPublished(@jakarta.annotation.Nullable Boolean ma } + public CreateConfluencePageTaskParams includeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + return this; + } + + /** + * Get includeOverview + * @return includeOverview + */ + @jakarta.annotation.Nullable + public Boolean getIncludeOverview() { + return includeOverview; + } + + public void setIncludeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + } + + + public CreateConfluencePageTaskParams includeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + return this; + } + + /** + * Get includeTimeline + * @return includeTimeline + */ + @jakarta.annotation.Nullable + public Boolean getIncludeTimeline() { + return includeTimeline; + } + + public void setIncludeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + } + + + public CreateConfluencePageTaskParams includeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + return this; + } + + /** + * Get includeFollowUps + * @return includeFollowUps + */ + @jakarta.annotation.Nullable + public Boolean getIncludeFollowUps() { + return includeFollowUps; + } + + public void setIncludeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + } + + + public CreateConfluencePageTaskParams createAsLiveDoc(@jakarta.annotation.Nullable Boolean createAsLiveDoc) { + this.createAsLiveDoc = createAsLiveDoc; + return this; + } + + /** + * Get createAsLiveDoc + * @return createAsLiveDoc + */ + @jakarta.annotation.Nullable + public Boolean getCreateAsLiveDoc() { + return createAsLiveDoc; + } + + public void setCreateAsLiveDoc(@jakarta.annotation.Nullable Boolean createAsLiveDoc) { + this.createAsLiveDoc = createAsLiveDoc; + } + + @Override public boolean equals(Object o) { @@ -339,12 +435,16 @@ public boolean equals(Object o) { Objects.equals(this.title, createConfluencePageTaskParams.title) && Objects.equals(this.content, createConfluencePageTaskParams.content) && Objects.equals(this.postMortemTemplateId, createConfluencePageTaskParams.postMortemTemplateId) && - Objects.equals(this.markPostMortemAsPublished, createConfluencePageTaskParams.markPostMortemAsPublished); + Objects.equals(this.markPostMortemAsPublished, createConfluencePageTaskParams.markPostMortemAsPublished) && + Objects.equals(this.includeOverview, createConfluencePageTaskParams.includeOverview) && + Objects.equals(this.includeTimeline, createConfluencePageTaskParams.includeTimeline) && + Objects.equals(this.includeFollowUps, createConfluencePageTaskParams.includeFollowUps) && + Objects.equals(this.createAsLiveDoc, createConfluencePageTaskParams.createAsLiveDoc); } @Override public int hashCode() { - return Objects.hash(taskType, integration, space, ancestor, template, title, content, postMortemTemplateId, markPostMortemAsPublished); + return Objects.hash(taskType, integration, space, ancestor, template, title, content, postMortemTemplateId, markPostMortemAsPublished, includeOverview, includeTimeline, includeFollowUps, createAsLiveDoc); } @Override @@ -360,6 +460,10 @@ public String toString() { sb.append(" content: ").append(toIndentedString(content)).append("\n"); sb.append(" postMortemTemplateId: ").append(toIndentedString(postMortemTemplateId)).append("\n"); sb.append(" markPostMortemAsPublished: ").append(toIndentedString(markPostMortemAsPublished)).append("\n"); + sb.append(" includeOverview: ").append(toIndentedString(includeOverview)).append("\n"); + sb.append(" includeTimeline: ").append(toIndentedString(includeTimeline)).append("\n"); + sb.append(" includeFollowUps: ").append(toIndentedString(includeFollowUps)).append("\n"); + sb.append(" createAsLiveDoc: ").append(toIndentedString(createAsLiveDoc)).append("\n"); sb.append("}"); return sb.toString(); } @@ -391,6 +495,10 @@ private String toIndentedString(Object o) { openapiFields.add("content"); openapiFields.add("post_mortem_template_id"); openapiFields.add("mark_post_mortem_as_published"); + openapiFields.add("include_overview"); + openapiFields.add("include_timeline"); + openapiFields.add("include_follow_ups"); + openapiFields.add("create_as_live_doc"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParamsIntegration.java b/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParamsIntegration.java index 4249ca79..fcd8050f 100644 --- a/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParamsIntegration.java +++ b/src/main/java/com/rootly/client/model/CreateConfluencePageTaskParamsIntegration.java @@ -48,7 +48,7 @@ /** * Specify integration id if you have more than one Confluence instance */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateConfluencePageTaskParamsIntegration { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateDatadogNotebookTaskParams.java b/src/main/java/com/rootly/client/model/CreateDatadogNotebookTaskParams.java index e7c52e16..b52ba7a2 100644 --- a/src/main/java/com/rootly/client/model/CreateDatadogNotebookTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateDatadogNotebookTaskParams.java @@ -49,7 +49,7 @@ /** * CreateDatadogNotebookTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateDatadogNotebookTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateDropboxPaperPageTaskParams.java b/src/main/java/com/rootly/client/model/CreateDropboxPaperPageTaskParams.java index 07c13d50..1baa8fba 100644 --- a/src/main/java/com/rootly/client/model/CreateDropboxPaperPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateDropboxPaperPageTaskParams.java @@ -49,7 +49,7 @@ /** * CreateDropboxPaperPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateDropboxPaperPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequest.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequest.java index 8474f94e..69a97bd1 100644 --- a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequest.java +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequest.java @@ -49,17 +49,17 @@ /** * CreateEdgeConnectorActionRequest */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateEdgeConnectorActionRequest { public static final String SERIALIZED_NAME_ACTION = "action"; @SerializedName(SERIALIZED_NAME_ACTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CreateEdgeConnectorActionRequestAction action; public CreateEdgeConnectorActionRequest() { } - public CreateEdgeConnectorActionRequest action(@javax.annotation.Nullable CreateEdgeConnectorActionRequestAction action) { + public CreateEdgeConnectorActionRequest action(@jakarta.annotation.Nullable CreateEdgeConnectorActionRequestAction action) { this.action = action; return this; } @@ -68,12 +68,12 @@ public CreateEdgeConnectorActionRequest action(@javax.annotation.Nullable Create * Get action * @return action */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CreateEdgeConnectorActionRequestAction getAction() { return action; } - public void setAction(@javax.annotation.Nullable CreateEdgeConnectorActionRequestAction action) { + public void setAction(@jakarta.annotation.Nullable CreateEdgeConnectorActionRequestAction action) { this.action = action; } diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestAction.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestAction.java index 146518cc..fbe3a6d1 100644 --- a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestAction.java +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestAction.java @@ -49,11 +49,11 @@ /** * CreateEdgeConnectorActionRequestAction */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateEdgeConnectorActionRequestAction { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; /** @@ -110,18 +110,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ACTION_TYPE = "action_type"; @SerializedName(SERIALIZED_NAME_ACTION_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ActionTypeEnum actionType; public static final String SERIALIZED_NAME_METADATA = "metadata"; @SerializedName(SERIALIZED_NAME_METADATA) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CreateEdgeConnectorActionRequestActionMetadata metadata; public CreateEdgeConnectorActionRequestAction() { } - public CreateEdgeConnectorActionRequestAction name(@javax.annotation.Nonnull String name) { + public CreateEdgeConnectorActionRequestAction name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -130,17 +130,17 @@ public CreateEdgeConnectorActionRequestAction name(@javax.annotation.Nonnull Str * Action name * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public CreateEdgeConnectorActionRequestAction actionType(@javax.annotation.Nonnull ActionTypeEnum actionType) { + public CreateEdgeConnectorActionRequestAction actionType(@jakarta.annotation.Nonnull ActionTypeEnum actionType) { this.actionType = actionType; return this; } @@ -149,17 +149,17 @@ public CreateEdgeConnectorActionRequestAction actionType(@javax.annotation.Nonnu * Action type * @return actionType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ActionTypeEnum getActionType() { return actionType; } - public void setActionType(@javax.annotation.Nonnull ActionTypeEnum actionType) { + public void setActionType(@jakarta.annotation.Nonnull ActionTypeEnum actionType) { this.actionType = actionType; } - public CreateEdgeConnectorActionRequestAction metadata(@javax.annotation.Nullable CreateEdgeConnectorActionRequestActionMetadata metadata) { + public CreateEdgeConnectorActionRequestAction metadata(@jakarta.annotation.Nullable CreateEdgeConnectorActionRequestActionMetadata metadata) { this.metadata = metadata; return this; } @@ -168,12 +168,12 @@ public CreateEdgeConnectorActionRequestAction metadata(@javax.annotation.Nullabl * Get metadata * @return metadata */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CreateEdgeConnectorActionRequestActionMetadata getMetadata() { return metadata; } - public void setMetadata(@javax.annotation.Nullable CreateEdgeConnectorActionRequestActionMetadata metadata) { + public void setMetadata(@jakarta.annotation.Nullable CreateEdgeConnectorActionRequestActionMetadata metadata) { this.metadata = metadata; } diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadata.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadata.java index f3f7ed89..c2d07491 100644 --- a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadata.java +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadata.java @@ -51,27 +51,27 @@ /** * CreateEdgeConnectorActionRequestActionMetadata */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateEdgeConnectorActionRequestActionMetadata { public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_TIMEOUT = "timeout"; @SerializedName(SERIALIZED_NAME_TIMEOUT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer timeout; public static final String SERIALIZED_NAME_PARAMETERS = "parameters"; @SerializedName(SERIALIZED_NAME_PARAMETERS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List parameters = new ArrayList<>(); public CreateEdgeConnectorActionRequestActionMetadata() { } - public CreateEdgeConnectorActionRequestActionMetadata description(@javax.annotation.Nullable String description) { + public CreateEdgeConnectorActionRequestActionMetadata description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -80,17 +80,17 @@ public CreateEdgeConnectorActionRequestActionMetadata description(@javax.annotat * Get description * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public CreateEdgeConnectorActionRequestActionMetadata timeout(@javax.annotation.Nullable Integer timeout) { + public CreateEdgeConnectorActionRequestActionMetadata timeout(@jakarta.annotation.Nullable Integer timeout) { this.timeout = timeout; return this; } @@ -99,17 +99,17 @@ public CreateEdgeConnectorActionRequestActionMetadata timeout(@javax.annotation. * Get timeout * @return timeout */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getTimeout() { return timeout; } - public void setTimeout(@javax.annotation.Nullable Integer timeout) { + public void setTimeout(@jakarta.annotation.Nullable Integer timeout) { this.timeout = timeout; } - public CreateEdgeConnectorActionRequestActionMetadata parameters(@javax.annotation.Nullable List parameters) { + public CreateEdgeConnectorActionRequestActionMetadata parameters(@jakarta.annotation.Nullable List parameters) { this.parameters = parameters; return this; } @@ -126,12 +126,12 @@ public CreateEdgeConnectorActionRequestActionMetadata addParametersItem(CreateEd * Get parameters * @return parameters */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getParameters() { return parameters; } - public void setParameters(@javax.annotation.Nullable List parameters) { + public void setParameters(@jakarta.annotation.Nullable List parameters) { this.parameters = parameters; } diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadataParametersInner.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadataParametersInner.java index 1ace247c..569bd134 100644 --- a/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadataParametersInner.java +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorActionRequestActionMetadataParametersInner.java @@ -50,11 +50,11 @@ /** * CreateEdgeConnectorActionRequestActionMetadataParametersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateEdgeConnectorActionRequestActionMetadataParametersInner { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; /** @@ -113,28 +113,28 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TypeEnum type; public static final String SERIALIZED_NAME_REQUIRED = "required"; @SerializedName(SERIALIZED_NAME_REQUIRED) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean required; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_OPTIONS = "options"; @SerializedName(SERIALIZED_NAME_OPTIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List options = new ArrayList<>(); public CreateEdgeConnectorActionRequestActionMetadataParametersInner() { } - public CreateEdgeConnectorActionRequestActionMetadataParametersInner name(@javax.annotation.Nullable String name) { + public CreateEdgeConnectorActionRequestActionMetadataParametersInner name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -143,17 +143,17 @@ public CreateEdgeConnectorActionRequestActionMetadataParametersInner name(@javax * Get name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public CreateEdgeConnectorActionRequestActionMetadataParametersInner type(@javax.annotation.Nullable TypeEnum type) { + public CreateEdgeConnectorActionRequestActionMetadataParametersInner type(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; return this; } @@ -162,17 +162,17 @@ public CreateEdgeConnectorActionRequestActionMetadataParametersInner type(@javax * Get type * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; } - public CreateEdgeConnectorActionRequestActionMetadataParametersInner required(@javax.annotation.Nullable Boolean required) { + public CreateEdgeConnectorActionRequestActionMetadataParametersInner required(@jakarta.annotation.Nullable Boolean required) { this.required = required; return this; } @@ -181,17 +181,17 @@ public CreateEdgeConnectorActionRequestActionMetadataParametersInner required(@j * Get required * @return required */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getRequired() { return required; } - public void setRequired(@javax.annotation.Nullable Boolean required) { + public void setRequired(@jakarta.annotation.Nullable Boolean required) { this.required = required; } - public CreateEdgeConnectorActionRequestActionMetadataParametersInner description(@javax.annotation.Nullable String description) { + public CreateEdgeConnectorActionRequestActionMetadataParametersInner description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -200,17 +200,17 @@ public CreateEdgeConnectorActionRequestActionMetadataParametersInner description * Get description * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public CreateEdgeConnectorActionRequestActionMetadataParametersInner options(@javax.annotation.Nullable List options) { + public CreateEdgeConnectorActionRequestActionMetadataParametersInner options(@jakarta.annotation.Nullable List options) { this.options = options; return this; } @@ -227,12 +227,12 @@ public CreateEdgeConnectorActionRequestActionMetadataParametersInner addOptionsI * Get options * @return options */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getOptions() { return options; } - public void setOptions(@javax.annotation.Nullable List options) { + public void setOptions(@jakarta.annotation.Nullable List options) { this.options = options; } diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequest.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequest.java index 1e13644e..2f6c9cdb 100644 --- a/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequest.java +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequest.java @@ -49,17 +49,17 @@ /** * CreateEdgeConnectorRequest */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateEdgeConnectorRequest { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CreateEdgeConnectorRequestData data; public CreateEdgeConnectorRequest() { } - public CreateEdgeConnectorRequest data(@javax.annotation.Nonnull CreateEdgeConnectorRequestData data) { + public CreateEdgeConnectorRequest data(@jakarta.annotation.Nonnull CreateEdgeConnectorRequestData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public CreateEdgeConnectorRequest data(@javax.annotation.Nonnull CreateEdgeConne * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CreateEdgeConnectorRequestData getData() { return data; } - public void setData(@javax.annotation.Nonnull CreateEdgeConnectorRequestData data) { + public void setData(@jakarta.annotation.Nonnull CreateEdgeConnectorRequestData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestData.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestData.java index 367dde91..5ca23d10 100644 --- a/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestData.java +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestData.java @@ -49,7 +49,7 @@ /** * CreateEdgeConnectorRequestData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateEdgeConnectorRequestData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CreateEdgeConnectorRequestDataAttributes attributes; public CreateEdgeConnectorRequestData() { } - public CreateEdgeConnectorRequestData type(@javax.annotation.Nonnull TypeEnum type) { + public CreateEdgeConnectorRequestData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public CreateEdgeConnectorRequestData type(@javax.annotation.Nonnull TypeEnum ty * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public CreateEdgeConnectorRequestData attributes(@javax.annotation.Nonnull CreateEdgeConnectorRequestDataAttributes attributes) { + public CreateEdgeConnectorRequestData attributes(@jakarta.annotation.Nonnull CreateEdgeConnectorRequestDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public CreateEdgeConnectorRequestData attributes(@javax.annotation.Nonnull Creat * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CreateEdgeConnectorRequestDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull CreateEdgeConnectorRequestDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull CreateEdgeConnectorRequestDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributes.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributes.java index c05e7f6c..bf854d0a 100644 --- a/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributes.java +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateEdgeConnectorRequestDataAttributesFilters; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -50,16 +51,16 @@ /** * CreateEdgeConnectorRequestDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateEdgeConnectorRequestDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; /** @@ -116,18 +117,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private StatusEnum status; public static final String SERIALIZED_NAME_SUBSCRIPTIONS = "subscriptions"; @SerializedName(SERIALIZED_NAME_SUBSCRIPTIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List subscriptions = new ArrayList<>(); + public static final String SERIALIZED_NAME_FILTERS = "filters"; + @SerializedName(SERIALIZED_NAME_FILTERS) + @jakarta.annotation.Nullable + private CreateEdgeConnectorRequestDataAttributesFilters filters; + public CreateEdgeConnectorRequestDataAttributes() { } - public CreateEdgeConnectorRequestDataAttributes name(@javax.annotation.Nonnull String name) { + public CreateEdgeConnectorRequestDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -136,17 +142,17 @@ public CreateEdgeConnectorRequestDataAttributes name(@javax.annotation.Nonnull S * Connector name * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public CreateEdgeConnectorRequestDataAttributes description(@javax.annotation.Nullable String description) { + public CreateEdgeConnectorRequestDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -155,17 +161,17 @@ public CreateEdgeConnectorRequestDataAttributes description(@javax.annotation.Nu * Connector description * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public CreateEdgeConnectorRequestDataAttributes status(@javax.annotation.Nullable StatusEnum status) { + public CreateEdgeConnectorRequestDataAttributes status(@jakarta.annotation.Nullable StatusEnum status) { this.status = status; return this; } @@ -174,17 +180,17 @@ public CreateEdgeConnectorRequestDataAttributes status(@javax.annotation.Nullabl * Connector status * @return status */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public StatusEnum getStatus() { return status; } - public void setStatus(@javax.annotation.Nullable StatusEnum status) { + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { this.status = status; } - public CreateEdgeConnectorRequestDataAttributes subscriptions(@javax.annotation.Nullable List subscriptions) { + public CreateEdgeConnectorRequestDataAttributes subscriptions(@jakarta.annotation.Nullable List subscriptions) { this.subscriptions = subscriptions; return this; } @@ -201,16 +207,35 @@ public CreateEdgeConnectorRequestDataAttributes addSubscriptionsItem(String subs * Array of event types to subscribe to * @return subscriptions */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getSubscriptions() { return subscriptions; } - public void setSubscriptions(@javax.annotation.Nullable List subscriptions) { + public void setSubscriptions(@jakarta.annotation.Nullable List subscriptions) { this.subscriptions = subscriptions; } + public CreateEdgeConnectorRequestDataAttributes filters(@jakarta.annotation.Nullable CreateEdgeConnectorRequestDataAttributesFilters filters) { + this.filters = filters; + return this; + } + + /** + * Get filters + * @return filters + */ + @jakarta.annotation.Nullable + public CreateEdgeConnectorRequestDataAttributesFilters getFilters() { + return filters; + } + + public void setFilters(@jakarta.annotation.Nullable CreateEdgeConnectorRequestDataAttributesFilters filters) { + this.filters = filters; + } + + @Override public boolean equals(Object o) { @@ -224,12 +249,13 @@ public boolean equals(Object o) { return Objects.equals(this.name, createEdgeConnectorRequestDataAttributes.name) && Objects.equals(this.description, createEdgeConnectorRequestDataAttributes.description) && Objects.equals(this.status, createEdgeConnectorRequestDataAttributes.status) && - Objects.equals(this.subscriptions, createEdgeConnectorRequestDataAttributes.subscriptions); + Objects.equals(this.subscriptions, createEdgeConnectorRequestDataAttributes.subscriptions) && + Objects.equals(this.filters, createEdgeConnectorRequestDataAttributes.filters); } @Override public int hashCode() { - return Objects.hash(name, description, status, subscriptions); + return Objects.hash(name, description, status, subscriptions, filters); } @Override @@ -240,6 +266,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" subscriptions: ").append(toIndentedString(subscriptions)).append("\n"); + sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); sb.append("}"); return sb.toString(); } @@ -266,6 +293,7 @@ private String toIndentedString(Object o) { openapiFields.add("description"); openapiFields.add("status"); openapiFields.add("subscriptions"); + openapiFields.add("filters"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -317,6 +345,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("subscriptions") != null && !jsonObj.get("subscriptions").isJsonNull() && !jsonObj.get("subscriptions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `subscriptions` to be an array in the JSON string but got `%s`", jsonObj.get("subscriptions").toString())); } + // validate the optional field `filters` + if (jsonObj.get("filters") != null && !jsonObj.get("filters").isJsonNull()) { + CreateEdgeConnectorRequestDataAttributesFilters.validateJsonElement(jsonObj.get("filters")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFilters.java b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFilters.java new file mode 100644 index 00000000..0874f369 --- /dev/null +++ b/src/main/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFilters.java @@ -0,0 +1,334 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * Event filters. OR within dimension, AND across dimensions. + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class CreateEdgeConnectorRequestDataAttributesFilters { + public static final String SERIALIZED_NAME_GROUP_IDS = "group_ids"; + @SerializedName(SERIALIZED_NAME_GROUP_IDS) + @jakarta.annotation.Nullable + private List groupIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SERVICE_IDS = "service_ids"; + @SerializedName(SERIALIZED_NAME_SERVICE_IDS) + @jakarta.annotation.Nullable + private List serviceIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ENVIRONMENT_IDS = "environment_ids"; + @SerializedName(SERIALIZED_NAME_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List environmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_FUNCTIONALITY_IDS = "functionality_ids"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List functionalityIds = new ArrayList<>(); + + public CreateEdgeConnectorRequestDataAttributesFilters() { + } + + public CreateEdgeConnectorRequestDataAttributesFilters groupIds(@jakarta.annotation.Nullable List groupIds) { + this.groupIds = groupIds; + return this; + } + + public CreateEdgeConnectorRequestDataAttributesFilters addGroupIdsItem(String groupIdsItem) { + if (this.groupIds == null) { + this.groupIds = new ArrayList<>(); + } + this.groupIds.add(groupIdsItem); + return this; + } + + /** + * Filter by group UUIDs + * @return groupIds + */ + @jakarta.annotation.Nullable + public List getGroupIds() { + return groupIds; + } + + public void setGroupIds(@jakarta.annotation.Nullable List groupIds) { + this.groupIds = groupIds; + } + + + public CreateEdgeConnectorRequestDataAttributesFilters serviceIds(@jakarta.annotation.Nullable List serviceIds) { + this.serviceIds = serviceIds; + return this; + } + + public CreateEdgeConnectorRequestDataAttributesFilters addServiceIdsItem(String serviceIdsItem) { + if (this.serviceIds == null) { + this.serviceIds = new ArrayList<>(); + } + this.serviceIds.add(serviceIdsItem); + return this; + } + + /** + * Filter by service UUIDs + * @return serviceIds + */ + @jakarta.annotation.Nullable + public List getServiceIds() { + return serviceIds; + } + + public void setServiceIds(@jakarta.annotation.Nullable List serviceIds) { + this.serviceIds = serviceIds; + } + + + public CreateEdgeConnectorRequestDataAttributesFilters environmentIds(@jakarta.annotation.Nullable List environmentIds) { + this.environmentIds = environmentIds; + return this; + } + + public CreateEdgeConnectorRequestDataAttributesFilters addEnvironmentIdsItem(String environmentIdsItem) { + if (this.environmentIds == null) { + this.environmentIds = new ArrayList<>(); + } + this.environmentIds.add(environmentIdsItem); + return this; + } + + /** + * Filter by environment UUIDs + * @return environmentIds + */ + @jakarta.annotation.Nullable + public List getEnvironmentIds() { + return environmentIds; + } + + public void setEnvironmentIds(@jakarta.annotation.Nullable List environmentIds) { + this.environmentIds = environmentIds; + } + + + public CreateEdgeConnectorRequestDataAttributesFilters functionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + return this; + } + + public CreateEdgeConnectorRequestDataAttributesFilters addFunctionalityIdsItem(String functionalityIdsItem) { + if (this.functionalityIds == null) { + this.functionalityIds = new ArrayList<>(); + } + this.functionalityIds.add(functionalityIdsItem); + return this; + } + + /** + * Filter by functionality UUIDs + * @return functionalityIds + */ + @jakarta.annotation.Nullable + public List getFunctionalityIds() { + return functionalityIds; + } + + public void setFunctionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateEdgeConnectorRequestDataAttributesFilters createEdgeConnectorRequestDataAttributesFilters = (CreateEdgeConnectorRequestDataAttributesFilters) o; + return Objects.equals(this.groupIds, createEdgeConnectorRequestDataAttributesFilters.groupIds) && + Objects.equals(this.serviceIds, createEdgeConnectorRequestDataAttributesFilters.serviceIds) && + Objects.equals(this.environmentIds, createEdgeConnectorRequestDataAttributesFilters.environmentIds) && + Objects.equals(this.functionalityIds, createEdgeConnectorRequestDataAttributesFilters.functionalityIds); + } + + @Override + public int hashCode() { + return Objects.hash(groupIds, serviceIds, environmentIds, functionalityIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateEdgeConnectorRequestDataAttributesFilters {\n"); + sb.append(" groupIds: ").append(toIndentedString(groupIds)).append("\n"); + sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); + sb.append(" environmentIds: ").append(toIndentedString(environmentIds)).append("\n"); + sb.append(" functionalityIds: ").append(toIndentedString(functionalityIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("group_ids"); + openapiFields.add("service_ids"); + openapiFields.add("environment_ids"); + openapiFields.add("functionality_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreateEdgeConnectorRequestDataAttributesFilters + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreateEdgeConnectorRequestDataAttributesFilters.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreateEdgeConnectorRequestDataAttributesFilters is not found in the empty JSON string", CreateEdgeConnectorRequestDataAttributesFilters.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreateEdgeConnectorRequestDataAttributesFilters.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreateEdgeConnectorRequestDataAttributesFilters` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("group_ids") != null && !jsonObj.get("group_ids").isJsonNull() && !jsonObj.get("group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("group_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("service_ids") != null && !jsonObj.get("service_ids").isJsonNull() && !jsonObj.get("service_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("service_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("environment_ids") != null && !jsonObj.get("environment_ids").isJsonNull() && !jsonObj.get("environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("functionality_ids") != null && !jsonObj.get("functionality_ids").isJsonNull() && !jsonObj.get("functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("functionality_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateEdgeConnectorRequestDataAttributesFilters.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateEdgeConnectorRequestDataAttributesFilters' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreateEdgeConnectorRequestDataAttributesFilters.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateEdgeConnectorRequestDataAttributesFilters value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreateEdgeConnectorRequestDataAttributesFilters read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreateEdgeConnectorRequestDataAttributesFilters given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateEdgeConnectorRequestDataAttributesFilters + * @throws IOException if the JSON string is invalid with respect to CreateEdgeConnectorRequestDataAttributesFilters + */ + public static CreateEdgeConnectorRequestDataAttributesFilters fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateEdgeConnectorRequestDataAttributesFilters.class); + } + + /** + * Convert an instance of CreateEdgeConnectorRequestDataAttributesFilters to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParams.java b/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParams.java index 22c3c59d..84262510 100644 --- a/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParams.java @@ -20,8 +20,12 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.CreateGithubIssueTaskParamsIssueType; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,7 +53,7 @@ /** * CreateGithubIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGithubIssueTaskParams { /** * Gets or Sets taskType @@ -121,6 +125,26 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private AddActionItemTaskParamsPostToSlackChannelsInner repository; + public static final String SERIALIZED_NAME_LABELS = "labels"; + @SerializedName(SERIALIZED_NAME_LABELS) + @jakarta.annotation.Nullable + private List labels = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ISSUE_TYPE = "issue_type"; + @SerializedName(SERIALIZED_NAME_ISSUE_TYPE) + @jakarta.annotation.Nullable + private CreateGithubIssueTaskParamsIssueType issueType; + + public static final String SERIALIZED_NAME_PARENT_ISSUE_NUMBER = "parent_issue_number"; + @SerializedName(SERIALIZED_NAME_PARENT_ISSUE_NUMBER) + @jakarta.annotation.Nullable + private String parentIssueNumber; + + public static final String SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING = "custom_fields_mapping"; + @SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING) + @jakarta.annotation.Nullable + private String customFieldsMapping; + public CreateGithubIssueTaskParams() { } @@ -200,6 +224,90 @@ public void setRepository(@jakarta.annotation.Nonnull AddActionItemTaskParamsPos } + public CreateGithubIssueTaskParams labels(@jakarta.annotation.Nullable List labels) { + this.labels = labels; + return this; + } + + public CreateGithubIssueTaskParams addLabelsItem(AddActionItemTaskParamsPostToSlackChannelsInner labelsItem) { + if (this.labels == null) { + this.labels = new ArrayList<>(); + } + this.labels.add(labelsItem); + return this; + } + + /** + * The issue labels + * @return labels + */ + @jakarta.annotation.Nullable + public List getLabels() { + return labels; + } + + public void setLabels(@jakarta.annotation.Nullable List labels) { + this.labels = labels; + } + + + public CreateGithubIssueTaskParams issueType(@jakarta.annotation.Nullable CreateGithubIssueTaskParamsIssueType issueType) { + this.issueType = issueType; + return this; + } + + /** + * Get issueType + * @return issueType + */ + @jakarta.annotation.Nullable + public CreateGithubIssueTaskParamsIssueType getIssueType() { + return issueType; + } + + public void setIssueType(@jakarta.annotation.Nullable CreateGithubIssueTaskParamsIssueType issueType) { + this.issueType = issueType; + } + + + public CreateGithubIssueTaskParams parentIssueNumber(@jakarta.annotation.Nullable String parentIssueNumber) { + this.parentIssueNumber = parentIssueNumber; + return this; + } + + /** + * The parent issue number for sub-issue linking + * @return parentIssueNumber + */ + @jakarta.annotation.Nullable + public String getParentIssueNumber() { + return parentIssueNumber; + } + + public void setParentIssueNumber(@jakarta.annotation.Nullable String parentIssueNumber) { + this.parentIssueNumber = parentIssueNumber; + } + + + public CreateGithubIssueTaskParams customFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + return this; + } + + /** + * Custom field mappings. Can contain liquid markup and need to be valid JSON + * @return customFieldsMapping + */ + @jakarta.annotation.Nullable + public String getCustomFieldsMapping() { + return customFieldsMapping; + } + + public void setCustomFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + } + + @Override public boolean equals(Object o) { @@ -213,12 +321,27 @@ public boolean equals(Object o) { return Objects.equals(this.taskType, createGithubIssueTaskParams.taskType) && Objects.equals(this.title, createGithubIssueTaskParams.title) && Objects.equals(this.body, createGithubIssueTaskParams.body) && - Objects.equals(this.repository, createGithubIssueTaskParams.repository); + Objects.equals(this.repository, createGithubIssueTaskParams.repository) && + Objects.equals(this.labels, createGithubIssueTaskParams.labels) && + Objects.equals(this.issueType, createGithubIssueTaskParams.issueType) && + Objects.equals(this.parentIssueNumber, createGithubIssueTaskParams.parentIssueNumber) && + Objects.equals(this.customFieldsMapping, createGithubIssueTaskParams.customFieldsMapping); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(taskType, title, body, repository); + return Objects.hash(taskType, title, body, repository, labels, issueType, parentIssueNumber, customFieldsMapping); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -229,6 +352,10 @@ public String toString() { sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" body: ").append(toIndentedString(body)).append("\n"); sb.append(" repository: ").append(toIndentedString(repository)).append("\n"); + sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); + sb.append(" issueType: ").append(toIndentedString(issueType)).append("\n"); + sb.append(" parentIssueNumber: ").append(toIndentedString(parentIssueNumber)).append("\n"); + sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append("}"); return sb.toString(); } @@ -255,6 +382,10 @@ private String toIndentedString(Object o) { openapiFields.add("title"); openapiFields.add("body"); openapiFields.add("repository"); + openapiFields.add("labels"); + openapiFields.add("issue_type"); + openapiFields.add("parent_issue_number"); + openapiFields.add("custom_fields_mapping"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -305,6 +436,30 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the required field `repository` AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("repository")); + if (jsonObj.get("labels") != null && !jsonObj.get("labels").isJsonNull()) { + JsonArray jsonArraylabels = jsonObj.getAsJsonArray("labels"); + if (jsonArraylabels != null) { + // ensure the json data is an array + if (!jsonObj.get("labels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `labels` to be an array in the JSON string but got `%s`", jsonObj.get("labels").toString())); + } + + // validate the optional field `labels` (array) + for (int i = 0; i < jsonArraylabels.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArraylabels.get(i)); + }; + } + } + // validate the optional field `issue_type` + if (jsonObj.get("issue_type") != null && !jsonObj.get("issue_type").isJsonNull()) { + CreateGithubIssueTaskParamsIssueType.validateJsonElement(jsonObj.get("issue_type")); + } + if ((jsonObj.get("parent_issue_number") != null && !jsonObj.get("parent_issue_number").isJsonNull()) && !jsonObj.get("parent_issue_number").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `parent_issue_number` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parent_issue_number").toString())); + } + if ((jsonObj.get("custom_fields_mapping") != null && !jsonObj.get("custom_fields_mapping").isJsonNull()) && !jsonObj.get("custom_fields_mapping").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_fields_mapping` to be a primitive type in the JSON string but got `%s`", jsonObj.get("custom_fields_mapping").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParamsIssueType.java b/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParamsIssueType.java index 11ac07a9..7105b7bd 100644 --- a/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParamsIssueType.java +++ b/src/main/java/com/rootly/client/model/CreateGithubIssueTaskParamsIssueType.java @@ -48,22 +48,22 @@ /** * The issue type */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGithubIssueTaskParamsIssueType { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public CreateGithubIssueTaskParamsIssueType() { } - public CreateGithubIssueTaskParamsIssueType id(@javax.annotation.Nullable String id) { + public CreateGithubIssueTaskParamsIssueType id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -72,17 +72,17 @@ public CreateGithubIssueTaskParamsIssueType id(@javax.annotation.Nullable String * Get id * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public CreateGithubIssueTaskParamsIssueType name(@javax.annotation.Nullable String name) { + public CreateGithubIssueTaskParamsIssueType name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -91,12 +91,12 @@ public CreateGithubIssueTaskParamsIssueType name(@javax.annotation.Nullable Stri * Get name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } diff --git a/src/main/java/com/rootly/client/model/CreateGitlabIssueTaskParams.java b/src/main/java/com/rootly/client/model/CreateGitlabIssueTaskParams.java index 15e40510..baa89863 100644 --- a/src/main/java/com/rootly/client/model/CreateGitlabIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGitlabIssueTaskParams.java @@ -49,7 +49,7 @@ /** * CreateGitlabIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGitlabIssueTaskParams { /** * Gets or Sets taskType @@ -164,7 +164,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ISSUE_TYPE = "issue_type"; @SerializedName(SERIALIZED_NAME_ISSUE_TYPE) - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull private IssueTypeEnum issueType; public static final String SERIALIZED_NAME_TITLE = "title"; @@ -214,7 +214,7 @@ public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { } - public CreateGitlabIssueTaskParams issueType(@jakarta.annotation.Nullable IssueTypeEnum issueType) { + public CreateGitlabIssueTaskParams issueType(@jakarta.annotation.Nonnull IssueTypeEnum issueType) { this.issueType = issueType; return this; } @@ -223,12 +223,12 @@ public CreateGitlabIssueTaskParams issueType(@jakarta.annotation.Nullable IssueT * The issue type * @return issueType */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull public IssueTypeEnum getIssueType() { return issueType; } - public void setIssueType(@jakarta.annotation.Nullable IssueTypeEnum issueType) { + public void setIssueType(@jakarta.annotation.Nonnull IssueTypeEnum issueType) { this.issueType = issueType; } @@ -395,6 +395,7 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("issue_type"); openapiRequiredFields.add("title"); openapiRequiredFields.add("repository"); } @@ -434,13 +435,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); } - if ((jsonObj.get("issue_type") != null && !jsonObj.get("issue_type").isJsonNull()) && !jsonObj.get("issue_type").isJsonPrimitive()) { + if (!jsonObj.get("issue_type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `issue_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("issue_type").toString())); } - // validate the optional field `issue_type` - if (jsonObj.get("issue_type") != null && !jsonObj.get("issue_type").isJsonNull()) { - IssueTypeEnum.validateJsonElement(jsonObj.get("issue_type")); - } + // validate the required field `issue_type` + IssueTypeEnum.validateJsonElement(jsonObj.get("issue_type")); if (!jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } diff --git a/src/main/java/com/rootly/client/model/CreateGoToMeetingTaskParams.java b/src/main/java/com/rootly/client/model/CreateGoToMeetingTaskParams.java index 1293bffd..ccae8f39 100644 --- a/src/main/java/com/rootly/client/model/CreateGoToMeetingTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGoToMeetingTaskParams.java @@ -52,7 +52,7 @@ /** * CreateGoToMeetingTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGoToMeetingTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateGoogleCalendarEventTaskParams.java b/src/main/java/com/rootly/client/model/CreateGoogleCalendarEventTaskParams.java index 66704a26..19052d08 100644 --- a/src/main/java/com/rootly/client/model/CreateGoogleCalendarEventTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGoogleCalendarEventTaskParams.java @@ -52,7 +52,7 @@ /** * CreateGoogleCalendarEventTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGoogleCalendarEventTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParams.java b/src/main/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParams.java new file mode 100644 index 00000000..b6925957 --- /dev/null +++ b/src/main/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParams.java @@ -0,0 +1,358 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * CreateGoogleChatSpaceTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class CreateGoogleChatSpaceTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + CREATE_GOOGLE_CHAT_SPACE("create_google_chat_space"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nonnull + private String title; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_AUDIENCE = "audience"; + @SerializedName(SERIALIZED_NAME_AUDIENCE) + @jakarta.annotation.Nullable + private String audience; + + public CreateGoogleChatSpaceTaskParams() { + } + + public CreateGoogleChatSpaceTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public CreateGoogleChatSpaceTaskParams title(@jakarta.annotation.Nonnull String title) { + this.title = title; + return this; + } + + /** + * Get title + * @return title + */ + @jakarta.annotation.Nonnull + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nonnull String title) { + this.title = title; + } + + + public CreateGoogleChatSpaceTaskParams description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public CreateGoogleChatSpaceTaskParams audience(@jakarta.annotation.Nullable String audience) { + this.audience = audience; + return this; + } + + /** + * Target audience resource name (e.g. audiences/default). Leave blank for private space. + * @return audience + */ + @jakarta.annotation.Nullable + public String getAudience() { + return audience; + } + + public void setAudience(@jakarta.annotation.Nullable String audience) { + this.audience = audience; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateGoogleChatSpaceTaskParams createGoogleChatSpaceTaskParams = (CreateGoogleChatSpaceTaskParams) o; + return Objects.equals(this.taskType, createGoogleChatSpaceTaskParams.taskType) && + Objects.equals(this.title, createGoogleChatSpaceTaskParams.title) && + Objects.equals(this.description, createGoogleChatSpaceTaskParams.description) && + Objects.equals(this.audience, createGoogleChatSpaceTaskParams.audience); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, title, description, audience); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateGoogleChatSpaceTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" audience: ").append(toIndentedString(audience)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("title"); + openapiFields.add("description"); + openapiFields.add("audience"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("title"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreateGoogleChatSpaceTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreateGoogleChatSpaceTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreateGoogleChatSpaceTaskParams is not found in the empty JSON string", CreateGoogleChatSpaceTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreateGoogleChatSpaceTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreateGoogleChatSpaceTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : CreateGoogleChatSpaceTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + if (!jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("audience") != null && !jsonObj.get("audience").isJsonNull()) && !jsonObj.get("audience").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `audience` to be a primitive type in the JSON string but got `%s`", jsonObj.get("audience").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateGoogleChatSpaceTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateGoogleChatSpaceTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreateGoogleChatSpaceTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateGoogleChatSpaceTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreateGoogleChatSpaceTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreateGoogleChatSpaceTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateGoogleChatSpaceTaskParams + * @throws IOException if the JSON string is invalid with respect to CreateGoogleChatSpaceTaskParams + */ + public static CreateGoogleChatSpaceTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateGoogleChatSpaceTaskParams.class); + } + + /** + * Convert an instance of CreateGoogleChatSpaceTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/CreateGoogleDocsPageTaskParams.java b/src/main/java/com/rootly/client/model/CreateGoogleDocsPageTaskParams.java index 9312b859..2f4d888e 100644 --- a/src/main/java/com/rootly/client/model/CreateGoogleDocsPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGoogleDocsPageTaskParams.java @@ -49,7 +49,7 @@ /** * CreateGoogleDocsPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGoogleDocsPageTaskParams { /** * Gets or Sets taskType @@ -146,6 +146,21 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String permissions; + public static final String SERIALIZED_NAME_INCLUDE_OVERVIEW = "include_overview"; + @SerializedName(SERIALIZED_NAME_INCLUDE_OVERVIEW) + @jakarta.annotation.Nullable + private Boolean includeOverview = true; + + public static final String SERIALIZED_NAME_INCLUDE_TIMELINE = "include_timeline"; + @SerializedName(SERIALIZED_NAME_INCLUDE_TIMELINE) + @jakarta.annotation.Nullable + private Boolean includeTimeline = true; + + public static final String SERIALIZED_NAME_INCLUDE_FOLLOW_UPS = "include_follow_ups"; + @SerializedName(SERIALIZED_NAME_INCLUDE_FOLLOW_UPS) + @jakarta.annotation.Nullable + private Boolean includeFollowUps = true; + public CreateGoogleDocsPageTaskParams() { } @@ -320,6 +335,63 @@ public void setPermissions(@jakarta.annotation.Nullable String permissions) { } + public CreateGoogleDocsPageTaskParams includeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + return this; + } + + /** + * Get includeOverview + * @return includeOverview + */ + @jakarta.annotation.Nullable + public Boolean getIncludeOverview() { + return includeOverview; + } + + public void setIncludeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + } + + + public CreateGoogleDocsPageTaskParams includeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + return this; + } + + /** + * Get includeTimeline + * @return includeTimeline + */ + @jakarta.annotation.Nullable + public Boolean getIncludeTimeline() { + return includeTimeline; + } + + public void setIncludeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + } + + + public CreateGoogleDocsPageTaskParams includeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + return this; + } + + /** + * Get includeFollowUps + * @return includeFollowUps + */ + @jakarta.annotation.Nullable + public Boolean getIncludeFollowUps() { + return includeFollowUps; + } + + public void setIncludeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + } + + @Override public boolean equals(Object o) { @@ -338,12 +410,15 @@ public boolean equals(Object o) { Objects.equals(this.parentFolder, createGoogleDocsPageTaskParams.parentFolder) && Objects.equals(this.content, createGoogleDocsPageTaskParams.content) && Objects.equals(this.templateId, createGoogleDocsPageTaskParams.templateId) && - Objects.equals(this.permissions, createGoogleDocsPageTaskParams.permissions); + Objects.equals(this.permissions, createGoogleDocsPageTaskParams.permissions) && + Objects.equals(this.includeOverview, createGoogleDocsPageTaskParams.includeOverview) && + Objects.equals(this.includeTimeline, createGoogleDocsPageTaskParams.includeTimeline) && + Objects.equals(this.includeFollowUps, createGoogleDocsPageTaskParams.includeFollowUps); } @Override public int hashCode() { - return Objects.hash(taskType, postMortemTemplateId, markPostMortemAsPublished, title, drive, parentFolder, content, templateId, permissions); + return Objects.hash(taskType, postMortemTemplateId, markPostMortemAsPublished, title, drive, parentFolder, content, templateId, permissions, includeOverview, includeTimeline, includeFollowUps); } @Override @@ -359,6 +434,9 @@ public String toString() { sb.append(" content: ").append(toIndentedString(content)).append("\n"); sb.append(" templateId: ").append(toIndentedString(templateId)).append("\n"); sb.append(" permissions: ").append(toIndentedString(permissions)).append("\n"); + sb.append(" includeOverview: ").append(toIndentedString(includeOverview)).append("\n"); + sb.append(" includeTimeline: ").append(toIndentedString(includeTimeline)).append("\n"); + sb.append(" includeFollowUps: ").append(toIndentedString(includeFollowUps)).append("\n"); sb.append("}"); return sb.toString(); } @@ -390,6 +468,9 @@ private String toIndentedString(Object o) { openapiFields.add("content"); openapiFields.add("template_id"); openapiFields.add("permissions"); + openapiFields.add("include_overview"); + openapiFields.add("include_timeline"); + openapiFields.add("include_follow_ups"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/CreateGoogleDocsPermissionsTaskParams.java b/src/main/java/com/rootly/client/model/CreateGoogleDocsPermissionsTaskParams.java index f62838ec..af8eaa4b 100644 --- a/src/main/java/com/rootly/client/model/CreateGoogleDocsPermissionsTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGoogleDocsPermissionsTaskParams.java @@ -49,7 +49,7 @@ /** * CreateGoogleDocsPermissionsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGoogleDocsPermissionsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParams.java b/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParams.java index b3d00f80..dddb43f9 100644 --- a/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParams.java @@ -49,7 +49,7 @@ /** * CreateGoogleGeminiChatCompletionTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGoogleGeminiChatCompletionTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParamsModel.java b/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParamsModel.java index c8f21524..8ebda47c 100644 --- a/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParamsModel.java +++ b/src/main/java/com/rootly/client/model/CreateGoogleGeminiChatCompletionTaskParamsModel.java @@ -48,7 +48,7 @@ /** * The Gemini model. eg: gemini-2.0-flash */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGoogleGeminiChatCompletionTaskParamsModel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateGoogleMeetingTaskParams.java b/src/main/java/com/rootly/client/model/CreateGoogleMeetingTaskParams.java index 58624415..34117542 100644 --- a/src/main/java/com/rootly/client/model/CreateGoogleMeetingTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateGoogleMeetingTaskParams.java @@ -52,7 +52,7 @@ /** * CreateGoogleMeetingTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateGoogleMeetingTaskParams { /** * Gets or Sets taskType @@ -185,6 +185,67 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean recordMeeting; + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + */ + @JsonAdapter(RecordingModeEnum.Adapter.class) + public enum RecordingModeEnum { + SPEAKER_VIEW("speaker_view"), + + GALLERY_VIEW("gallery_view"), + + GALLERY_VIEW_V2("gallery_view_v2"), + + AUDIO_ONLY("audio_only"); + + private String value; + + RecordingModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecordingModeEnum fromValue(String value) { + for (RecordingModeEnum b : RecordingModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecordingModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecordingModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecordingModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecordingModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_RECORDING_MODE = "recording_mode"; + @SerializedName(SERIALIZED_NAME_RECORDING_MODE) + @jakarta.annotation.Nullable + private RecordingModeEnum recordingMode; + public static final String SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE = "post_to_incident_timeline"; @SerializedName(SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE) @jakarta.annotation.Nullable @@ -293,6 +354,25 @@ public void setRecordMeeting(@jakarta.annotation.Nullable Boolean recordMeeting) } + public CreateGoogleMeetingTaskParams recordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + return this; + } + + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + * @return recordingMode + */ + @jakarta.annotation.Nullable + public RecordingModeEnum getRecordingMode() { + return recordingMode; + } + + public void setRecordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + } + + public CreateGoogleMeetingTaskParams postToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { this.postToIncidentTimeline = postToIncidentTimeline; return this; @@ -354,6 +434,7 @@ public boolean equals(Object o) { Objects.equals(this.description, createGoogleMeetingTaskParams.description) && Objects.equals(this.conferenceSolutionKey, createGoogleMeetingTaskParams.conferenceSolutionKey) && Objects.equals(this.recordMeeting, createGoogleMeetingTaskParams.recordMeeting) && + Objects.equals(this.recordingMode, createGoogleMeetingTaskParams.recordingMode) && Objects.equals(this.postToIncidentTimeline, createGoogleMeetingTaskParams.postToIncidentTimeline) && Objects.equals(this.postToSlackChannels, createGoogleMeetingTaskParams.postToSlackChannels); } @@ -364,7 +445,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(taskType, summary, description, conferenceSolutionKey, recordMeeting, postToIncidentTimeline, postToSlackChannels); + return Objects.hash(taskType, summary, description, conferenceSolutionKey, recordMeeting, recordingMode, postToIncidentTimeline, postToSlackChannels); } private static int hashCodeNullable(JsonNullable a) { @@ -383,6 +464,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" conferenceSolutionKey: ").append(toIndentedString(conferenceSolutionKey)).append("\n"); sb.append(" recordMeeting: ").append(toIndentedString(recordMeeting)).append("\n"); + sb.append(" recordingMode: ").append(toIndentedString(recordingMode)).append("\n"); sb.append(" postToIncidentTimeline: ").append(toIndentedString(postToIncidentTimeline)).append("\n"); sb.append(" postToSlackChannels: ").append(toIndentedString(postToSlackChannels)).append("\n"); sb.append("}"); @@ -412,6 +494,7 @@ private String toIndentedString(Object o) { openapiFields.add("description"); openapiFields.add("conference_solution_key"); openapiFields.add("record_meeting"); + openapiFields.add("recording_mode"); openapiFields.add("post_to_incident_timeline"); openapiFields.add("post_to_slack_channels"); @@ -469,6 +552,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("conference_solution_key") != null && !jsonObj.get("conference_solution_key").isJsonNull()) { ConferenceSolutionKeyEnum.validateJsonElement(jsonObj.get("conference_solution_key")); } + if ((jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) && !jsonObj.get("recording_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recording_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recording_mode").toString())); + } + // validate the optional field `recording_mode` + if (jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) { + RecordingModeEnum.validateJsonElement(jsonObj.get("recording_mode")); + } if (jsonObj.get("post_to_slack_channels") != null && !jsonObj.get("post_to_slack_channels").isJsonNull()) { JsonArray jsonArraypostToSlackChannels = jsonObj.getAsJsonArray("post_to_slack_channels"); if (jsonArraypostToSlackChannels != null) { diff --git a/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParams.java b/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParams.java index 34c04638..a3feb178 100644 --- a/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParams.java @@ -50,7 +50,7 @@ /** * CreateIncidentPostmortemTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateIncidentPostmortemTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParamsTemplate.java b/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParamsTemplate.java index 2e2fa643..718e68e6 100644 --- a/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParamsTemplate.java +++ b/src/main/java/com/rootly/client/model/CreateIncidentPostmortemTaskParamsTemplate.java @@ -48,7 +48,7 @@ /** * Retrospective template to use */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateIncidentPostmortemTaskParamsTemplate { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateIncidentTaskParams.java b/src/main/java/com/rootly/client/model/CreateIncidentTaskParams.java index 22c0b42e..5ecc2769 100644 --- a/src/main/java/com/rootly/client/model/CreateIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateIncidentTaskParams.java @@ -51,7 +51,7 @@ /** * CreateIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateIncidentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParams.java b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParams.java index c4e124e7..b9186867 100644 --- a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParams.java @@ -53,7 +53,7 @@ /** * CreateJiraIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateJiraIssueTaskParams { /** * Gets or Sets taskType @@ -175,6 +175,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String updatePayload; + public static final String SERIALIZED_NAME_RETRY_COUNT = "retry_count"; + @SerializedName(SERIALIZED_NAME_RETRY_COUNT) + @jakarta.annotation.Nullable + private Integer retryCount = 0; + + public static final String SERIALIZED_NAME_RETRY_WAIT_TIME = "retry_wait_time"; + @SerializedName(SERIALIZED_NAME_RETRY_WAIT_TIME) + @jakarta.annotation.Nullable + private Integer retryWaitTime = 1; + public CreateJiraIssueTaskParams() { } @@ -444,6 +454,44 @@ public void setUpdatePayload(@jakarta.annotation.Nullable String updatePayload) } + public CreateJiraIssueTaskParams retryCount(@jakarta.annotation.Nullable Integer retryCount) { + this.retryCount = retryCount; + return this; + } + + /** + * Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. + * @return retryCount + */ + @jakarta.annotation.Nullable + public Integer getRetryCount() { + return retryCount; + } + + public void setRetryCount(@jakarta.annotation.Nullable Integer retryCount) { + this.retryCount = retryCount; + } + + + public CreateJiraIssueTaskParams retryWaitTime(@jakarta.annotation.Nullable Integer retryWaitTime) { + this.retryWaitTime = retryWaitTime; + return this; + } + + /** + * Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. + * @return retryWaitTime + */ + @jakarta.annotation.Nullable + public Integer getRetryWaitTime() { + return retryWaitTime; + } + + public void setRetryWaitTime(@jakarta.annotation.Nullable Integer retryWaitTime) { + this.retryWaitTime = retryWaitTime; + } + + @Override public boolean equals(Object o) { @@ -467,7 +515,9 @@ public boolean equals(Object o) { Objects.equals(this.priority, createJiraIssueTaskParams.priority) && Objects.equals(this.status, createJiraIssueTaskParams.status) && Objects.equals(this.customFieldsMapping, createJiraIssueTaskParams.customFieldsMapping) && - Objects.equals(this.updatePayload, createJiraIssueTaskParams.updatePayload); + Objects.equals(this.updatePayload, createJiraIssueTaskParams.updatePayload) && + Objects.equals(this.retryCount, createJiraIssueTaskParams.retryCount) && + Objects.equals(this.retryWaitTime, createJiraIssueTaskParams.retryWaitTime); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -476,7 +526,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(taskType, integration, title, description, labels, assignUserEmail, reporterUserEmail, projectKey, dueDate, issueType, priority, status, customFieldsMapping, updatePayload); + return Objects.hash(taskType, integration, title, description, labels, assignUserEmail, reporterUserEmail, projectKey, dueDate, issueType, priority, status, customFieldsMapping, updatePayload, retryCount, retryWaitTime); } private static int hashCodeNullable(JsonNullable a) { @@ -504,6 +554,8 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append(" updatePayload: ").append(toIndentedString(updatePayload)).append("\n"); + sb.append(" retryCount: ").append(toIndentedString(retryCount)).append("\n"); + sb.append(" retryWaitTime: ").append(toIndentedString(retryWaitTime)).append("\n"); sb.append("}"); return sb.toString(); } @@ -540,6 +592,8 @@ private String toIndentedString(Object o) { openapiFields.add("status"); openapiFields.add("custom_fields_mapping"); openapiFields.add("update_payload"); + openapiFields.add("retry_count"); + openapiFields.add("retry_wait_time"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIntegration.java b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIntegration.java index 3387f2b0..52b4d67b 100644 --- a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIntegration.java +++ b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIntegration.java @@ -48,7 +48,7 @@ /** * Specify integration id if you have more than one Jira instance */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateJiraIssueTaskParamsIntegration { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIssueType.java b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIssueType.java index c997eef0..8bda67ea 100644 --- a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIssueType.java +++ b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsIssueType.java @@ -48,7 +48,7 @@ /** * The issue type id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateJiraIssueTaskParamsIssueType { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsPriority.java b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsPriority.java index 2aedffd9..e7e5b52a 100644 --- a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsPriority.java +++ b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsPriority.java @@ -48,7 +48,7 @@ /** * The priority id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateJiraIssueTaskParamsPriority { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsStatus.java b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsStatus.java index d96bf39b..0a8c65d1 100644 --- a/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsStatus.java +++ b/src/main/java/com/rootly/client/model/CreateJiraIssueTaskParamsStatus.java @@ -48,7 +48,7 @@ /** * The status id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateJiraIssueTaskParamsStatus { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateJiraSubtaskTaskParams.java b/src/main/java/com/rootly/client/model/CreateJiraSubtaskTaskParams.java index 2397465d..8f594cd7 100644 --- a/src/main/java/com/rootly/client/model/CreateJiraSubtaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateJiraSubtaskTaskParams.java @@ -53,7 +53,7 @@ /** * CreateJiraSubtaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateJiraSubtaskTaskParams { /** * Gets or Sets taskType @@ -180,6 +180,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String updatePayload; + public static final String SERIALIZED_NAME_RETRY_COUNT = "retry_count"; + @SerializedName(SERIALIZED_NAME_RETRY_COUNT) + @jakarta.annotation.Nullable + private Integer retryCount = 0; + + public static final String SERIALIZED_NAME_RETRY_WAIT_TIME = "retry_wait_time"; + @SerializedName(SERIALIZED_NAME_RETRY_WAIT_TIME) + @jakarta.annotation.Nullable + private Integer retryWaitTime = 1; + public CreateJiraSubtaskTaskParams() { } @@ -468,6 +478,44 @@ public void setUpdatePayload(@jakarta.annotation.Nullable String updatePayload) } + public CreateJiraSubtaskTaskParams retryCount(@jakarta.annotation.Nullable Integer retryCount) { + this.retryCount = retryCount; + return this; + } + + /** + * Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. + * @return retryCount + */ + @jakarta.annotation.Nullable + public Integer getRetryCount() { + return retryCount; + } + + public void setRetryCount(@jakarta.annotation.Nullable Integer retryCount) { + this.retryCount = retryCount; + } + + + public CreateJiraSubtaskTaskParams retryWaitTime(@jakarta.annotation.Nullable Integer retryWaitTime) { + this.retryWaitTime = retryWaitTime; + return this; + } + + /** + * Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. + * @return retryWaitTime + */ + @jakarta.annotation.Nullable + public Integer getRetryWaitTime() { + return retryWaitTime; + } + + public void setRetryWaitTime(@jakarta.annotation.Nullable Integer retryWaitTime) { + this.retryWaitTime = retryWaitTime; + } + + @Override public boolean equals(Object o) { @@ -492,7 +540,9 @@ public boolean equals(Object o) { Objects.equals(this.priority, createJiraSubtaskTaskParams.priority) && Objects.equals(this.status, createJiraSubtaskTaskParams.status) && Objects.equals(this.customFieldsMapping, createJiraSubtaskTaskParams.customFieldsMapping) && - Objects.equals(this.updatePayload, createJiraSubtaskTaskParams.updatePayload); + Objects.equals(this.updatePayload, createJiraSubtaskTaskParams.updatePayload) && + Objects.equals(this.retryCount, createJiraSubtaskTaskParams.retryCount) && + Objects.equals(this.retryWaitTime, createJiraSubtaskTaskParams.retryWaitTime); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -501,7 +551,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(taskType, integration, projectKey, parentIssueId, title, description, subtaskIssueType, labels, dueDate, assignUserEmail, reporterUserEmail, priority, status, customFieldsMapping, updatePayload); + return Objects.hash(taskType, integration, projectKey, parentIssueId, title, description, subtaskIssueType, labels, dueDate, assignUserEmail, reporterUserEmail, priority, status, customFieldsMapping, updatePayload, retryCount, retryWaitTime); } private static int hashCodeNullable(JsonNullable a) { @@ -530,6 +580,8 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append(" updatePayload: ").append(toIndentedString(updatePayload)).append("\n"); + sb.append(" retryCount: ").append(toIndentedString(retryCount)).append("\n"); + sb.append(" retryWaitTime: ").append(toIndentedString(retryWaitTime)).append("\n"); sb.append("}"); return sb.toString(); } @@ -567,6 +619,8 @@ private String toIndentedString(Object o) { openapiFields.add("status"); openapiFields.add("custom_fields_mapping"); openapiFields.add("update_payload"); + openapiFields.add("retry_count"); + openapiFields.add("retry_wait_time"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/CreateJsmopsAlertTaskParams.java b/src/main/java/com/rootly/client/model/CreateJsmopsAlertTaskParams.java index 88d19294..399d33a3 100644 --- a/src/main/java/com/rootly/client/model/CreateJsmopsAlertTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateJsmopsAlertTaskParams.java @@ -52,7 +52,7 @@ /** * CreateJsmopsAlertTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateJsmopsAlertTaskParams { /** * Gets or Sets taskType @@ -106,37 +106,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TaskTypeEnum taskType; public static final String SERIALIZED_NAME_MESSAGE = "message"; @SerializedName(SERIALIZED_NAME_MESSAGE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String message; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_TEAMS = "teams"; @SerializedName(SERIALIZED_NAME_TEAMS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List teams = new ArrayList<>(); public static final String SERIALIZED_NAME_USERS = "users"; @SerializedName(SERIALIZED_NAME_USERS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List users = new ArrayList<>(); public static final String SERIALIZED_NAME_SCHEDULES = "schedules"; @SerializedName(SERIALIZED_NAME_SCHEDULES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List schedules = new ArrayList<>(); public static final String SERIALIZED_NAME_ESCALATIONS = "escalations"; @SerializedName(SERIALIZED_NAME_ESCALATIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List escalations = new ArrayList<>(); /** @@ -150,8 +150,6 @@ public enum PriorityEnum { P2("P2"), - P32("P3"), - P4("P4"), P5("P5"), @@ -203,18 +201,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PRIORITY = "priority"; @SerializedName(SERIALIZED_NAME_PRIORITY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private PriorityEnum priority = PriorityEnum.P3; public static final String SERIALIZED_NAME_DETAILS = "details"; @SerializedName(SERIALIZED_NAME_DETAILS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String details; public CreateJsmopsAlertTaskParams() { } - public CreateJsmopsAlertTaskParams taskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public CreateJsmopsAlertTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; return this; } @@ -223,17 +221,17 @@ public CreateJsmopsAlertTaskParams taskType(@javax.annotation.Nullable TaskTypeE * Get taskType * @return taskType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TaskTypeEnum getTaskType() { return taskType; } - public void setTaskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; } - public CreateJsmopsAlertTaskParams message(@javax.annotation.Nonnull String message) { + public CreateJsmopsAlertTaskParams message(@jakarta.annotation.Nonnull String message) { this.message = message; return this; } @@ -242,17 +240,17 @@ public CreateJsmopsAlertTaskParams message(@javax.annotation.Nonnull String mess * Message of the alert * @return message */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getMessage() { return message; } - public void setMessage(@javax.annotation.Nonnull String message) { + public void setMessage(@jakarta.annotation.Nonnull String message) { this.message = message; } - public CreateJsmopsAlertTaskParams description(@javax.annotation.Nullable String description) { + public CreateJsmopsAlertTaskParams description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -261,17 +259,17 @@ public CreateJsmopsAlertTaskParams description(@javax.annotation.Nullable String * Description field of the alert that is generally used to provide a detailed information about the alert * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public CreateJsmopsAlertTaskParams teams(@javax.annotation.Nullable List teams) { + public CreateJsmopsAlertTaskParams teams(@jakarta.annotation.Nullable List teams) { this.teams = teams; return this; } @@ -288,17 +286,17 @@ public CreateJsmopsAlertTaskParams addTeamsItem(AddActionItemTaskParamsPostToSla * Get teams * @return teams */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getTeams() { return teams; } - public void setTeams(@javax.annotation.Nullable List teams) { + public void setTeams(@jakarta.annotation.Nullable List teams) { this.teams = teams; } - public CreateJsmopsAlertTaskParams users(@javax.annotation.Nullable List users) { + public CreateJsmopsAlertTaskParams users(@jakarta.annotation.Nullable List users) { this.users = users; return this; } @@ -315,17 +313,17 @@ public CreateJsmopsAlertTaskParams addUsersItem(AddActionItemTaskParamsPostToSla * Get users * @return users */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getUsers() { return users; } - public void setUsers(@javax.annotation.Nullable List users) { + public void setUsers(@jakarta.annotation.Nullable List users) { this.users = users; } - public CreateJsmopsAlertTaskParams schedules(@javax.annotation.Nullable List schedules) { + public CreateJsmopsAlertTaskParams schedules(@jakarta.annotation.Nullable List schedules) { this.schedules = schedules; return this; } @@ -342,17 +340,17 @@ public CreateJsmopsAlertTaskParams addSchedulesItem(AddActionItemTaskParamsPostT * Get schedules * @return schedules */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getSchedules() { return schedules; } - public void setSchedules(@javax.annotation.Nullable List schedules) { + public void setSchedules(@jakarta.annotation.Nullable List schedules) { this.schedules = schedules; } - public CreateJsmopsAlertTaskParams escalations(@javax.annotation.Nullable List escalations) { + public CreateJsmopsAlertTaskParams escalations(@jakarta.annotation.Nullable List escalations) { this.escalations = escalations; return this; } @@ -369,17 +367,17 @@ public CreateJsmopsAlertTaskParams addEscalationsItem(AddActionItemTaskParamsPos * Get escalations * @return escalations */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getEscalations() { return escalations; } - public void setEscalations(@javax.annotation.Nullable List escalations) { + public void setEscalations(@jakarta.annotation.Nullable List escalations) { this.escalations = escalations; } - public CreateJsmopsAlertTaskParams priority(@javax.annotation.Nullable PriorityEnum priority) { + public CreateJsmopsAlertTaskParams priority(@jakarta.annotation.Nullable PriorityEnum priority) { this.priority = priority; return this; } @@ -388,17 +386,17 @@ public CreateJsmopsAlertTaskParams priority(@javax.annotation.Nullable PriorityE * Get priority * @return priority */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public PriorityEnum getPriority() { return priority; } - public void setPriority(@javax.annotation.Nullable PriorityEnum priority) { + public void setPriority(@jakarta.annotation.Nullable PriorityEnum priority) { this.priority = priority; } - public CreateJsmopsAlertTaskParams details(@javax.annotation.Nullable String details) { + public CreateJsmopsAlertTaskParams details(@jakarta.annotation.Nullable String details) { this.details = details; return this; } @@ -407,12 +405,12 @@ public CreateJsmopsAlertTaskParams details(@javax.annotation.Nullable String det * Details payload. Can contain liquid markup and need to be valid JSON * @return details */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDetails() { return details; } - public void setDetails(@javax.annotation.Nullable String details) { + public void setDetails(@jakarta.annotation.Nullable String details) { this.details = details; } diff --git a/src/main/java/com/rootly/client/model/CreateLinearIssueCommentTaskParams.java b/src/main/java/com/rootly/client/model/CreateLinearIssueCommentTaskParams.java index efd73f4c..724dd5a9 100644 --- a/src/main/java/com/rootly/client/model/CreateLinearIssueCommentTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateLinearIssueCommentTaskParams.java @@ -48,7 +48,7 @@ /** * CreateLinearIssueCommentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateLinearIssueCommentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParams.java b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParams.java index 1d0d3f4e..410244b3 100644 --- a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParams.java @@ -28,6 +28,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -55,7 +56,7 @@ /** * CreateLinearIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateLinearIssueTaskParams { /** * Gets or Sets taskType @@ -152,6 +153,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String assignUserEmail; + public static final String SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING = "custom_fields_mapping"; + @SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING) + @jakarta.annotation.Nullable + private String customFieldsMapping; + public CreateLinearIssueTaskParams() { } @@ -334,6 +340,25 @@ public void setAssignUserEmail(@jakarta.annotation.Nullable String assignUserEma } + public CreateLinearIssueTaskParams customFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + return this; + } + + /** + * Custom field mappings. Can contain liquid markup and need to be valid JSON + * @return customFieldsMapping + */ + @jakarta.annotation.Nullable + public String getCustomFieldsMapping() { + return customFieldsMapping; + } + + public void setCustomFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + } + + @Override public boolean equals(Object o) { @@ -352,12 +377,24 @@ public boolean equals(Object o) { Objects.equals(this.project, createLinearIssueTaskParams.project) && Objects.equals(this.labels, createLinearIssueTaskParams.labels) && Objects.equals(this.priority, createLinearIssueTaskParams.priority) && - Objects.equals(this.assignUserEmail, createLinearIssueTaskParams.assignUserEmail); + Objects.equals(this.assignUserEmail, createLinearIssueTaskParams.assignUserEmail) && + Objects.equals(this.customFieldsMapping, createLinearIssueTaskParams.customFieldsMapping); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(taskType, title, description, team, state, project, labels, priority, assignUserEmail); + return Objects.hash(taskType, title, description, team, state, project, labels, priority, assignUserEmail, customFieldsMapping); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -373,6 +410,7 @@ public String toString() { sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); sb.append(" assignUserEmail: ").append(toIndentedString(assignUserEmail)).append("\n"); + sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append("}"); return sb.toString(); } @@ -404,6 +442,7 @@ private String toIndentedString(Object o) { openapiFields.add("labels"); openapiFields.add("priority"); openapiFields.add("assign_user_email"); + openapiFields.add("custom_fields_mapping"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -482,6 +521,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("assign_user_email") != null && !jsonObj.get("assign_user_email").isJsonNull()) && !jsonObj.get("assign_user_email").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `assign_user_email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("assign_user_email").toString())); } + if ((jsonObj.get("custom_fields_mapping") != null && !jsonObj.get("custom_fields_mapping").isJsonNull()) && !jsonObj.get("custom_fields_mapping").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_fields_mapping` to be a primitive type in the JSON string but got `%s`", jsonObj.get("custom_fields_mapping").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsProject.java b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsProject.java index fc62c7e2..71ea581d 100644 --- a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsProject.java +++ b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsProject.java @@ -48,7 +48,7 @@ /** * The project id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateLinearIssueTaskParamsProject { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsState.java b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsState.java index db360bff..dbe9c72a 100644 --- a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsState.java +++ b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsState.java @@ -48,7 +48,7 @@ /** * The state id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateLinearIssueTaskParamsState { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsTeam.java b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsTeam.java index 42a55045..7cb3696e 100644 --- a/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsTeam.java +++ b/src/main/java/com/rootly/client/model/CreateLinearIssueTaskParamsTeam.java @@ -48,7 +48,7 @@ /** * The team id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateLinearIssueTaskParamsTeam { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParams.java b/src/main/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParams.java index dfdb1caf..71ba29b6 100644 --- a/src/main/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParams.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -53,7 +54,7 @@ /** * CreateLinearSubtaskIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateLinearSubtaskIssueTaskParams { /** * Gets or Sets taskType @@ -145,6 +146,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String assignUserEmail; + public static final String SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING = "custom_fields_mapping"; + @SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING) + @jakarta.annotation.Nullable + private String customFieldsMapping; + public CreateLinearSubtaskIssueTaskParams() { } @@ -308,6 +314,25 @@ public void setAssignUserEmail(@jakarta.annotation.Nullable String assignUserEma } + public CreateLinearSubtaskIssueTaskParams customFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + return this; + } + + /** + * Custom field mappings. Can contain liquid markup and need to be valid JSON + * @return customFieldsMapping + */ + @jakarta.annotation.Nullable + public String getCustomFieldsMapping() { + return customFieldsMapping; + } + + public void setCustomFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + } + + @Override public boolean equals(Object o) { @@ -325,12 +350,24 @@ public boolean equals(Object o) { Objects.equals(this.state, createLinearSubtaskIssueTaskParams.state) && Objects.equals(this.priority, createLinearSubtaskIssueTaskParams.priority) && Objects.equals(this.labels, createLinearSubtaskIssueTaskParams.labels) && - Objects.equals(this.assignUserEmail, createLinearSubtaskIssueTaskParams.assignUserEmail); + Objects.equals(this.assignUserEmail, createLinearSubtaskIssueTaskParams.assignUserEmail) && + Objects.equals(this.customFieldsMapping, createLinearSubtaskIssueTaskParams.customFieldsMapping); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(taskType, parentIssueId, title, description, state, priority, labels, assignUserEmail); + return Objects.hash(taskType, parentIssueId, title, description, state, priority, labels, assignUserEmail, customFieldsMapping); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -345,6 +382,7 @@ public String toString() { sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); sb.append(" assignUserEmail: ").append(toIndentedString(assignUserEmail)).append("\n"); + sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append("}"); return sb.toString(); } @@ -375,6 +413,7 @@ private String toIndentedString(Object o) { openapiFields.add("priority"); openapiFields.add("labels"); openapiFields.add("assign_user_email"); + openapiFields.add("custom_fields_mapping"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -450,6 +489,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("assign_user_email") != null && !jsonObj.get("assign_user_email").isJsonNull()) && !jsonObj.get("assign_user_email").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `assign_user_email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("assign_user_email").toString())); } + if ((jsonObj.get("custom_fields_mapping") != null && !jsonObj.get("custom_fields_mapping").isJsonNull()) && !jsonObj.get("custom_fields_mapping").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_fields_mapping` to be a primitive type in the JSON string but got `%s`", jsonObj.get("custom_fields_mapping").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChannelTaskParams.java b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChannelTaskParams.java index 64f4bb84..5a398eaa 100644 --- a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChannelTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChannelTaskParams.java @@ -49,7 +49,7 @@ /** * CreateMicrosoftTeamsChannelTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateMicrosoftTeamsChannelTaskParams { /** * Gets or Sets taskType @@ -108,7 +108,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TEAM = "team"; @SerializedName(SERIALIZED_NAME_TEAM) - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull private AddActionItemTaskParamsPostToSlackChannelsInner team; public static final String SERIALIZED_NAME_TITLE = "title"; @@ -202,7 +202,7 @@ public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { } - public CreateMicrosoftTeamsChannelTaskParams team(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner team) { + public CreateMicrosoftTeamsChannelTaskParams team(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner team) { this.team = team; return this; } @@ -211,12 +211,12 @@ public CreateMicrosoftTeamsChannelTaskParams team(@jakarta.annotation.Nullable A * Get team * @return team */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull public AddActionItemTaskParamsPostToSlackChannelsInner getTeam() { return team; } - public void setTeam(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner team) { + public void setTeam(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner team) { this.team = team; } @@ -339,6 +339,7 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("team"); openapiRequiredFields.add("title"); } @@ -377,10 +378,8 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); } - // validate the optional field `team` - if (jsonObj.get("team") != null && !jsonObj.get("team").isJsonNull()) { - AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("team")); - } + // validate the required field `team` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("team")); if (!jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } diff --git a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParams.java b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParams.java index 3584ee99..94ec90d1 100644 --- a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParams.java @@ -52,7 +52,7 @@ /** * CreateMicrosoftTeamsChatTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateMicrosoftTeamsChatTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParamsMembersInner.java b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParamsMembersInner.java index f80d14dc..86814167 100644 --- a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParamsMembersInner.java +++ b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsChatTaskParamsMembersInner.java @@ -48,7 +48,7 @@ /** * CreateMicrosoftTeamsChatTaskParamsMembersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateMicrosoftTeamsChatTaskParamsMembersInner { public static final String SERIALIZED_NAME_EMAIL = "email"; @SerializedName(SERIALIZED_NAME_EMAIL) diff --git a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParams.java b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParams.java index ba075ecc..6ffc5132 100644 --- a/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParams.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -51,7 +52,7 @@ /** * CreateMicrosoftTeamsMeetingTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateMicrosoftTeamsMeetingTaskParams { /** * Gets or Sets taskType @@ -123,6 +124,67 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean recordMeeting; + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + */ + @JsonAdapter(RecordingModeEnum.Adapter.class) + public enum RecordingModeEnum { + SPEAKER_VIEW("speaker_view"), + + GALLERY_VIEW("gallery_view"), + + GALLERY_VIEW_V2("gallery_view_v2"), + + AUDIO_ONLY("audio_only"); + + private String value; + + RecordingModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecordingModeEnum fromValue(String value) { + for (RecordingModeEnum b : RecordingModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecordingModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecordingModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecordingModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecordingModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_RECORDING_MODE = "recording_mode"; + @SerializedName(SERIALIZED_NAME_RECORDING_MODE) + @jakarta.annotation.Nullable + private RecordingModeEnum recordingMode; + public static final String SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE = "post_to_incident_timeline"; @SerializedName(SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE) @jakarta.annotation.Nullable @@ -212,6 +274,25 @@ public void setRecordMeeting(@jakarta.annotation.Nullable Boolean recordMeeting) } + public CreateMicrosoftTeamsMeetingTaskParams recordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + return this; + } + + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + * @return recordingMode + */ + @jakarta.annotation.Nullable + public RecordingModeEnum getRecordingMode() { + return recordingMode; + } + + public void setRecordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + } + + public CreateMicrosoftTeamsMeetingTaskParams postToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { this.postToIncidentTimeline = postToIncidentTimeline; return this; @@ -272,13 +353,25 @@ public boolean equals(Object o) { Objects.equals(this.name, createMicrosoftTeamsMeetingTaskParams.name) && Objects.equals(this.subject, createMicrosoftTeamsMeetingTaskParams.subject) && Objects.equals(this.recordMeeting, createMicrosoftTeamsMeetingTaskParams.recordMeeting) && + Objects.equals(this.recordingMode, createMicrosoftTeamsMeetingTaskParams.recordingMode) && Objects.equals(this.postToIncidentTimeline, createMicrosoftTeamsMeetingTaskParams.postToIncidentTimeline) && Objects.equals(this.postToSlackChannels, createMicrosoftTeamsMeetingTaskParams.postToSlackChannels); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(taskType, name, subject, recordMeeting, postToIncidentTimeline, postToSlackChannels); + return Objects.hash(taskType, name, subject, recordMeeting, recordingMode, postToIncidentTimeline, postToSlackChannels); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -289,6 +382,7 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" subject: ").append(toIndentedString(subject)).append("\n"); sb.append(" recordMeeting: ").append(toIndentedString(recordMeeting)).append("\n"); + sb.append(" recordingMode: ").append(toIndentedString(recordingMode)).append("\n"); sb.append(" postToIncidentTimeline: ").append(toIndentedString(postToIncidentTimeline)).append("\n"); sb.append(" postToSlackChannels: ").append(toIndentedString(postToSlackChannels)).append("\n"); sb.append("}"); @@ -317,6 +411,7 @@ private String toIndentedString(Object o) { openapiFields.add("name"); openapiFields.add("subject"); openapiFields.add("record_meeting"); + openapiFields.add("recording_mode"); openapiFields.add("post_to_incident_timeline"); openapiFields.add("post_to_slack_channels"); @@ -367,6 +462,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("subject").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `subject` to be a primitive type in the JSON string but got `%s`", jsonObj.get("subject").toString())); } + if ((jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) && !jsonObj.get("recording_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recording_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recording_mode").toString())); + } + // validate the optional field `recording_mode` + if (jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) { + RecordingModeEnum.validateJsonElement(jsonObj.get("recording_mode")); + } if (jsonObj.get("post_to_slack_channels") != null && !jsonObj.get("post_to_slack_channels").isJsonNull()) { JsonArray jsonArraypostToSlackChannels = jsonObj.getAsJsonArray("post_to_slack_channels"); if (jsonArraypostToSlackChannels != null) { diff --git a/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParams.java b/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParams.java index 60294ad5..9eaaf203 100644 --- a/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParams.java @@ -50,7 +50,7 @@ /** * CreateMistralChatCompletionTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateMistralChatCompletionTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParamsModel.java b/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParamsModel.java index 07921fd5..60eaa6a5 100644 --- a/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParamsModel.java +++ b/src/main/java/com/rootly/client/model/CreateMistralChatCompletionTaskParamsModel.java @@ -48,7 +48,7 @@ /** * The Mistral model. eg: mistral-large-latest */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateMistralChatCompletionTaskParamsModel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateMotionTaskTaskParams.java b/src/main/java/com/rootly/client/model/CreateMotionTaskTaskParams.java index e82c5218..5468dcc0 100644 --- a/src/main/java/com/rootly/client/model/CreateMotionTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateMotionTaskTaskParams.java @@ -22,9 +22,7 @@ import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -52,7 +50,7 @@ /** * CreateMotionTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateMotionTaskTaskParams { /** * Gets or Sets taskType @@ -137,7 +135,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_LABELS = "labels"; @SerializedName(SERIALIZED_NAME_LABELS) @jakarta.annotation.Nullable - private List labels = new ArrayList<>(); + private String labels; public static final String SERIALIZED_NAME_PRIORITY = "priority"; @SerializedName(SERIALIZED_NAME_PRIORITY) @@ -271,29 +269,21 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } - public CreateMotionTaskTaskParams labels(@jakarta.annotation.Nullable List labels) { + public CreateMotionTaskTaskParams labels(@jakarta.annotation.Nullable String labels) { this.labels = labels; return this; } - public CreateMotionTaskTaskParams addLabelsItem(String labelsItem) { - if (this.labels == null) { - this.labels = new ArrayList<>(); - } - this.labels.add(labelsItem); - return this; - } - /** - * Get labels + * The task labels * @return labels */ @jakarta.annotation.Nullable - public List getLabels() { + public String getLabels() { return labels; } - public void setLabels(@jakarta.annotation.Nullable List labels) { + public void setLabels(@jakarta.annotation.Nullable String labels) { this.labels = labels; } @@ -486,9 +476,8 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } - // ensure the optional json data is an array if present - if (jsonObj.get("labels") != null && !jsonObj.get("labels").isJsonNull() && !jsonObj.get("labels").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `labels` to be an array in the JSON string but got `%s`", jsonObj.get("labels").toString())); + if ((jsonObj.get("labels") != null && !jsonObj.get("labels").isJsonNull()) && !jsonObj.get("labels").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `labels` to be a primitive type in the JSON string but got `%s`", jsonObj.get("labels").toString())); } // validate the optional field `priority` if (jsonObj.get("priority") != null && !jsonObj.get("priority").isJsonNull()) { diff --git a/src/main/java/com/rootly/client/model/CreateNotionPageTaskParams.java b/src/main/java/com/rootly/client/model/CreateNotionPageTaskParams.java index 4dd07320..da0af834 100644 --- a/src/main/java/com/rootly/client/model/CreateNotionPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateNotionPageTaskParams.java @@ -49,7 +49,7 @@ /** * CreateNotionPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateNotionPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateNotionPageTaskParamsParentPage.java b/src/main/java/com/rootly/client/model/CreateNotionPageTaskParamsParentPage.java index 7609cc99..70eafb89 100644 --- a/src/main/java/com/rootly/client/model/CreateNotionPageTaskParamsParentPage.java +++ b/src/main/java/com/rootly/client/model/CreateNotionPageTaskParamsParentPage.java @@ -48,7 +48,7 @@ /** * The parent page id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateNotionPageTaskParamsParentPage { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParams.java b/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParams.java index bb5783be..c75b8f43 100644 --- a/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParams.java @@ -50,7 +50,7 @@ /** * CreateOpenaiChatCompletionTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateOpenaiChatCompletionTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParamsModel.java b/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParamsModel.java index 76bd61e5..411cee9c 100644 --- a/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParamsModel.java +++ b/src/main/java/com/rootly/client/model/CreateOpenaiChatCompletionTaskParamsModel.java @@ -46,9 +46,9 @@ import com.rootly.client.JSON; /** - * The OpenAI model. eg: gpt-4o-mini + * The OpenAI model. eg: gpt-5-nano */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateOpenaiChatCompletionTaskParamsModel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateOpsgenieAlertTaskParams.java b/src/main/java/com/rootly/client/model/CreateOpsgenieAlertTaskParams.java index 5f45fed2..f9321b66 100644 --- a/src/main/java/com/rootly/client/model/CreateOpsgenieAlertTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateOpsgenieAlertTaskParams.java @@ -52,7 +52,7 @@ /** * CreateOpsgenieAlertTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateOpsgenieAlertTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateOutlookEventTaskParams.java b/src/main/java/com/rootly/client/model/CreateOutlookEventTaskParams.java index 4895cd21..e1bcf552 100644 --- a/src/main/java/com/rootly/client/model/CreateOutlookEventTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateOutlookEventTaskParams.java @@ -52,7 +52,7 @@ /** * CreateOutlookEventTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateOutlookEventTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreatePagerdutyStatusUpdateTaskParams.java b/src/main/java/com/rootly/client/model/CreatePagerdutyStatusUpdateTaskParams.java index ef6227af..64d24e0e 100644 --- a/src/main/java/com/rootly/client/model/CreatePagerdutyStatusUpdateTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreatePagerdutyStatusUpdateTaskParams.java @@ -48,7 +48,7 @@ /** * CreatePagerdutyStatusUpdateTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreatePagerdutyStatusUpdateTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreatePagertreeAlertTaskParams.java b/src/main/java/com/rootly/client/model/CreatePagertreeAlertTaskParams.java index 65ce1838..211e348d 100644 --- a/src/main/java/com/rootly/client/model/CreatePagertreeAlertTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreatePagertreeAlertTaskParams.java @@ -51,7 +51,7 @@ /** * CreatePagertreeAlertTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreatePagertreeAlertTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateQuipPageTaskParams.java b/src/main/java/com/rootly/client/model/CreateQuipPageTaskParams.java index a5d571a8..6ec92ef4 100644 --- a/src/main/java/com/rootly/client/model/CreateQuipPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateQuipPageTaskParams.java @@ -48,7 +48,7 @@ /** * CreateQuipPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateQuipPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParams.java b/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParams.java index aa9813f4..b7890b6d 100644 --- a/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParams.java @@ -51,7 +51,7 @@ /** * CreateServiceNowIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateServiceNowIncidentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParamsCompletion.java b/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParamsCompletion.java index b92387d8..00338438 100644 --- a/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParamsCompletion.java +++ b/src/main/java/com/rootly/client/model/CreateServiceNowIncidentTaskParamsCompletion.java @@ -48,7 +48,7 @@ /** * The completion id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateServiceNowIncidentTaskParamsCompletion { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateSharepointPageTaskParams.java b/src/main/java/com/rootly/client/model/CreateSharepointPageTaskParams.java index dcfda4bc..83854ee2 100644 --- a/src/main/java/com/rootly/client/model/CreateSharepointPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateSharepointPageTaskParams.java @@ -49,7 +49,7 @@ /** * CreateSharepointPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateSharepointPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParams.java b/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParams.java index f1309b2a..41e2ac6f 100644 --- a/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParams.java @@ -19,566 +19,250 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.CreateShortcutStoryTaskParamsAnyOf; +import com.rootly.client.model.CreateShortcutStoryTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * CreateShortcutStoryTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class CreateShortcutStoryTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - CREATE_SHORTCUT_STORY("create_shortcut_story"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class CreateShortcutStoryTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(CreateShortcutStoryTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateShortcutStoryTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateShortcutStoryTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterCreateShortcutStoryTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(CreateShortcutStoryTaskParamsAnyOf.class)); + final TypeAdapter adapterCreateShortcutStoryTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(CreateShortcutStoryTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateShortcutStoryTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `CreateShortcutStoryTaskParamsAnyOf` + if (value.getActualInstance() instanceof CreateShortcutStoryTaskParamsAnyOf) { + JsonElement element = adapterCreateShortcutStoryTaskParamsAnyOf.toJsonTree((CreateShortcutStoryTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CreateShortcutStoryTaskParamsAnyOf1` + if (value.getActualInstance() instanceof CreateShortcutStoryTaskParamsAnyOf1) { + JsonElement element = adapterCreateShortcutStoryTaskParamsAnyOf1.toJsonTree((CreateShortcutStoryTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: CreateShortcutStoryTaskParamsAnyOf, CreateShortcutStoryTaskParamsAnyOf1"); + } + + @Override + public CreateShortcutStoryTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize CreateShortcutStoryTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + CreateShortcutStoryTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterCreateShortcutStoryTaskParamsAnyOf; + CreateShortcutStoryTaskParams ret = new CreateShortcutStoryTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for CreateShortcutStoryTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CreateShortcutStoryTaskParamsAnyOf'", e); + } + // deserialize CreateShortcutStoryTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + CreateShortcutStoryTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterCreateShortcutStoryTaskParamsAnyOf1; + CreateShortcutStoryTaskParams ret = new CreateShortcutStoryTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for CreateShortcutStoryTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CreateShortcutStoryTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for CreateShortcutStoryTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + public CreateShortcutStoryTaskParams() { + super("anyOf", Boolean.FALSE); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_TITLE = "title"; - @SerializedName(SERIALIZED_NAME_TITLE) - @jakarta.annotation.Nonnull - private String title; - - /** - * Gets or Sets kind - */ - @JsonAdapter(KindEnum.Adapter.class) - public enum KindEnum { - BUG("bug"), - - CHORE("chore"), - - FEATURE("feature"); - - private String value; - - KindEnum(String value) { - this.value = value; + public CreateShortcutStoryTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - public String getValue() { - return value; + static { + schemas.put("CreateShortcutStoryTaskParamsAnyOf", CreateShortcutStoryTaskParamsAnyOf.class); + schemas.put("CreateShortcutStoryTaskParamsAnyOf1", CreateShortcutStoryTaskParamsAnyOf1.class); } @Override - public String toString() { - return String.valueOf(value); + public Map> getSchemas() { + return CreateShortcutStoryTaskParams.schemas; } - public static KindEnum fromValue(String value) { - for (KindEnum b : KindEnum.values()) { - if (b.value.equals(value)) { - return b; + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * CreateShortcutStoryTaskParamsAnyOf, CreateShortcutStoryTaskParamsAnyOf1 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof CreateShortcutStoryTaskParamsAnyOf) { + super.setActualInstance(instance); + return; } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final KindEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + if (instance instanceof CreateShortcutStoryTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; + } - @Override - public KindEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return KindEnum.fromValue(value); - } + throw new RuntimeException("Invalid instance type. Must be CreateShortcutStoryTaskParamsAnyOf, CreateShortcutStoryTaskParamsAnyOf1"); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - KindEnum.fromValue(value); + /** + * Get the actual instance, which can be the following: + * CreateShortcutStoryTaskParamsAnyOf, CreateShortcutStoryTaskParamsAnyOf1 + * + * @return The actual instance (CreateShortcutStoryTaskParamsAnyOf, CreateShortcutStoryTaskParamsAnyOf1) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - } - - public static final String SERIALIZED_NAME_KIND = "kind"; - @SerializedName(SERIALIZED_NAME_KIND) - @jakarta.annotation.Nonnull - private KindEnum kind; - - public static final String SERIALIZED_NAME_DESCRIPTION = "description"; - @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @jakarta.annotation.Nullable - private String description; - - public static final String SERIALIZED_NAME_LABELS = "labels"; - @SerializedName(SERIALIZED_NAME_LABELS) - @jakarta.annotation.Nullable - private String labels; - - public static final String SERIALIZED_NAME_DUE_DATE = "due_date"; - @SerializedName(SERIALIZED_NAME_DUE_DATE) - @jakarta.annotation.Nullable - private String dueDate; - - public static final String SERIALIZED_NAME_ARCHIVATION = "archivation"; - @SerializedName(SERIALIZED_NAME_ARCHIVATION) - @jakarta.annotation.Nonnull - private Object archivation; - - public static final String SERIALIZED_NAME_GROUP = "group"; - @SerializedName(SERIALIZED_NAME_GROUP) - @jakarta.annotation.Nullable - private Object group; - - public static final String SERIALIZED_NAME_PROJECT = "project"; - @SerializedName(SERIALIZED_NAME_PROJECT) - @jakarta.annotation.Nullable - private Object project; - - public static final String SERIALIZED_NAME_WORKFLOW_STATE = "workflow_state"; - @SerializedName(SERIALIZED_NAME_WORKFLOW_STATE) - @jakarta.annotation.Nullable - private Object workflowState; - - public CreateShortcutStoryTaskParams() { - } - public CreateShortcutStoryTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public CreateShortcutStoryTaskParams title(@jakarta.annotation.Nonnull String title) { - this.title = title; - return this; - } - - /** - * The incident title - * @return title - */ - @jakarta.annotation.Nonnull - public String getTitle() { - return title; - } - - public void setTitle(@jakarta.annotation.Nonnull String title) { - this.title = title; - } - - - public CreateShortcutStoryTaskParams kind(@jakarta.annotation.Nonnull KindEnum kind) { - this.kind = kind; - return this; - } - - /** - * Get kind - * @return kind - */ - @jakarta.annotation.Nonnull - public KindEnum getKind() { - return kind; - } - - public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { - this.kind = kind; - } - - - public CreateShortcutStoryTaskParams description(@jakarta.annotation.Nullable String description) { - this.description = description; - return this; - } - - /** - * The incident description - * @return description - */ - @jakarta.annotation.Nullable - public String getDescription() { - return description; - } - - public void setDescription(@jakarta.annotation.Nullable String description) { - this.description = description; - } - - - public CreateShortcutStoryTaskParams labels(@jakarta.annotation.Nullable String labels) { - this.labels = labels; - return this; - } - - /** - * The story labels - * @return labels - */ - @jakarta.annotation.Nullable - public String getLabels() { - return labels; - } - - public void setLabels(@jakarta.annotation.Nullable String labels) { - this.labels = labels; - } - - - public CreateShortcutStoryTaskParams dueDate(@jakarta.annotation.Nullable String dueDate) { - this.dueDate = dueDate; - return this; - } - - /** - * The due date - * @return dueDate - */ - @jakarta.annotation.Nullable - public String getDueDate() { - return dueDate; - } - - public void setDueDate(@jakarta.annotation.Nullable String dueDate) { - this.dueDate = dueDate; - } - - - public CreateShortcutStoryTaskParams archivation(@jakarta.annotation.Nonnull Object archivation) { - this.archivation = archivation; - return this; - } - - /** - * The archivation id and display name - * @return archivation - */ - @jakarta.annotation.Nonnull - public Object getArchivation() { - return archivation; - } - - public void setArchivation(@jakarta.annotation.Nonnull Object archivation) { - this.archivation = archivation; - } - - - public CreateShortcutStoryTaskParams group(@jakarta.annotation.Nullable Object group) { - this.group = group; - return this; - } - - /** - * The group id and display name - * @return group - */ - @jakarta.annotation.Nullable - public Object getGroup() { - return group; - } - - public void setGroup(@jakarta.annotation.Nullable Object group) { - this.group = group; - } - - - public CreateShortcutStoryTaskParams project(@jakarta.annotation.Nullable Object project) { - this.project = project; - return this; - } - - /** - * The project id and display name - * @return project - */ - @jakarta.annotation.Nullable - public Object getProject() { - return project; - } - - public void setProject(@jakarta.annotation.Nullable Object project) { - this.project = project; - } - - - public CreateShortcutStoryTaskParams workflowState(@jakarta.annotation.Nullable Object workflowState) { - this.workflowState = workflowState; - return this; - } - - /** - * The workflow state id workflow state name - * @return workflowState - */ - @jakarta.annotation.Nullable - public Object getWorkflowState() { - return workflowState; - } - - public void setWorkflowState(@jakarta.annotation.Nullable Object workflowState) { - this.workflowState = workflowState; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; + /** + * Get the actual instance of `CreateShortcutStoryTaskParamsAnyOf`. If the actual instance is not `CreateShortcutStoryTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CreateShortcutStoryTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `CreateShortcutStoryTaskParamsAnyOf` + */ + public CreateShortcutStoryTaskParamsAnyOf getCreateShortcutStoryTaskParamsAnyOf() throws ClassCastException { + return (CreateShortcutStoryTaskParamsAnyOf)super.getActualInstance(); } - CreateShortcutStoryTaskParams createShortcutStoryTaskParams = (CreateShortcutStoryTaskParams) o; - return Objects.equals(this.taskType, createShortcutStoryTaskParams.taskType) && - Objects.equals(this.title, createShortcutStoryTaskParams.title) && - Objects.equals(this.kind, createShortcutStoryTaskParams.kind) && - Objects.equals(this.description, createShortcutStoryTaskParams.description) && - Objects.equals(this.labels, createShortcutStoryTaskParams.labels) && - Objects.equals(this.dueDate, createShortcutStoryTaskParams.dueDate) && - Objects.equals(this.archivation, createShortcutStoryTaskParams.archivation) && - Objects.equals(this.group, createShortcutStoryTaskParams.group) && - Objects.equals(this.project, createShortcutStoryTaskParams.project) && - Objects.equals(this.workflowState, createShortcutStoryTaskParams.workflowState); - } - @Override - public int hashCode() { - return Objects.hash(taskType, title, kind, description, labels, dueDate, archivation, group, project, workflowState); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class CreateShortcutStoryTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" title: ").append(toIndentedString(title)).append("\n"); - sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); - sb.append(" description: ").append(toIndentedString(description)).append("\n"); - sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); - sb.append(" dueDate: ").append(toIndentedString(dueDate)).append("\n"); - sb.append(" archivation: ").append(toIndentedString(archivation)).append("\n"); - sb.append(" group: ").append(toIndentedString(group)).append("\n"); - sb.append(" project: ").append(toIndentedString(project)).append("\n"); - sb.append(" workflowState: ").append(toIndentedString(workflowState)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + /** + * Get the actual instance of `CreateShortcutStoryTaskParamsAnyOf1`. If the actual instance is not `CreateShortcutStoryTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CreateShortcutStoryTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `CreateShortcutStoryTaskParamsAnyOf1` + */ + public CreateShortcutStoryTaskParamsAnyOf1 getCreateShortcutStoryTaskParamsAnyOf1() throws ClassCastException { + return (CreateShortcutStoryTaskParamsAnyOf1)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("title"); - openapiRequiredFields.add("kind"); - openapiRequiredFields.add("archivation"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to CreateShortcutStoryTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!CreateShortcutStoryTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in CreateShortcutStoryTaskParams is not found in the empty JSON string", CreateShortcutStoryTaskParams.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!CreateShortcutStoryTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreateShortcutStoryTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreateShortcutStoryTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with CreateShortcutStoryTaskParamsAnyOf + try { + CreateShortcutStoryTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for CreateShortcutStoryTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : CreateShortcutStoryTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + // validate the json string with CreateShortcutStoryTaskParamsAnyOf1 + try { + CreateShortcutStoryTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for CreateShortcutStoryTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if (!jsonObj.get("title").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); - } - if (!jsonObj.get("kind").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); - } - // validate the required field `kind` - KindEnum.validateJsonElement(jsonObj.get("kind")); - if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); - } - if ((jsonObj.get("labels") != null && !jsonObj.get("labels").isJsonNull()) && !jsonObj.get("labels").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `labels` to be a primitive type in the JSON string but got `%s`", jsonObj.get("labels").toString())); - } - if ((jsonObj.get("due_date") != null && !jsonObj.get("due_date").isJsonNull()) && !jsonObj.get("due_date").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `due_date` to be a primitive type in the JSON string but got `%s`", jsonObj.get("due_date").toString())); - } - // validate the required field `archivation` - // validate the optional field `group` - if (jsonObj.get("group") != null && !jsonObj.get("group").isJsonNull()) { - } - // validate the optional field `project` - if (jsonObj.get("project") != null && !jsonObj.get("project").isJsonNull()) { - } - // validate the optional field `workflow_state` - if (jsonObj.get("workflow_state") != null && !jsonObj.get("workflow_state").isJsonNull()) { - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!CreateShortcutStoryTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'CreateShortcutStoryTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(CreateShortcutStoryTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, CreateShortcutStoryTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public CreateShortcutStoryTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + throw new IOException(String.format("The JSON string is invalid for CreateShortcutStoryTaskParams with anyOf schemas: CreateShortcutStoryTaskParamsAnyOf, CreateShortcutStoryTaskParamsAnyOf1. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of CreateShortcutStoryTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of CreateShortcutStoryTaskParams - * @throws IOException if the JSON string is invalid with respect to CreateShortcutStoryTaskParams - */ - public static CreateShortcutStoryTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, CreateShortcutStoryTaskParams.class); - } + /** + * Create an instance of CreateShortcutStoryTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateShortcutStoryTaskParams + * @throws IOException if the JSON string is invalid with respect to CreateShortcutStoryTaskParams + */ + public static CreateShortcutStoryTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateShortcutStoryTaskParams.class); + } - /** - * Convert an instance of CreateShortcutStoryTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of CreateShortcutStoryTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf.java new file mode 100644 index 00000000..8cbce732 --- /dev/null +++ b/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * CreateShortcutStoryTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class CreateShortcutStoryTaskParamsAnyOf { + public static final String SERIALIZED_NAME_PROJECT = "project"; + @SerializedName(SERIALIZED_NAME_PROJECT) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner project; + + public CreateShortcutStoryTaskParamsAnyOf() { + } + + public CreateShortcutStoryTaskParamsAnyOf project(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner project) { + this.project = project; + return this; + } + + /** + * Get project + * @return project + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getProject() { + return project; + } + + public void setProject(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner project) { + this.project = project; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShortcutStoryTaskParamsAnyOf createShortcutStoryTaskParamsAnyOf = (CreateShortcutStoryTaskParamsAnyOf) o; + return Objects.equals(this.project, createShortcutStoryTaskParamsAnyOf.project); + } + + @Override + public int hashCode() { + return Objects.hash(project); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateShortcutStoryTaskParamsAnyOf {\n"); + sb.append(" project: ").append(toIndentedString(project)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("project"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("project"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreateShortcutStoryTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreateShortcutStoryTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreateShortcutStoryTaskParamsAnyOf is not found in the empty JSON string", CreateShortcutStoryTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreateShortcutStoryTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreateShortcutStoryTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : CreateShortcutStoryTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `project` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("project")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateShortcutStoryTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateShortcutStoryTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreateShortcutStoryTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateShortcutStoryTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreateShortcutStoryTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreateShortcutStoryTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateShortcutStoryTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to CreateShortcutStoryTaskParamsAnyOf + */ + public static CreateShortcutStoryTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateShortcutStoryTaskParamsAnyOf.class); + } + + /** + * Convert an instance of CreateShortcutStoryTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1.java b/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1.java new file mode 100644 index 00000000..025836b5 --- /dev/null +++ b/src/main/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * CreateShortcutStoryTaskParamsAnyOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class CreateShortcutStoryTaskParamsAnyOf1 { + public static final String SERIALIZED_NAME_WORKFLOW_STATE = "workflow_state"; + @SerializedName(SERIALIZED_NAME_WORKFLOW_STATE) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner workflowState; + + public CreateShortcutStoryTaskParamsAnyOf1() { + } + + public CreateShortcutStoryTaskParamsAnyOf1 workflowState(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner workflowState) { + this.workflowState = workflowState; + return this; + } + + /** + * Get workflowState + * @return workflowState + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getWorkflowState() { + return workflowState; + } + + public void setWorkflowState(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner workflowState) { + this.workflowState = workflowState; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CreateShortcutStoryTaskParamsAnyOf1 createShortcutStoryTaskParamsAnyOf1 = (CreateShortcutStoryTaskParamsAnyOf1) o; + return Objects.equals(this.workflowState, createShortcutStoryTaskParamsAnyOf1.workflowState); + } + + @Override + public int hashCode() { + return Objects.hash(workflowState); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CreateShortcutStoryTaskParamsAnyOf1 {\n"); + sb.append(" workflowState: ").append(toIndentedString(workflowState)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("workflow_state"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("workflow_state"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CreateShortcutStoryTaskParamsAnyOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CreateShortcutStoryTaskParamsAnyOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in CreateShortcutStoryTaskParamsAnyOf1 is not found in the empty JSON string", CreateShortcutStoryTaskParamsAnyOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CreateShortcutStoryTaskParamsAnyOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `CreateShortcutStoryTaskParamsAnyOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : CreateShortcutStoryTaskParamsAnyOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `workflow_state` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("workflow_state")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateShortcutStoryTaskParamsAnyOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateShortcutStoryTaskParamsAnyOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CreateShortcutStoryTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateShortcutStoryTaskParamsAnyOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CreateShortcutStoryTaskParamsAnyOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of CreateShortcutStoryTaskParamsAnyOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateShortcutStoryTaskParamsAnyOf1 + * @throws IOException if the JSON string is invalid with respect to CreateShortcutStoryTaskParamsAnyOf1 + */ + public static CreateShortcutStoryTaskParamsAnyOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateShortcutStoryTaskParamsAnyOf1.class); + } + + /** + * Convert an instance of CreateShortcutStoryTaskParamsAnyOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/CreateShortcutTaskTaskParams.java b/src/main/java/com/rootly/client/model/CreateShortcutTaskTaskParams.java index bcfd626a..6137d423 100644 --- a/src/main/java/com/rootly/client/model/CreateShortcutTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateShortcutTaskTaskParams.java @@ -49,7 +49,7 @@ /** * CreateShortcutTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateShortcutTaskTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateSlackChannelTaskParams.java b/src/main/java/com/rootly/client/model/CreateSlackChannelTaskParams.java index 6ab507f5..4404160e 100644 --- a/src/main/java/com/rootly/client/model/CreateSlackChannelTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateSlackChannelTaskParams.java @@ -49,7 +49,7 @@ /** * CreateSlackChannelTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateSlackChannelTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateSubIncidentTaskParams.java b/src/main/java/com/rootly/client/model/CreateSubIncidentTaskParams.java index 2e26010e..2a765852 100644 --- a/src/main/java/com/rootly/client/model/CreateSubIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateSubIncidentTaskParams.java @@ -48,7 +48,7 @@ /** * CreateSubIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateSubIncidentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParams.java b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParams.java index ac201b26..c747596f 100644 --- a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParams.java @@ -54,7 +54,7 @@ /** * CreateTrelloCardTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateTrelloCardTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsArchivation.java b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsArchivation.java index 1560c485..62d9f178 100644 --- a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsArchivation.java +++ b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsArchivation.java @@ -48,7 +48,7 @@ /** * The archivation id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateTrelloCardTaskParamsArchivation { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsBoard.java b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsBoard.java index 765cce4d..58de6311 100644 --- a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsBoard.java +++ b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsBoard.java @@ -48,7 +48,7 @@ /** * The board id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateTrelloCardTaskParamsBoard { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsList.java b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsList.java index 770cbdfa..f9a77679 100644 --- a/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsList.java +++ b/src/main/java/com/rootly/client/model/CreateTrelloCardTaskParamsList.java @@ -48,7 +48,7 @@ /** * The list id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateTrelloCardTaskParamsList { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParams.java b/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParams.java index bfe2747e..0464226a 100644 --- a/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParams.java @@ -49,7 +49,7 @@ /** * CreateWatsonxChatCompletionTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateWatsonxChatCompletionTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParamsModel.java b/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParamsModel.java index 4f3fd0a0..49f03e03 100644 --- a/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParamsModel.java +++ b/src/main/java/com/rootly/client/model/CreateWatsonxChatCompletionTaskParamsModel.java @@ -48,7 +48,7 @@ /** * The WatsonX model. eg: ibm/granite-3-b8b-instruct */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateWatsonxChatCompletionTaskParamsModel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CreateWebexMeetingTaskParams.java b/src/main/java/com/rootly/client/model/CreateWebexMeetingTaskParams.java index ded07a3d..30449a2c 100644 --- a/src/main/java/com/rootly/client/model/CreateWebexMeetingTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateWebexMeetingTaskParams.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -51,7 +52,7 @@ /** * CreateWebexMeetingTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateWebexMeetingTaskParams { /** * Gets or Sets taskType @@ -123,6 +124,67 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean recordMeeting; + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + */ + @JsonAdapter(RecordingModeEnum.Adapter.class) + public enum RecordingModeEnum { + SPEAKER_VIEW("speaker_view"), + + GALLERY_VIEW("gallery_view"), + + GALLERY_VIEW_V2("gallery_view_v2"), + + AUDIO_ONLY("audio_only"); + + private String value; + + RecordingModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecordingModeEnum fromValue(String value) { + for (RecordingModeEnum b : RecordingModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecordingModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecordingModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecordingModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecordingModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_RECORDING_MODE = "recording_mode"; + @SerializedName(SERIALIZED_NAME_RECORDING_MODE) + @jakarta.annotation.Nullable + private RecordingModeEnum recordingMode; + public static final String SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE = "post_to_incident_timeline"; @SerializedName(SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE) @jakarta.annotation.Nullable @@ -212,6 +274,25 @@ public void setRecordMeeting(@jakarta.annotation.Nullable Boolean recordMeeting) } + public CreateWebexMeetingTaskParams recordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + return this; + } + + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + * @return recordingMode + */ + @jakarta.annotation.Nullable + public RecordingModeEnum getRecordingMode() { + return recordingMode; + } + + public void setRecordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + } + + public CreateWebexMeetingTaskParams postToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { this.postToIncidentTimeline = postToIncidentTimeline; return this; @@ -272,13 +353,25 @@ public boolean equals(Object o) { Objects.equals(this.topic, createWebexMeetingTaskParams.topic) && Objects.equals(this.password, createWebexMeetingTaskParams.password) && Objects.equals(this.recordMeeting, createWebexMeetingTaskParams.recordMeeting) && + Objects.equals(this.recordingMode, createWebexMeetingTaskParams.recordingMode) && Objects.equals(this.postToIncidentTimeline, createWebexMeetingTaskParams.postToIncidentTimeline) && Objects.equals(this.postToSlackChannels, createWebexMeetingTaskParams.postToSlackChannels); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(taskType, topic, password, recordMeeting, postToIncidentTimeline, postToSlackChannels); + return Objects.hash(taskType, topic, password, recordMeeting, recordingMode, postToIncidentTimeline, postToSlackChannels); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -289,6 +382,7 @@ public String toString() { sb.append(" topic: ").append(toIndentedString(topic)).append("\n"); sb.append(" password: ").append(toIndentedString(password)).append("\n"); sb.append(" recordMeeting: ").append(toIndentedString(recordMeeting)).append("\n"); + sb.append(" recordingMode: ").append(toIndentedString(recordingMode)).append("\n"); sb.append(" postToIncidentTimeline: ").append(toIndentedString(postToIncidentTimeline)).append("\n"); sb.append(" postToSlackChannels: ").append(toIndentedString(postToSlackChannels)).append("\n"); sb.append("}"); @@ -317,6 +411,7 @@ private String toIndentedString(Object o) { openapiFields.add("topic"); openapiFields.add("password"); openapiFields.add("record_meeting"); + openapiFields.add("recording_mode"); openapiFields.add("post_to_incident_timeline"); openapiFields.add("post_to_slack_channels"); @@ -366,6 +461,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("password") != null && !jsonObj.get("password").isJsonNull()) && !jsonObj.get("password").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("password").toString())); } + if ((jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) && !jsonObj.get("recording_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recording_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recording_mode").toString())); + } + // validate the optional field `recording_mode` + if (jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) { + RecordingModeEnum.validateJsonElement(jsonObj.get("recording_mode")); + } if (jsonObj.get("post_to_slack_channels") != null && !jsonObj.get("post_to_slack_channels").isJsonNull()) { JsonArray jsonArraypostToSlackChannels = jsonObj.getAsJsonArray("post_to_slack_channels"); if (jsonArraypostToSlackChannels != null) { diff --git a/src/main/java/com/rootly/client/model/CreateZendeskJiraLinkTaskParams.java b/src/main/java/com/rootly/client/model/CreateZendeskJiraLinkTaskParams.java index 9ef21ede..47e2d75d 100644 --- a/src/main/java/com/rootly/client/model/CreateZendeskJiraLinkTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateZendeskJiraLinkTaskParams.java @@ -48,7 +48,7 @@ /** * CreateZendeskJiraLinkTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateZendeskJiraLinkTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateZendeskTicketTaskParams.java b/src/main/java/com/rootly/client/model/CreateZendeskTicketTaskParams.java index 52f05855..0b376adb 100644 --- a/src/main/java/com/rootly/client/model/CreateZendeskTicketTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateZendeskTicketTaskParams.java @@ -51,7 +51,7 @@ /** * CreateZendeskTicketTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateZendeskTicketTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/CreateZoomMeetingTaskParams.java b/src/main/java/com/rootly/client/model/CreateZoomMeetingTaskParams.java index e88b913c..f4ecd9e1 100644 --- a/src/main/java/com/rootly/client/model/CreateZoomMeetingTaskParams.java +++ b/src/main/java/com/rootly/client/model/CreateZoomMeetingTaskParams.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -51,7 +52,7 @@ /** * CreateZoomMeetingTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CreateZoomMeetingTaskParams { /** * Gets or Sets taskType @@ -192,6 +193,72 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean recordMeeting; + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + */ + @JsonAdapter(RecordingModeEnum.Adapter.class) + public enum RecordingModeEnum { + SPEAKER_VIEW("speaker_view"), + + GALLERY_VIEW("gallery_view"), + + GALLERY_VIEW_V2("gallery_view_v2"), + + AUDIO_ONLY("audio_only"); + + private String value; + + RecordingModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RecordingModeEnum fromValue(String value) { + for (RecordingModeEnum b : RecordingModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RecordingModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RecordingModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RecordingModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RecordingModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_RECORDING_MODE = "recording_mode"; + @SerializedName(SERIALIZED_NAME_RECORDING_MODE) + @jakarta.annotation.Nullable + private RecordingModeEnum recordingMode; + + public static final String SERIALIZED_NAME_ENABLE_ZOOM_BOT_AUTO_JOIN = "enable_zoom_bot_auto_join"; + @SerializedName(SERIALIZED_NAME_ENABLE_ZOOM_BOT_AUTO_JOIN) + @jakarta.annotation.Nullable + private Boolean enableZoomBotAutoJoin; + public static final String SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE = "post_to_incident_timeline"; @SerializedName(SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE) @jakarta.annotation.Nullable @@ -346,6 +413,44 @@ public void setRecordMeeting(@jakarta.annotation.Nullable Boolean recordMeeting) } + public CreateZoomMeetingTaskParams recordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + return this; + } + + /** + * The video layout for the bot's recording (e.g. speaker_view, gallery_view, gallery_view_v2, audio_only) + * @return recordingMode + */ + @jakarta.annotation.Nullable + public RecordingModeEnum getRecordingMode() { + return recordingMode; + } + + public void setRecordingMode(@jakarta.annotation.Nullable RecordingModeEnum recordingMode) { + this.recordingMode = recordingMode; + } + + + public CreateZoomMeetingTaskParams enableZoomBotAutoJoin(@jakarta.annotation.Nullable Boolean enableZoomBotAutoJoin) { + this.enableZoomBotAutoJoin = enableZoomBotAutoJoin; + return this; + } + + /** + * Allow the Rootly bot to start recording without waiting for host approval + * @return enableZoomBotAutoJoin + */ + @jakarta.annotation.Nullable + public Boolean getEnableZoomBotAutoJoin() { + return enableZoomBotAutoJoin; + } + + public void setEnableZoomBotAutoJoin(@jakarta.annotation.Nullable Boolean enableZoomBotAutoJoin) { + this.enableZoomBotAutoJoin = enableZoomBotAutoJoin; + } + + public CreateZoomMeetingTaskParams postToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { this.postToIncidentTimeline = postToIncidentTimeline; return this; @@ -409,13 +514,26 @@ public boolean equals(Object o) { Objects.equals(this.alternativeHosts, createZoomMeetingTaskParams.alternativeHosts) && Objects.equals(this.autoRecording, createZoomMeetingTaskParams.autoRecording) && Objects.equals(this.recordMeeting, createZoomMeetingTaskParams.recordMeeting) && + Objects.equals(this.recordingMode, createZoomMeetingTaskParams.recordingMode) && + Objects.equals(this.enableZoomBotAutoJoin, createZoomMeetingTaskParams.enableZoomBotAutoJoin) && Objects.equals(this.postToIncidentTimeline, createZoomMeetingTaskParams.postToIncidentTimeline) && Objects.equals(this.postToSlackChannels, createZoomMeetingTaskParams.postToSlackChannels); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(taskType, topic, password, createAsEmail, alternativeHosts, autoRecording, recordMeeting, postToIncidentTimeline, postToSlackChannels); + return Objects.hash(taskType, topic, password, createAsEmail, alternativeHosts, autoRecording, recordMeeting, recordingMode, enableZoomBotAutoJoin, postToIncidentTimeline, postToSlackChannels); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -429,6 +547,8 @@ public String toString() { sb.append(" alternativeHosts: ").append(toIndentedString(alternativeHosts)).append("\n"); sb.append(" autoRecording: ").append(toIndentedString(autoRecording)).append("\n"); sb.append(" recordMeeting: ").append(toIndentedString(recordMeeting)).append("\n"); + sb.append(" recordingMode: ").append(toIndentedString(recordingMode)).append("\n"); + sb.append(" enableZoomBotAutoJoin: ").append(toIndentedString(enableZoomBotAutoJoin)).append("\n"); sb.append(" postToIncidentTimeline: ").append(toIndentedString(postToIncidentTimeline)).append("\n"); sb.append(" postToSlackChannels: ").append(toIndentedString(postToSlackChannels)).append("\n"); sb.append("}"); @@ -460,6 +580,8 @@ private String toIndentedString(Object o) { openapiFields.add("alternative_hosts"); openapiFields.add("auto_recording"); openapiFields.add("record_meeting"); + openapiFields.add("recording_mode"); + openapiFields.add("enable_zoom_bot_auto_join"); openapiFields.add("post_to_incident_timeline"); openapiFields.add("post_to_slack_channels"); @@ -523,6 +645,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("auto_recording") != null && !jsonObj.get("auto_recording").isJsonNull()) { AutoRecordingEnum.validateJsonElement(jsonObj.get("auto_recording")); } + if ((jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) && !jsonObj.get("recording_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recording_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recording_mode").toString())); + } + // validate the optional field `recording_mode` + if (jsonObj.get("recording_mode") != null && !jsonObj.get("recording_mode").isJsonNull()) { + RecordingModeEnum.validateJsonElement(jsonObj.get("recording_mode")); + } if (jsonObj.get("post_to_slack_channels") != null && !jsonObj.get("post_to_slack_channels").isJsonNull()) { JsonArray jsonArraypostToSlackChannels = jsonObj.getAsJsonArray("post_to_slack_channels"); if (jsonArraypostToSlackChannels != null) { diff --git a/src/main/java/com/rootly/client/model/CustomField.java b/src/main/java/com/rootly/client/model/CustomField.java index e69e19a1..0eee6684 100644 --- a/src/main/java/com/rootly/client/model/CustomField.java +++ b/src/main/java/com/rootly/client/model/CustomField.java @@ -20,10 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; -import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -51,124 +48,18 @@ /** * CustomField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomField { - public static final String SERIALIZED_NAME_LABEL = "label"; - @SerializedName(SERIALIZED_NAME_LABEL) - @jakarta.annotation.Nonnull - private String label; - - public static final String SERIALIZED_NAME_KIND = "kind"; - @SerializedName(SERIALIZED_NAME_KIND) - @jakarta.annotation.Nullable - private String kind; - - public static final String SERIALIZED_NAME_ENABLED = "enabled"; - @SerializedName(SERIALIZED_NAME_ENABLED) - @jakarta.annotation.Nullable - private Boolean enabled; - - public static final String SERIALIZED_NAME_SLUG = "slug"; - @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull - private String slug; - - public static final String SERIALIZED_NAME_DESCRIPTION = "description"; - @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @jakarta.annotation.Nullable - private String description; - - /** - * Where the custom_field is shown - */ - @JsonAdapter(ShownEnum.Adapter.class) - public enum ShownEnum { - INCIDENT_FORM("incident_form"), - - INCIDENT_MITIGATION_FORM("incident_mitigation_form"), - - INCIDENT_RESOLUTION_FORM("incident_resolution_form"), - - INCIDENT_POST_MORTEM_FORM("incident_post_mortem_form"), - - INCIDENT_SLACK_FORM("incident_slack_form"), - - INCIDENT_MITIGATION_SLACK_FORM("incident_mitigation_slack_form"), - - INCIDENT_RESOLUTION_SLACK_FORM("incident_resolution_slack_form"), - - INCIDENT_POST_MORTEM("incident_post_mortem"); - - private String value; - - ShownEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static ShownEnum fromValue(String value) { - for (ShownEnum b : ShownEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final ShownEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public ShownEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return ShownEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - ShownEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_SHOWN = "shown"; - @SerializedName(SERIALIZED_NAME_SHOWN) - @jakarta.annotation.Nonnull - private List shown = new ArrayList<>(); - /** - * Where the custom_field is required + * Gets or Sets fieldSource */ - @JsonAdapter(RequiredEnum.Adapter.class) - public enum RequiredEnum { - INCIDENT_FORM("incident_form"), - - INCIDENT_MITIGATION_FORM("incident_mitigation_form"), - - INCIDENT_RESOLUTION_FORM("incident_resolution_form"), - - INCIDENT_POST_MORTEM_FORM("incident_post_mortem_form"), - - INCIDENT_SLACK_FORM("incident_slack_form"), - - INCIDENT_MITIGATION_SLACK_FORM("incident_mitigation_slack_form"), - - INCIDENT_RESOLUTION_SLACK_FORM("incident_resolution_slack_form"); + @JsonAdapter(FieldSourceEnum.Adapter.class) + public enum FieldSourceEnum { + CUSTOM("custom"); private String value; - RequiredEnum(String value) { + FieldSourceEnum(String value) { this.value = value; } @@ -181,8 +72,8 @@ public String toString() { return String.valueOf(value); } - public static RequiredEnum fromValue(String value) { - for (RequiredEnum b : RequiredEnum.values()) { + public static FieldSourceEnum fromValue(String value) { + for (FieldSourceEnum b : FieldSourceEnum.values()) { if (b.value.equals(value)) { return b; } @@ -190,275 +81,97 @@ public static RequiredEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final RequiredEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final FieldSourceEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public RequiredEnum read(final JsonReader jsonReader) throws IOException { + public FieldSourceEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return RequiredEnum.fromValue(value); + return FieldSourceEnum.fromValue(value); } } public static void validateJsonElement(JsonElement jsonElement) throws IOException { String value = jsonElement.getAsString(); - RequiredEnum.fromValue(value); + FieldSourceEnum.fromValue(value); } } - public static final String SERIALIZED_NAME_REQUIRED = "required"; - @SerializedName(SERIALIZED_NAME_REQUIRED) - @jakarta.annotation.Nullable - private List required; - - public static final String SERIALIZED_NAME_DEFAULT = "default"; - @SerializedName(SERIALIZED_NAME_DEFAULT) - @jakarta.annotation.Nullable - private String _default; - - public static final String SERIALIZED_NAME_POSITION = "position"; - @SerializedName(SERIALIZED_NAME_POSITION) - @jakarta.annotation.Nonnull - private Integer position; - - public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; - @SerializedName(SERIALIZED_NAME_CREATED_AT) + public static final String SERIALIZED_NAME_FIELD_SOURCE = "field_source"; + @SerializedName(SERIALIZED_NAME_FIELD_SOURCE) @jakarta.annotation.Nonnull - private String createdAt; + private FieldSourceEnum fieldSource; - public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; - @SerializedName(SERIALIZED_NAME_UPDATED_AT) + public static final String SERIALIZED_NAME_CATALOG_PROPERTY_ID = "catalog_property_id"; + @SerializedName(SERIALIZED_NAME_CATALOG_PROPERTY_ID) @jakarta.annotation.Nonnull - private String updatedAt; - - public CustomField() { - } - - public CustomField label(@jakarta.annotation.Nonnull String label) { - this.label = label; - return this; - } - - /** - * The name of the custom_field - * @return label - */ - @jakarta.annotation.Nonnull - public String getLabel() { - return label; - } - - public void setLabel(@jakarta.annotation.Nonnull String label) { - this.label = label; - } - - - public CustomField kind(@jakarta.annotation.Nullable String kind) { - this.kind = kind; - return this; - } - - /** - * The kind of the custom_field - * @return kind - */ - @jakarta.annotation.Nullable - public String getKind() { - return kind; - } - - public void setKind(@jakarta.annotation.Nullable String kind) { - this.kind = kind; - } - + private String catalogPropertyId; - public CustomField enabled(@jakarta.annotation.Nullable Boolean enabled) { - this.enabled = enabled; - return this; - } - - /** - * Whether the custom_field is enabled - * @return enabled - */ + public static final String SERIALIZED_NAME_FIELD_KEY = "field_key"; + @SerializedName(SERIALIZED_NAME_FIELD_KEY) @jakarta.annotation.Nullable - public Boolean getEnabled() { - return enabled; - } + private String fieldKey; - public void setEnabled(@jakarta.annotation.Nullable Boolean enabled) { - this.enabled = enabled; + public CustomField() { } - - public CustomField slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; + public CustomField fieldSource(@jakarta.annotation.Nonnull FieldSourceEnum fieldSource) { + this.fieldSource = fieldSource; return this; } /** - * The slug of the custom_field - * @return slug + * Get fieldSource + * @return fieldSource */ @jakarta.annotation.Nonnull - public String getSlug() { - return slug; + public FieldSourceEnum getFieldSource() { + return fieldSource; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; + public void setFieldSource(@jakarta.annotation.Nonnull FieldSourceEnum fieldSource) { + this.fieldSource = fieldSource; } - public CustomField description(@jakarta.annotation.Nullable String description) { - this.description = description; + public CustomField catalogPropertyId(@jakarta.annotation.Nonnull String catalogPropertyId) { + this.catalogPropertyId = catalogPropertyId; return this; } /** - * The description of the custom_field - * @return description - */ - @jakarta.annotation.Nullable - public String getDescription() { - return description; - } - - public void setDescription(@jakarta.annotation.Nullable String description) { - this.description = description; - } - - - public CustomField shown(@jakarta.annotation.Nonnull List shown) { - this.shown = shown; - return this; - } - - public CustomField addShownItem(ShownEnum shownItem) { - if (this.shown == null) { - this.shown = new ArrayList<>(); - } - this.shown.add(shownItem); - return this; - } - - /** - * Get shown - * @return shown + * ID of the catalog property + * @return catalogPropertyId */ @jakarta.annotation.Nonnull - public List getShown() { - return shown; - } - - public void setShown(@jakarta.annotation.Nonnull List shown) { - this.shown = shown; - } - - - public CustomField required(@jakarta.annotation.Nullable List required) { - this.required = required; - return this; - } - - public CustomField addRequiredItem(RequiredEnum requiredItem) { - if (this.required == null) { - this.required = new ArrayList<>(); - } - this.required.add(requiredItem); - return this; - } - - /** - * Get required - * @return required - */ - @jakarta.annotation.Nullable - public List getRequired() { - return required; + public String getCatalogPropertyId() { + return catalogPropertyId; } - public void setRequired(@jakarta.annotation.Nullable List required) { - this.required = required; + public void setCatalogPropertyId(@jakarta.annotation.Nonnull String catalogPropertyId) { + this.catalogPropertyId = catalogPropertyId; } - public CustomField _default(@jakarta.annotation.Nullable String _default) { - this._default = _default; + public CustomField fieldKey(@jakarta.annotation.Nullable String fieldKey) { + this.fieldKey = fieldKey; return this; } /** - * The default value for text field kinds - * @return _default + * Ignored for custom fields (auto-derived from catalog property) + * @return fieldKey */ @jakarta.annotation.Nullable - public String getDefault() { - return _default; - } - - public void setDefault(@jakarta.annotation.Nullable String _default) { - this._default = _default; - } - - - public CustomField position(@jakarta.annotation.Nonnull Integer position) { - this.position = position; - return this; + public String getFieldKey() { + return fieldKey; } - /** - * The position of the custom_field - * @return position - */ - @jakarta.annotation.Nonnull - public Integer getPosition() { - return position; - } - - public void setPosition(@jakarta.annotation.Nonnull Integer position) { - this.position = position; - } - - - public CustomField createdAt(@jakarta.annotation.Nonnull String createdAt) { - this.createdAt = createdAt; - return this; - } - - /** - * Date of creation - * @return createdAt - */ - @jakarta.annotation.Nonnull - public String getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { - this.createdAt = createdAt; - } - - - public CustomField updatedAt(@jakarta.annotation.Nonnull String updatedAt) { - this.updatedAt = updatedAt; - return this; - } - - /** - * Date of last update - * @return updatedAt - */ - @jakarta.annotation.Nonnull - public String getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { - this.updatedAt = updatedAt; + public void setFieldKey(@jakarta.annotation.Nullable String fieldKey) { + this.fieldKey = fieldKey; } @@ -472,50 +185,23 @@ public boolean equals(Object o) { return false; } CustomField customField = (CustomField) o; - return Objects.equals(this.label, customField.label) && - Objects.equals(this.kind, customField.kind) && - Objects.equals(this.enabled, customField.enabled) && - Objects.equals(this.slug, customField.slug) && - Objects.equals(this.description, customField.description) && - Objects.equals(this.shown, customField.shown) && - Objects.equals(this.required, customField.required) && - Objects.equals(this._default, customField._default) && - Objects.equals(this.position, customField.position) && - Objects.equals(this.createdAt, customField.createdAt) && - Objects.equals(this.updatedAt, customField.updatedAt); - } - - private static boolean equalsNullable(JsonNullable a, JsonNullable b) { - return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + return Objects.equals(this.fieldSource, customField.fieldSource) && + Objects.equals(this.catalogPropertyId, customField.catalogPropertyId) && + Objects.equals(this.fieldKey, customField.fieldKey); } @Override public int hashCode() { - return Objects.hash(label, kind, enabled, slug, description, shown, required, _default, position, createdAt, updatedAt); - } - - private static int hashCodeNullable(JsonNullable a) { - if (a == null) { - return 1; - } - return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + return Objects.hash(fieldSource, catalogPropertyId, fieldKey); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CustomField {\n"); - sb.append(" label: ").append(toIndentedString(label)).append("\n"); - sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); - sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); - sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); - sb.append(" description: ").append(toIndentedString(description)).append("\n"); - sb.append(" shown: ").append(toIndentedString(shown)).append("\n"); - sb.append(" required: ").append(toIndentedString(required)).append("\n"); - sb.append(" _default: ").append(toIndentedString(_default)).append("\n"); - sb.append(" position: ").append(toIndentedString(position)).append("\n"); - sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); - sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" fieldSource: ").append(toIndentedString(fieldSource)).append("\n"); + sb.append(" catalogPropertyId: ").append(toIndentedString(catalogPropertyId)).append("\n"); + sb.append(" fieldKey: ").append(toIndentedString(fieldKey)).append("\n"); sb.append("}"); return sb.toString(); } @@ -538,27 +224,14 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("label"); - openapiFields.add("kind"); - openapiFields.add("enabled"); - openapiFields.add("slug"); - openapiFields.add("description"); - openapiFields.add("shown"); - openapiFields.add("required"); - openapiFields.add("default"); - openapiFields.add("position"); - openapiFields.add("created_at"); - openapiFields.add("updated_at"); + openapiFields.add("field_source"); + openapiFields.add("catalog_property_id"); + openapiFields.add("field_key"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("label"); - openapiRequiredFields.add("slug"); - openapiRequiredFields.add("shown"); - openapiRequiredFields.add("required"); - openapiRequiredFields.add("position"); - openapiRequiredFields.add("created_at"); - openapiRequiredFields.add("updated_at"); + openapiRequiredFields.add("field_source"); + openapiRequiredFields.add("catalog_property_id"); } /** @@ -589,38 +262,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("label").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `label` to be a primitive type in the JSON string but got `%s`", jsonObj.get("label").toString())); - } - if ((jsonObj.get("kind") != null && !jsonObj.get("kind").isJsonNull()) && !jsonObj.get("kind").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); - } - if (!jsonObj.get("slug").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); - } - if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); - } - // ensure the required json array is present - if (jsonObj.get("shown") == null) { - throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); - } else if (!jsonObj.get("shown").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `shown` to be an array in the JSON string but got `%s`", jsonObj.get("shown").toString())); - } - // ensure the required json array is present - if (jsonObj.get("required") == null) { - throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); - } else if (!jsonObj.get("required").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `required` to be an array in the JSON string but got `%s`", jsonObj.get("required").toString())); - } - if ((jsonObj.get("default") != null && !jsonObj.get("default").isJsonNull()) && !jsonObj.get("default").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `default` to be a primitive type in the JSON string but got `%s`", jsonObj.get("default").toString())); + if (!jsonObj.get("field_source").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `field_source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("field_source").toString())); } - if (!jsonObj.get("created_at").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + // validate the required field `field_source` + FieldSourceEnum.validateJsonElement(jsonObj.get("field_source")); + if (!jsonObj.get("catalog_property_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `catalog_property_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("catalog_property_id").toString())); } - if (!jsonObj.get("updated_at").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + if ((jsonObj.get("field_key") != null && !jsonObj.get("field_key").isJsonNull()) && !jsonObj.get("field_key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `field_key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("field_key").toString())); } } diff --git a/src/main/java/com/rootly/client/model/CustomFieldList.java b/src/main/java/com/rootly/client/model/CustomFieldList.java index 553e1f55..64d1736b 100644 --- a/src/main/java/com/rootly/client/model/CustomFieldList.java +++ b/src/main/java/com/rootly/client/model/CustomFieldList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CustomFieldList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFieldList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CustomFieldList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CustomFieldList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CustomFieldList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CustomFieldList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CustomFieldList customFieldList = (CustomFieldList) o; return Objects.equals(this.data, customFieldList.data) && Objects.equals(this.links, customFieldList.links) && - Objects.equals(this.meta, customFieldList.meta); + Objects.equals(this.meta, customFieldList.meta) && + Objects.equals(this.included, customFieldList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CustomFieldOption.java b/src/main/java/com/rootly/client/model/CustomFieldOption.java index e9c6f3ae..0b9079b8 100644 --- a/src/main/java/com/rootly/client/model/CustomFieldOption.java +++ b/src/main/java/com/rootly/client/model/CustomFieldOption.java @@ -48,7 +48,7 @@ /** * CustomFieldOption */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFieldOption { public static final String SERIALIZED_NAME_CUSTOM_FIELD_ID = "custom_field_id"; @SerializedName(SERIALIZED_NAME_CUSTOM_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/CustomFieldOptionList.java b/src/main/java/com/rootly/client/model/CustomFieldOptionList.java index 56947827..b52ba8e2 100644 --- a/src/main/java/com/rootly/client/model/CustomFieldOptionList.java +++ b/src/main/java/com/rootly/client/model/CustomFieldOptionList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CustomFieldOptionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFieldOptionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CustomFieldOptionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CustomFieldOptionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CustomFieldOptionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CustomFieldOptionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CustomFieldOptionList customFieldOptionList = (CustomFieldOptionList) o; return Objects.equals(this.data, customFieldOptionList.data) && Objects.equals(this.links, customFieldOptionList.links) && - Objects.equals(this.meta, customFieldOptionList.meta); + Objects.equals(this.meta, customFieldOptionList.meta) && + Objects.equals(this.included, customFieldOptionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CustomFieldOptionResponse.java b/src/main/java/com/rootly/client/model/CustomFieldOptionResponse.java index 2f1b0248..dc1fd4e2 100644 --- a/src/main/java/com/rootly/client/model/CustomFieldOptionResponse.java +++ b/src/main/java/com/rootly/client/model/CustomFieldOptionResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CustomFieldOptionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFieldOptionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CustomFieldOptionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CustomFieldOptionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CustomFieldOptionResponseData da } + public CustomFieldOptionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CustomFieldOptionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CustomFieldOptionResponse customFieldOptionResponse = (CustomFieldOptionResponse) o; - return Objects.equals(this.data, customFieldOptionResponse.data); + return Objects.equals(this.data, customFieldOptionResponse.data) && + Objects.equals(this.included, customFieldOptionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CustomFieldOptionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CustomFieldOptionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CustomFieldOptionResponseData.java b/src/main/java/com/rootly/client/model/CustomFieldOptionResponseData.java index bd8999d2..7f0e991f 100644 --- a/src/main/java/com/rootly/client/model/CustomFieldOptionResponseData.java +++ b/src/main/java/com/rootly/client/model/CustomFieldOptionResponseData.java @@ -49,7 +49,7 @@ /** * CustomFieldOptionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFieldOptionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CustomFieldResponse.java b/src/main/java/com/rootly/client/model/CustomFieldResponse.java index 153ac5c4..0157b5dd 100644 --- a/src/main/java/com/rootly/client/model/CustomFieldResponse.java +++ b/src/main/java/com/rootly/client/model/CustomFieldResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CustomFieldResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFieldResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CustomFieldResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CustomFieldResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CustomFieldResponseData data) { } + public CustomFieldResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CustomFieldResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CustomFieldResponse customFieldResponse = (CustomFieldResponse) o; - return Objects.equals(this.data, customFieldResponse.data); + return Objects.equals(this.data, customFieldResponse.data) && + Objects.equals(this.included, customFieldResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CustomFieldResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CustomFieldResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CustomFieldResponseData.java b/src/main/java/com/rootly/client/model/CustomFieldResponseData.java index 9c486669..f0701492 100644 --- a/src/main/java/com/rootly/client/model/CustomFieldResponseData.java +++ b/src/main/java/com/rootly/client/model/CustomFieldResponseData.java @@ -49,7 +49,7 @@ /** * CustomFieldResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFieldResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/CustomForm.java b/src/main/java/com/rootly/client/model/CustomForm.java index 393efb23..1f45c4b1 100644 --- a/src/main/java/com/rootly/client/model/CustomForm.java +++ b/src/main/java/com/rootly/client/model/CustomForm.java @@ -49,7 +49,7 @@ /** * CustomForm */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomForm { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -58,7 +58,7 @@ public class CustomForm { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -89,6 +89,13 @@ public class CustomForm { public CustomForm() { } + public CustomForm( + String slug + ) { + this(); + this.slug = slug; + } + public CustomForm name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -108,23 +115,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public CustomForm slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public CustomForm description(@jakarta.annotation.Nullable String description) { @@ -301,7 +300,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("enabled"); openapiRequiredFields.add("command"); openapiRequiredFields.add("created_at"); @@ -339,7 +337,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/CustomFormList.java b/src/main/java/com/rootly/client/model/CustomFormList.java index 688acf54..8519b412 100644 --- a/src/main/java/com/rootly/client/model/CustomFormList.java +++ b/src/main/java/com/rootly/client/model/CustomFormList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFormResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * CustomFormList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFormList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class CustomFormList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CustomFormList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public CustomFormList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CustomFormList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { CustomFormList customFormList = (CustomFormList) o; return Objects.equals(this.data, customFormList.data) && Objects.equals(this.links, customFormList.links) && - Objects.equals(this.meta, customFormList.meta); + Objects.equals(this.meta, customFormList.meta) && + Objects.equals(this.included, customFormList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CustomFormResponse.java b/src/main/java/com/rootly/client/model/CustomFormResponse.java index b5219578..30e3dd21 100644 --- a/src/main/java/com/rootly/client/model/CustomFormResponse.java +++ b/src/main/java/com/rootly/client/model/CustomFormResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFormResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * CustomFormResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFormResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private CustomFormResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public CustomFormResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull CustomFormResponseData data) { } + public CustomFormResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public CustomFormResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } CustomFormResponse customFormResponse = (CustomFormResponse) o; - return Objects.equals(this.data, customFormResponse.data); + return Objects.equals(this.data, customFormResponse.data) && + Objects.equals(this.included, customFormResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CustomFormResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` CustomFormResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/CustomFormResponseData.java b/src/main/java/com/rootly/client/model/CustomFormResponseData.java index c6f31d6d..c7c3c74a 100644 --- a/src/main/java/com/rootly/client/model/CustomFormResponseData.java +++ b/src/main/java/com/rootly/client/model/CustomFormResponseData.java @@ -49,7 +49,7 @@ /** * CustomFormResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class CustomFormResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Dashboard.java b/src/main/java/com/rootly/client/model/Dashboard.java index 6c6ed8a1..5efa322a 100644 --- a/src/main/java/com/rootly/client/model/Dashboard.java +++ b/src/main/java/com/rootly/client/model/Dashboard.java @@ -49,7 +49,7 @@ /** * Dashboard */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Dashboard { public static final String SERIALIZED_NAME_TEAM_ID = "team_id"; @SerializedName(SERIALIZED_NAME_TEAM_ID) diff --git a/src/main/java/com/rootly/client/model/DashboardList.java b/src/main/java/com/rootly/client/model/DashboardList.java index bc009a92..55670b11 100644 --- a/src/main/java/com/rootly/client/model/DashboardList.java +++ b/src/main/java/com/rootly/client/model/DashboardList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * DashboardList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DashboardList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class DashboardList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public DashboardList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public DashboardList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public DashboardList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { DashboardList dashboardList = (DashboardList) o; return Objects.equals(this.data, dashboardList.data) && Objects.equals(this.links, dashboardList.links) && - Objects.equals(this.meta, dashboardList.meta); + Objects.equals(this.meta, dashboardList.meta) && + Objects.equals(this.included, dashboardList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/DashboardPanel.java b/src/main/java/com/rootly/client/model/DashboardPanel.java index c3de5496..da23ec06 100644 --- a/src/main/java/com/rootly/client/model/DashboardPanel.java +++ b/src/main/java/com/rootly/client/model/DashboardPanel.java @@ -53,7 +53,7 @@ /** * DashboardPanel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DashboardPanel { public static final String SERIALIZED_NAME_DASHBOARD_ID = "dashboard_id"; @SerializedName(SERIALIZED_NAME_DASHBOARD_ID) diff --git a/src/main/java/com/rootly/client/model/DashboardPanelList.java b/src/main/java/com/rootly/client/model/DashboardPanelList.java index 61165e6d..2e609984 100644 --- a/src/main/java/com/rootly/client/model/DashboardPanelList.java +++ b/src/main/java/com/rootly/client/model/DashboardPanelList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardPanelResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * DashboardPanelList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DashboardPanelList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class DashboardPanelList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public DashboardPanelList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public DashboardPanelList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public DashboardPanelList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { DashboardPanelList dashboardPanelList = (DashboardPanelList) o; return Objects.equals(this.data, dashboardPanelList.data) && Objects.equals(this.links, dashboardPanelList.links) && - Objects.equals(this.meta, dashboardPanelList.meta); + Objects.equals(this.meta, dashboardPanelList.meta) && + Objects.equals(this.included, dashboardPanelList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/DashboardPanelResponse.java b/src/main/java/com/rootly/client/model/DashboardPanelResponse.java index 33b5d0d2..073df325 100644 --- a/src/main/java/com/rootly/client/model/DashboardPanelResponse.java +++ b/src/main/java/com/rootly/client/model/DashboardPanelResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardPanelResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * DashboardPanelResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DashboardPanelResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private DashboardPanelResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public DashboardPanelResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull DashboardPanelResponseData data) } + public DashboardPanelResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public DashboardPanelResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } DashboardPanelResponse dashboardPanelResponse = (DashboardPanelResponse) o; - return Objects.equals(this.data, dashboardPanelResponse.data); + return Objects.equals(this.data, dashboardPanelResponse.data) && + Objects.equals(this.included, dashboardPanelResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class DashboardPanelResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` DashboardPanelResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/DashboardPanelResponseData.java b/src/main/java/com/rootly/client/model/DashboardPanelResponseData.java index 4f566c93..4056a629 100644 --- a/src/main/java/com/rootly/client/model/DashboardPanelResponseData.java +++ b/src/main/java/com/rootly/client/model/DashboardPanelResponseData.java @@ -49,7 +49,7 @@ /** * DashboardPanelResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DashboardPanelResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/DashboardResponse.java b/src/main/java/com/rootly/client/model/DashboardResponse.java index c4215778..edc2fd05 100644 --- a/src/main/java/com/rootly/client/model/DashboardResponse.java +++ b/src/main/java/com/rootly/client/model/DashboardResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * DashboardResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DashboardResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private DashboardResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public DashboardResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull DashboardResponseData data) { } + public DashboardResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public DashboardResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } DashboardResponse dashboardResponse = (DashboardResponse) o; - return Objects.equals(this.data, dashboardResponse.data); + return Objects.equals(this.data, dashboardResponse.data) && + Objects.equals(this.included, dashboardResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class DashboardResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` DashboardResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/DashboardResponseData.java b/src/main/java/com/rootly/client/model/DashboardResponseData.java index cea7195b..3da724ee 100644 --- a/src/main/java/com/rootly/client/model/DashboardResponseData.java +++ b/src/main/java/com/rootly/client/model/DashboardResponseData.java @@ -49,7 +49,7 @@ /** * DashboardResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DashboardResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/DeleteAlertRoute200Response.java b/src/main/java/com/rootly/client/model/DeleteAlertRoute200Response.java index a9c71ebb..1a021c59 100644 --- a/src/main/java/com/rootly/client/model/DeleteAlertRoute200Response.java +++ b/src/main/java/com/rootly/client/model/DeleteAlertRoute200Response.java @@ -49,7 +49,7 @@ /** * DeleteAlertRoute200Response */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DeleteAlertRoute200Response { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseData.java b/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseData.java index 2d702d12..18bd1ca1 100644 --- a/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseData.java +++ b/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseData.java @@ -49,7 +49,7 @@ /** * DeleteAlertRoute200ResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DeleteAlertRoute200ResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseDataAttributes.java b/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseDataAttributes.java index f1b6f248..7fd6cf8a 100644 --- a/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseDataAttributes.java +++ b/src/main/java/com/rootly/client/model/DeleteAlertRoute200ResponseDataAttributes.java @@ -48,7 +48,7 @@ /** * DeleteAlertRoute200ResponseDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DeleteAlertRoute200ResponseDataAttributes { public static final String SERIALIZED_NAME_DELETED = "deleted"; @SerializedName(SERIALIZED_NAME_DELETED) diff --git a/src/main/java/com/rootly/client/model/DuplicateIncident.java b/src/main/java/com/rootly/client/model/DuplicateIncident.java index 40581352..2137187e 100644 --- a/src/main/java/com/rootly/client/model/DuplicateIncident.java +++ b/src/main/java/com/rootly/client/model/DuplicateIncident.java @@ -49,7 +49,7 @@ /** * DuplicateIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DuplicateIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/DuplicateIncidentData.java b/src/main/java/com/rootly/client/model/DuplicateIncidentData.java index 3a573fef..624ff78d 100644 --- a/src/main/java/com/rootly/client/model/DuplicateIncidentData.java +++ b/src/main/java/com/rootly/client/model/DuplicateIncidentData.java @@ -49,7 +49,7 @@ /** * DuplicateIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DuplicateIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/DuplicateIncidentDataAttributes.java b/src/main/java/com/rootly/client/model/DuplicateIncidentDataAttributes.java index 7dc4cabd..a2afdc8c 100644 --- a/src/main/java/com/rootly/client/model/DuplicateIncidentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/DuplicateIncidentDataAttributes.java @@ -49,7 +49,7 @@ /** * DuplicateIncidentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class DuplicateIncidentDataAttributes { public static final String SERIALIZED_NAME_DUPLICATE_INCIDENT_ID = "duplicate_incident_id"; @SerializedName(SERIALIZED_NAME_DUPLICATE_INCIDENT_ID) diff --git a/src/main/java/com/rootly/client/model/EdgeConnector.java b/src/main/java/com/rootly/client/model/EdgeConnector.java index c5471017..2f65b9a4 100644 --- a/src/main/java/com/rootly/client/model/EdgeConnector.java +++ b/src/main/java/com/rootly/client/model/EdgeConnector.java @@ -49,7 +49,7 @@ /** * EdgeConnector */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EdgeConnector { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/EdgeConnectorAction.java b/src/main/java/com/rootly/client/model/EdgeConnectorAction.java index 153a8e61..661d55e7 100644 --- a/src/main/java/com/rootly/client/model/EdgeConnectorAction.java +++ b/src/main/java/com/rootly/client/model/EdgeConnectorAction.java @@ -49,7 +49,7 @@ /** * EdgeConnectorAction */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EdgeConnectorAction { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/EdgeConnectorActionData.java b/src/main/java/com/rootly/client/model/EdgeConnectorActionData.java index c9f679ae..78bc263e 100644 --- a/src/main/java/com/rootly/client/model/EdgeConnectorActionData.java +++ b/src/main/java/com/rootly/client/model/EdgeConnectorActionData.java @@ -50,7 +50,7 @@ /** * EdgeConnectorActionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EdgeConnectorActionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributes.java b/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributes.java index 6a23bac7..ff954af2 100644 --- a/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributes.java @@ -53,7 +53,7 @@ /** * EdgeConnectorActionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EdgeConnectorActionDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributesParametersInner.java b/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributesParametersInner.java index 4b6423a6..04ad7d7c 100644 --- a/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributesParametersInner.java +++ b/src/main/java/com/rootly/client/model/EdgeConnectorActionDataAttributesParametersInner.java @@ -51,7 +51,7 @@ /** * EdgeConnectorActionDataAttributesParametersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EdgeConnectorActionDataAttributesParametersInner { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -130,7 +130,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_DEFAULT = "default"; @SerializedName(SERIALIZED_NAME_DEFAULT) @jakarta.annotation.Nullable - private Object _default = null; + private String _default; public static final String SERIALIZED_NAME_OPTIONS = "options"; @SerializedName(SERIALIZED_NAME_OPTIONS) @@ -216,7 +216,7 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } - public EdgeConnectorActionDataAttributesParametersInner _default(@jakarta.annotation.Nullable Object _default) { + public EdgeConnectorActionDataAttributesParametersInner _default(@jakarta.annotation.Nullable String _default) { this._default = _default; return this; } @@ -226,11 +226,11 @@ public EdgeConnectorActionDataAttributesParametersInner _default(@jakarta.annota * @return _default */ @jakarta.annotation.Nullable - public Object getDefault() { + public String getDefault() { return _default; } - public void setDefault(@jakarta.annotation.Nullable Object _default) { + public void setDefault(@jakarta.annotation.Nullable String _default) { this._default = _default; } @@ -373,6 +373,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("default") != null && !jsonObj.get("default").isJsonNull()) && !jsonObj.get("default").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `default` to be a primitive type in the JSON string but got `%s`", jsonObj.get("default").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("options") != null && !jsonObj.get("options").isJsonNull() && !jsonObj.get("options").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `options` to be an array in the JSON string but got `%s`", jsonObj.get("options").toString())); diff --git a/src/main/java/com/rootly/client/model/EdgeConnectorData.java b/src/main/java/com/rootly/client/model/EdgeConnectorData.java index a2e7c8b6..8194f02b 100644 --- a/src/main/java/com/rootly/client/model/EdgeConnectorData.java +++ b/src/main/java/com/rootly/client/model/EdgeConnectorData.java @@ -50,7 +50,7 @@ /** * EdgeConnectorData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EdgeConnectorData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/EdgeConnectorDataAttributes.java b/src/main/java/com/rootly/client/model/EdgeConnectorDataAttributes.java index c09abba2..22b9ea4f 100644 --- a/src/main/java/com/rootly/client/model/EdgeConnectorDataAttributes.java +++ b/src/main/java/com/rootly/client/model/EdgeConnectorDataAttributes.java @@ -52,7 +52,7 @@ /** * EdgeConnectorDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EdgeConnectorDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/Environment.java b/src/main/java/com/rootly/client/model/Environment.java index a09abe23..5fabd5ab 100644 --- a/src/main/java/com/rootly/client/model/Environment.java +++ b/src/main/java/com/rootly/client/model/Environment.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,7 +54,7 @@ /** * Environment */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Environment { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -65,11 +66,88 @@ public class Environment { @jakarta.annotation.Nullable private String slug; + /** + * How this environment is managed (provenance): web, api, terraform, etc. Read-only. + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) @jakarta.annotation.Nullable @@ -95,6 +173,11 @@ public class Environment { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -108,6 +191,13 @@ public class Environment { public Environment() { } + public Environment( + String slug + ) { + this(); + this.slug = slug; + } + public Environment name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -127,11 +217,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Environment slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the environment * @return slug @@ -141,8 +226,43 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + + + public Environment managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * How this environment is managed (provenance): web, api, terraform, etc. Read-only. + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + } + + + public Environment externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * The external id associated to this environment + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; } @@ -165,6 +285,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public Environment publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the environment + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public Environment notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { this.notifyEmails = notifyEmails; return this; @@ -284,6 +423,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public Environment addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this environment. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + public Environment createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -334,12 +500,16 @@ public boolean equals(Object o) { Environment environment = (Environment) o; return Objects.equals(this.name, environment.name) && Objects.equals(this.slug, environment.slug) && + Objects.equals(this.managedBy, environment.managedBy) && + Objects.equals(this.externalId, environment.externalId) && Objects.equals(this.description, environment.description) && + Objects.equals(this.publicDescription, environment.publicDescription) && Objects.equals(this.notifyEmails, environment.notifyEmails) && Objects.equals(this.color, environment.color) && Objects.equals(this.position, environment.position) && Objects.equals(this.slackChannels, environment.slackChannels) && Objects.equals(this.slackAliases, environment.slackAliases) && + Objects.equals(this.properties, environment.properties) && Objects.equals(this.createdAt, environment.createdAt) && Objects.equals(this.updatedAt, environment.updatedAt); } @@ -350,7 +520,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, notifyEmails, color, position, slackChannels, slackAliases, createdAt, updatedAt); + return Objects.hash(name, slug, managedBy, externalId, description, publicDescription, notifyEmails, color, position, slackChannels, slackAliases, properties, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -366,12 +536,16 @@ public String toString() { sb.append("class Environment {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -398,12 +572,16 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("managed_by"); + openapiFields.add("external_id"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("notify_emails"); openapiFields.add("color"); openapiFields.add("position"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -448,9 +626,22 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); @@ -486,6 +677,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/EnvironmentList.java b/src/main/java/com/rootly/client/model/EnvironmentList.java index 4da257d3..ffad3780 100644 --- a/src/main/java/com/rootly/client/model/EnvironmentList.java +++ b/src/main/java/com/rootly/client/model/EnvironmentList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EnvironmentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * EnvironmentList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EnvironmentList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class EnvironmentList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EnvironmentList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public EnvironmentList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EnvironmentList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { EnvironmentList environmentList = (EnvironmentList) o; return Objects.equals(this.data, environmentList.data) && Objects.equals(this.links, environmentList.links) && - Objects.equals(this.meta, environmentList.meta); + Objects.equals(this.meta, environmentList.meta) && + Objects.equals(this.included, environmentList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EnvironmentResponse.java b/src/main/java/com/rootly/client/model/EnvironmentResponse.java index 869010a2..f7dfc52d 100644 --- a/src/main/java/com/rootly/client/model/EnvironmentResponse.java +++ b/src/main/java/com/rootly/client/model/EnvironmentResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EnvironmentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * EnvironmentResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EnvironmentResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private EnvironmentResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EnvironmentResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull EnvironmentResponseData data) { } + public EnvironmentResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EnvironmentResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } EnvironmentResponse environmentResponse = (EnvironmentResponse) o; - return Objects.equals(this.data, environmentResponse.data); + return Objects.equals(this.data, environmentResponse.data) && + Objects.equals(this.included, environmentResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class EnvironmentResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` EnvironmentResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EnvironmentResponseData.java b/src/main/java/com/rootly/client/model/EnvironmentResponseData.java index bb495065..50354999 100644 --- a/src/main/java/com/rootly/client/model/EnvironmentResponseData.java +++ b/src/main/java/com/rootly/client/model/EnvironmentResponseData.java @@ -49,7 +49,7 @@ /** * EnvironmentResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EnvironmentResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ErrorsList.java b/src/main/java/com/rootly/client/model/ErrorsList.java index ba29c82a..f3061bd7 100644 --- a/src/main/java/com/rootly/client/model/ErrorsList.java +++ b/src/main/java/com/rootly/client/model/ErrorsList.java @@ -51,7 +51,7 @@ /** * ErrorsList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ErrorsList { public static final String SERIALIZED_NAME_ERRORS = "errors"; @SerializedName(SERIALIZED_NAME_ERRORS) diff --git a/src/main/java/com/rootly/client/model/ErrorsListErrorsInner.java b/src/main/java/com/rootly/client/model/ErrorsListErrorsInner.java index 5af7d52b..387a9dac 100644 --- a/src/main/java/com/rootly/client/model/ErrorsListErrorsInner.java +++ b/src/main/java/com/rootly/client/model/ErrorsListErrorsInner.java @@ -49,7 +49,7 @@ /** * ErrorsListErrorsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ErrorsListErrorsInner { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/EscalateAlert.java b/src/main/java/com/rootly/client/model/EscalateAlert.java index f7c4dd81..e005548f 100644 --- a/src/main/java/com/rootly/client/model/EscalateAlert.java +++ b/src/main/java/com/rootly/client/model/EscalateAlert.java @@ -49,17 +49,17 @@ /** * EscalateAlert */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalateAlert { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private EscalateAlertData data; public EscalateAlert() { } - public EscalateAlert data(@javax.annotation.Nullable EscalateAlertData data) { + public EscalateAlert data(@jakarta.annotation.Nullable EscalateAlertData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public EscalateAlert data(@javax.annotation.Nullable EscalateAlertData data) { * Get data * @return data */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public EscalateAlertData getData() { return data; } - public void setData(@javax.annotation.Nullable EscalateAlertData data) { + public void setData(@jakarta.annotation.Nullable EscalateAlertData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/EscalateAlertData.java b/src/main/java/com/rootly/client/model/EscalateAlertData.java index 37a209d1..668a41fc 100644 --- a/src/main/java/com/rootly/client/model/EscalateAlertData.java +++ b/src/main/java/com/rootly/client/model/EscalateAlertData.java @@ -49,7 +49,7 @@ /** * EscalateAlertData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalateAlertData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private EscalateAlertDataAttributes attributes; public EscalateAlertData() { } - public EscalateAlertData type(@javax.annotation.Nullable TypeEnum type) { + public EscalateAlertData type(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public EscalateAlertData type(@javax.annotation.Nullable TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; } - public EscalateAlertData attributes(@javax.annotation.Nullable EscalateAlertDataAttributes attributes) { + public EscalateAlertData attributes(@jakarta.annotation.Nullable EscalateAlertDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public EscalateAlertData attributes(@javax.annotation.Nullable EscalateAlertData * Get attributes * @return attributes */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public EscalateAlertDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nullable EscalateAlertDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nullable EscalateAlertDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/EscalateAlertDataAttributes.java b/src/main/java/com/rootly/client/model/EscalateAlertDataAttributes.java index 1f34371b..584d21a5 100644 --- a/src/main/java/com/rootly/client/model/EscalateAlertDataAttributes.java +++ b/src/main/java/com/rootly/client/model/EscalateAlertDataAttributes.java @@ -48,22 +48,22 @@ /** * EscalateAlertDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalateAlertDataAttributes { public static final String SERIALIZED_NAME_ESCALATION_POLICY_ID = "escalation_policy_id"; @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String escalationPolicyId; public static final String SERIALIZED_NAME_ESCALATION_POLICY_LEVEL = "escalation_policy_level"; @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_LEVEL) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer escalationPolicyLevel; public EscalateAlertDataAttributes() { } - public EscalateAlertDataAttributes escalationPolicyId(@javax.annotation.Nullable String escalationPolicyId) { + public EscalateAlertDataAttributes escalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { this.escalationPolicyId = escalationPolicyId; return this; } @@ -72,17 +72,17 @@ public EscalateAlertDataAttributes escalationPolicyId(@javax.annotation.Nullable * The ID of the escalation policy to escalate to. If omitted, uses the alert's current escalation policy from metadata. Required for resolved alerts whose metadata may have been cleared. * @return escalationPolicyId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getEscalationPolicyId() { return escalationPolicyId; } - public void setEscalationPolicyId(@javax.annotation.Nullable String escalationPolicyId) { + public void setEscalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { this.escalationPolicyId = escalationPolicyId; } - public EscalateAlertDataAttributes escalationPolicyLevel(@javax.annotation.Nullable Integer escalationPolicyLevel) { + public EscalateAlertDataAttributes escalationPolicyLevel(@jakarta.annotation.Nullable Integer escalationPolicyLevel) { this.escalationPolicyLevel = escalationPolicyLevel; return this; } @@ -92,12 +92,12 @@ public EscalateAlertDataAttributes escalationPolicyLevel(@javax.annotation.Nulla * minimum: 1 * @return escalationPolicyLevel */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getEscalationPolicyLevel() { return escalationPolicyLevel; } - public void setEscalationPolicyLevel(@javax.annotation.Nullable Integer escalationPolicyLevel) { + public void setEscalationPolicyLevel(@jakarta.annotation.Nullable Integer escalationPolicyLevel) { this.escalationPolicyLevel = escalationPolicyLevel; } diff --git a/src/main/java/com/rootly/client/model/EscalationPolicy.java b/src/main/java/com/rootly/client/model/EscalationPolicy.java index 14a7fdc6..365aa6aa 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicy.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicy.java @@ -52,7 +52,7 @@ /** * EscalationPolicy */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicy { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -90,6 +90,7 @@ public class EscalationPolicy { private List serviceIds = new ArrayList<>(); public static final String SERIALIZED_NAME_BUSINESS_HOURS = "business_hours"; + @Deprecated @SerializedName(SERIALIZED_NAME_BUSINESS_HOURS) @jakarta.annotation.Nullable private NewEscalationPolicyDataAttributesBusinessHours businessHours; @@ -256,6 +257,7 @@ public void setServiceIds(@jakarta.annotation.Nullable List serviceIds) } + @Deprecated public EscalationPolicy businessHours(@jakarta.annotation.Nullable NewEscalationPolicyDataAttributesBusinessHours businessHours) { this.businessHours = businessHours; return this; @@ -264,12 +266,15 @@ public EscalationPolicy businessHours(@jakarta.annotation.Nullable NewEscalation /** * Get businessHours * @return businessHours + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable public NewEscalationPolicyDataAttributesBusinessHours getBusinessHours() { return businessHours; } + @Deprecated public void setBusinessHours(@jakarta.annotation.Nullable NewEscalationPolicyDataAttributesBusinessHours businessHours) { this.businessHours = businessHours; } diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyLevel.java b/src/main/java/com/rootly/client/model/EscalationPolicyLevel.java index df38a83b..1aa6f1f4 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyLevel.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyLevel.java @@ -52,7 +52,7 @@ /** * EscalationPolicyLevel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyLevel { public static final String SERIALIZED_NAME_ESCALATION_POLICY_ID = "escalation_policy_id"; @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_ID) @@ -123,7 +123,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_STRATEGY = "paging_strategy_configuration_strategy"; @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_STRATEGY) @jakarta.annotation.Nullable - private PagingStrategyConfigurationStrategyEnum pagingStrategyConfigurationStrategy; + private PagingStrategyConfigurationStrategyEnum pagingStrategyConfigurationStrategy = PagingStrategyConfigurationStrategyEnum.DEFAULT; /** * Gets or Sets pagingStrategyConfigurationScheduleStrategy @@ -180,7 +180,131 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_SCHEDULE_STRATEGY = "paging_strategy_configuration_schedule_strategy"; @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_SCHEDULE_STRATEGY) @jakarta.annotation.Nullable - private PagingStrategyConfigurationScheduleStrategyEnum pagingStrategyConfigurationScheduleStrategy; + private PagingStrategyConfigurationScheduleStrategyEnum pagingStrategyConfigurationScheduleStrategy = PagingStrategyConfigurationScheduleStrategyEnum.ON_CALL_ONLY; + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS = "paging_strategy_configuration_repeats"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS) + @jakarta.annotation.Nullable + private Integer pagingStrategyConfigurationRepeats; + + /** + * Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. + */ + @JsonAdapter(PagingStrategyConfigurationRepeatsModeEnum.Adapter.class) + public enum PagingStrategyConfigurationRepeatsModeEnum { + USERS("users"), + + ALL("all"); + + private String value; + + PagingStrategyConfigurationRepeatsModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingStrategyConfigurationRepeatsModeEnum fromValue(String value) { + for (PagingStrategyConfigurationRepeatsModeEnum b : PagingStrategyConfigurationRepeatsModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingStrategyConfigurationRepeatsModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingStrategyConfigurationRepeatsModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingStrategyConfigurationRepeatsModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingStrategyConfigurationRepeatsModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS_MODE = "paging_strategy_configuration_repeats_mode"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS_MODE) + @jakarta.annotation.Nullable + private PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode; + + /** + * Scope of rotation ordering: active rotation members only, or entire schedule. + */ + @JsonAdapter(PagingStrategyConfigurationRotationScopeEnum.Adapter.class) + public enum PagingStrategyConfigurationRotationScopeEnum { + ACTIVE_ROTATION("active_rotation"), + + ENTIRE_SCHEDULE("entire_schedule"); + + private String value; + + PagingStrategyConfigurationRotationScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingStrategyConfigurationRotationScopeEnum fromValue(String value) { + for (PagingStrategyConfigurationRotationScopeEnum b : PagingStrategyConfigurationRotationScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingStrategyConfigurationRotationScopeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingStrategyConfigurationRotationScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingStrategyConfigurationRotationScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingStrategyConfigurationRotationScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_ROTATION_SCOPE = "paging_strategy_configuration_rotation_scope"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_ROTATION_SCOPE) + @jakarta.annotation.Nullable + private PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope; + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_PAGE_USERS_COUNT = "paging_strategy_configuration_page_users_count"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_PAGE_USERS_COUNT) + @jakarta.annotation.Nullable + private Integer pagingStrategyConfigurationPageUsersCount; public static final String SERIALIZED_NAME_DELAY = "delay"; @SerializedName(SERIALIZED_NAME_DELAY) @@ -286,13 +410,89 @@ public void setPagingStrategyConfigurationScheduleStrategy(@jakarta.annotation.N } + public EscalationPolicyLevel pagingStrategyConfigurationRepeats(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationRepeats) { + this.pagingStrategyConfigurationRepeats = pagingStrategyConfigurationRepeats; + return this; + } + + /** + * Number of times to rotate through the roster (cycle-based round robin). + * @return pagingStrategyConfigurationRepeats + */ + @jakarta.annotation.Nullable + public Integer getPagingStrategyConfigurationRepeats() { + return pagingStrategyConfigurationRepeats; + } + + public void setPagingStrategyConfigurationRepeats(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationRepeats) { + this.pagingStrategyConfigurationRepeats = pagingStrategyConfigurationRepeats; + } + + + public EscalationPolicyLevel pagingStrategyConfigurationRepeatsMode(@jakarta.annotation.Nullable PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode) { + this.pagingStrategyConfigurationRepeatsMode = pagingStrategyConfigurationRepeatsMode; + return this; + } + + /** + * Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. + * @return pagingStrategyConfigurationRepeatsMode + */ + @jakarta.annotation.Nullable + public PagingStrategyConfigurationRepeatsModeEnum getPagingStrategyConfigurationRepeatsMode() { + return pagingStrategyConfigurationRepeatsMode; + } + + public void setPagingStrategyConfigurationRepeatsMode(@jakarta.annotation.Nullable PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode) { + this.pagingStrategyConfigurationRepeatsMode = pagingStrategyConfigurationRepeatsMode; + } + + + public EscalationPolicyLevel pagingStrategyConfigurationRotationScope(@jakarta.annotation.Nullable PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope) { + this.pagingStrategyConfigurationRotationScope = pagingStrategyConfigurationRotationScope; + return this; + } + + /** + * Scope of rotation ordering: active rotation members only, or entire schedule. + * @return pagingStrategyConfigurationRotationScope + */ + @jakarta.annotation.Nullable + public PagingStrategyConfigurationRotationScopeEnum getPagingStrategyConfigurationRotationScope() { + return pagingStrategyConfigurationRotationScope; + } + + public void setPagingStrategyConfigurationRotationScope(@jakarta.annotation.Nullable PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope) { + this.pagingStrategyConfigurationRotationScope = pagingStrategyConfigurationRotationScope; + } + + + public EscalationPolicyLevel pagingStrategyConfigurationPageUsersCount(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationPageUsersCount) { + this.pagingStrategyConfigurationPageUsersCount = pagingStrategyConfigurationPageUsersCount; + return this; + } + + /** + * Number of users to page at a time (cycle-based round robin). + * @return pagingStrategyConfigurationPageUsersCount + */ + @jakarta.annotation.Nullable + public Integer getPagingStrategyConfigurationPageUsersCount() { + return pagingStrategyConfigurationPageUsersCount; + } + + public void setPagingStrategyConfigurationPageUsersCount(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationPageUsersCount) { + this.pagingStrategyConfigurationPageUsersCount = pagingStrategyConfigurationPageUsersCount; + } + + public EscalationPolicyLevel delay(@jakarta.annotation.Nonnull Integer delay) { this.delay = delay; return this; } /** - * Delay before notification targets will be alerted. + * Delay before notifying targets in the next Escalation Level. * @return delay */ @jakarta.annotation.Nonnull @@ -403,6 +603,10 @@ public boolean equals(Object o) { Objects.equals(this.escalationPolicyPathId, escalationPolicyLevel.escalationPolicyPathId) && Objects.equals(this.pagingStrategyConfigurationStrategy, escalationPolicyLevel.pagingStrategyConfigurationStrategy) && Objects.equals(this.pagingStrategyConfigurationScheduleStrategy, escalationPolicyLevel.pagingStrategyConfigurationScheduleStrategy) && + Objects.equals(this.pagingStrategyConfigurationRepeats, escalationPolicyLevel.pagingStrategyConfigurationRepeats) && + Objects.equals(this.pagingStrategyConfigurationRepeatsMode, escalationPolicyLevel.pagingStrategyConfigurationRepeatsMode) && + Objects.equals(this.pagingStrategyConfigurationRotationScope, escalationPolicyLevel.pagingStrategyConfigurationRotationScope) && + Objects.equals(this.pagingStrategyConfigurationPageUsersCount, escalationPolicyLevel.pagingStrategyConfigurationPageUsersCount) && Objects.equals(this.delay, escalationPolicyLevel.delay) && Objects.equals(this.position, escalationPolicyLevel.position) && Objects.equals(this.createdAt, escalationPolicyLevel.createdAt) && @@ -416,7 +620,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(escalationPolicyId, escalationPolicyPathId, pagingStrategyConfigurationStrategy, pagingStrategyConfigurationScheduleStrategy, delay, position, createdAt, updatedAt, notificationTargetParams); + return Objects.hash(escalationPolicyId, escalationPolicyPathId, pagingStrategyConfigurationStrategy, pagingStrategyConfigurationScheduleStrategy, pagingStrategyConfigurationRepeats, pagingStrategyConfigurationRepeatsMode, pagingStrategyConfigurationRotationScope, pagingStrategyConfigurationPageUsersCount, delay, position, createdAt, updatedAt, notificationTargetParams); } private static int hashCodeNullable(JsonNullable a) { @@ -434,6 +638,10 @@ public String toString() { sb.append(" escalationPolicyPathId: ").append(toIndentedString(escalationPolicyPathId)).append("\n"); sb.append(" pagingStrategyConfigurationStrategy: ").append(toIndentedString(pagingStrategyConfigurationStrategy)).append("\n"); sb.append(" pagingStrategyConfigurationScheduleStrategy: ").append(toIndentedString(pagingStrategyConfigurationScheduleStrategy)).append("\n"); + sb.append(" pagingStrategyConfigurationRepeats: ").append(toIndentedString(pagingStrategyConfigurationRepeats)).append("\n"); + sb.append(" pagingStrategyConfigurationRepeatsMode: ").append(toIndentedString(pagingStrategyConfigurationRepeatsMode)).append("\n"); + sb.append(" pagingStrategyConfigurationRotationScope: ").append(toIndentedString(pagingStrategyConfigurationRotationScope)).append("\n"); + sb.append(" pagingStrategyConfigurationPageUsersCount: ").append(toIndentedString(pagingStrategyConfigurationPageUsersCount)).append("\n"); sb.append(" delay: ").append(toIndentedString(delay)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); @@ -465,6 +673,10 @@ private String toIndentedString(Object o) { openapiFields.add("escalation_policy_path_id"); openapiFields.add("paging_strategy_configuration_strategy"); openapiFields.add("paging_strategy_configuration_schedule_strategy"); + openapiFields.add("paging_strategy_configuration_repeats"); + openapiFields.add("paging_strategy_configuration_repeats_mode"); + openapiFields.add("paging_strategy_configuration_rotation_scope"); + openapiFields.add("paging_strategy_configuration_page_users_count"); openapiFields.add("delay"); openapiFields.add("position"); openapiFields.add("created_at"); @@ -527,6 +739,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("paging_strategy_configuration_schedule_strategy") != null && !jsonObj.get("paging_strategy_configuration_schedule_strategy").isJsonNull()) { PagingStrategyConfigurationScheduleStrategyEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_schedule_strategy")); } + if ((jsonObj.get("paging_strategy_configuration_repeats_mode") != null && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonNull()) && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_strategy_configuration_repeats_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("paging_strategy_configuration_repeats_mode").toString())); + } + // validate the optional field `paging_strategy_configuration_repeats_mode` + if (jsonObj.get("paging_strategy_configuration_repeats_mode") != null && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonNull()) { + PagingStrategyConfigurationRepeatsModeEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_repeats_mode")); + } + if ((jsonObj.get("paging_strategy_configuration_rotation_scope") != null && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonNull()) && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_strategy_configuration_rotation_scope` to be a primitive type in the JSON string but got `%s`", jsonObj.get("paging_strategy_configuration_rotation_scope").toString())); + } + // validate the optional field `paging_strategy_configuration_rotation_scope` + if (jsonObj.get("paging_strategy_configuration_rotation_scope") != null && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonNull()) { + PagingStrategyConfigurationRotationScopeEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_rotation_scope")); + } if ((jsonObj.get("created_at") != null && !jsonObj.get("created_at").isJsonNull()) && !jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyLevelList.java b/src/main/java/com/rootly/client/model/EscalationPolicyLevelList.java index 1a8584cb..0d857ea3 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyLevelList.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyLevelList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyLevelListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * EscalationPolicyLevelList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyLevelList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class EscalationPolicyLevelList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EscalationPolicyLevelList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public EscalationPolicyLevelList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EscalationPolicyLevelList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { EscalationPolicyLevelList escalationPolicyLevelList = (EscalationPolicyLevelList) o; return Objects.equals(this.data, escalationPolicyLevelList.data) && Objects.equals(this.links, escalationPolicyLevelList.links) && - Objects.equals(this.meta, escalationPolicyLevelList.meta); + Objects.equals(this.meta, escalationPolicyLevelList.meta) && + Objects.equals(this.included, escalationPolicyLevelList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyLevelListDataInner.java b/src/main/java/com/rootly/client/model/EscalationPolicyLevelListDataInner.java index 5d5a7c17..c8177fde 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyLevelListDataInner.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyLevelListDataInner.java @@ -49,7 +49,7 @@ /** * EscalationPolicyLevelListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyLevelListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponse.java b/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponse.java index 536e03be..072fe2b2 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponse.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyLevelResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * EscalationPolicyLevelResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyLevelResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private EscalationPolicyLevelResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EscalationPolicyLevelResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull EscalationPolicyLevelResponseDat } + public EscalationPolicyLevelResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EscalationPolicyLevelResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } EscalationPolicyLevelResponse escalationPolicyLevelResponse = (EscalationPolicyLevelResponse) o; - return Objects.equals(this.data, escalationPolicyLevelResponse.data); + return Objects.equals(this.data, escalationPolicyLevelResponse.data) && + Objects.equals(this.included, escalationPolicyLevelResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class EscalationPolicyLevelResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` EscalationPolicyLevelResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponseData.java b/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponseData.java index ac5fc75d..154bdc70 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponseData.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyLevelResponseData.java @@ -49,7 +49,7 @@ /** * EscalationPolicyLevelResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyLevelResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyList.java b/src/main/java/com/rootly/client/model/EscalationPolicyList.java index ab2ba648..62425499 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyList.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * EscalationPolicyList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class EscalationPolicyList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EscalationPolicyList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public EscalationPolicyList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EscalationPolicyList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { EscalationPolicyList escalationPolicyList = (EscalationPolicyList) o; return Objects.equals(this.data, escalationPolicyList.data) && Objects.equals(this.links, escalationPolicyList.links) && - Objects.equals(this.meta, escalationPolicyList.meta); + Objects.equals(this.meta, escalationPolicyList.meta) && + Objects.equals(this.included, escalationPolicyList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyPath.java b/src/main/java/com/rootly/client/model/EscalationPolicyPath.java index dc817dfc..eb8228f7 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyPath.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyPath.java @@ -19,7 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.EscalationPolicyPathRulesInner; +import com.rootly.client.model.UpdateEscalationPolicyPathDataAttributesRulesInner; import com.rootly.client.model.UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner; import java.io.IOException; import java.util.ArrayList; @@ -53,7 +53,7 @@ /** * EscalationPolicyPath */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyPath { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -70,11 +70,130 @@ public class EscalationPolicyPath { @jakarta.annotation.Nonnull private String notificationType; + /** + * The type of escalation path + */ + @JsonAdapter(PathTypeEnum.Adapter.class) + public enum PathTypeEnum { + ESCALATION("escalation"), + + DEFERRAL("deferral"); + + private String value; + + PathTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PathTypeEnum fromValue(String value) { + for (PathTypeEnum b : PathTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PathTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PathTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PathTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PathTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PATH_TYPE = "path_type"; + @SerializedName(SERIALIZED_NAME_PATH_TYPE) + @jakarta.annotation.Nullable + private PathTypeEnum pathType; + public static final String SERIALIZED_NAME_ESCALATION_POLICY_ID = "escalation_policy_id"; @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_ID) @jakarta.annotation.Nonnull private String escalationPolicyId; + /** + * What happens after a deferral path finishes + */ + @JsonAdapter(AfterDeferralBehaviorEnum.Adapter.class) + public enum AfterDeferralBehaviorEnum { + RE_EVALUATE("re_evaluate"), + + EXECUTE_PATH("execute_path"); + + private String value; + + AfterDeferralBehaviorEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AfterDeferralBehaviorEnum fromValue(String value) { + for (AfterDeferralBehaviorEnum b : AfterDeferralBehaviorEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AfterDeferralBehaviorEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AfterDeferralBehaviorEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AfterDeferralBehaviorEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AfterDeferralBehaviorEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_AFTER_DEFERRAL_BEHAVIOR = "after_deferral_behavior"; + @SerializedName(SERIALIZED_NAME_AFTER_DEFERRAL_BEHAVIOR) + @jakarta.annotation.Nullable + private AfterDeferralBehaviorEnum afterDeferralBehavior; + + public static final String SERIALIZED_NAME_AFTER_DEFERRAL_PATH_ID = "after_deferral_path_id"; + @SerializedName(SERIALIZED_NAME_AFTER_DEFERRAL_PATH_ID) + @jakarta.annotation.Nullable + private String afterDeferralPathId; + /** * How path rules are matched. */ @@ -152,6 +271,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer initialDelay; + public static final String SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES = "retrigger_timeout_minutes"; + @SerializedName(SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private Integer retriggerTimeoutMinutes; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nullable @@ -165,7 +289,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_RULES = "rules"; @SerializedName(SERIALIZED_NAME_RULES) @jakarta.annotation.Nullable - private List rules = new ArrayList<>(); + private List rules = new ArrayList<>(); /** * Time zone used for time restrictions. @@ -230,8 +354,6 @@ public enum TimeRestrictionTimeZoneEnum { MEXICO_CITY("Mexico City"), - AMERICA_MEXICO_CITY2("America/Mexico_City"), - MONTERREY("Monterrey"), AMERICA_MONTERREY("America/Monterrey"), @@ -258,8 +380,6 @@ public enum TimeRestrictionTimeZoneEnum { QUITO("Quito"), - AMERICA_LIMA2("America/Lima"), - ATLANTIC_TIME_CANADA_("Atlantic Time (Canada)"), AMERICA_HALIFAX("America/Halifax"), @@ -320,14 +440,6 @@ public enum TimeRestrictionTimeZoneEnum { ATLANTIC_CAPE_VERDE("Atlantic/Cape_Verde"), - CASABLANCA("Casablanca"), - - AFRICA_CASABLANCA("Africa/Casablanca"), - - DUBLIN("Dublin"), - - EUROPE_DUBLIN("Europe/Dublin"), - EDINBURGH("Edinburgh"), EUROPE_LONDON("Europe/London"), @@ -338,8 +450,6 @@ public enum TimeRestrictionTimeZoneEnum { LONDON("London"), - EUROPE_LONDON2("Europe/London"), - MONROVIA("Monrovia"), AFRICA_MONROVIA("Africa/Monrovia"), @@ -376,10 +486,18 @@ public enum TimeRestrictionTimeZoneEnum { EUROPE_BUDAPEST("Europe/Budapest"), + CASABLANCA("Casablanca"), + + AFRICA_CASABLANCA("Africa/Casablanca"), + COPENHAGEN("Copenhagen"), EUROPE_COPENHAGEN("Europe/Copenhagen"), + DUBLIN("Dublin"), + + EUROPE_DUBLIN("Europe/Dublin"), + LJUBLJANA("Ljubljana"), EUROPE_LJUBLJANA("Europe/Ljubljana"), @@ -430,8 +548,6 @@ public enum TimeRestrictionTimeZoneEnum { ZURICH("Zurich"), - EUROPE_ZURICH2("Europe/Zurich"), - ATHENS("Athens"), EUROPE_ATHENS("Europe/Athens"), @@ -514,8 +630,6 @@ public enum TimeRestrictionTimeZoneEnum { ST_PETERSBURG("St. Petersburg"), - EUROPE_MOSCOW2("Europe/Moscow"), - VOLGOGRAD("Volgograd"), EUROPE_VOLGOGRAD("Europe/Volgograd"), @@ -534,8 +648,6 @@ public enum TimeRestrictionTimeZoneEnum { MUSCAT("Muscat"), - ASIA_MUSCAT2("Asia/Muscat"), - SAMARA("Samara"), EUROPE_SAMARA("Europe/Samara"), @@ -558,8 +670,6 @@ public enum TimeRestrictionTimeZoneEnum { ASTANA("Astana"), - ASIA_ALMATY2("Asia/Almaty"), - EKATERINBURG("Ekaterinburg"), ASIA_YEKATERINBURG("Asia/Yekaterinburg"), @@ -570,8 +680,6 @@ public enum TimeRestrictionTimeZoneEnum { KARACHI("Karachi"), - ASIA_KARACHI2("Asia/Karachi"), - TASHKENT("Tashkent"), ASIA_TASHKENT("Asia/Tashkent"), @@ -582,16 +690,10 @@ public enum TimeRestrictionTimeZoneEnum { KOLKATA("Kolkata"), - ASIA_KOLKATA2("Asia/Kolkata"), - MUMBAI("Mumbai"), - ASIA_KOLKATA3("Asia/Kolkata"), - NEW_DELHI("New Delhi"), - ASIA_KOLKATA4("Asia/Kolkata"), - SRI_JAYAWARDENEPURA("Sri Jayawardenepura"), ASIA_COLOMBO("Asia/Colombo"), @@ -618,8 +720,6 @@ public enum TimeRestrictionTimeZoneEnum { HANOI("Hanoi"), - ASIA_BANGKOK2("Asia/Bangkok"), - JAKARTA("Jakarta"), ASIA_JAKARTA("Asia/Jakarta"), @@ -674,16 +774,12 @@ public enum TimeRestrictionTimeZoneEnum { SAPPORO("Sapporo"), - ASIA_TOKYO2("Asia/Tokyo"), - SEOUL("Seoul"), ASIA_SEOUL("Asia/Seoul"), TOKYO("Tokyo"), - ASIA_TOKYO3("Asia/Tokyo"), - YAKUTSK("Yakutsk"), ASIA_YAKUTSK("Asia/Yakutsk"), @@ -762,8 +858,6 @@ public enum TimeRestrictionTimeZoneEnum { WELLINGTON("Wellington"), - PACIFIC_AUCKLAND2("Pacific/Auckland"), - CHATHAM_IS_("Chatham Is."), PACIFIC_CHATHAM("Pacific/Chatham"), @@ -778,7 +872,39 @@ public enum TimeRestrictionTimeZoneEnum { TOKELAU_IS_("Tokelau Is."), - PACIFIC_FAKAOFO("Pacific/Fakaofo"); + PACIFIC_FAKAOFO("Pacific/Fakaofo"), + + AMERICA_ADAK("America/Adak"), + + AMERICA_ATKA("America/Atka"), + + US_ALEUTIAN("US/Aleutian"), + + AMERICA_VANCOUVER("America/Vancouver"), + + CANADA_PACIFIC("Canada/Pacific"), + + AMERICA_MIQUELON("America/Miquelon"), + + AUSTRALIA_EUCLA("Australia/Eucla"), + + AUSTRALIA_LHI("Australia/LHI"), + + AUSTRALIA_LORD_HOWE("Australia/Lord_Howe"), + + CHILE_EASTER_ISLAND("Chile/EasterIsland"), + + PACIFIC_EASTER("Pacific/Easter"), + + PACIFIC_GAMBIER("Pacific/Gambier"), + + PACIFIC_PITCAIRN("Pacific/Pitcairn"), + + PACIFIC_MARQUESAS("Pacific/Marquesas"), + + PACIFIC_KIRITIMATI("Pacific/Kiritimati"), + + PACIFIC_NORFOLK("Pacific/Norfolk"); private String value; @@ -893,6 +1019,25 @@ public void setNotificationType(@jakarta.annotation.Nonnull String notificationT } + public EscalationPolicyPath pathType(@jakarta.annotation.Nullable PathTypeEnum pathType) { + this.pathType = pathType; + return this; + } + + /** + * The type of escalation path + * @return pathType + */ + @jakarta.annotation.Nullable + public PathTypeEnum getPathType() { + return pathType; + } + + public void setPathType(@jakarta.annotation.Nullable PathTypeEnum pathType) { + this.pathType = pathType; + } + + public EscalationPolicyPath escalationPolicyId(@jakarta.annotation.Nonnull String escalationPolicyId) { this.escalationPolicyId = escalationPolicyId; return this; @@ -912,6 +1057,44 @@ public void setEscalationPolicyId(@jakarta.annotation.Nonnull String escalationP } + public EscalationPolicyPath afterDeferralBehavior(@jakarta.annotation.Nullable AfterDeferralBehaviorEnum afterDeferralBehavior) { + this.afterDeferralBehavior = afterDeferralBehavior; + return this; + } + + /** + * What happens after a deferral path finishes + * @return afterDeferralBehavior + */ + @jakarta.annotation.Nullable + public AfterDeferralBehaviorEnum getAfterDeferralBehavior() { + return afterDeferralBehavior; + } + + public void setAfterDeferralBehavior(@jakarta.annotation.Nullable AfterDeferralBehaviorEnum afterDeferralBehavior) { + this.afterDeferralBehavior = afterDeferralBehavior; + } + + + public EscalationPolicyPath afterDeferralPathId(@jakarta.annotation.Nullable String afterDeferralPathId) { + this.afterDeferralPathId = afterDeferralPathId; + return this; + } + + /** + * The escalation path to execute after this deferral path when after_deferral_behavior is execute_path + * @return afterDeferralPathId + */ + @jakarta.annotation.Nullable + public String getAfterDeferralPathId() { + return afterDeferralPathId; + } + + public void setAfterDeferralPathId(@jakarta.annotation.Nullable String afterDeferralPathId) { + this.afterDeferralPathId = afterDeferralPathId; + } + + public EscalationPolicyPath matchMode(@jakarta.annotation.Nullable MatchModeEnum matchMode) { this.matchMode = matchMode; return this; @@ -1007,6 +1190,25 @@ public void setInitialDelay(@jakarta.annotation.Nullable Integer initialDelay) { } + public EscalationPolicyPath retriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + return this; + } + + /** + * Re-trigger acknowledged alerts on this path after N minutes; null inherits the urgency/workspace default, negative = never. + * @return retriggerTimeoutMinutes + */ + @jakarta.annotation.Nullable + public Integer getRetriggerTimeoutMinutes() { + return retriggerTimeoutMinutes; + } + + public void setRetriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + } + + public EscalationPolicyPath createdAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; return this; @@ -1045,12 +1247,12 @@ public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { } - public EscalationPolicyPath rules(@jakarta.annotation.Nullable List rules) { + public EscalationPolicyPath rules(@jakarta.annotation.Nullable List rules) { this.rules = rules; return this; } - public EscalationPolicyPath addRulesItem(EscalationPolicyPathRulesInner rulesItem) { + public EscalationPolicyPath addRulesItem(UpdateEscalationPolicyPathDataAttributesRulesInner rulesItem) { if (this.rules == null) { this.rules = new ArrayList<>(); } @@ -1063,11 +1265,11 @@ public EscalationPolicyPath addRulesItem(EscalationPolicyPathRulesInner rulesIte * @return rules */ @jakarta.annotation.Nullable - public List getRules() { + public List getRules() { return rules; } - public void setRules(@jakarta.annotation.Nullable List rules) { + public void setRules(@jakarta.annotation.Nullable List rules) { this.rules = rules; } @@ -1131,12 +1333,16 @@ public boolean equals(Object o) { return Objects.equals(this.name, escalationPolicyPath.name) && Objects.equals(this._default, escalationPolicyPath._default) && Objects.equals(this.notificationType, escalationPolicyPath.notificationType) && + Objects.equals(this.pathType, escalationPolicyPath.pathType) && Objects.equals(this.escalationPolicyId, escalationPolicyPath.escalationPolicyId) && + Objects.equals(this.afterDeferralBehavior, escalationPolicyPath.afterDeferralBehavior) && + Objects.equals(this.afterDeferralPathId, escalationPolicyPath.afterDeferralPathId) && Objects.equals(this.matchMode, escalationPolicyPath.matchMode) && Objects.equals(this.position, escalationPolicyPath.position) && Objects.equals(this.repeat, escalationPolicyPath.repeat) && Objects.equals(this.repeatCount, escalationPolicyPath.repeatCount) && Objects.equals(this.initialDelay, escalationPolicyPath.initialDelay) && + Objects.equals(this.retriggerTimeoutMinutes, escalationPolicyPath.retriggerTimeoutMinutes) && Objects.equals(this.createdAt, escalationPolicyPath.createdAt) && Objects.equals(this.updatedAt, escalationPolicyPath.updatedAt) && Objects.equals(this.rules, escalationPolicyPath.rules) && @@ -1150,7 +1356,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, _default, notificationType, escalationPolicyId, matchMode, position, repeat, repeatCount, initialDelay, createdAt, updatedAt, rules, timeRestrictionTimeZone, timeRestrictions); + return Objects.hash(name, _default, notificationType, pathType, escalationPolicyId, afterDeferralBehavior, afterDeferralPathId, matchMode, position, repeat, repeatCount, initialDelay, retriggerTimeoutMinutes, createdAt, updatedAt, rules, timeRestrictionTimeZone, timeRestrictions); } private static int hashCodeNullable(JsonNullable a) { @@ -1167,12 +1373,16 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" _default: ").append(toIndentedString(_default)).append("\n"); sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" pathType: ").append(toIndentedString(pathType)).append("\n"); sb.append(" escalationPolicyId: ").append(toIndentedString(escalationPolicyId)).append("\n"); + sb.append(" afterDeferralBehavior: ").append(toIndentedString(afterDeferralBehavior)).append("\n"); + sb.append(" afterDeferralPathId: ").append(toIndentedString(afterDeferralPathId)).append("\n"); sb.append(" matchMode: ").append(toIndentedString(matchMode)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" repeat: ").append(toIndentedString(repeat)).append("\n"); sb.append(" repeatCount: ").append(toIndentedString(repeatCount)).append("\n"); sb.append(" initialDelay: ").append(toIndentedString(initialDelay)).append("\n"); + sb.append(" retriggerTimeoutMinutes: ").append(toIndentedString(retriggerTimeoutMinutes)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append(" rules: ").append(toIndentedString(rules)).append("\n"); @@ -1203,12 +1413,16 @@ private String toIndentedString(Object o) { openapiFields.add("name"); openapiFields.add("default"); openapiFields.add("notification_type"); + openapiFields.add("path_type"); openapiFields.add("escalation_policy_id"); + openapiFields.add("after_deferral_behavior"); + openapiFields.add("after_deferral_path_id"); openapiFields.add("match_mode"); openapiFields.add("position"); openapiFields.add("repeat"); openapiFields.add("repeat_count"); openapiFields.add("initial_delay"); + openapiFields.add("retrigger_timeout_minutes"); openapiFields.add("created_at"); openapiFields.add("updated_at"); openapiFields.add("rules"); @@ -1259,9 +1473,26 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("notification_type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `notification_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notification_type").toString())); } + if ((jsonObj.get("path_type") != null && !jsonObj.get("path_type").isJsonNull()) && !jsonObj.get("path_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `path_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path_type").toString())); + } + // validate the optional field `path_type` + if (jsonObj.get("path_type") != null && !jsonObj.get("path_type").isJsonNull()) { + PathTypeEnum.validateJsonElement(jsonObj.get("path_type")); + } if (!jsonObj.get("escalation_policy_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_id").toString())); } + if ((jsonObj.get("after_deferral_behavior") != null && !jsonObj.get("after_deferral_behavior").isJsonNull()) && !jsonObj.get("after_deferral_behavior").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `after_deferral_behavior` to be a primitive type in the JSON string but got `%s`", jsonObj.get("after_deferral_behavior").toString())); + } + // validate the optional field `after_deferral_behavior` + if (jsonObj.get("after_deferral_behavior") != null && !jsonObj.get("after_deferral_behavior").isJsonNull()) { + AfterDeferralBehaviorEnum.validateJsonElement(jsonObj.get("after_deferral_behavior")); + } + if ((jsonObj.get("after_deferral_path_id") != null && !jsonObj.get("after_deferral_path_id").isJsonNull()) && !jsonObj.get("after_deferral_path_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `after_deferral_path_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("after_deferral_path_id").toString())); + } if ((jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) && !jsonObj.get("match_mode").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `match_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("match_mode").toString())); } @@ -1285,7 +1516,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti // validate the optional field `rules` (array) for (int i = 0; i < jsonArrayrules.size(); i++) { - EscalationPolicyPathRulesInner.validateJsonElement(jsonArrayrules.get(i)); + UpdateEscalationPolicyPathDataAttributesRulesInner.validateJsonElement(jsonArrayrules.get(i)); }; } } diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyPathList.java b/src/main/java/com/rootly/client/model/EscalationPolicyPathList.java index b97cd694..f608f40a 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyPathList.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyPathList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyPathListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * EscalationPolicyPathList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyPathList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class EscalationPolicyPathList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EscalationPolicyPathList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public EscalationPolicyPathList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EscalationPolicyPathList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { EscalationPolicyPathList escalationPolicyPathList = (EscalationPolicyPathList) o; return Objects.equals(this.data, escalationPolicyPathList.data) && Objects.equals(this.links, escalationPolicyPathList.links) && - Objects.equals(this.meta, escalationPolicyPathList.meta); + Objects.equals(this.meta, escalationPolicyPathList.meta) && + Objects.equals(this.included, escalationPolicyPathList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyPathListDataInner.java b/src/main/java/com/rootly/client/model/EscalationPolicyPathListDataInner.java index 166ade7b..b9a1aeec 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyPathListDataInner.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyPathListDataInner.java @@ -49,7 +49,7 @@ /** * EscalationPolicyPathListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyPathListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyPathResponse.java b/src/main/java/com/rootly/client/model/EscalationPolicyPathResponse.java index 180331ef..ddc89396 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyPathResponse.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyPathResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyPathResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * EscalationPolicyPathResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyPathResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private EscalationPolicyPathResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EscalationPolicyPathResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull EscalationPolicyPathResponseData } + public EscalationPolicyPathResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EscalationPolicyPathResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } EscalationPolicyPathResponse escalationPolicyPathResponse = (EscalationPolicyPathResponse) o; - return Objects.equals(this.data, escalationPolicyPathResponse.data); + return Objects.equals(this.data, escalationPolicyPathResponse.data) && + Objects.equals(this.included, escalationPolicyPathResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class EscalationPolicyPathResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` EscalationPolicyPathResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyPathResponseData.java b/src/main/java/com/rootly/client/model/EscalationPolicyPathResponseData.java index c9c2d184..64e75d7a 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyPathResponseData.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyPathResponseData.java @@ -49,7 +49,7 @@ /** * EscalationPolicyPathResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyPathResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyResponse.java b/src/main/java/com/rootly/client/model/EscalationPolicyResponse.java index 6acf4e09..a5a0b7d6 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyResponse.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * EscalationPolicyResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private EscalationPolicyResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public EscalationPolicyResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull EscalationPolicyResponseData dat } + public EscalationPolicyResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public EscalationPolicyResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } EscalationPolicyResponse escalationPolicyResponse = (EscalationPolicyResponse) o; - return Objects.equals(this.data, escalationPolicyResponse.data); + return Objects.equals(this.data, escalationPolicyResponse.data) && + Objects.equals(this.included, escalationPolicyResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class EscalationPolicyResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` EscalationPolicyResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/EscalationPolicyResponseData.java b/src/main/java/com/rootly/client/model/EscalationPolicyResponseData.java index d4e5cc6b..93bf9a9d 100644 --- a/src/main/java/com/rootly/client/model/EscalationPolicyResponseData.java +++ b/src/main/java/com/rootly/client/model/EscalationPolicyResponseData.java @@ -49,7 +49,7 @@ /** * EscalationPolicyResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class EscalationPolicyResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormField.java b/src/main/java/com/rootly/client/model/FormField.java index 2ddaa631..2f5043d8 100644 --- a/src/main/java/com/rootly/client/model/FormField.java +++ b/src/main/java/com/rootly/client/model/FormField.java @@ -51,7 +51,7 @@ /** * FormField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormField { /** * The kind of the form field @@ -82,6 +82,8 @@ public enum KindEnum { TEAMS("teams"), + STATUS("status"), + VISIBILITY("visibility"), MARK_AS_TEST("mark_as_test"), @@ -254,7 +256,13 @@ public enum ValueKindEnum { USER("user"), - CATALOG_ENTITY("catalog_entity"); + CATALOG_ENTITY("catalog_entity"), + + ENVIRONMENT("environment"), + + CAUSE("cause"), + + INCIDENT_TYPE("incident_type"); private String value; @@ -316,9 +324,66 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; + /** + * The resource type this field belongs to + */ + @JsonAdapter(ResourceTypeEnum.Adapter.class) + public enum ResourceTypeEnum { + INCIDENT("incident"), + + PROBLEM("problem"); + + private String value; + + ResourceTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ResourceTypeEnum fromValue(String value) { + for (ResourceTypeEnum b : ResourceTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ResourceTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ResourceTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ResourceTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ResourceTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_RESOURCE_TYPE = "resource_type"; + @SerializedName(SERIALIZED_NAME_RESOURCE_TYPE) + @jakarta.annotation.Nullable + private ResourceTypeEnum resourceType; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -349,6 +414,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private List defaultValues = new ArrayList<>(); + public static final String SERIALIZED_NAME_AUTO_SET_BY_CATALOG_PROPERTY_ID = "auto_set_by_catalog_property_id"; + @SerializedName(SERIALIZED_NAME_AUTO_SET_BY_CATALOG_PROPERTY_ID) + @jakarta.annotation.Nullable + private String autoSetByCatalogPropertyId; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -362,6 +432,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public FormField() { } + public FormField( + String slug + ) { + this(); + this.slug = slug; + } + public FormField kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; @@ -457,22 +534,33 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public FormField slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the form field * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; + + + public FormField resourceType(@jakarta.annotation.Nullable ResourceTypeEnum resourceType) { + this.resourceType = resourceType; + return this; + } + + /** + * The resource type this field belongs to + * @return resourceType + */ + @jakarta.annotation.Nullable + public ResourceTypeEnum getResourceType() { + return resourceType; + } + + public void setResourceType(@jakarta.annotation.Nullable ResourceTypeEnum resourceType) { + this.resourceType = resourceType; } @@ -614,6 +702,25 @@ public void setDefaultValues(@jakarta.annotation.Nonnull List defaultVal } + public FormField autoSetByCatalogPropertyId(@jakarta.annotation.Nullable String autoSetByCatalogPropertyId) { + this.autoSetByCatalogPropertyId = autoSetByCatalogPropertyId; + return this; + } + + /** + * Catalog property ID to auto-set this form field. Only reference-kind catalog properties are supported. + * @return autoSetByCatalogPropertyId + */ + @jakarta.annotation.Nullable + public String getAutoSetByCatalogPropertyId() { + return autoSetByCatalogPropertyId; + } + + public void setAutoSetByCatalogPropertyId(@jakarta.annotation.Nullable String autoSetByCatalogPropertyId) { + this.autoSetByCatalogPropertyId = autoSetByCatalogPropertyId; + } + + public FormField createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -668,12 +775,14 @@ public boolean equals(Object o) { Objects.equals(this.valueKindCatalogId, formField.valueKindCatalogId) && Objects.equals(this.name, formField.name) && Objects.equals(this.slug, formField.slug) && + Objects.equals(this.resourceType, formField.resourceType) && Objects.equals(this.description, formField.description) && Objects.equals(this.shown, formField.shown) && Objects.equals(this.required, formField.required) && Objects.equals(this.showOnIncidentDetails, formField.showOnIncidentDetails) && Objects.equals(this.enabled, formField.enabled) && Objects.equals(this.defaultValues, formField.defaultValues) && + Objects.equals(this.autoSetByCatalogPropertyId, formField.autoSetByCatalogPropertyId) && Objects.equals(this.createdAt, formField.createdAt) && Objects.equals(this.updatedAt, formField.updatedAt); } @@ -684,7 +793,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(kind, inputKind, valueKind, valueKindCatalogId, name, slug, description, shown, required, showOnIncidentDetails, enabled, defaultValues, createdAt, updatedAt); + return Objects.hash(kind, inputKind, valueKind, valueKindCatalogId, name, slug, resourceType, description, shown, required, showOnIncidentDetails, enabled, defaultValues, autoSetByCatalogPropertyId, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -704,12 +813,14 @@ public String toString() { sb.append(" valueKindCatalogId: ").append(toIndentedString(valueKindCatalogId)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" resourceType: ").append(toIndentedString(resourceType)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" shown: ").append(toIndentedString(shown)).append("\n"); sb.append(" required: ").append(toIndentedString(required)).append("\n"); sb.append(" showOnIncidentDetails: ").append(toIndentedString(showOnIncidentDetails)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" defaultValues: ").append(toIndentedString(defaultValues)).append("\n"); + sb.append(" autoSetByCatalogPropertyId: ").append(toIndentedString(autoSetByCatalogPropertyId)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -740,12 +851,14 @@ private String toIndentedString(Object o) { openapiFields.add("value_kind_catalog_id"); openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("resource_type"); openapiFields.add("description"); openapiFields.add("shown"); openapiFields.add("required"); openapiFields.add("show_on_incident_details"); openapiFields.add("enabled"); openapiFields.add("default_values"); + openapiFields.add("auto_set_by_catalog_property_id"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -755,7 +868,6 @@ private String toIndentedString(Object o) { openapiRequiredFields.add("input_kind"); openapiRequiredFields.add("value_kind"); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("shown"); openapiRequiredFields.add("required"); openapiRequiredFields.add("default_values"); @@ -812,9 +924,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("resource_type") != null && !jsonObj.get("resource_type").isJsonNull()) && !jsonObj.get("resource_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `resource_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("resource_type").toString())); + } + // validate the optional field `resource_type` + if (jsonObj.get("resource_type") != null && !jsonObj.get("resource_type").isJsonNull()) { + ResourceTypeEnum.validateJsonElement(jsonObj.get("resource_type")); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } @@ -836,6 +955,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } else if (!jsonObj.get("default_values").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `default_values` to be an array in the JSON string but got `%s`", jsonObj.get("default_values").toString())); } + if ((jsonObj.get("auto_set_by_catalog_property_id") != null && !jsonObj.get("auto_set_by_catalog_property_id").isJsonNull()) && !jsonObj.get("auto_set_by_catalog_property_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `auto_set_by_catalog_property_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("auto_set_by_catalog_property_id").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/FormFieldList.java b/src/main/java/com/rootly/client/model/FormFieldList.java index 7a7dbb32..58a81a00 100644 --- a/src/main/java/com/rootly/client/model/FormFieldList.java +++ b/src/main/java/com/rootly/client/model/FormFieldList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FormFieldList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FormFieldList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FormFieldList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FormFieldList formFieldList = (FormFieldList) o; return Objects.equals(this.data, formFieldList.data) && Objects.equals(this.links, formFieldList.links) && - Objects.equals(this.meta, formFieldList.meta); + Objects.equals(this.meta, formFieldList.meta) && + Objects.equals(this.included, formFieldList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldOption.java b/src/main/java/com/rootly/client/model/FormFieldOption.java index 6441f4b1..e231c061 100644 --- a/src/main/java/com/rootly/client/model/FormFieldOption.java +++ b/src/main/java/com/rootly/client/model/FormFieldOption.java @@ -48,7 +48,7 @@ /** * FormFieldOption */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldOption { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormFieldOptionList.java b/src/main/java/com/rootly/client/model/FormFieldOptionList.java index 0ec86576..aee5f0ab 100644 --- a/src/main/java/com/rootly/client/model/FormFieldOptionList.java +++ b/src/main/java/com/rootly/client/model/FormFieldOptionList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FormFieldOptionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldOptionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FormFieldOptionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldOptionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FormFieldOptionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldOptionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FormFieldOptionList formFieldOptionList = (FormFieldOptionList) o; return Objects.equals(this.data, formFieldOptionList.data) && Objects.equals(this.links, formFieldOptionList.links) && - Objects.equals(this.meta, formFieldOptionList.meta); + Objects.equals(this.meta, formFieldOptionList.meta) && + Objects.equals(this.included, formFieldOptionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldOptionResponse.java b/src/main/java/com/rootly/client/model/FormFieldOptionResponse.java index e98fd8d2..2543d9bc 100644 --- a/src/main/java/com/rootly/client/model/FormFieldOptionResponse.java +++ b/src/main/java/com/rootly/client/model/FormFieldOptionResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FormFieldOptionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldOptionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FormFieldOptionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldOptionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FormFieldOptionResponseData data } + public FormFieldOptionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldOptionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FormFieldOptionResponse formFieldOptionResponse = (FormFieldOptionResponse) o; - return Objects.equals(this.data, formFieldOptionResponse.data); + return Objects.equals(this.data, formFieldOptionResponse.data) && + Objects.equals(this.included, formFieldOptionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FormFieldOptionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FormFieldOptionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldOptionResponseData.java b/src/main/java/com/rootly/client/model/FormFieldOptionResponseData.java index 4df4bad2..64e15c33 100644 --- a/src/main/java/com/rootly/client/model/FormFieldOptionResponseData.java +++ b/src/main/java/com/rootly/client/model/FormFieldOptionResponseData.java @@ -49,7 +49,7 @@ /** * FormFieldOptionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldOptionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacement.java b/src/main/java/com/rootly/client/model/FormFieldPlacement.java index d45d0235..fe7b5357 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacement.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacement.java @@ -48,7 +48,7 @@ /** * FormFieldPlacement */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacement { public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) @@ -222,7 +222,7 @@ public FormFieldPlacement formSetId(@jakarta.annotation.Nonnull String formSetId } /** - * The form set this field is placed in. + * The form set this field is placed in. The form set must have the same `resource_type` as the form field, otherwise the request is rejected with 422. * @return formSetId */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacementCondition.java b/src/main/java/com/rootly/client/model/FormFieldPlacementCondition.java index c2ded34b..384f31ce 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacementCondition.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacementCondition.java @@ -50,7 +50,7 @@ /** * FormFieldPlacementCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacementCondition { public static final String SERIALIZED_NAME_FORM_FIELD_PLACEMENT_ID = "form_field_placement_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_PLACEMENT_ID) diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacementConditionList.java b/src/main/java/com/rootly/client/model/FormFieldPlacementConditionList.java index a6a07698..18a5ef58 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacementConditionList.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacementConditionList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FormFieldPlacementConditionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacementConditionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FormFieldPlacementConditionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldPlacementConditionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FormFieldPlacementConditionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldPlacementConditionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FormFieldPlacementConditionList formFieldPlacementConditionList = (FormFieldPlacementConditionList) o; return Objects.equals(this.data, formFieldPlacementConditionList.data) && Objects.equals(this.links, formFieldPlacementConditionList.links) && - Objects.equals(this.meta, formFieldPlacementConditionList.meta); + Objects.equals(this.meta, formFieldPlacementConditionList.meta) && + Objects.equals(this.included, formFieldPlacementConditionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponse.java b/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponse.java index a7419b0d..8f194450 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponse.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FormFieldPlacementConditionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacementConditionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FormFieldPlacementConditionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldPlacementConditionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FormFieldPlacementConditionRespo } + public FormFieldPlacementConditionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldPlacementConditionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FormFieldPlacementConditionResponse formFieldPlacementConditionResponse = (FormFieldPlacementConditionResponse) o; - return Objects.equals(this.data, formFieldPlacementConditionResponse.data); + return Objects.equals(this.data, formFieldPlacementConditionResponse.data) && + Objects.equals(this.included, formFieldPlacementConditionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FormFieldPlacementConditionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FormFieldPlacementConditionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponseData.java b/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponseData.java index 17913075..d9bdecbc 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponseData.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacementConditionResponseData.java @@ -49,7 +49,7 @@ /** * FormFieldPlacementConditionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacementConditionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacementList.java b/src/main/java/com/rootly/client/model/FormFieldPlacementList.java index dcfeeec2..6e72f9f2 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacementList.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacementList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FormFieldPlacementList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacementList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FormFieldPlacementList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldPlacementList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FormFieldPlacementList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldPlacementList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FormFieldPlacementList formFieldPlacementList = (FormFieldPlacementList) o; return Objects.equals(this.data, formFieldPlacementList.data) && Objects.equals(this.links, formFieldPlacementList.links) && - Objects.equals(this.meta, formFieldPlacementList.meta); + Objects.equals(this.meta, formFieldPlacementList.meta) && + Objects.equals(this.included, formFieldPlacementList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacementResponse.java b/src/main/java/com/rootly/client/model/FormFieldPlacementResponse.java index 64185050..a09c68db 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacementResponse.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacementResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FormFieldPlacementResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacementResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FormFieldPlacementResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldPlacementResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FormFieldPlacementResponseData d } + public FormFieldPlacementResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldPlacementResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FormFieldPlacementResponse formFieldPlacementResponse = (FormFieldPlacementResponse) o; - return Objects.equals(this.data, formFieldPlacementResponse.data); + return Objects.equals(this.data, formFieldPlacementResponse.data) && + Objects.equals(this.included, formFieldPlacementResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FormFieldPlacementResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FormFieldPlacementResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldPlacementResponseData.java b/src/main/java/com/rootly/client/model/FormFieldPlacementResponseData.java index 2907d622..e832c833 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPlacementResponseData.java +++ b/src/main/java/com/rootly/client/model/FormFieldPlacementResponseData.java @@ -49,7 +49,7 @@ /** * FormFieldPlacementResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPlacementResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormFieldPosition.java b/src/main/java/com/rootly/client/model/FormFieldPosition.java index a8194d7c..fbd0ec71 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPosition.java +++ b/src/main/java/com/rootly/client/model/FormFieldPosition.java @@ -48,7 +48,7 @@ /** * FormFieldPosition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPosition { public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) @@ -92,7 +92,15 @@ public enum FormEnum { SLACK_SCHEDULED_INCIDENT_FORM("slack_scheduled_incident_form"), - SLACK_UPDATE_SCHEDULED_INCIDENT_FORM("slack_update_scheduled_incident_form"); + SLACK_UPDATE_SCHEDULED_INCIDENT_FORM("slack_update_scheduled_incident_form"), + + WEB_ACTION_ITEM_FORM("web_action_item_form"), + + SLACK_ACTION_ITEM_FORM("slack_action_item_form"), + + WEB_TASK_FORM("web_task_form"), + + SLACK_TASK_FORM("slack_task_form"); private String value; diff --git a/src/main/java/com/rootly/client/model/FormFieldPositionList.java b/src/main/java/com/rootly/client/model/FormFieldPositionList.java index 5e8c9786..7aa542e4 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPositionList.java +++ b/src/main/java/com/rootly/client/model/FormFieldPositionList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPositionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FormFieldPositionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPositionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FormFieldPositionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldPositionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FormFieldPositionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldPositionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FormFieldPositionList formFieldPositionList = (FormFieldPositionList) o; return Objects.equals(this.data, formFieldPositionList.data) && Objects.equals(this.links, formFieldPositionList.links) && - Objects.equals(this.meta, formFieldPositionList.meta); + Objects.equals(this.meta, formFieldPositionList.meta) && + Objects.equals(this.included, formFieldPositionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldPositionResponse.java b/src/main/java/com/rootly/client/model/FormFieldPositionResponse.java index d65a6540..88ca4656 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPositionResponse.java +++ b/src/main/java/com/rootly/client/model/FormFieldPositionResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPositionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FormFieldPositionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPositionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FormFieldPositionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldPositionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FormFieldPositionResponseData da } + public FormFieldPositionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldPositionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FormFieldPositionResponse formFieldPositionResponse = (FormFieldPositionResponse) o; - return Objects.equals(this.data, formFieldPositionResponse.data); + return Objects.equals(this.data, formFieldPositionResponse.data) && + Objects.equals(this.included, formFieldPositionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FormFieldPositionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FormFieldPositionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldPositionResponseData.java b/src/main/java/com/rootly/client/model/FormFieldPositionResponseData.java index 14ae5e0e..7a79698a 100644 --- a/src/main/java/com/rootly/client/model/FormFieldPositionResponseData.java +++ b/src/main/java/com/rootly/client/model/FormFieldPositionResponseData.java @@ -49,7 +49,7 @@ /** * FormFieldPositionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldPositionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormFieldResponse.java b/src/main/java/com/rootly/client/model/FormFieldResponse.java index ff7b6403..e17c06b9 100644 --- a/src/main/java/com/rootly/client/model/FormFieldResponse.java +++ b/src/main/java/com/rootly/client/model/FormFieldResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FormFieldResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FormFieldResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormFieldResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FormFieldResponseData data) { } + public FormFieldResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormFieldResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FormFieldResponse formFieldResponse = (FormFieldResponse) o; - return Objects.equals(this.data, formFieldResponse.data); + return Objects.equals(this.data, formFieldResponse.data) && + Objects.equals(this.included, formFieldResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FormFieldResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FormFieldResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormFieldResponseData.java b/src/main/java/com/rootly/client/model/FormFieldResponseData.java index d8074f7b..eb5a8865 100644 --- a/src/main/java/com/rootly/client/model/FormFieldResponseData.java +++ b/src/main/java/com/rootly/client/model/FormFieldResponseData.java @@ -49,7 +49,7 @@ /** * FormFieldResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormFieldResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormSet.java b/src/main/java/com/rootly/client/model/FormSet.java index 88822029..a8edbf43 100644 --- a/src/main/java/com/rootly/client/model/FormSet.java +++ b/src/main/java/com/rootly/client/model/FormSet.java @@ -50,7 +50,7 @@ /** * FormSet */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSet { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -59,7 +59,7 @@ public class FormSet { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_IS_DEFAULT = "is_default"; @@ -85,6 +85,13 @@ public class FormSet { public FormSet() { } + public FormSet( + String slug + ) { + this(); + this.slug = slug; + } + public FormSet name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -104,23 +111,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public FormSet slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the form set * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public FormSet isDefault(@jakarta.annotation.Nonnull Boolean isDefault) { @@ -156,7 +155,7 @@ public FormSet addFormsItem(String formsItem) { } /** - * The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form` + * The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`, `google_chat_update_incident_form`, `microsoft_teams_new_incident_form` * @return forms */ @jakarta.annotation.Nonnull @@ -272,7 +271,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("is_default"); openapiRequiredFields.add("forms"); openapiRequiredFields.add("created_at"); @@ -310,7 +308,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } // ensure the required json array is present diff --git a/src/main/java/com/rootly/client/model/FormSetCondition.java b/src/main/java/com/rootly/client/model/FormSetCondition.java index dd7714a5..8764277d 100644 --- a/src/main/java/com/rootly/client/model/FormSetCondition.java +++ b/src/main/java/com/rootly/client/model/FormSetCondition.java @@ -50,7 +50,7 @@ /** * FormSetCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSetCondition { public static final String SERIALIZED_NAME_FORM_SET_ID = "form_set_id"; @SerializedName(SERIALIZED_NAME_FORM_SET_ID) diff --git a/src/main/java/com/rootly/client/model/FormSetConditionList.java b/src/main/java/com/rootly/client/model/FormSetConditionList.java index 5a935fe1..541f17fd 100644 --- a/src/main/java/com/rootly/client/model/FormSetConditionList.java +++ b/src/main/java/com/rootly/client/model/FormSetConditionList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FormSetConditionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSetConditionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FormSetConditionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormSetConditionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FormSetConditionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormSetConditionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FormSetConditionList formSetConditionList = (FormSetConditionList) o; return Objects.equals(this.data, formSetConditionList.data) && Objects.equals(this.links, formSetConditionList.links) && - Objects.equals(this.meta, formSetConditionList.meta); + Objects.equals(this.meta, formSetConditionList.meta) && + Objects.equals(this.included, formSetConditionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormSetConditionResponse.java b/src/main/java/com/rootly/client/model/FormSetConditionResponse.java index 4187fe3d..100b254d 100644 --- a/src/main/java/com/rootly/client/model/FormSetConditionResponse.java +++ b/src/main/java/com/rootly/client/model/FormSetConditionResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FormSetConditionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSetConditionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FormSetConditionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormSetConditionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FormSetConditionResponseData dat } + public FormSetConditionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormSetConditionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FormSetConditionResponse formSetConditionResponse = (FormSetConditionResponse) o; - return Objects.equals(this.data, formSetConditionResponse.data); + return Objects.equals(this.data, formSetConditionResponse.data) && + Objects.equals(this.included, formSetConditionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FormSetConditionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FormSetConditionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormSetConditionResponseData.java b/src/main/java/com/rootly/client/model/FormSetConditionResponseData.java index 8b7a1d90..1e521652 100644 --- a/src/main/java/com/rootly/client/model/FormSetConditionResponseData.java +++ b/src/main/java/com/rootly/client/model/FormSetConditionResponseData.java @@ -49,7 +49,7 @@ /** * FormSetConditionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSetConditionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/FormSetList.java b/src/main/java/com/rootly/client/model/FormSetList.java index 05928f6e..2a1b182d 100644 --- a/src/main/java/com/rootly/client/model/FormSetList.java +++ b/src/main/java/com/rootly/client/model/FormSetList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FormSetList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSetList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FormSetList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormSetList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FormSetList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormSetList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FormSetList formSetList = (FormSetList) o; return Objects.equals(this.data, formSetList.data) && Objects.equals(this.links, formSetList.links) && - Objects.equals(this.meta, formSetList.meta); + Objects.equals(this.meta, formSetList.meta) && + Objects.equals(this.included, formSetList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormSetResponse.java b/src/main/java/com/rootly/client/model/FormSetResponse.java index 91ffc123..090e0c2f 100644 --- a/src/main/java/com/rootly/client/model/FormSetResponse.java +++ b/src/main/java/com/rootly/client/model/FormSetResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FormSetResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSetResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FormSetResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FormSetResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FormSetResponseData data) { } + public FormSetResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FormSetResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FormSetResponse formSetResponse = (FormSetResponse) o; - return Objects.equals(this.data, formSetResponse.data); + return Objects.equals(this.data, formSetResponse.data) && + Objects.equals(this.included, formSetResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FormSetResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FormSetResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FormSetResponseData.java b/src/main/java/com/rootly/client/model/FormSetResponseData.java index b905e77c..305bd258 100644 --- a/src/main/java/com/rootly/client/model/FormSetResponseData.java +++ b/src/main/java/com/rootly/client/model/FormSetResponseData.java @@ -49,7 +49,7 @@ /** * FormSetResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FormSetResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Functionality.java b/src/main/java/com/rootly/client/model/Functionality.java index 170d307d..de11662e 100644 --- a/src/main/java/com/rootly/client/model/Functionality.java +++ b/src/main/java/com/rootly/client/model/Functionality.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,7 +54,7 @@ /** * Functionality */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Functionality { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -65,6 +66,73 @@ public class Functionality { @jakarta.annotation.Nullable private String slug; + /** + * How this functionality is managed (provenance): web, api, terraform, etc. Read-only. + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -145,6 +213,11 @@ public class Functionality { @jakarta.annotation.Nullable private List ownerUserIds; + public static final String SERIALIZED_NAME_ESCALATION_POLICY_ID = "escalation_policy_id"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_ID) + @jakarta.annotation.Nullable + private String escalationPolicyId; + public static final String SERIALIZED_NAME_SLACK_CHANNELS = "slack_channels"; @SerializedName(SERIALIZED_NAME_SLACK_CHANNELS) @jakarta.annotation.Nullable @@ -155,6 +228,11 @@ public class Functionality { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -168,6 +246,13 @@ public class Functionality { public Functionality() { } + public Functionality( + String slug + ) { + this(); + this.slug = slug; + } + public Functionality name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -187,11 +272,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Functionality slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the functionality * @return slug @@ -201,8 +281,24 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + + + public Functionality managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * How this functionality is managed (provenance): web, api, terraform, etc. Read-only. + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; } @@ -231,7 +327,7 @@ public Functionality publicDescription(@jakarta.annotation.Nullable String publi } /** - * The public description of the functionality + * The status page description of the functionality * @return publicDescription */ @jakarta.annotation.Nullable @@ -550,6 +646,25 @@ public void setOwnerUserIds(@jakarta.annotation.Nullable List ownerUser } + public Functionality escalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + return this; + } + + /** + * The escalation policy id of the functionality + * @return escalationPolicyId + */ + @jakarta.annotation.Nullable + public String getEscalationPolicyId() { + return escalationPolicyId; + } + + public void setEscalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + } + + public Functionality slackChannels(@jakarta.annotation.Nullable List slackChannels) { this.slackChannels = slackChannels; return this; @@ -604,6 +719,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public Functionality addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this functionality. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + public Functionality createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -654,6 +796,7 @@ public boolean equals(Object o) { Functionality functionality = (Functionality) o; return Objects.equals(this.name, functionality.name) && Objects.equals(this.slug, functionality.slug) && + Objects.equals(this.managedBy, functionality.managedBy) && Objects.equals(this.description, functionality.description) && Objects.equals(this.publicDescription, functionality.publicDescription) && Objects.equals(this.notifyEmails, functionality.notifyEmails) && @@ -670,8 +813,10 @@ public boolean equals(Object o) { Objects.equals(this.serviceIds, functionality.serviceIds) && Objects.equals(this.ownerGroupIds, functionality.ownerGroupIds) && Objects.equals(this.ownerUserIds, functionality.ownerUserIds) && + Objects.equals(this.escalationPolicyId, functionality.escalationPolicyId) && Objects.equals(this.slackChannels, functionality.slackChannels) && Objects.equals(this.slackAliases, functionality.slackAliases) && + Objects.equals(this.properties, functionality.properties) && Objects.equals(this.createdAt, functionality.createdAt) && Objects.equals(this.updatedAt, functionality.updatedAt); } @@ -682,7 +827,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, publicDescription, notifyEmails, color, backstageId, externalId, pagerdutyId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, position, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, slackChannels, slackAliases, createdAt, updatedAt); + return Objects.hash(name, slug, managedBy, description, publicDescription, notifyEmails, color, backstageId, externalId, pagerdutyId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, position, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, escalationPolicyId, slackChannels, slackAliases, properties, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -698,6 +843,7 @@ public String toString() { sb.append("class Functionality {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); @@ -714,8 +860,10 @@ public String toString() { sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" ownerUserIds: ").append(toIndentedString(ownerUserIds)).append("\n"); + sb.append(" escalationPolicyId: ").append(toIndentedString(escalationPolicyId)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -742,6 +890,7 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("managed_by"); openapiFields.add("description"); openapiFields.add("public_description"); openapiFields.add("notify_emails"); @@ -758,8 +907,10 @@ private String toIndentedString(Object o) { openapiFields.add("service_ids"); openapiFields.add("owner_group_ids"); openapiFields.add("owner_user_ids"); + openapiFields.add("escalation_policy_id"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -804,6 +955,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } @@ -854,6 +1012,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("owner_user_ids") != null && !jsonObj.get("owner_user_ids").isJsonNull() && !jsonObj.get("owner_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `owner_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_user_ids").toString())); } + if ((jsonObj.get("escalation_policy_id") != null && !jsonObj.get("escalation_policy_id").isJsonNull()) && !jsonObj.get("escalation_policy_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_id").toString())); + } if (jsonObj.get("slack_channels") != null && !jsonObj.get("slack_channels").isJsonNull()) { JsonArray jsonArrayslackChannels = jsonObj.getAsJsonArray("slack_channels"); if (jsonArrayslackChannels != null) { @@ -882,6 +1043,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/FunctionalityList.java b/src/main/java/com/rootly/client/model/FunctionalityList.java index 8f5c5d9b..95d508ed 100644 --- a/src/main/java/com/rootly/client/model/FunctionalityList.java +++ b/src/main/java/com/rootly/client/model/FunctionalityList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * FunctionalityList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FunctionalityList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class FunctionalityList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FunctionalityList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public FunctionalityList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FunctionalityList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { FunctionalityList functionalityList = (FunctionalityList) o; return Objects.equals(this.data, functionalityList.data) && Objects.equals(this.links, functionalityList.links) && - Objects.equals(this.meta, functionalityList.meta); + Objects.equals(this.meta, functionalityList.meta) && + Objects.equals(this.included, functionalityList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FunctionalityResponse.java b/src/main/java/com/rootly/client/model/FunctionalityResponse.java index e9307a66..66abd8ad 100644 --- a/src/main/java/com/rootly/client/model/FunctionalityResponse.java +++ b/src/main/java/com/rootly/client/model/FunctionalityResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * FunctionalityResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FunctionalityResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private FunctionalityResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public FunctionalityResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull FunctionalityResponseData data) } + public FunctionalityResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public FunctionalityResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } FunctionalityResponse functionalityResponse = (FunctionalityResponse) o; - return Objects.equals(this.data, functionalityResponse.data); + return Objects.equals(this.data, functionalityResponse.data) && + Objects.equals(this.included, functionalityResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FunctionalityResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` FunctionalityResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/FunctionalityResponseData.java b/src/main/java/com/rootly/client/model/FunctionalityResponseData.java index b27e263d..f727e40b 100644 --- a/src/main/java/com/rootly/client/model/FunctionalityResponseData.java +++ b/src/main/java/com/rootly/client/model/FunctionalityResponseData.java @@ -49,7 +49,7 @@ /** * FunctionalityResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class FunctionalityResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/GetAlertFieldIdParameter.java b/src/main/java/com/rootly/client/model/GetAlertFieldIdParameter.java index 4261fcdb..e7b5d05c 100644 --- a/src/main/java/com/rootly/client/model/GetAlertFieldIdParameter.java +++ b/src/main/java/com/rootly/client/model/GetAlertFieldIdParameter.java @@ -51,7 +51,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class GetAlertFieldIdParameter extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(GetAlertFieldIdParameter.class.getName()); diff --git a/src/main/java/com/rootly/client/model/GetAlertsTaskParams.java b/src/main/java/com/rootly/client/model/GetAlertsTaskParams.java index 4c0d7175..5d60ee70 100644 --- a/src/main/java/com/rootly/client/model/GetAlertsTaskParams.java +++ b/src/main/java/com/rootly/client/model/GetAlertsTaskParams.java @@ -52,7 +52,7 @@ /** * GetAlertsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class GetAlertsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParams.java b/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParams.java index c2fc7652..8afd3677 100644 --- a/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParams.java +++ b/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParams.java @@ -19,485 +19,251 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf; +import com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf1; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * GetGithubCommitsTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class GetGithubCommitsTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - GET_GITHUB_COMMITS("get_github_commits"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class GetGithubCommitsTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(GetGithubCommitsTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetGithubCommitsTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetGithubCommitsTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterGetGithubCommitsTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(GetGithubCommitsTaskParamsAnyOf.class)); + final TypeAdapter adapterGetGithubCommitsTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(GetGithubCommitsTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetGithubCommitsTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `GetGithubCommitsTaskParamsAnyOf` + if (value.getActualInstance() instanceof GetGithubCommitsTaskParamsAnyOf) { + JsonElement element = adapterGetGithubCommitsTaskParamsAnyOf.toJsonTree((GetGithubCommitsTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `GetGithubCommitsTaskParamsAnyOf1` + if (value.getActualInstance() instanceof GetGithubCommitsTaskParamsAnyOf1) { + JsonElement element = adapterGetGithubCommitsTaskParamsAnyOf1.toJsonTree((GetGithubCommitsTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: GetGithubCommitsTaskParamsAnyOf, GetGithubCommitsTaskParamsAnyOf1"); + } + + @Override + public GetGithubCommitsTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize GetGithubCommitsTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + GetGithubCommitsTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterGetGithubCommitsTaskParamsAnyOf; + GetGithubCommitsTaskParams ret = new GetGithubCommitsTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for GetGithubCommitsTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GetGithubCommitsTaskParamsAnyOf'", e); + } + // deserialize GetGithubCommitsTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + GetGithubCommitsTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterGetGithubCommitsTaskParamsAnyOf1; + GetGithubCommitsTaskParams ret = new GetGithubCommitsTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for GetGithubCommitsTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GetGithubCommitsTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for GetGithubCommitsTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + public GetGithubCommitsTaskParams() { + super("anyOf", Boolean.FALSE); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); + public GetGithubCommitsTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_SERVICE_IDS = "service_ids"; - @SerializedName(SERIALIZED_NAME_SERVICE_IDS) - @jakarta.annotation.Nullable - private List serviceIds = new ArrayList<>(); - - public static final String SERIALIZED_NAME_GITHUB_REPOSITORY_NAMES = "github_repository_names"; - @SerializedName(SERIALIZED_NAME_GITHUB_REPOSITORY_NAMES) - @jakarta.annotation.Nullable - private List githubRepositoryNames = new ArrayList<>(); - - public static final String SERIALIZED_NAME_BRANCH = "branch"; - @SerializedName(SERIALIZED_NAME_BRANCH) - @jakarta.annotation.Nonnull - private String branch; - - public static final String SERIALIZED_NAME_PAST_DURATION = "past_duration"; - @SerializedName(SERIALIZED_NAME_PAST_DURATION) - @jakarta.annotation.Nonnull - private String pastDuration; - - public static final String SERIALIZED_NAME_SERVICES_IMPACTED_BY_INCIDENT = "services_impacted_by_incident"; - @SerializedName(SERIALIZED_NAME_SERVICES_IMPACTED_BY_INCIDENT) - @jakarta.annotation.Nullable - private Boolean servicesImpactedByIncident; - - public static final String SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE = "post_to_incident_timeline"; - @SerializedName(SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE) - @jakarta.annotation.Nullable - private Boolean postToIncidentTimeline; - - public static final String SERIALIZED_NAME_POST_TO_SLACK_CHANNELS = "post_to_slack_channels"; - @SerializedName(SERIALIZED_NAME_POST_TO_SLACK_CHANNELS) - @jakarta.annotation.Nullable - private List postToSlackChannels = new ArrayList<>(); - - public GetGithubCommitsTaskParams() { - } - - public GetGithubCommitsTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - public GetGithubCommitsTaskParams serviceIds(@jakarta.annotation.Nullable List serviceIds) { - this.serviceIds = serviceIds; - return this; - } - - public GetGithubCommitsTaskParams addServiceIdsItem(String serviceIdsItem) { - if (this.serviceIds == null) { - this.serviceIds = new ArrayList<>(); + static { + schemas.put("GetGithubCommitsTaskParamsAnyOf", GetGithubCommitsTaskParamsAnyOf.class); + schemas.put("GetGithubCommitsTaskParamsAnyOf1", GetGithubCommitsTaskParamsAnyOf1.class); } - this.serviceIds.add(serviceIdsItem); - return this; - } - - /** - * Get serviceIds - * @return serviceIds - */ - @jakarta.annotation.Nullable - public List getServiceIds() { - return serviceIds; - } - - public void setServiceIds(@jakarta.annotation.Nullable List serviceIds) { - this.serviceIds = serviceIds; - } - - public GetGithubCommitsTaskParams githubRepositoryNames(@jakarta.annotation.Nullable List githubRepositoryNames) { - this.githubRepositoryNames = githubRepositoryNames; - return this; - } - - public GetGithubCommitsTaskParams addGithubRepositoryNamesItem(String githubRepositoryNamesItem) { - if (this.githubRepositoryNames == null) { - this.githubRepositoryNames = new ArrayList<>(); + @Override + public Map> getSchemas() { + return GetGithubCommitsTaskParams.schemas; } - this.githubRepositoryNames.add(githubRepositoryNamesItem); - return this; - } - - /** - * Get githubRepositoryNames - * @return githubRepositoryNames - */ - @jakarta.annotation.Nullable - public List getGithubRepositoryNames() { - return githubRepositoryNames; - } - - public void setGithubRepositoryNames(@jakarta.annotation.Nullable List githubRepositoryNames) { - this.githubRepositoryNames = githubRepositoryNames; - } - - - public GetGithubCommitsTaskParams branch(@jakarta.annotation.Nonnull String branch) { - this.branch = branch; - return this; - } - - /** - * The branch - * @return branch - */ - @jakarta.annotation.Nonnull - public String getBranch() { - return branch; - } - - public void setBranch(@jakarta.annotation.Nonnull String branch) { - this.branch = branch; - } - - - public GetGithubCommitsTaskParams pastDuration(@jakarta.annotation.Nonnull String pastDuration) { - this.pastDuration = pastDuration; - return this; - } - - /** - * How far back to fetch commits (in format '1 minute', '30 days', '3 months', etc.) - * @return pastDuration - */ - @jakarta.annotation.Nonnull - public String getPastDuration() { - return pastDuration; - } - - public void setPastDuration(@jakarta.annotation.Nonnull String pastDuration) { - this.pastDuration = pastDuration; - } - - - public GetGithubCommitsTaskParams servicesImpactedByIncident(@jakarta.annotation.Nullable Boolean servicesImpactedByIncident) { - this.servicesImpactedByIncident = servicesImpactedByIncident; - return this; - } - - /** - * Get servicesImpactedByIncident - * @return servicesImpactedByIncident - */ - @jakarta.annotation.Nullable - public Boolean getServicesImpactedByIncident() { - return servicesImpactedByIncident; - } - - public void setServicesImpactedByIncident(@jakarta.annotation.Nullable Boolean servicesImpactedByIncident) { - this.servicesImpactedByIncident = servicesImpactedByIncident; - } - - - public GetGithubCommitsTaskParams postToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { - this.postToIncidentTimeline = postToIncidentTimeline; - return this; - } - - /** - * Get postToIncidentTimeline - * @return postToIncidentTimeline - */ - @jakarta.annotation.Nullable - public Boolean getPostToIncidentTimeline() { - return postToIncidentTimeline; - } - - public void setPostToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { - this.postToIncidentTimeline = postToIncidentTimeline; - } + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * GetGithubCommitsTaskParamsAnyOf, GetGithubCommitsTaskParamsAnyOf1 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof GetGithubCommitsTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } - public GetGithubCommitsTaskParams postToSlackChannels(@jakarta.annotation.Nullable List postToSlackChannels) { - this.postToSlackChannels = postToSlackChannels; - return this; - } + if (instance instanceof GetGithubCommitsTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; + } - public GetGithubCommitsTaskParams addPostToSlackChannelsItem(Object postToSlackChannelsItem) { - if (this.postToSlackChannels == null) { - this.postToSlackChannels = new ArrayList<>(); + throw new RuntimeException("Invalid instance type. Must be GetGithubCommitsTaskParamsAnyOf, GetGithubCommitsTaskParamsAnyOf1"); } - this.postToSlackChannels.add(postToSlackChannelsItem); - return this; - } - /** - * Get postToSlackChannels - * @return postToSlackChannels - */ - @jakarta.annotation.Nullable - public List getPostToSlackChannels() { - return postToSlackChannels; - } - - public void setPostToSlackChannels(@jakarta.annotation.Nullable List postToSlackChannels) { - this.postToSlackChannels = postToSlackChannels; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; + /** + * Get the actual instance, which can be the following: + * GetGithubCommitsTaskParamsAnyOf, GetGithubCommitsTaskParamsAnyOf1 + * + * @return The actual instance (GetGithubCommitsTaskParamsAnyOf, GetGithubCommitsTaskParamsAnyOf1) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - GetGithubCommitsTaskParams getGithubCommitsTaskParams = (GetGithubCommitsTaskParams) o; - return Objects.equals(this.taskType, getGithubCommitsTaskParams.taskType) && - Objects.equals(this.serviceIds, getGithubCommitsTaskParams.serviceIds) && - Objects.equals(this.githubRepositoryNames, getGithubCommitsTaskParams.githubRepositoryNames) && - Objects.equals(this.branch, getGithubCommitsTaskParams.branch) && - Objects.equals(this.pastDuration, getGithubCommitsTaskParams.pastDuration) && - Objects.equals(this.servicesImpactedByIncident, getGithubCommitsTaskParams.servicesImpactedByIncident) && - Objects.equals(this.postToIncidentTimeline, getGithubCommitsTaskParams.postToIncidentTimeline) && - Objects.equals(this.postToSlackChannels, getGithubCommitsTaskParams.postToSlackChannels); - } - @Override - public int hashCode() { - return Objects.hash(taskType, serviceIds, githubRepositoryNames, branch, pastDuration, servicesImpactedByIncident, postToIncidentTimeline, postToSlackChannels); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GetGithubCommitsTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); - sb.append(" githubRepositoryNames: ").append(toIndentedString(githubRepositoryNames)).append("\n"); - sb.append(" branch: ").append(toIndentedString(branch)).append("\n"); - sb.append(" pastDuration: ").append(toIndentedString(pastDuration)).append("\n"); - sb.append(" servicesImpactedByIncident: ").append(toIndentedString(servicesImpactedByIncident)).append("\n"); - sb.append(" postToIncidentTimeline: ").append(toIndentedString(postToIncidentTimeline)).append("\n"); - sb.append(" postToSlackChannels: ").append(toIndentedString(postToSlackChannels)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + /** + * Get the actual instance of `GetGithubCommitsTaskParamsAnyOf`. If the actual instance is not `GetGithubCommitsTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GetGithubCommitsTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `GetGithubCommitsTaskParamsAnyOf` + */ + public GetGithubCommitsTaskParamsAnyOf getGetGithubCommitsTaskParamsAnyOf() throws ClassCastException { + return (GetGithubCommitsTaskParamsAnyOf)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("branch"); - openapiRequiredFields.add("past_duration"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to GetGithubCommitsTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!GetGithubCommitsTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in GetGithubCommitsTaskParams is not found in the empty JSON string", GetGithubCommitsTaskParams.openapiRequiredFields.toString())); - } - } + /** + * Get the actual instance of `GetGithubCommitsTaskParamsAnyOf1`. If the actual instance is not `GetGithubCommitsTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GetGithubCommitsTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `GetGithubCommitsTaskParamsAnyOf1` + */ + public GetGithubCommitsTaskParamsAnyOf1 getGetGithubCommitsTaskParamsAnyOf1() throws ClassCastException { + return (GetGithubCommitsTaskParamsAnyOf1)super.getActualInstance(); + } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!GetGithubCommitsTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GetGithubCommitsTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetGithubCommitsTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with GetGithubCommitsTaskParamsAnyOf + try { + GetGithubCommitsTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for GetGithubCommitsTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : GetGithubCommitsTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + // validate the json string with GetGithubCommitsTaskParamsAnyOf1 + try { + GetGithubCommitsTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for GetGithubCommitsTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - // ensure the optional json data is an array if present - if (jsonObj.get("service_ids") != null && !jsonObj.get("service_ids").isJsonNull() && !jsonObj.get("service_ids").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("service_ids").toString())); - } - // ensure the optional json data is an array if present - if (jsonObj.get("github_repository_names") != null && !jsonObj.get("github_repository_names").isJsonNull() && !jsonObj.get("github_repository_names").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `github_repository_names` to be an array in the JSON string but got `%s`", jsonObj.get("github_repository_names").toString())); - } - if (!jsonObj.get("branch").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `branch` to be a primitive type in the JSON string but got `%s`", jsonObj.get("branch").toString())); - } - if (!jsonObj.get("past_duration").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `past_duration` to be a primitive type in the JSON string but got `%s`", jsonObj.get("past_duration").toString())); - } - if (jsonObj.get("post_to_slack_channels") != null && !jsonObj.get("post_to_slack_channels").isJsonNull()) { - JsonArray jsonArraypostToSlackChannels = jsonObj.getAsJsonArray("post_to_slack_channels"); - if (jsonArraypostToSlackChannels != null) { - // ensure the json data is an array - if (!jsonObj.get("post_to_slack_channels").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `post_to_slack_channels` to be an array in the JSON string but got `%s`", jsonObj.get("post_to_slack_channels").toString())); - } - - // validate the optional field `post_to_slack_channels` (array) - for (int i = 0; i < jsonArraypostToSlackChannels.size(); i++) { - }; - } - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!GetGithubCommitsTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'GetGithubCommitsTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(GetGithubCommitsTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, GetGithubCommitsTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public GetGithubCommitsTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + throw new IOException(String.format("The JSON string is invalid for GetGithubCommitsTaskParams with anyOf schemas: GetGithubCommitsTaskParamsAnyOf, GetGithubCommitsTaskParamsAnyOf1. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of GetGithubCommitsTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of GetGithubCommitsTaskParams - * @throws IOException if the JSON string is invalid with respect to GetGithubCommitsTaskParams - */ - public static GetGithubCommitsTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, GetGithubCommitsTaskParams.class); - } + /** + * Create an instance of GetGithubCommitsTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetGithubCommitsTaskParams + * @throws IOException if the JSON string is invalid with respect to GetGithubCommitsTaskParams + */ + public static GetGithubCommitsTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetGithubCommitsTaskParams.class); + } - /** - * Convert an instance of GetGithubCommitsTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of GetGithubCommitsTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf.java new file mode 100644 index 00000000..157b3dd0 --- /dev/null +++ b/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf.java @@ -0,0 +1,227 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * GetGithubCommitsTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class GetGithubCommitsTaskParamsAnyOf { + public static final String SERIALIZED_NAME_SERVICE_IDS = "service_ids"; + @SerializedName(SERIALIZED_NAME_SERVICE_IDS) + @jakarta.annotation.Nonnull + private List serviceIds = new ArrayList<>(); + + public GetGithubCommitsTaskParamsAnyOf() { + } + + public GetGithubCommitsTaskParamsAnyOf serviceIds(@jakarta.annotation.Nonnull List serviceIds) { + this.serviceIds = serviceIds; + return this; + } + + public GetGithubCommitsTaskParamsAnyOf addServiceIdsItem(String serviceIdsItem) { + if (this.serviceIds == null) { + this.serviceIds = new ArrayList<>(); + } + this.serviceIds.add(serviceIdsItem); + return this; + } + + /** + * Get serviceIds + * @return serviceIds + */ + @jakarta.annotation.Nonnull + public List getServiceIds() { + return serviceIds; + } + + public void setServiceIds(@jakarta.annotation.Nonnull List serviceIds) { + this.serviceIds = serviceIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGithubCommitsTaskParamsAnyOf getGithubCommitsTaskParamsAnyOf = (GetGithubCommitsTaskParamsAnyOf) o; + return Objects.equals(this.serviceIds, getGithubCommitsTaskParamsAnyOf.serviceIds); + } + + @Override + public int hashCode() { + return Objects.hash(serviceIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetGithubCommitsTaskParamsAnyOf {\n"); + sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("service_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("service_ids"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetGithubCommitsTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GetGithubCommitsTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetGithubCommitsTaskParamsAnyOf is not found in the empty JSON string", GetGithubCommitsTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GetGithubCommitsTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GetGithubCommitsTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GetGithubCommitsTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the required json array is present + if (jsonObj.get("service_ids") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("service_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("service_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetGithubCommitsTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetGithubCommitsTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetGithubCommitsTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetGithubCommitsTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GetGithubCommitsTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GetGithubCommitsTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetGithubCommitsTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to GetGithubCommitsTaskParamsAnyOf + */ + public static GetGithubCommitsTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetGithubCommitsTaskParamsAnyOf.class); + } + + /** + * Convert an instance of GetGithubCommitsTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1.java b/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1.java new file mode 100644 index 00000000..9fb9464a --- /dev/null +++ b/src/main/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1.java @@ -0,0 +1,227 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * GetGithubCommitsTaskParamsAnyOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class GetGithubCommitsTaskParamsAnyOf1 { + public static final String SERIALIZED_NAME_GITHUB_REPOSITORY_NAMES = "github_repository_names"; + @SerializedName(SERIALIZED_NAME_GITHUB_REPOSITORY_NAMES) + @jakarta.annotation.Nonnull + private List githubRepositoryNames = new ArrayList<>(); + + public GetGithubCommitsTaskParamsAnyOf1() { + } + + public GetGithubCommitsTaskParamsAnyOf1 githubRepositoryNames(@jakarta.annotation.Nonnull List githubRepositoryNames) { + this.githubRepositoryNames = githubRepositoryNames; + return this; + } + + public GetGithubCommitsTaskParamsAnyOf1 addGithubRepositoryNamesItem(String githubRepositoryNamesItem) { + if (this.githubRepositoryNames == null) { + this.githubRepositoryNames = new ArrayList<>(); + } + this.githubRepositoryNames.add(githubRepositoryNamesItem); + return this; + } + + /** + * Get githubRepositoryNames + * @return githubRepositoryNames + */ + @jakarta.annotation.Nonnull + public List getGithubRepositoryNames() { + return githubRepositoryNames; + } + + public void setGithubRepositoryNames(@jakarta.annotation.Nonnull List githubRepositoryNames) { + this.githubRepositoryNames = githubRepositoryNames; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGithubCommitsTaskParamsAnyOf1 getGithubCommitsTaskParamsAnyOf1 = (GetGithubCommitsTaskParamsAnyOf1) o; + return Objects.equals(this.githubRepositoryNames, getGithubCommitsTaskParamsAnyOf1.githubRepositoryNames); + } + + @Override + public int hashCode() { + return Objects.hash(githubRepositoryNames); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetGithubCommitsTaskParamsAnyOf1 {\n"); + sb.append(" githubRepositoryNames: ").append(toIndentedString(githubRepositoryNames)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("github_repository_names"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("github_repository_names"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetGithubCommitsTaskParamsAnyOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GetGithubCommitsTaskParamsAnyOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetGithubCommitsTaskParamsAnyOf1 is not found in the empty JSON string", GetGithubCommitsTaskParamsAnyOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GetGithubCommitsTaskParamsAnyOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GetGithubCommitsTaskParamsAnyOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GetGithubCommitsTaskParamsAnyOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the required json array is present + if (jsonObj.get("github_repository_names") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("github_repository_names").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `github_repository_names` to be an array in the JSON string but got `%s`", jsonObj.get("github_repository_names").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetGithubCommitsTaskParamsAnyOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetGithubCommitsTaskParamsAnyOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetGithubCommitsTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetGithubCommitsTaskParamsAnyOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GetGithubCommitsTaskParamsAnyOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GetGithubCommitsTaskParamsAnyOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetGithubCommitsTaskParamsAnyOf1 + * @throws IOException if the JSON string is invalid with respect to GetGithubCommitsTaskParamsAnyOf1 + */ + public static GetGithubCommitsTaskParamsAnyOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetGithubCommitsTaskParamsAnyOf1.class); + } + + /** + * Convert an instance of GetGithubCommitsTaskParamsAnyOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParams.java b/src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParams.java index e84d22a9..78a68d2f 100644 --- a/src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParams.java +++ b/src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParams.java @@ -19,485 +19,251 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf; +import com.rootly.client.model.GetGitlabCommitsTaskParamsAnyOf; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * GetGitlabCommitsTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class GetGitlabCommitsTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - GET_GITLAB_COMMITS("get_gitlab_commits"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class GetGitlabCommitsTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(GetGitlabCommitsTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetGitlabCommitsTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetGitlabCommitsTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterGetGithubCommitsTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(GetGithubCommitsTaskParamsAnyOf.class)); + final TypeAdapter adapterGetGitlabCommitsTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(GetGitlabCommitsTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetGitlabCommitsTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `GetGithubCommitsTaskParamsAnyOf` + if (value.getActualInstance() instanceof GetGithubCommitsTaskParamsAnyOf) { + JsonElement element = adapterGetGithubCommitsTaskParamsAnyOf.toJsonTree((GetGithubCommitsTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `GetGitlabCommitsTaskParamsAnyOf` + if (value.getActualInstance() instanceof GetGitlabCommitsTaskParamsAnyOf) { + JsonElement element = adapterGetGitlabCommitsTaskParamsAnyOf.toJsonTree((GetGitlabCommitsTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: GetGithubCommitsTaskParamsAnyOf, GetGitlabCommitsTaskParamsAnyOf"); + } + + @Override + public GetGitlabCommitsTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize GetGithubCommitsTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + GetGithubCommitsTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterGetGithubCommitsTaskParamsAnyOf; + GetGitlabCommitsTaskParams ret = new GetGitlabCommitsTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for GetGithubCommitsTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GetGithubCommitsTaskParamsAnyOf'", e); + } + // deserialize GetGitlabCommitsTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + GetGitlabCommitsTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterGetGitlabCommitsTaskParamsAnyOf; + GetGitlabCommitsTaskParams ret = new GetGitlabCommitsTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for GetGitlabCommitsTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GetGitlabCommitsTaskParamsAnyOf'", e); + } + + throw new IOException(String.format("Failed deserialization for GetGitlabCommitsTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + public GetGitlabCommitsTaskParams() { + super("anyOf", Boolean.FALSE); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); + public GetGitlabCommitsTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_SERVICE_IDS = "service_ids"; - @SerializedName(SERIALIZED_NAME_SERVICE_IDS) - @jakarta.annotation.Nullable - private List serviceIds = new ArrayList<>(); - - public static final String SERIALIZED_NAME_GITLAB_REPOSITORY_NAMES = "gitlab_repository_names"; - @SerializedName(SERIALIZED_NAME_GITLAB_REPOSITORY_NAMES) - @jakarta.annotation.Nullable - private List gitlabRepositoryNames = new ArrayList<>(); - - public static final String SERIALIZED_NAME_BRANCH = "branch"; - @SerializedName(SERIALIZED_NAME_BRANCH) - @jakarta.annotation.Nonnull - private String branch; - - public static final String SERIALIZED_NAME_PAST_DURATION = "past_duration"; - @SerializedName(SERIALIZED_NAME_PAST_DURATION) - @jakarta.annotation.Nonnull - private String pastDuration; - - public static final String SERIALIZED_NAME_SERVICES_IMPACTED_BY_INCIDENT = "services_impacted_by_incident"; - @SerializedName(SERIALIZED_NAME_SERVICES_IMPACTED_BY_INCIDENT) - @jakarta.annotation.Nullable - private Boolean servicesImpactedByIncident; - - public static final String SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE = "post_to_incident_timeline"; - @SerializedName(SERIALIZED_NAME_POST_TO_INCIDENT_TIMELINE) - @jakarta.annotation.Nullable - private Boolean postToIncidentTimeline; - - public static final String SERIALIZED_NAME_POST_TO_SLACK_CHANNELS = "post_to_slack_channels"; - @SerializedName(SERIALIZED_NAME_POST_TO_SLACK_CHANNELS) - @jakarta.annotation.Nullable - private List postToSlackChannels = new ArrayList<>(); - - public GetGitlabCommitsTaskParams() { - } - - public GetGitlabCommitsTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - public GetGitlabCommitsTaskParams serviceIds(@jakarta.annotation.Nullable List serviceIds) { - this.serviceIds = serviceIds; - return this; - } - - public GetGitlabCommitsTaskParams addServiceIdsItem(String serviceIdsItem) { - if (this.serviceIds == null) { - this.serviceIds = new ArrayList<>(); + static { + schemas.put("GetGithubCommitsTaskParamsAnyOf", GetGithubCommitsTaskParamsAnyOf.class); + schemas.put("GetGitlabCommitsTaskParamsAnyOf", GetGitlabCommitsTaskParamsAnyOf.class); } - this.serviceIds.add(serviceIdsItem); - return this; - } - - /** - * Get serviceIds - * @return serviceIds - */ - @jakarta.annotation.Nullable - public List getServiceIds() { - return serviceIds; - } - - public void setServiceIds(@jakarta.annotation.Nullable List serviceIds) { - this.serviceIds = serviceIds; - } - - public GetGitlabCommitsTaskParams gitlabRepositoryNames(@jakarta.annotation.Nullable List gitlabRepositoryNames) { - this.gitlabRepositoryNames = gitlabRepositoryNames; - return this; - } - - public GetGitlabCommitsTaskParams addGitlabRepositoryNamesItem(String gitlabRepositoryNamesItem) { - if (this.gitlabRepositoryNames == null) { - this.gitlabRepositoryNames = new ArrayList<>(); + @Override + public Map> getSchemas() { + return GetGitlabCommitsTaskParams.schemas; } - this.gitlabRepositoryNames.add(gitlabRepositoryNamesItem); - return this; - } - - /** - * Get gitlabRepositoryNames - * @return gitlabRepositoryNames - */ - @jakarta.annotation.Nullable - public List getGitlabRepositoryNames() { - return gitlabRepositoryNames; - } - - public void setGitlabRepositoryNames(@jakarta.annotation.Nullable List gitlabRepositoryNames) { - this.gitlabRepositoryNames = gitlabRepositoryNames; - } - - - public GetGitlabCommitsTaskParams branch(@jakarta.annotation.Nonnull String branch) { - this.branch = branch; - return this; - } - - /** - * The branch - * @return branch - */ - @jakarta.annotation.Nonnull - public String getBranch() { - return branch; - } - - public void setBranch(@jakarta.annotation.Nonnull String branch) { - this.branch = branch; - } - - - public GetGitlabCommitsTaskParams pastDuration(@jakarta.annotation.Nonnull String pastDuration) { - this.pastDuration = pastDuration; - return this; - } - - /** - * How far back to fetch commits (in format '1 minute', '30 days', '3 months', etc.) - * @return pastDuration - */ - @jakarta.annotation.Nonnull - public String getPastDuration() { - return pastDuration; - } - - public void setPastDuration(@jakarta.annotation.Nonnull String pastDuration) { - this.pastDuration = pastDuration; - } - - - public GetGitlabCommitsTaskParams servicesImpactedByIncident(@jakarta.annotation.Nullable Boolean servicesImpactedByIncident) { - this.servicesImpactedByIncident = servicesImpactedByIncident; - return this; - } - - /** - * Get servicesImpactedByIncident - * @return servicesImpactedByIncident - */ - @jakarta.annotation.Nullable - public Boolean getServicesImpactedByIncident() { - return servicesImpactedByIncident; - } - - public void setServicesImpactedByIncident(@jakarta.annotation.Nullable Boolean servicesImpactedByIncident) { - this.servicesImpactedByIncident = servicesImpactedByIncident; - } - - - public GetGitlabCommitsTaskParams postToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { - this.postToIncidentTimeline = postToIncidentTimeline; - return this; - } - - /** - * Get postToIncidentTimeline - * @return postToIncidentTimeline - */ - @jakarta.annotation.Nullable - public Boolean getPostToIncidentTimeline() { - return postToIncidentTimeline; - } - - public void setPostToIncidentTimeline(@jakarta.annotation.Nullable Boolean postToIncidentTimeline) { - this.postToIncidentTimeline = postToIncidentTimeline; - } + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * GetGithubCommitsTaskParamsAnyOf, GetGitlabCommitsTaskParamsAnyOf + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof GetGithubCommitsTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } - public GetGitlabCommitsTaskParams postToSlackChannels(@jakarta.annotation.Nullable List postToSlackChannels) { - this.postToSlackChannels = postToSlackChannels; - return this; - } + if (instance instanceof GetGitlabCommitsTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } - public GetGitlabCommitsTaskParams addPostToSlackChannelsItem(Object postToSlackChannelsItem) { - if (this.postToSlackChannels == null) { - this.postToSlackChannels = new ArrayList<>(); + throw new RuntimeException("Invalid instance type. Must be GetGithubCommitsTaskParamsAnyOf, GetGitlabCommitsTaskParamsAnyOf"); } - this.postToSlackChannels.add(postToSlackChannelsItem); - return this; - } - /** - * Get postToSlackChannels - * @return postToSlackChannels - */ - @jakarta.annotation.Nullable - public List getPostToSlackChannels() { - return postToSlackChannels; - } - - public void setPostToSlackChannels(@jakarta.annotation.Nullable List postToSlackChannels) { - this.postToSlackChannels = postToSlackChannels; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; + /** + * Get the actual instance, which can be the following: + * GetGithubCommitsTaskParamsAnyOf, GetGitlabCommitsTaskParamsAnyOf + * + * @return The actual instance (GetGithubCommitsTaskParamsAnyOf, GetGitlabCommitsTaskParamsAnyOf) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - GetGitlabCommitsTaskParams getGitlabCommitsTaskParams = (GetGitlabCommitsTaskParams) o; - return Objects.equals(this.taskType, getGitlabCommitsTaskParams.taskType) && - Objects.equals(this.serviceIds, getGitlabCommitsTaskParams.serviceIds) && - Objects.equals(this.gitlabRepositoryNames, getGitlabCommitsTaskParams.gitlabRepositoryNames) && - Objects.equals(this.branch, getGitlabCommitsTaskParams.branch) && - Objects.equals(this.pastDuration, getGitlabCommitsTaskParams.pastDuration) && - Objects.equals(this.servicesImpactedByIncident, getGitlabCommitsTaskParams.servicesImpactedByIncident) && - Objects.equals(this.postToIncidentTimeline, getGitlabCommitsTaskParams.postToIncidentTimeline) && - Objects.equals(this.postToSlackChannels, getGitlabCommitsTaskParams.postToSlackChannels); - } - @Override - public int hashCode() { - return Objects.hash(taskType, serviceIds, gitlabRepositoryNames, branch, pastDuration, servicesImpactedByIncident, postToIncidentTimeline, postToSlackChannels); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GetGitlabCommitsTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); - sb.append(" gitlabRepositoryNames: ").append(toIndentedString(gitlabRepositoryNames)).append("\n"); - sb.append(" branch: ").append(toIndentedString(branch)).append("\n"); - sb.append(" pastDuration: ").append(toIndentedString(pastDuration)).append("\n"); - sb.append(" servicesImpactedByIncident: ").append(toIndentedString(servicesImpactedByIncident)).append("\n"); - sb.append(" postToIncidentTimeline: ").append(toIndentedString(postToIncidentTimeline)).append("\n"); - sb.append(" postToSlackChannels: ").append(toIndentedString(postToSlackChannels)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + /** + * Get the actual instance of `GetGithubCommitsTaskParamsAnyOf`. If the actual instance is not `GetGithubCommitsTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GetGithubCommitsTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `GetGithubCommitsTaskParamsAnyOf` + */ + public GetGithubCommitsTaskParamsAnyOf getGetGithubCommitsTaskParamsAnyOf() throws ClassCastException { + return (GetGithubCommitsTaskParamsAnyOf)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("branch"); - openapiRequiredFields.add("past_duration"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to GetGitlabCommitsTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!GetGitlabCommitsTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in GetGitlabCommitsTaskParams is not found in the empty JSON string", GetGitlabCommitsTaskParams.openapiRequiredFields.toString())); - } - } + /** + * Get the actual instance of `GetGitlabCommitsTaskParamsAnyOf`. If the actual instance is not `GetGitlabCommitsTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GetGitlabCommitsTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `GetGitlabCommitsTaskParamsAnyOf` + */ + public GetGitlabCommitsTaskParamsAnyOf getGetGitlabCommitsTaskParamsAnyOf() throws ClassCastException { + return (GetGitlabCommitsTaskParamsAnyOf)super.getActualInstance(); + } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!GetGitlabCommitsTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GetGitlabCommitsTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetGitlabCommitsTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with GetGithubCommitsTaskParamsAnyOf + try { + GetGithubCommitsTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for GetGithubCommitsTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : GetGitlabCommitsTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + // validate the json string with GetGitlabCommitsTaskParamsAnyOf + try { + GetGitlabCommitsTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for GetGitlabCommitsTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - // ensure the optional json data is an array if present - if (jsonObj.get("service_ids") != null && !jsonObj.get("service_ids").isJsonNull() && !jsonObj.get("service_ids").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("service_ids").toString())); - } - // ensure the optional json data is an array if present - if (jsonObj.get("gitlab_repository_names") != null && !jsonObj.get("gitlab_repository_names").isJsonNull() && !jsonObj.get("gitlab_repository_names").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `gitlab_repository_names` to be an array in the JSON string but got `%s`", jsonObj.get("gitlab_repository_names").toString())); - } - if (!jsonObj.get("branch").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `branch` to be a primitive type in the JSON string but got `%s`", jsonObj.get("branch").toString())); - } - if (!jsonObj.get("past_duration").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `past_duration` to be a primitive type in the JSON string but got `%s`", jsonObj.get("past_duration").toString())); - } - if (jsonObj.get("post_to_slack_channels") != null && !jsonObj.get("post_to_slack_channels").isJsonNull()) { - JsonArray jsonArraypostToSlackChannels = jsonObj.getAsJsonArray("post_to_slack_channels"); - if (jsonArraypostToSlackChannels != null) { - // ensure the json data is an array - if (!jsonObj.get("post_to_slack_channels").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `post_to_slack_channels` to be an array in the JSON string but got `%s`", jsonObj.get("post_to_slack_channels").toString())); - } - - // validate the optional field `post_to_slack_channels` (array) - for (int i = 0; i < jsonArraypostToSlackChannels.size(); i++) { - }; - } - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!GetGitlabCommitsTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'GetGitlabCommitsTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(GetGitlabCommitsTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, GetGitlabCommitsTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public GetGitlabCommitsTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + throw new IOException(String.format("The JSON string is invalid for GetGitlabCommitsTaskParams with anyOf schemas: GetGithubCommitsTaskParamsAnyOf, GetGitlabCommitsTaskParamsAnyOf. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of GetGitlabCommitsTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of GetGitlabCommitsTaskParams - * @throws IOException if the JSON string is invalid with respect to GetGitlabCommitsTaskParams - */ - public static GetGitlabCommitsTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, GetGitlabCommitsTaskParams.class); - } + /** + * Create an instance of GetGitlabCommitsTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetGitlabCommitsTaskParams + * @throws IOException if the JSON string is invalid with respect to GetGitlabCommitsTaskParams + */ + public static GetGitlabCommitsTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetGitlabCommitsTaskParams.class); + } - /** - * Convert an instance of GetGitlabCommitsTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of GetGitlabCommitsTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOf.java new file mode 100644 index 00000000..19542b73 --- /dev/null +++ b/src/main/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOf.java @@ -0,0 +1,227 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * GetGitlabCommitsTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class GetGitlabCommitsTaskParamsAnyOf { + public static final String SERIALIZED_NAME_GITLAB_REPOSITORY_NAMES = "gitlab_repository_names"; + @SerializedName(SERIALIZED_NAME_GITLAB_REPOSITORY_NAMES) + @jakarta.annotation.Nonnull + private List gitlabRepositoryNames = new ArrayList<>(); + + public GetGitlabCommitsTaskParamsAnyOf() { + } + + public GetGitlabCommitsTaskParamsAnyOf gitlabRepositoryNames(@jakarta.annotation.Nonnull List gitlabRepositoryNames) { + this.gitlabRepositoryNames = gitlabRepositoryNames; + return this; + } + + public GetGitlabCommitsTaskParamsAnyOf addGitlabRepositoryNamesItem(String gitlabRepositoryNamesItem) { + if (this.gitlabRepositoryNames == null) { + this.gitlabRepositoryNames = new ArrayList<>(); + } + this.gitlabRepositoryNames.add(gitlabRepositoryNamesItem); + return this; + } + + /** + * Get gitlabRepositoryNames + * @return gitlabRepositoryNames + */ + @jakarta.annotation.Nonnull + public List getGitlabRepositoryNames() { + return gitlabRepositoryNames; + } + + public void setGitlabRepositoryNames(@jakarta.annotation.Nonnull List gitlabRepositoryNames) { + this.gitlabRepositoryNames = gitlabRepositoryNames; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGitlabCommitsTaskParamsAnyOf getGitlabCommitsTaskParamsAnyOf = (GetGitlabCommitsTaskParamsAnyOf) o; + return Objects.equals(this.gitlabRepositoryNames, getGitlabCommitsTaskParamsAnyOf.gitlabRepositoryNames); + } + + @Override + public int hashCode() { + return Objects.hash(gitlabRepositoryNames); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetGitlabCommitsTaskParamsAnyOf {\n"); + sb.append(" gitlabRepositoryNames: ").append(toIndentedString(gitlabRepositoryNames)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("gitlab_repository_names"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("gitlab_repository_names"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetGitlabCommitsTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GetGitlabCommitsTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in GetGitlabCommitsTaskParamsAnyOf is not found in the empty JSON string", GetGitlabCommitsTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GetGitlabCommitsTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `GetGitlabCommitsTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GetGitlabCommitsTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the required json array is present + if (jsonObj.get("gitlab_repository_names") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("gitlab_repository_names").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `gitlab_repository_names` to be an array in the JSON string but got `%s`", jsonObj.get("gitlab_repository_names").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetGitlabCommitsTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetGitlabCommitsTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(GetGitlabCommitsTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, GetGitlabCommitsTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GetGitlabCommitsTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of GetGitlabCommitsTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetGitlabCommitsTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to GetGitlabCommitsTaskParamsAnyOf + */ + public static GetGitlabCommitsTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetGitlabCommitsTaskParamsAnyOf.class); + } + + /** + * Convert an instance of GetGitlabCommitsTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/GetPulsesTaskParams.java b/src/main/java/com/rootly/client/model/GetPulsesTaskParams.java index 057062da..2d1ae6af 100644 --- a/src/main/java/com/rootly/client/model/GetPulsesTaskParams.java +++ b/src/main/java/com/rootly/client/model/GetPulsesTaskParams.java @@ -52,7 +52,7 @@ /** * GetPulsesTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class GetPulsesTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/GetPulsesTaskParamsParentMessageThreadTask.java b/src/main/java/com/rootly/client/model/GetPulsesTaskParamsParentMessageThreadTask.java index 8fd9b077..7252e0cb 100644 --- a/src/main/java/com/rootly/client/model/GetPulsesTaskParamsParentMessageThreadTask.java +++ b/src/main/java/com/rootly/client/model/GetPulsesTaskParamsParentMessageThreadTask.java @@ -48,7 +48,7 @@ /** * A hash where [id] is the task id of the parent task that sent a message, and [name] is the name of the parent task */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class GetPulsesTaskParamsParentMessageThreadTask { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/GetTeamIdParameter.java b/src/main/java/com/rootly/client/model/GetTeamIdParameter.java index 83388c77..68886158 100644 --- a/src/main/java/com/rootly/client/model/GetTeamIdParameter.java +++ b/src/main/java/com/rootly/client/model/GetTeamIdParameter.java @@ -51,7 +51,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class GetTeamIdParameter extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(GetTeamIdParameter.class.getName()); diff --git a/src/main/java/com/rootly/client/model/Heartbeat.java b/src/main/java/com/rootly/client/model/Heartbeat.java index 7863ba20..2a0901ab 100644 --- a/src/main/java/com/rootly/client/model/Heartbeat.java +++ b/src/main/java/com/rootly/client/model/Heartbeat.java @@ -20,7 +20,9 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,7 +51,7 @@ /** * Heartbeat */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Heartbeat { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -146,7 +148,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti private String notificationTargetId; /** - * Gets or Sets notificationTargetType + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(NotificationTargetTypeEnum.Adapter.class) public enum NotificationTargetTypeEnum { @@ -156,7 +158,9 @@ public enum NotificationTargetTypeEnum { SERVICE("Service"), - ESCALATION_POLICY("EscalationPolicy"); + ESCALATION_POLICY("EscalationPolicy"), + + FUNCTIONALITY("Functionality"); private String value; @@ -206,6 +210,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private NotificationTargetTypeEnum notificationTargetType; + public static final String SERIALIZED_NAME_OWNER_GROUP_IDS = "owner_group_ids"; + @SerializedName(SERIALIZED_NAME_OWNER_GROUP_IDS) + @jakarta.annotation.Nullable + private List ownerGroupIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_ENABLED = "enabled"; @SerializedName(SERIALIZED_NAME_ENABLED) @jakarta.annotation.Nonnull @@ -466,7 +475,7 @@ public Heartbeat notificationTargetType(@jakarta.annotation.Nonnull Notification } /** - * Get notificationTargetType + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. * @return notificationTargetType */ @jakarta.annotation.Nonnull @@ -479,6 +488,33 @@ public void setNotificationTargetType(@jakarta.annotation.Nonnull NotificationTa } + public Heartbeat ownerGroupIds(@jakarta.annotation.Nullable List ownerGroupIds) { + this.ownerGroupIds = ownerGroupIds; + return this; + } + + public Heartbeat addOwnerGroupIdsItem(String ownerGroupIdsItem) { + if (this.ownerGroupIds == null) { + this.ownerGroupIds = new ArrayList<>(); + } + this.ownerGroupIds.add(ownerGroupIdsItem); + return this; + } + + /** + * List of team IDs that own this heartbeat + * @return ownerGroupIds + */ + @jakarta.annotation.Nullable + public List getOwnerGroupIds() { + return ownerGroupIds; + } + + public void setOwnerGroupIds(@jakarta.annotation.Nullable List ownerGroupIds) { + this.ownerGroupIds = ownerGroupIds; + } + + public Heartbeat enabled(@jakarta.annotation.Nonnull Boolean enabled) { this.enabled = enabled; return this; @@ -580,7 +616,7 @@ public Heartbeat lastPingedAt(@jakarta.annotation.Nullable String lastPingedAt) } /** - * When the heartbeat was last pinged. + * Last persisted heartbeat ping timestamp. Accepted pings may be coalesced for up to 30 seconds. * @return lastPingedAt */ @jakarta.annotation.Nullable @@ -599,7 +635,7 @@ public Heartbeat expiresAt(@jakarta.annotation.Nullable String expiresAt) { } /** - * When heartbeat expires + * Persisted expiry deadline, including up to 30 seconds of coalescing grace. * @return expiresAt */ @jakarta.annotation.Nullable @@ -669,6 +705,7 @@ public boolean equals(Object o) { Objects.equals(this.intervalUnit, heartbeat.intervalUnit) && Objects.equals(this.notificationTargetId, heartbeat.notificationTargetId) && Objects.equals(this.notificationTargetType, heartbeat.notificationTargetType) && + Objects.equals(this.ownerGroupIds, heartbeat.ownerGroupIds) && Objects.equals(this.enabled, heartbeat.enabled) && Objects.equals(this.status, heartbeat.status) && Objects.equals(this.pingUrl, heartbeat.pingUrl) && @@ -686,7 +723,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, alertSummary, alertDescription, alertUrgencyId, interval, intervalUnit, notificationTargetId, notificationTargetType, enabled, status, pingUrl, secret, emailAddress, lastPingedAt, expiresAt, createdAt, updatedAt); + return Objects.hash(name, description, alertSummary, alertDescription, alertUrgencyId, interval, intervalUnit, notificationTargetId, notificationTargetType, ownerGroupIds, enabled, status, pingUrl, secret, emailAddress, lastPingedAt, expiresAt, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -709,6 +746,7 @@ public String toString() { sb.append(" intervalUnit: ").append(toIndentedString(intervalUnit)).append("\n"); sb.append(" notificationTargetId: ").append(toIndentedString(notificationTargetId)).append("\n"); sb.append(" notificationTargetType: ").append(toIndentedString(notificationTargetType)).append("\n"); + sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" pingUrl: ").append(toIndentedString(pingUrl)).append("\n"); @@ -749,6 +787,7 @@ private String toIndentedString(Object o) { openapiFields.add("interval_unit"); openapiFields.add("notification_target_id"); openapiFields.add("notification_target_type"); + openapiFields.add("owner_group_ids"); openapiFields.add("enabled"); openapiFields.add("status"); openapiFields.add("ping_url"); @@ -830,6 +869,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the required field `notification_target_type` NotificationTargetTypeEnum.validateJsonElement(jsonObj.get("notification_target_type")); + // ensure the optional json data is an array if present + if (jsonObj.get("owner_group_ids") != null && !jsonObj.get("owner_group_ids").isJsonNull() && !jsonObj.get("owner_group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `owner_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_group_ids").toString())); + } if (!jsonObj.get("status").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); } diff --git a/src/main/java/com/rootly/client/model/HeartbeatList.java b/src/main/java/com/rootly/client/model/HeartbeatList.java index 6660a265..9f1bc832 100644 --- a/src/main/java/com/rootly/client/model/HeartbeatList.java +++ b/src/main/java/com/rootly/client/model/HeartbeatList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.HeartbeatResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * HeartbeatList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class HeartbeatList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class HeartbeatList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public HeartbeatList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public HeartbeatList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public HeartbeatList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { HeartbeatList heartbeatList = (HeartbeatList) o; return Objects.equals(this.data, heartbeatList.data) && Objects.equals(this.links, heartbeatList.links) && - Objects.equals(this.meta, heartbeatList.meta); + Objects.equals(this.meta, heartbeatList.meta) && + Objects.equals(this.included, heartbeatList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/HeartbeatResponse.java b/src/main/java/com/rootly/client/model/HeartbeatResponse.java index ae4588d0..3b7efc86 100644 --- a/src/main/java/com/rootly/client/model/HeartbeatResponse.java +++ b/src/main/java/com/rootly/client/model/HeartbeatResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.HeartbeatResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * HeartbeatResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class HeartbeatResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private HeartbeatResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public HeartbeatResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull HeartbeatResponseData data) { } + public HeartbeatResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public HeartbeatResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } HeartbeatResponse heartbeatResponse = (HeartbeatResponse) o; - return Objects.equals(this.data, heartbeatResponse.data); + return Objects.equals(this.data, heartbeatResponse.data) && + Objects.equals(this.included, heartbeatResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class HeartbeatResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` HeartbeatResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/HeartbeatResponseData.java b/src/main/java/com/rootly/client/model/HeartbeatResponseData.java index 82a5a600..40b9d194 100644 --- a/src/main/java/com/rootly/client/model/HeartbeatResponseData.java +++ b/src/main/java/com/rootly/client/model/HeartbeatResponseData.java @@ -49,7 +49,7 @@ /** * HeartbeatResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class HeartbeatResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/HttpClientTaskParams.java b/src/main/java/com/rootly/client/model/HttpClientTaskParams.java index 0048470f..d39b8dce 100644 --- a/src/main/java/com/rootly/client/model/HttpClientTaskParams.java +++ b/src/main/java/com/rootly/client/model/HttpClientTaskParams.java @@ -51,7 +51,7 @@ /** * HttpClientTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class HttpClientTaskParams { /** * Gets or Sets taskType @@ -218,6 +218,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List postToSlackChannels = new ArrayList<>(); + public static final String SERIALIZED_NAME_RETRY_COUNT = "retry_count"; + @SerializedName(SERIALIZED_NAME_RETRY_COUNT) + @jakarta.annotation.Nullable + private Integer retryCount = 0; + + public static final String SERIALIZED_NAME_RETRY_WAIT_TIME = "retry_wait_time"; + @SerializedName(SERIALIZED_NAME_RETRY_WAIT_TIME) + @jakarta.annotation.Nullable + private Integer retryWaitTime = 1; + public HttpClientTaskParams() { } @@ -438,6 +448,44 @@ public void setPostToSlackChannels(@jakarta.annotation.Nullable List(); diff --git a/src/main/java/com/rootly/client/model/ImportMeetingRecording.java b/src/main/java/com/rootly/client/model/ImportMeetingRecording.java new file mode 100644 index 00000000..12a40523 --- /dev/null +++ b/src/main/java/com/rootly/client/model/ImportMeetingRecording.java @@ -0,0 +1,484 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * ImportMeetingRecording + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class ImportMeetingRecording { + /** + * Import source (currently only \"recall_desktop_sdk\") + */ + @JsonAdapter(SourceEnum.Adapter.class) + public enum SourceEnum { + RECALL_DESKTOP_SDK("recall_desktop_sdk"); + + private String value; + + SourceEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SourceEnum fromValue(String value) { + for (SourceEnum b : SourceEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SourceEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SourceEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SourceEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SourceEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SOURCE = "source"; + @SerializedName(SERIALIZED_NAME_SOURCE) + @jakarta.annotation.Nonnull + private SourceEnum source; + + public static final String SERIALIZED_NAME_RECALL_RECORDING_ID = "recall_recording_id"; + @SerializedName(SERIALIZED_NAME_RECALL_RECORDING_ID) + @jakarta.annotation.Nonnull + private UUID recallRecordingId; + + /** + * Meeting platform + */ + @JsonAdapter(PlatformEnum.Adapter.class) + public enum PlatformEnum { + ZOOM("zoom"), + + GOOGLE_MEET("google_meet"), + + MICROSOFT_TEAMS("microsoft_teams"), + + WEBEX("webex"); + + private String value; + + PlatformEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlatformEnum fromValue(String value) { + for (PlatformEnum b : PlatformEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlatformEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlatformEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlatformEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlatformEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PLATFORM = "platform"; + @SerializedName(SERIALIZED_NAME_PLATFORM) + @jakarta.annotation.Nonnull + private PlatformEnum platform; + + public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; + @SerializedName(SERIALIZED_NAME_STARTED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime startedAt; + + public static final String SERIALIZED_NAME_ENDED_AT = "ended_at"; + @SerializedName(SERIALIZED_NAME_ENDED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime endedAt; + + public static final String SERIALIZED_NAME_MEETING_URL = "meeting_url"; + @SerializedName(SERIALIZED_NAME_MEETING_URL) + @jakarta.annotation.Nullable + private String meetingUrl; + + public ImportMeetingRecording() { + } + + public ImportMeetingRecording source(@jakarta.annotation.Nonnull SourceEnum source) { + this.source = source; + return this; + } + + /** + * Import source (currently only \"recall_desktop_sdk\") + * @return source + */ + @jakarta.annotation.Nonnull + public SourceEnum getSource() { + return source; + } + + public void setSource(@jakarta.annotation.Nonnull SourceEnum source) { + this.source = source; + } + + + public ImportMeetingRecording recallRecordingId(@jakarta.annotation.Nonnull UUID recallRecordingId) { + this.recallRecordingId = recallRecordingId; + return this; + } + + /** + * External recording UUID (required when source is recall_desktop_sdk) + * @return recallRecordingId + */ + @jakarta.annotation.Nonnull + public UUID getRecallRecordingId() { + return recallRecordingId; + } + + public void setRecallRecordingId(@jakarta.annotation.Nonnull UUID recallRecordingId) { + this.recallRecordingId = recallRecordingId; + } + + + public ImportMeetingRecording platform(@jakarta.annotation.Nonnull PlatformEnum platform) { + this.platform = platform; + return this; + } + + /** + * Meeting platform + * @return platform + */ + @jakarta.annotation.Nonnull + public PlatformEnum getPlatform() { + return platform; + } + + public void setPlatform(@jakarta.annotation.Nonnull PlatformEnum platform) { + this.platform = platform; + } + + + public ImportMeetingRecording startedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + return this; + } + + /** + * When the recording started + * @return startedAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getStartedAt() { + return startedAt; + } + + public void setStartedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + } + + + public ImportMeetingRecording endedAt(@jakarta.annotation.Nullable OffsetDateTime endedAt) { + this.endedAt = endedAt; + return this; + } + + /** + * When the recording ended + * @return endedAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getEndedAt() { + return endedAt; + } + + public void setEndedAt(@jakarta.annotation.Nullable OffsetDateTime endedAt) { + this.endedAt = endedAt; + } + + + public ImportMeetingRecording meetingUrl(@jakarta.annotation.Nullable String meetingUrl) { + this.meetingUrl = meetingUrl; + return this; + } + + /** + * Original meeting URL + * @return meetingUrl + */ + @jakarta.annotation.Nullable + public String getMeetingUrl() { + return meetingUrl; + } + + public void setMeetingUrl(@jakarta.annotation.Nullable String meetingUrl) { + this.meetingUrl = meetingUrl; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImportMeetingRecording importMeetingRecording = (ImportMeetingRecording) o; + return Objects.equals(this.source, importMeetingRecording.source) && + Objects.equals(this.recallRecordingId, importMeetingRecording.recallRecordingId) && + Objects.equals(this.platform, importMeetingRecording.platform) && + Objects.equals(this.startedAt, importMeetingRecording.startedAt) && + Objects.equals(this.endedAt, importMeetingRecording.endedAt) && + Objects.equals(this.meetingUrl, importMeetingRecording.meetingUrl); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(source, recallRecordingId, platform, startedAt, endedAt, meetingUrl); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImportMeetingRecording {\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append(" recallRecordingId: ").append(toIndentedString(recallRecordingId)).append("\n"); + sb.append(" platform: ").append(toIndentedString(platform)).append("\n"); + sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); + sb.append(" endedAt: ").append(toIndentedString(endedAt)).append("\n"); + sb.append(" meetingUrl: ").append(toIndentedString(meetingUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("source"); + openapiFields.add("recall_recording_id"); + openapiFields.add("platform"); + openapiFields.add("started_at"); + openapiFields.add("ended_at"); + openapiFields.add("meeting_url"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("source"); + openapiRequiredFields.add("recall_recording_id"); + openapiRequiredFields.add("platform"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImportMeetingRecording + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImportMeetingRecording.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ImportMeetingRecording is not found in the empty JSON string", ImportMeetingRecording.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImportMeetingRecording.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ImportMeetingRecording` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImportMeetingRecording.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("source").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source").toString())); + } + // validate the required field `source` + SourceEnum.validateJsonElement(jsonObj.get("source")); + if (!jsonObj.get("recall_recording_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recall_recording_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recall_recording_id").toString())); + } + if (!jsonObj.get("platform").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `platform` to be a primitive type in the JSON string but got `%s`", jsonObj.get("platform").toString())); + } + // validate the required field `platform` + PlatformEnum.validateJsonElement(jsonObj.get("platform")); + if ((jsonObj.get("meeting_url") != null && !jsonObj.get("meeting_url").isJsonNull()) && !jsonObj.get("meeting_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `meeting_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("meeting_url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImportMeetingRecording.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImportMeetingRecording' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ImportMeetingRecording.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ImportMeetingRecording value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImportMeetingRecording read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ImportMeetingRecording given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImportMeetingRecording + * @throws IOException if the JSON string is invalid with respect to ImportMeetingRecording + */ + public static ImportMeetingRecording fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImportMeetingRecording.class); + } + + /** + * Convert an instance of ImportMeetingRecording to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/InTriageIncident.java b/src/main/java/com/rootly/client/model/InTriageIncident.java index 3eb34b90..1d38019f 100644 --- a/src/main/java/com/rootly/client/model/InTriageIncident.java +++ b/src/main/java/com/rootly/client/model/InTriageIncident.java @@ -49,7 +49,7 @@ /** * InTriageIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class InTriageIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/InTriageIncidentData.java b/src/main/java/com/rootly/client/model/InTriageIncidentData.java index 1e9e644c..eaf2073d 100644 --- a/src/main/java/com/rootly/client/model/InTriageIncidentData.java +++ b/src/main/java/com/rootly/client/model/InTriageIncidentData.java @@ -48,7 +48,7 @@ /** * InTriageIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class InTriageIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/Incident.java b/src/main/java/com/rootly/client/model/Incident.java index edac2b52..42de45ea 100644 --- a/src/main/java/com/rootly/client/model/Incident.java +++ b/src/main/java/com/rootly/client/model/Incident.java @@ -22,6 +22,7 @@ import com.rootly.client.model.EnvironmentResponse; import com.rootly.client.model.FunctionalityResponse; import com.rootly.client.model.IncidentTypeResponse; +import com.rootly.client.model.IncidentZoomMeetingGlobalDialInNumbersInner; import com.rootly.client.model.ServiceResponse; import com.rootly.client.model.SeverityResponse; import com.rootly.client.model.TeamResponse; @@ -57,7 +58,7 @@ /** * Incident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Incident { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -81,7 +82,7 @@ public class Incident { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_PARENT_INCIDENT_ID = "parent_incident_id"; @@ -237,7 +238,7 @@ public class Incident { public static final String SERIALIZED_NAME_ZOOM_MEETING_GLOBAL_DIAL_IN_NUMBERS = "zoom_meeting_global_dial_in_numbers"; @SerializedName(SERIALIZED_NAME_ZOOM_MEETING_GLOBAL_DIAL_IN_NUMBERS) @jakarta.annotation.Nullable - private List zoomMeetingGlobalDialInNumbers; + private List zoomMeetingGlobalDialInNumbers; public static final String SERIALIZED_NAME_GOOGLE_DRIVE_ID = "google_drive_id"; @SerializedName(SERIALIZED_NAME_GOOGLE_DRIVE_ID) @@ -264,6 +265,91 @@ public class Incident { @jakarta.annotation.Nullable private String googleMeetingUrl; + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_MEETING_ID = "microsoft_teams_meeting_id"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_MEETING_ID) + @jakarta.annotation.Nullable + private String microsoftTeamsMeetingId; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_MEETING_URL = "microsoft_teams_meeting_url"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_MEETING_URL) + @jakarta.annotation.Nullable + private String microsoftTeamsMeetingUrl; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_ID = "microsoft_teams_channel_id"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_ID) + @jakarta.annotation.Nullable + private String microsoftTeamsChannelId; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_NAME = "microsoft_teams_channel_name"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_NAME) + @jakarta.annotation.Nullable + private String microsoftTeamsChannelName; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_URL = "microsoft_teams_channel_url"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_URL) + @jakarta.annotation.Nullable + private String microsoftTeamsChannelUrl; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_SHORT_URL = "microsoft_teams_channel_short_url"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_CHANNEL_SHORT_URL) + @jakarta.annotation.Nullable + private String microsoftTeamsChannelShortUrl; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_CHAT_ID = "microsoft_teams_chat_id"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_CHAT_ID) + @jakarta.annotation.Nullable + private String microsoftTeamsChatId; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_CHAT_URL = "microsoft_teams_chat_url"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_CHAT_URL) + @jakarta.annotation.Nullable + private String microsoftTeamsChatUrl; + + public static final String SERIALIZED_NAME_MICROSOFT_TEAMS_TEAM_ID = "microsoft_teams_team_id"; + @SerializedName(SERIALIZED_NAME_MICROSOFT_TEAMS_TEAM_ID) + @jakarta.annotation.Nullable + private String microsoftTeamsTeamId; + + public static final String SERIALIZED_NAME_GOOGLE_CHAT_SPACE_ID = "google_chat_space_id"; + @SerializedName(SERIALIZED_NAME_GOOGLE_CHAT_SPACE_ID) + @jakarta.annotation.Nullable + private String googleChatSpaceId; + + public static final String SERIALIZED_NAME_GOOGLE_CHAT_SPACE_NAME = "google_chat_space_name"; + @SerializedName(SERIALIZED_NAME_GOOGLE_CHAT_SPACE_NAME) + @jakarta.annotation.Nullable + private String googleChatSpaceName; + + public static final String SERIALIZED_NAME_GOOGLE_CHAT_SPACE_URL = "google_chat_space_url"; + @SerializedName(SERIALIZED_NAME_GOOGLE_CHAT_SPACE_URL) + @jakarta.annotation.Nullable + private String googleChatSpaceUrl; + + public static final String SERIALIZED_NAME_GOOGLE_CHAT_SPACE_SHORT_URL = "google_chat_space_short_url"; + @SerializedName(SERIALIZED_NAME_GOOGLE_CHAT_SPACE_SHORT_URL) + @jakarta.annotation.Nullable + private String googleChatSpaceShortUrl; + + public static final String SERIALIZED_NAME_GOOGLE_CHAT_SPACE_ARCHIVED = "google_chat_space_archived"; + @SerializedName(SERIALIZED_NAME_GOOGLE_CHAT_SPACE_ARCHIVED) + @jakarta.annotation.Nullable + private Boolean googleChatSpaceArchived; + + public static final String SERIALIZED_NAME_GOOGLE_CHAT_SPACE_DOMAIN_ID = "google_chat_space_domain_id"; + @SerializedName(SERIALIZED_NAME_GOOGLE_CHAT_SPACE_DOMAIN_ID) + @jakarta.annotation.Nullable + private String googleChatSpaceDomainId; + + public static final String SERIALIZED_NAME_WEBEX_MEETING_ID = "webex_meeting_id"; + @SerializedName(SERIALIZED_NAME_WEBEX_MEETING_ID) + @jakarta.annotation.Nullable + private String webexMeetingId; + + public static final String SERIALIZED_NAME_WEBEX_MEETING_URL = "webex_meeting_url"; + @SerializedName(SERIALIZED_NAME_WEBEX_MEETING_URL) + @jakarta.annotation.Nullable + private String webexMeetingUrl; + public static final String SERIALIZED_NAME_JIRA_ISSUE_KEY = "jira_issue_key"; @SerializedName(SERIALIZED_NAME_JIRA_ISSUE_KEY) @jakarta.annotation.Nullable @@ -708,6 +794,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public Incident() { } + public Incident( + String slug + ) { + this(); + this.slug = slug; + } + public Incident id(@jakarta.annotation.Nullable String id) { this.id = id; return this; @@ -784,23 +877,15 @@ public void setKind(@jakarta.annotation.Nullable String kind) { } - public Incident slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the incident * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public Incident parentIncidentId(@jakarta.annotation.Nullable String parentIncidentId) { @@ -1413,12 +1498,12 @@ public void setZoomMeetingH323Password(@jakarta.annotation.Nullable String zoomM } - public Incident zoomMeetingGlobalDialInNumbers(@jakarta.annotation.Nullable List zoomMeetingGlobalDialInNumbers) { + public Incident zoomMeetingGlobalDialInNumbers(@jakarta.annotation.Nullable List zoomMeetingGlobalDialInNumbers) { this.zoomMeetingGlobalDialInNumbers = zoomMeetingGlobalDialInNumbers; return this; } - public Incident addZoomMeetingGlobalDialInNumbersItem(String zoomMeetingGlobalDialInNumbersItem) { + public Incident addZoomMeetingGlobalDialInNumbersItem(IncidentZoomMeetingGlobalDialInNumbersInner zoomMeetingGlobalDialInNumbersItem) { if (this.zoomMeetingGlobalDialInNumbers == null) { this.zoomMeetingGlobalDialInNumbers = new ArrayList<>(); } @@ -1431,11 +1516,11 @@ public Incident addZoomMeetingGlobalDialInNumbersItem(String zoomMeetingGlobalDi * @return zoomMeetingGlobalDialInNumbers */ @jakarta.annotation.Nullable - public List getZoomMeetingGlobalDialInNumbers() { + public List getZoomMeetingGlobalDialInNumbers() { return zoomMeetingGlobalDialInNumbers; } - public void setZoomMeetingGlobalDialInNumbers(@jakarta.annotation.Nullable List zoomMeetingGlobalDialInNumbers) { + public void setZoomMeetingGlobalDialInNumbers(@jakarta.annotation.Nullable List zoomMeetingGlobalDialInNumbers) { this.zoomMeetingGlobalDialInNumbers = zoomMeetingGlobalDialInNumbers; } @@ -1535,6 +1620,329 @@ public void setGoogleMeetingUrl(@jakarta.annotation.Nullable String googleMeetin } + public Incident microsoftTeamsMeetingId(@jakarta.annotation.Nullable String microsoftTeamsMeetingId) { + this.microsoftTeamsMeetingId = microsoftTeamsMeetingId; + return this; + } + + /** + * Microsoft Teams meeting ID + * @return microsoftTeamsMeetingId + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsMeetingId() { + return microsoftTeamsMeetingId; + } + + public void setMicrosoftTeamsMeetingId(@jakarta.annotation.Nullable String microsoftTeamsMeetingId) { + this.microsoftTeamsMeetingId = microsoftTeamsMeetingId; + } + + + public Incident microsoftTeamsMeetingUrl(@jakarta.annotation.Nullable String microsoftTeamsMeetingUrl) { + this.microsoftTeamsMeetingUrl = microsoftTeamsMeetingUrl; + return this; + } + + /** + * Microsoft Teams meeting URL + * @return microsoftTeamsMeetingUrl + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsMeetingUrl() { + return microsoftTeamsMeetingUrl; + } + + public void setMicrosoftTeamsMeetingUrl(@jakarta.annotation.Nullable String microsoftTeamsMeetingUrl) { + this.microsoftTeamsMeetingUrl = microsoftTeamsMeetingUrl; + } + + + public Incident microsoftTeamsChannelId(@jakarta.annotation.Nullable String microsoftTeamsChannelId) { + this.microsoftTeamsChannelId = microsoftTeamsChannelId; + return this; + } + + /** + * Microsoft Teams channel ID + * @return microsoftTeamsChannelId + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsChannelId() { + return microsoftTeamsChannelId; + } + + public void setMicrosoftTeamsChannelId(@jakarta.annotation.Nullable String microsoftTeamsChannelId) { + this.microsoftTeamsChannelId = microsoftTeamsChannelId; + } + + + public Incident microsoftTeamsChannelName(@jakarta.annotation.Nullable String microsoftTeamsChannelName) { + this.microsoftTeamsChannelName = microsoftTeamsChannelName; + return this; + } + + /** + * Microsoft Teams channel name + * @return microsoftTeamsChannelName + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsChannelName() { + return microsoftTeamsChannelName; + } + + public void setMicrosoftTeamsChannelName(@jakarta.annotation.Nullable String microsoftTeamsChannelName) { + this.microsoftTeamsChannelName = microsoftTeamsChannelName; + } + + + public Incident microsoftTeamsChannelUrl(@jakarta.annotation.Nullable String microsoftTeamsChannelUrl) { + this.microsoftTeamsChannelUrl = microsoftTeamsChannelUrl; + return this; + } + + /** + * Microsoft Teams channel URL + * @return microsoftTeamsChannelUrl + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsChannelUrl() { + return microsoftTeamsChannelUrl; + } + + public void setMicrosoftTeamsChannelUrl(@jakarta.annotation.Nullable String microsoftTeamsChannelUrl) { + this.microsoftTeamsChannelUrl = microsoftTeamsChannelUrl; + } + + + public Incident microsoftTeamsChannelShortUrl(@jakarta.annotation.Nullable String microsoftTeamsChannelShortUrl) { + this.microsoftTeamsChannelShortUrl = microsoftTeamsChannelShortUrl; + return this; + } + + /** + * Microsoft Teams channel short URL + * @return microsoftTeamsChannelShortUrl + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsChannelShortUrl() { + return microsoftTeamsChannelShortUrl; + } + + public void setMicrosoftTeamsChannelShortUrl(@jakarta.annotation.Nullable String microsoftTeamsChannelShortUrl) { + this.microsoftTeamsChannelShortUrl = microsoftTeamsChannelShortUrl; + } + + + public Incident microsoftTeamsChatId(@jakarta.annotation.Nullable String microsoftTeamsChatId) { + this.microsoftTeamsChatId = microsoftTeamsChatId; + return this; + } + + /** + * Microsoft Teams chat ID + * @return microsoftTeamsChatId + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsChatId() { + return microsoftTeamsChatId; + } + + public void setMicrosoftTeamsChatId(@jakarta.annotation.Nullable String microsoftTeamsChatId) { + this.microsoftTeamsChatId = microsoftTeamsChatId; + } + + + public Incident microsoftTeamsChatUrl(@jakarta.annotation.Nullable String microsoftTeamsChatUrl) { + this.microsoftTeamsChatUrl = microsoftTeamsChatUrl; + return this; + } + + /** + * Microsoft Teams chat URL + * @return microsoftTeamsChatUrl + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsChatUrl() { + return microsoftTeamsChatUrl; + } + + public void setMicrosoftTeamsChatUrl(@jakarta.annotation.Nullable String microsoftTeamsChatUrl) { + this.microsoftTeamsChatUrl = microsoftTeamsChatUrl; + } + + + public Incident microsoftTeamsTeamId(@jakarta.annotation.Nullable String microsoftTeamsTeamId) { + this.microsoftTeamsTeamId = microsoftTeamsTeamId; + return this; + } + + /** + * Microsoft Teams team ID + * @return microsoftTeamsTeamId + */ + @jakarta.annotation.Nullable + public String getMicrosoftTeamsTeamId() { + return microsoftTeamsTeamId; + } + + public void setMicrosoftTeamsTeamId(@jakarta.annotation.Nullable String microsoftTeamsTeamId) { + this.microsoftTeamsTeamId = microsoftTeamsTeamId; + } + + + public Incident googleChatSpaceId(@jakarta.annotation.Nullable String googleChatSpaceId) { + this.googleChatSpaceId = googleChatSpaceId; + return this; + } + + /** + * Google Chat space ID + * @return googleChatSpaceId + */ + @jakarta.annotation.Nullable + public String getGoogleChatSpaceId() { + return googleChatSpaceId; + } + + public void setGoogleChatSpaceId(@jakarta.annotation.Nullable String googleChatSpaceId) { + this.googleChatSpaceId = googleChatSpaceId; + } + + + public Incident googleChatSpaceName(@jakarta.annotation.Nullable String googleChatSpaceName) { + this.googleChatSpaceName = googleChatSpaceName; + return this; + } + + /** + * Google Chat space name + * @return googleChatSpaceName + */ + @jakarta.annotation.Nullable + public String getGoogleChatSpaceName() { + return googleChatSpaceName; + } + + public void setGoogleChatSpaceName(@jakarta.annotation.Nullable String googleChatSpaceName) { + this.googleChatSpaceName = googleChatSpaceName; + } + + + public Incident googleChatSpaceUrl(@jakarta.annotation.Nullable String googleChatSpaceUrl) { + this.googleChatSpaceUrl = googleChatSpaceUrl; + return this; + } + + /** + * Google Chat space URL + * @return googleChatSpaceUrl + */ + @jakarta.annotation.Nullable + public String getGoogleChatSpaceUrl() { + return googleChatSpaceUrl; + } + + public void setGoogleChatSpaceUrl(@jakarta.annotation.Nullable String googleChatSpaceUrl) { + this.googleChatSpaceUrl = googleChatSpaceUrl; + } + + + public Incident googleChatSpaceShortUrl(@jakarta.annotation.Nullable String googleChatSpaceShortUrl) { + this.googleChatSpaceShortUrl = googleChatSpaceShortUrl; + return this; + } + + /** + * Google Chat space short URL + * @return googleChatSpaceShortUrl + */ + @jakarta.annotation.Nullable + public String getGoogleChatSpaceShortUrl() { + return googleChatSpaceShortUrl; + } + + public void setGoogleChatSpaceShortUrl(@jakarta.annotation.Nullable String googleChatSpaceShortUrl) { + this.googleChatSpaceShortUrl = googleChatSpaceShortUrl; + } + + + public Incident googleChatSpaceArchived(@jakarta.annotation.Nullable Boolean googleChatSpaceArchived) { + this.googleChatSpaceArchived = googleChatSpaceArchived; + return this; + } + + /** + * Whether the Google Chat space is archived + * @return googleChatSpaceArchived + */ + @jakarta.annotation.Nullable + public Boolean getGoogleChatSpaceArchived() { + return googleChatSpaceArchived; + } + + public void setGoogleChatSpaceArchived(@jakarta.annotation.Nullable Boolean googleChatSpaceArchived) { + this.googleChatSpaceArchived = googleChatSpaceArchived; + } + + + public Incident googleChatSpaceDomainId(@jakarta.annotation.Nullable String googleChatSpaceDomainId) { + this.googleChatSpaceDomainId = googleChatSpaceDomainId; + return this; + } + + /** + * Google Chat space domain ID + * @return googleChatSpaceDomainId + */ + @jakarta.annotation.Nullable + public String getGoogleChatSpaceDomainId() { + return googleChatSpaceDomainId; + } + + public void setGoogleChatSpaceDomainId(@jakarta.annotation.Nullable String googleChatSpaceDomainId) { + this.googleChatSpaceDomainId = googleChatSpaceDomainId; + } + + + public Incident webexMeetingId(@jakarta.annotation.Nullable String webexMeetingId) { + this.webexMeetingId = webexMeetingId; + return this; + } + + /** + * Webex meeting ID + * @return webexMeetingId + */ + @jakarta.annotation.Nullable + public String getWebexMeetingId() { + return webexMeetingId; + } + + public void setWebexMeetingId(@jakarta.annotation.Nullable String webexMeetingId) { + this.webexMeetingId = webexMeetingId; + } + + + public Incident webexMeetingUrl(@jakarta.annotation.Nullable String webexMeetingUrl) { + this.webexMeetingUrl = webexMeetingUrl; + return this; + } + + /** + * Webex meeting URL + * @return webexMeetingUrl + */ + @jakarta.annotation.Nullable + public String getWebexMeetingUrl() { + return webexMeetingUrl; + } + + public void setWebexMeetingUrl(@jakarta.annotation.Nullable String webexMeetingUrl) { + this.webexMeetingUrl = webexMeetingUrl; + } + + public Incident jiraIssueKey(@jakarta.annotation.Nullable String jiraIssueKey) { this.jiraIssueKey = jiraIssueKey; return this; @@ -3057,6 +3465,23 @@ public boolean equals(Object o) { Objects.equals(this.googleDriveUrl, incident.googleDriveUrl) && Objects.equals(this.googleMeetingId, incident.googleMeetingId) && Objects.equals(this.googleMeetingUrl, incident.googleMeetingUrl) && + Objects.equals(this.microsoftTeamsMeetingId, incident.microsoftTeamsMeetingId) && + Objects.equals(this.microsoftTeamsMeetingUrl, incident.microsoftTeamsMeetingUrl) && + Objects.equals(this.microsoftTeamsChannelId, incident.microsoftTeamsChannelId) && + Objects.equals(this.microsoftTeamsChannelName, incident.microsoftTeamsChannelName) && + Objects.equals(this.microsoftTeamsChannelUrl, incident.microsoftTeamsChannelUrl) && + Objects.equals(this.microsoftTeamsChannelShortUrl, incident.microsoftTeamsChannelShortUrl) && + Objects.equals(this.microsoftTeamsChatId, incident.microsoftTeamsChatId) && + Objects.equals(this.microsoftTeamsChatUrl, incident.microsoftTeamsChatUrl) && + Objects.equals(this.microsoftTeamsTeamId, incident.microsoftTeamsTeamId) && + Objects.equals(this.googleChatSpaceId, incident.googleChatSpaceId) && + Objects.equals(this.googleChatSpaceName, incident.googleChatSpaceName) && + Objects.equals(this.googleChatSpaceUrl, incident.googleChatSpaceUrl) && + Objects.equals(this.googleChatSpaceShortUrl, incident.googleChatSpaceShortUrl) && + Objects.equals(this.googleChatSpaceArchived, incident.googleChatSpaceArchived) && + Objects.equals(this.googleChatSpaceDomainId, incident.googleChatSpaceDomainId) && + Objects.equals(this.webexMeetingId, incident.webexMeetingId) && + Objects.equals(this.webexMeetingUrl, incident.webexMeetingUrl) && Objects.equals(this.jiraIssueKey, incident.jiraIssueKey) && Objects.equals(this.jiraIssueId, incident.jiraIssueId) && Objects.equals(this.jiraIssueUrl, incident.jiraIssueUrl) && @@ -3142,7 +3567,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(id, sequentialId, title, kind, slug, parentIncidentId, duplicateIncidentId, summary, _private, source, status, url, shortUrl, publicTitle, user, severity, environments, incidentTypes, services, functionalities, groups, labels, slackChannelId, slackChannelName, slackChannelUrl, slackChannelShortUrl, slackChannelDeepLink, slackChannelArchived, slackLastMessageTs, zoomMeetingId, zoomMeetingStartUrl, zoomMeetingJoinUrl, zoomMeetingPassword, zoomMeetingPstnPassword, zoomMeetingH323Password, zoomMeetingGlobalDialInNumbers, googleDriveId, googleDriveParentId, googleDriveUrl, googleMeetingId, googleMeetingUrl, jiraIssueKey, jiraIssueId, jiraIssueUrl, githubIssueId, githubIssueUrl, gitlabIssueId, gitlabIssueUrl, asanaTaskId, asanaTaskUrl, linearIssueId, linearIssueUrl, trelloCardId, trelloCardUrl, zendeskTicketId, zendeskTicketUrl, pagerdutyIncidentId, pagerdutyIncidentNumber, pagerdutyIncidentUrl, opsgenieIncidentId, opsgenieIncidentUrl, opsgenieAlertId, opsgenieAlertUrl, serviceNowIncidentId, serviceNowIncidentKey, serviceNowIncidentUrl, mattermostChannelId, mattermostChannelName, mattermostChannelUrl, confluencePageId, confluencePageUrl, datadogNotebookId, datadogNotebookUrl, shortcutStoryId, shortcutStoryUrl, shortcutTaskId, shortcutTaskUrl, motionTaskId, motionTaskUrl, clickupTaskId, clickupTaskUrl, victorOpsIncidentId, victorOpsIncidentUrl, quipPageId, quipPageUrl, sharepointPageId, sharepointPageUrl, airtableBaseKey, airtableTableName, airtableRecordId, airtableRecordUrl, freshserviceTicketId, freshserviceTicketUrl, freshserviceTaskId, freshserviceTaskUrl, mitigationMessage, resolutionMessage, cancellationMessage, scheduledFor, scheduledUntil, mutedServiceIds, retrospectiveProgressStatus, inTriageBy, startedBy, mitigatedBy, resolvedBy, closedBy, cancelledBy, inTriageAt, startedAt, detectedAt, acknowledgedAt, mitigatedAt, resolvedAt, closedAt, cancelledAt, createdAt, updatedAt); + return Objects.hash(id, sequentialId, title, kind, slug, parentIncidentId, duplicateIncidentId, summary, _private, source, status, url, shortUrl, publicTitle, user, severity, environments, incidentTypes, services, functionalities, groups, labels, slackChannelId, slackChannelName, slackChannelUrl, slackChannelShortUrl, slackChannelDeepLink, slackChannelArchived, slackLastMessageTs, zoomMeetingId, zoomMeetingStartUrl, zoomMeetingJoinUrl, zoomMeetingPassword, zoomMeetingPstnPassword, zoomMeetingH323Password, zoomMeetingGlobalDialInNumbers, googleDriveId, googleDriveParentId, googleDriveUrl, googleMeetingId, googleMeetingUrl, microsoftTeamsMeetingId, microsoftTeamsMeetingUrl, microsoftTeamsChannelId, microsoftTeamsChannelName, microsoftTeamsChannelUrl, microsoftTeamsChannelShortUrl, microsoftTeamsChatId, microsoftTeamsChatUrl, microsoftTeamsTeamId, googleChatSpaceId, googleChatSpaceName, googleChatSpaceUrl, googleChatSpaceShortUrl, googleChatSpaceArchived, googleChatSpaceDomainId, webexMeetingId, webexMeetingUrl, jiraIssueKey, jiraIssueId, jiraIssueUrl, githubIssueId, githubIssueUrl, gitlabIssueId, gitlabIssueUrl, asanaTaskId, asanaTaskUrl, linearIssueId, linearIssueUrl, trelloCardId, trelloCardUrl, zendeskTicketId, zendeskTicketUrl, pagerdutyIncidentId, pagerdutyIncidentNumber, pagerdutyIncidentUrl, opsgenieIncidentId, opsgenieIncidentUrl, opsgenieAlertId, opsgenieAlertUrl, serviceNowIncidentId, serviceNowIncidentKey, serviceNowIncidentUrl, mattermostChannelId, mattermostChannelName, mattermostChannelUrl, confluencePageId, confluencePageUrl, datadogNotebookId, datadogNotebookUrl, shortcutStoryId, shortcutStoryUrl, shortcutTaskId, shortcutTaskUrl, motionTaskId, motionTaskUrl, clickupTaskId, clickupTaskUrl, victorOpsIncidentId, victorOpsIncidentUrl, quipPageId, quipPageUrl, sharepointPageId, sharepointPageUrl, airtableBaseKey, airtableTableName, airtableRecordId, airtableRecordUrl, freshserviceTicketId, freshserviceTicketUrl, freshserviceTaskId, freshserviceTaskUrl, mitigationMessage, resolutionMessage, cancellationMessage, scheduledFor, scheduledUntil, mutedServiceIds, retrospectiveProgressStatus, inTriageBy, startedBy, mitigatedBy, resolvedBy, closedBy, cancelledBy, inTriageAt, startedAt, detectedAt, acknowledgedAt, mitigatedAt, resolvedAt, closedAt, cancelledAt, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -3197,6 +3622,23 @@ public String toString() { sb.append(" googleDriveUrl: ").append(toIndentedString(googleDriveUrl)).append("\n"); sb.append(" googleMeetingId: ").append(toIndentedString(googleMeetingId)).append("\n"); sb.append(" googleMeetingUrl: ").append(toIndentedString(googleMeetingUrl)).append("\n"); + sb.append(" microsoftTeamsMeetingId: ").append(toIndentedString(microsoftTeamsMeetingId)).append("\n"); + sb.append(" microsoftTeamsMeetingUrl: ").append(toIndentedString(microsoftTeamsMeetingUrl)).append("\n"); + sb.append(" microsoftTeamsChannelId: ").append(toIndentedString(microsoftTeamsChannelId)).append("\n"); + sb.append(" microsoftTeamsChannelName: ").append(toIndentedString(microsoftTeamsChannelName)).append("\n"); + sb.append(" microsoftTeamsChannelUrl: ").append(toIndentedString(microsoftTeamsChannelUrl)).append("\n"); + sb.append(" microsoftTeamsChannelShortUrl: ").append(toIndentedString(microsoftTeamsChannelShortUrl)).append("\n"); + sb.append(" microsoftTeamsChatId: ").append(toIndentedString(microsoftTeamsChatId)).append("\n"); + sb.append(" microsoftTeamsChatUrl: ").append(toIndentedString(microsoftTeamsChatUrl)).append("\n"); + sb.append(" microsoftTeamsTeamId: ").append(toIndentedString(microsoftTeamsTeamId)).append("\n"); + sb.append(" googleChatSpaceId: ").append(toIndentedString(googleChatSpaceId)).append("\n"); + sb.append(" googleChatSpaceName: ").append(toIndentedString(googleChatSpaceName)).append("\n"); + sb.append(" googleChatSpaceUrl: ").append(toIndentedString(googleChatSpaceUrl)).append("\n"); + sb.append(" googleChatSpaceShortUrl: ").append(toIndentedString(googleChatSpaceShortUrl)).append("\n"); + sb.append(" googleChatSpaceArchived: ").append(toIndentedString(googleChatSpaceArchived)).append("\n"); + sb.append(" googleChatSpaceDomainId: ").append(toIndentedString(googleChatSpaceDomainId)).append("\n"); + sb.append(" webexMeetingId: ").append(toIndentedString(webexMeetingId)).append("\n"); + sb.append(" webexMeetingUrl: ").append(toIndentedString(webexMeetingUrl)).append("\n"); sb.append(" jiraIssueKey: ").append(toIndentedString(jiraIssueKey)).append("\n"); sb.append(" jiraIssueId: ").append(toIndentedString(jiraIssueId)).append("\n"); sb.append(" jiraIssueUrl: ").append(toIndentedString(jiraIssueUrl)).append("\n"); @@ -3337,6 +3779,23 @@ private String toIndentedString(Object o) { openapiFields.add("google_drive_url"); openapiFields.add("google_meeting_id"); openapiFields.add("google_meeting_url"); + openapiFields.add("microsoft_teams_meeting_id"); + openapiFields.add("microsoft_teams_meeting_url"); + openapiFields.add("microsoft_teams_channel_id"); + openapiFields.add("microsoft_teams_channel_name"); + openapiFields.add("microsoft_teams_channel_url"); + openapiFields.add("microsoft_teams_channel_short_url"); + openapiFields.add("microsoft_teams_chat_id"); + openapiFields.add("microsoft_teams_chat_url"); + openapiFields.add("microsoft_teams_team_id"); + openapiFields.add("google_chat_space_id"); + openapiFields.add("google_chat_space_name"); + openapiFields.add("google_chat_space_url"); + openapiFields.add("google_chat_space_short_url"); + openapiFields.add("google_chat_space_archived"); + openapiFields.add("google_chat_space_domain_id"); + openapiFields.add("webex_meeting_id"); + openapiFields.add("webex_meeting_url"); openapiFields.add("jira_issue_key"); openapiFields.add("jira_issue_id"); openapiFields.add("jira_issue_url"); @@ -3418,7 +3877,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("title"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("created_at"); openapiRequiredFields.add("updated_at"); } @@ -3460,7 +3918,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("kind") != null && !jsonObj.get("kind").isJsonNull()) && !jsonObj.get("kind").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("parent_incident_id") != null && !jsonObj.get("parent_incident_id").isJsonNull()) && !jsonObj.get("parent_incident_id").isJsonPrimitive()) { @@ -3597,9 +4055,19 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("zoom_meeting_h323_password") != null && !jsonObj.get("zoom_meeting_h323_password").isJsonNull()) && !jsonObj.get("zoom_meeting_h323_password").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `zoom_meeting_h323_password` to be a primitive type in the JSON string but got `%s`", jsonObj.get("zoom_meeting_h323_password").toString())); } - // ensure the optional json data is an array if present - if (jsonObj.get("zoom_meeting_global_dial_in_numbers") != null && !jsonObj.get("zoom_meeting_global_dial_in_numbers").isJsonNull() && !jsonObj.get("zoom_meeting_global_dial_in_numbers").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `zoom_meeting_global_dial_in_numbers` to be an array in the JSON string but got `%s`", jsonObj.get("zoom_meeting_global_dial_in_numbers").toString())); + if (jsonObj.get("zoom_meeting_global_dial_in_numbers") != null && !jsonObj.get("zoom_meeting_global_dial_in_numbers").isJsonNull()) { + JsonArray jsonArrayzoomMeetingGlobalDialInNumbers = jsonObj.getAsJsonArray("zoom_meeting_global_dial_in_numbers"); + if (jsonArrayzoomMeetingGlobalDialInNumbers != null) { + // ensure the json data is an array + if (!jsonObj.get("zoom_meeting_global_dial_in_numbers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `zoom_meeting_global_dial_in_numbers` to be an array in the JSON string but got `%s`", jsonObj.get("zoom_meeting_global_dial_in_numbers").toString())); + } + + // validate the optional field `zoom_meeting_global_dial_in_numbers` (array) + for (int i = 0; i < jsonArrayzoomMeetingGlobalDialInNumbers.size(); i++) { + IncidentZoomMeetingGlobalDialInNumbersInner.validateJsonElement(jsonArrayzoomMeetingGlobalDialInNumbers.get(i)); + }; + } } if ((jsonObj.get("google_drive_id") != null && !jsonObj.get("google_drive_id").isJsonNull()) && !jsonObj.get("google_drive_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `google_drive_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("google_drive_id").toString())); @@ -3616,6 +4084,54 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("google_meeting_url") != null && !jsonObj.get("google_meeting_url").isJsonNull()) && !jsonObj.get("google_meeting_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `google_meeting_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("google_meeting_url").toString())); } + if ((jsonObj.get("microsoft_teams_meeting_id") != null && !jsonObj.get("microsoft_teams_meeting_id").isJsonNull()) && !jsonObj.get("microsoft_teams_meeting_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_meeting_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_meeting_id").toString())); + } + if ((jsonObj.get("microsoft_teams_meeting_url") != null && !jsonObj.get("microsoft_teams_meeting_url").isJsonNull()) && !jsonObj.get("microsoft_teams_meeting_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_meeting_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_meeting_url").toString())); + } + if ((jsonObj.get("microsoft_teams_channel_id") != null && !jsonObj.get("microsoft_teams_channel_id").isJsonNull()) && !jsonObj.get("microsoft_teams_channel_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_channel_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_channel_id").toString())); + } + if ((jsonObj.get("microsoft_teams_channel_name") != null && !jsonObj.get("microsoft_teams_channel_name").isJsonNull()) && !jsonObj.get("microsoft_teams_channel_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_channel_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_channel_name").toString())); + } + if ((jsonObj.get("microsoft_teams_channel_url") != null && !jsonObj.get("microsoft_teams_channel_url").isJsonNull()) && !jsonObj.get("microsoft_teams_channel_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_channel_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_channel_url").toString())); + } + if ((jsonObj.get("microsoft_teams_channel_short_url") != null && !jsonObj.get("microsoft_teams_channel_short_url").isJsonNull()) && !jsonObj.get("microsoft_teams_channel_short_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_channel_short_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_channel_short_url").toString())); + } + if ((jsonObj.get("microsoft_teams_chat_id") != null && !jsonObj.get("microsoft_teams_chat_id").isJsonNull()) && !jsonObj.get("microsoft_teams_chat_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_chat_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_chat_id").toString())); + } + if ((jsonObj.get("microsoft_teams_chat_url") != null && !jsonObj.get("microsoft_teams_chat_url").isJsonNull()) && !jsonObj.get("microsoft_teams_chat_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_chat_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_chat_url").toString())); + } + if ((jsonObj.get("microsoft_teams_team_id") != null && !jsonObj.get("microsoft_teams_team_id").isJsonNull()) && !jsonObj.get("microsoft_teams_team_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `microsoft_teams_team_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("microsoft_teams_team_id").toString())); + } + if ((jsonObj.get("google_chat_space_id") != null && !jsonObj.get("google_chat_space_id").isJsonNull()) && !jsonObj.get("google_chat_space_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `google_chat_space_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("google_chat_space_id").toString())); + } + if ((jsonObj.get("google_chat_space_name") != null && !jsonObj.get("google_chat_space_name").isJsonNull()) && !jsonObj.get("google_chat_space_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `google_chat_space_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("google_chat_space_name").toString())); + } + if ((jsonObj.get("google_chat_space_url") != null && !jsonObj.get("google_chat_space_url").isJsonNull()) && !jsonObj.get("google_chat_space_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `google_chat_space_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("google_chat_space_url").toString())); + } + if ((jsonObj.get("google_chat_space_short_url") != null && !jsonObj.get("google_chat_space_short_url").isJsonNull()) && !jsonObj.get("google_chat_space_short_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `google_chat_space_short_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("google_chat_space_short_url").toString())); + } + if ((jsonObj.get("google_chat_space_domain_id") != null && !jsonObj.get("google_chat_space_domain_id").isJsonNull()) && !jsonObj.get("google_chat_space_domain_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `google_chat_space_domain_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("google_chat_space_domain_id").toString())); + } + if ((jsonObj.get("webex_meeting_id") != null && !jsonObj.get("webex_meeting_id").isJsonNull()) && !jsonObj.get("webex_meeting_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `webex_meeting_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("webex_meeting_id").toString())); + } + if ((jsonObj.get("webex_meeting_url") != null && !jsonObj.get("webex_meeting_url").isJsonNull()) && !jsonObj.get("webex_meeting_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `webex_meeting_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("webex_meeting_url").toString())); + } if ((jsonObj.get("jira_issue_key") != null && !jsonObj.get("jira_issue_key").isJsonNull()) && !jsonObj.get("jira_issue_key").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `jira_issue_key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("jira_issue_key").toString())); } diff --git a/src/main/java/com/rootly/client/model/IncidentActionItem.java b/src/main/java/com/rootly/client/model/IncidentActionItem.java index 215ffe67..bbb4b5be 100644 --- a/src/main/java/com/rootly/client/model/IncidentActionItem.java +++ b/src/main/java/com/rootly/client/model/IncidentActionItem.java @@ -52,7 +52,7 @@ /** * IncidentActionItem */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentActionItem { public static final String SERIALIZED_NAME_SUMMARY = "summary"; @SerializedName(SERIALIZED_NAME_SUMMARY) @@ -271,6 +271,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String jiraIssueUrl; + public static final String SERIALIZED_NAME_CREATED_BY = "created_by"; + @SerializedName(SERIALIZED_NAME_CREATED_BY) + @jakarta.annotation.Nullable + private UserFlatResponse createdBy; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -501,6 +506,25 @@ public void setJiraIssueUrl(@jakarta.annotation.Nullable String jiraIssueUrl) { } + public IncidentActionItem createdBy(@jakarta.annotation.Nullable UserFlatResponse createdBy) { + this.createdBy = createdBy; + return this; + } + + /** + * User who created this action item + * @return createdBy + */ + @jakarta.annotation.Nullable + public UserFlatResponse getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(@jakarta.annotation.Nullable UserFlatResponse createdBy) { + this.createdBy = createdBy; + } + + public IncidentActionItem createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -560,6 +584,7 @@ public boolean equals(Object o) { Objects.equals(this.jiraIssueId, incidentActionItem.jiraIssueId) && Objects.equals(this.jiraIssueKey, incidentActionItem.jiraIssueKey) && Objects.equals(this.jiraIssueUrl, incidentActionItem.jiraIssueUrl) && + Objects.equals(this.createdBy, incidentActionItem.createdBy) && Objects.equals(this.createdAt, incidentActionItem.createdAt) && Objects.equals(this.updatedAt, incidentActionItem.updatedAt); } @@ -570,7 +595,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(summary, description, kind, assignedTo, assignedToGroupIds, priority, status, dueDate, jiraIssueId, jiraIssueKey, jiraIssueUrl, createdAt, updatedAt); + return Objects.hash(summary, description, kind, assignedTo, assignedToGroupIds, priority, status, dueDate, jiraIssueId, jiraIssueKey, jiraIssueUrl, createdBy, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -595,6 +620,7 @@ public String toString() { sb.append(" jiraIssueId: ").append(toIndentedString(jiraIssueId)).append("\n"); sb.append(" jiraIssueKey: ").append(toIndentedString(jiraIssueKey)).append("\n"); sb.append(" jiraIssueUrl: ").append(toIndentedString(jiraIssueUrl)).append("\n"); + sb.append(" createdBy: ").append(toIndentedString(createdBy)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -630,6 +656,7 @@ private String toIndentedString(Object o) { openapiFields.add("jira_issue_id"); openapiFields.add("jira_issue_key"); openapiFields.add("jira_issue_url"); + openapiFields.add("created_by"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -715,6 +742,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("jira_issue_url") != null && !jsonObj.get("jira_issue_url").isJsonNull()) && !jsonObj.get("jira_issue_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `jira_issue_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("jira_issue_url").toString())); } + // validate the optional field `created_by` + if (jsonObj.get("created_by") != null && !jsonObj.get("created_by").isJsonNull()) { + UserFlatResponse.validateJsonElement(jsonObj.get("created_by")); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/IncidentActionItemList.java b/src/main/java/com/rootly/client/model/IncidentActionItemList.java index 45043413..efe29219 100644 --- a/src/main/java/com/rootly/client/model/IncidentActionItemList.java +++ b/src/main/java/com/rootly/client/model/IncidentActionItemList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentActionItemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentActionItemList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentActionItemList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentActionItemList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentActionItemList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentActionItemList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentActionItemList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentActionItemList incidentActionItemList = (IncidentActionItemList) o; return Objects.equals(this.data, incidentActionItemList.data) && Objects.equals(this.links, incidentActionItemList.links) && - Objects.equals(this.meta, incidentActionItemList.meta); + Objects.equals(this.meta, incidentActionItemList.meta) && + Objects.equals(this.included, incidentActionItemList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentActionItemResponse.java b/src/main/java/com/rootly/client/model/IncidentActionItemResponse.java index c0bef384..48d454c8 100644 --- a/src/main/java/com/rootly/client/model/IncidentActionItemResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentActionItemResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentActionItemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentActionItemResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentActionItemResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentActionItemResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentActionItemResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentActionItemResponseData d } + public IncidentActionItemResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentActionItemResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentActionItemResponse incidentActionItemResponse = (IncidentActionItemResponse) o; - return Objects.equals(this.data, incidentActionItemResponse.data); + return Objects.equals(this.data, incidentActionItemResponse.data) && + Objects.equals(this.included, incidentActionItemResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentActionItemResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentActionItemResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentActionItemResponseData.java b/src/main/java/com/rootly/client/model/IncidentActionItemResponseData.java index d9d00306..dcb0dcdf 100644 --- a/src/main/java/com/rootly/client/model/IncidentActionItemResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentActionItemResponseData.java @@ -49,7 +49,7 @@ /** * IncidentActionItemResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentActionItemResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelection.java b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelection.java index b0ee460a..84162637 100644 --- a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelection.java +++ b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelection.java @@ -50,7 +50,7 @@ /** * IncidentCustomFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentCustomFieldSelection { public static final String SERIALIZED_NAME_INCIDENT_ID = "incident_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionList.java b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionList.java index 49f2be61..1080bcd7 100644 --- a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionList.java +++ b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentCustomFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentCustomFieldSelectionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentCustomFieldSelectionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentCustomFieldSelectionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentCustomFieldSelectionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentCustomFieldSelectionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentCustomFieldSelectionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentCustomFieldSelectionList incidentCustomFieldSelectionList = (IncidentCustomFieldSelectionList) o; return Objects.equals(this.data, incidentCustomFieldSelectionList.data) && Objects.equals(this.links, incidentCustomFieldSelectionList.links) && - Objects.equals(this.meta, incidentCustomFieldSelectionList.meta); + Objects.equals(this.meta, incidentCustomFieldSelectionList.meta) && + Objects.equals(this.included, incidentCustomFieldSelectionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponse.java b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponse.java index 21154b09..18b7461b 100644 --- a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentCustomFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentCustomFieldSelectionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentCustomFieldSelectionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentCustomFieldSelectionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentCustomFieldSelectionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentCustomFieldSelectionResp } + public IncidentCustomFieldSelectionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentCustomFieldSelectionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentCustomFieldSelectionResponse incidentCustomFieldSelectionResponse = (IncidentCustomFieldSelectionResponse) o; - return Objects.equals(this.data, incidentCustomFieldSelectionResponse.data); + return Objects.equals(this.data, incidentCustomFieldSelectionResponse.data) && + Objects.equals(this.included, incidentCustomFieldSelectionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentCustomFieldSelectionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentCustomFieldSelectionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseData.java b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseData.java index 95ae45ab..25d10bf2 100644 --- a/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseData.java @@ -49,7 +49,7 @@ /** * IncidentCustomFieldSelectionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentCustomFieldSelectionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentEvent.java b/src/main/java/com/rootly/client/model/IncidentEvent.java index 1f40ddf5..f1a6d965 100644 --- a/src/main/java/com/rootly/client/model/IncidentEvent.java +++ b/src/main/java/com/rootly/client/model/IncidentEvent.java @@ -48,7 +48,7 @@ /** * IncidentEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEvent { public static final String SERIALIZED_NAME_EVENT = "event"; @SerializedName(SERIALIZED_NAME_EVENT) diff --git a/src/main/java/com/rootly/client/model/IncidentEventFunctionality.java b/src/main/java/com/rootly/client/model/IncidentEventFunctionality.java index eaaf4c42..c17f151c 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventFunctionality.java +++ b/src/main/java/com/rootly/client/model/IncidentEventFunctionality.java @@ -48,7 +48,7 @@ /** * IncidentEventFunctionality */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventFunctionality { public static final String SERIALIZED_NAME_INCIDENT_EVENT_ID = "incident_event_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_EVENT_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentEventFunctionalityList.java b/src/main/java/com/rootly/client/model/IncidentEventFunctionalityList.java index d054c451..bef01659 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventFunctionalityList.java +++ b/src/main/java/com/rootly/client/model/IncidentEventFunctionalityList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventFunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentEventFunctionalityList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventFunctionalityList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentEventFunctionalityList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentEventFunctionalityList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentEventFunctionalityList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentEventFunctionalityList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentEventFunctionalityList incidentEventFunctionalityList = (IncidentEventFunctionalityList) o; return Objects.equals(this.data, incidentEventFunctionalityList.data) && Objects.equals(this.links, incidentEventFunctionalityList.links) && - Objects.equals(this.meta, incidentEventFunctionalityList.meta); + Objects.equals(this.meta, incidentEventFunctionalityList.meta) && + Objects.equals(this.included, incidentEventFunctionalityList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponse.java b/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponse.java index 0811cee5..31757743 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventFunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentEventFunctionalityResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventFunctionalityResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentEventFunctionalityResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentEventFunctionalityResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentEventFunctionalityRespon } + public IncidentEventFunctionalityResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentEventFunctionalityResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentEventFunctionalityResponse incidentEventFunctionalityResponse = (IncidentEventFunctionalityResponse) o; - return Objects.equals(this.data, incidentEventFunctionalityResponse.data); + return Objects.equals(this.data, incidentEventFunctionalityResponse.data) && + Objects.equals(this.included, incidentEventFunctionalityResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentEventFunctionalityResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentEventFunctionalityResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponseData.java b/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponseData.java index 88196921..73746061 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentEventFunctionalityResponseData.java @@ -49,7 +49,7 @@ /** * IncidentEventFunctionalityResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventFunctionalityResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentEventList.java b/src/main/java/com/rootly/client/model/IncidentEventList.java index 11c8eef9..bf010040 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventList.java +++ b/src/main/java/com/rootly/client/model/IncidentEventList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentEventList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentEventList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentEventList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentEventList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentEventList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentEventList incidentEventList = (IncidentEventList) o; return Objects.equals(this.data, incidentEventList.data) && Objects.equals(this.links, incidentEventList.links) && - Objects.equals(this.meta, incidentEventList.meta); + Objects.equals(this.meta, incidentEventList.meta) && + Objects.equals(this.included, incidentEventList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentEventResponse.java b/src/main/java/com/rootly/client/model/IncidentEventResponse.java index 44747227..a9fe96dc 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentEventResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentEventResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentEventResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentEventResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentEventResponseData data) } + public IncidentEventResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentEventResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentEventResponse incidentEventResponse = (IncidentEventResponse) o; - return Objects.equals(this.data, incidentEventResponse.data); + return Objects.equals(this.data, incidentEventResponse.data) && + Objects.equals(this.included, incidentEventResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentEventResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentEventResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentEventResponseData.java b/src/main/java/com/rootly/client/model/IncidentEventResponseData.java index 7798d260..afbd6df6 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentEventResponseData.java @@ -49,7 +49,7 @@ /** * IncidentEventResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentEventService.java b/src/main/java/com/rootly/client/model/IncidentEventService.java index 7047462f..a4d39f51 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventService.java +++ b/src/main/java/com/rootly/client/model/IncidentEventService.java @@ -48,7 +48,7 @@ /** * IncidentEventService */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventService { public static final String SERIALIZED_NAME_INCIDENT_EVENT_ID = "incident_event_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_EVENT_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentEventServiceList.java b/src/main/java/com/rootly/client/model/IncidentEventServiceList.java index ed28afc0..969bbdc7 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventServiceList.java +++ b/src/main/java/com/rootly/client/model/IncidentEventServiceList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventServiceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentEventServiceList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventServiceList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentEventServiceList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentEventServiceList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentEventServiceList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentEventServiceList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentEventServiceList incidentEventServiceList = (IncidentEventServiceList) o; return Objects.equals(this.data, incidentEventServiceList.data) && Objects.equals(this.links, incidentEventServiceList.links) && - Objects.equals(this.meta, incidentEventServiceList.meta); + Objects.equals(this.meta, incidentEventServiceList.meta) && + Objects.equals(this.included, incidentEventServiceList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentEventServiceResponse.java b/src/main/java/com/rootly/client/model/IncidentEventServiceResponse.java index b277c264..fbb2385e 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventServiceResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentEventServiceResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventServiceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentEventServiceResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventServiceResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentEventServiceResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentEventServiceResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentEventServiceResponseData } + public IncidentEventServiceResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentEventServiceResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentEventServiceResponse incidentEventServiceResponse = (IncidentEventServiceResponse) o; - return Objects.equals(this.data, incidentEventServiceResponse.data); + return Objects.equals(this.data, incidentEventServiceResponse.data) && + Objects.equals(this.included, incidentEventServiceResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentEventServiceResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentEventServiceResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentEventServiceResponseData.java b/src/main/java/com/rootly/client/model/IncidentEventServiceResponseData.java index 75f193bd..fbe8a3bd 100644 --- a/src/main/java/com/rootly/client/model/IncidentEventServiceResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentEventServiceResponseData.java @@ -49,7 +49,7 @@ /** * IncidentEventServiceResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentEventServiceResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentFeedback.java b/src/main/java/com/rootly/client/model/IncidentFeedback.java index 2fef6498..7c081b3f 100644 --- a/src/main/java/com/rootly/client/model/IncidentFeedback.java +++ b/src/main/java/com/rootly/client/model/IncidentFeedback.java @@ -48,7 +48,7 @@ /** * IncidentFeedback */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFeedback { public static final String SERIALIZED_NAME_FEEDBACK = "feedback"; @SerializedName(SERIALIZED_NAME_FEEDBACK) diff --git a/src/main/java/com/rootly/client/model/IncidentFeedbackList.java b/src/main/java/com/rootly/client/model/IncidentFeedbackList.java index 17949550..5c3d70d7 100644 --- a/src/main/java/com/rootly/client/model/IncidentFeedbackList.java +++ b/src/main/java/com/rootly/client/model/IncidentFeedbackList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFeedbackResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentFeedbackList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFeedbackList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentFeedbackList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentFeedbackList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentFeedbackList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentFeedbackList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentFeedbackList incidentFeedbackList = (IncidentFeedbackList) o; return Objects.equals(this.data, incidentFeedbackList.data) && Objects.equals(this.links, incidentFeedbackList.links) && - Objects.equals(this.meta, incidentFeedbackList.meta); + Objects.equals(this.meta, incidentFeedbackList.meta) && + Objects.equals(this.included, incidentFeedbackList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentFeedbackResponse.java b/src/main/java/com/rootly/client/model/IncidentFeedbackResponse.java index 01bfbea0..666b866d 100644 --- a/src/main/java/com/rootly/client/model/IncidentFeedbackResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentFeedbackResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFeedbackResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentFeedbackResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFeedbackResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentFeedbackResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentFeedbackResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentFeedbackResponseData dat } + public IncidentFeedbackResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentFeedbackResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentFeedbackResponse incidentFeedbackResponse = (IncidentFeedbackResponse) o; - return Objects.equals(this.data, incidentFeedbackResponse.data); + return Objects.equals(this.data, incidentFeedbackResponse.data) && + Objects.equals(this.included, incidentFeedbackResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentFeedbackResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentFeedbackResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentFeedbackResponseData.java b/src/main/java/com/rootly/client/model/IncidentFeedbackResponseData.java index 18a01906..47783866 100644 --- a/src/main/java/com/rootly/client/model/IncidentFeedbackResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentFeedbackResponseData.java @@ -49,7 +49,7 @@ /** * IncidentFeedbackResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFeedbackResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentFormFieldSelection.java b/src/main/java/com/rootly/client/model/IncidentFormFieldSelection.java index 98849b9a..df95f430 100644 --- a/src/main/java/com/rootly/client/model/IncidentFormFieldSelection.java +++ b/src/main/java/com/rootly/client/model/IncidentFormFieldSelection.java @@ -51,7 +51,7 @@ /** * IncidentFormFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFormFieldSelection { public static final String SERIALIZED_NAME_INCIDENT_ID = "incident_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_ID) @@ -98,6 +98,21 @@ public class IncidentFormFieldSelection { @jakarta.annotation.Nullable private List selectedUserIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + public IncidentFormFieldSelection() { } @@ -320,6 +335,87 @@ public void setSelectedUserIds(@jakarta.annotation.Nullable List select } + public IncidentFormFieldSelection selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public IncidentFormFieldSelection addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public IncidentFormFieldSelection selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public IncidentFormFieldSelection addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public IncidentFormFieldSelection selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public IncidentFormFieldSelection addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + @Override public boolean equals(Object o) { @@ -338,7 +434,10 @@ public boolean equals(Object o) { Objects.equals(this.selectedOptionIds, incidentFormFieldSelection.selectedOptionIds) && Objects.equals(this.selectedServiceIds, incidentFormFieldSelection.selectedServiceIds) && Objects.equals(this.selectedFunctionalityIds, incidentFormFieldSelection.selectedFunctionalityIds) && - Objects.equals(this.selectedUserIds, incidentFormFieldSelection.selectedUserIds); + Objects.equals(this.selectedUserIds, incidentFormFieldSelection.selectedUserIds) && + Objects.equals(this.selectedEnvironmentIds, incidentFormFieldSelection.selectedEnvironmentIds) && + Objects.equals(this.selectedCauseIds, incidentFormFieldSelection.selectedCauseIds) && + Objects.equals(this.selectedIncidentTypeIds, incidentFormFieldSelection.selectedIncidentTypeIds); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -347,7 +446,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(incidentId, formFieldId, value, selectedCatalogEntityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedFunctionalityIds, selectedUserIds); + return Objects.hash(incidentId, formFieldId, value, selectedCatalogEntityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedFunctionalityIds, selectedUserIds, selectedEnvironmentIds, selectedCauseIds, selectedIncidentTypeIds); } private static int hashCodeNullable(JsonNullable a) { @@ -370,6 +469,9 @@ public String toString() { sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); sb.append(" selectedFunctionalityIds: ").append(toIndentedString(selectedFunctionalityIds)).append("\n"); sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -401,6 +503,9 @@ private String toIndentedString(Object o) { openapiFields.add("selected_service_ids"); openapiFields.add("selected_functionality_ids"); openapiFields.add("selected_user_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_incident_type_ids"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -469,6 +574,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionList.java b/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionList.java index 8fd3724d..483a2724 100644 --- a/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionList.java +++ b/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFormFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentFormFieldSelectionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFormFieldSelectionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentFormFieldSelectionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentFormFieldSelectionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentFormFieldSelectionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentFormFieldSelectionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentFormFieldSelectionList incidentFormFieldSelectionList = (IncidentFormFieldSelectionList) o; return Objects.equals(this.data, incidentFormFieldSelectionList.data) && Objects.equals(this.links, incidentFormFieldSelectionList.links) && - Objects.equals(this.meta, incidentFormFieldSelectionList.meta); + Objects.equals(this.meta, incidentFormFieldSelectionList.meta) && + Objects.equals(this.included, incidentFormFieldSelectionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponse.java b/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponse.java index 5da4b450..77736244 100644 --- a/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFormFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentFormFieldSelectionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFormFieldSelectionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentFormFieldSelectionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentFormFieldSelectionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentFormFieldSelectionRespon } + public IncidentFormFieldSelectionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentFormFieldSelectionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentFormFieldSelectionResponse incidentFormFieldSelectionResponse = (IncidentFormFieldSelectionResponse) o; - return Objects.equals(this.data, incidentFormFieldSelectionResponse.data); + return Objects.equals(this.data, incidentFormFieldSelectionResponse.data) && + Objects.equals(this.included, incidentFormFieldSelectionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentFormFieldSelectionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentFormFieldSelectionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponseData.java b/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponseData.java index 245ec02d..439c452f 100644 --- a/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentFormFieldSelectionResponseData.java @@ -49,7 +49,7 @@ /** * IncidentFormFieldSelectionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentFormFieldSelectionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentList.java b/src/main/java/com/rootly/client/model/IncidentList.java index a6bcb4ab..5d5b7476 100644 --- a/src/main/java/com/rootly/client/model/IncidentList.java +++ b/src/main/java/com/rootly/client/model/IncidentList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentList incidentList = (IncidentList) o; return Objects.equals(this.data, incidentList.data) && Objects.equals(this.links, incidentList.links) && - Objects.equals(this.meta, incidentList.meta); + Objects.equals(this.meta, incidentList.meta) && + Objects.equals(this.included, incidentList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSet.java b/src/main/java/com/rootly/client/model/IncidentPermissionSet.java index 5d3df01b..300be7d0 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSet.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSet.java @@ -51,7 +51,7 @@ /** * IncidentPermissionSet */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSet { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -60,7 +60,7 @@ public class IncidentPermissionSet { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -203,6 +203,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public IncidentPermissionSet() { } + public IncidentPermissionSet( + String slug + ) { + this(); + this.slug = slug; + } + public IncidentPermissionSet name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -222,23 +229,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public IncidentPermissionSet slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The incident permission set slug. * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public IncidentPermissionSet description(@jakarta.annotation.Nullable String description) { @@ -431,7 +430,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("created_at"); openapiRequiredFields.add("updated_at"); } @@ -467,7 +465,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetBoolean.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetBoolean.java index c6661f25..f84933c0 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetBoolean.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetBoolean.java @@ -48,7 +48,7 @@ /** * IncidentPermissionSetBoolean */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetBoolean { public static final String SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID = "incident_permission_set_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanList.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanList.java index 488137cc..fb568be6 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanList.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetBooleanResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentPermissionSetBooleanList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetBooleanList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentPermissionSetBooleanList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPermissionSetBooleanList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentPermissionSetBooleanList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPermissionSetBooleanList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentPermissionSetBooleanList incidentPermissionSetBooleanList = (IncidentPermissionSetBooleanList) o; return Objects.equals(this.data, incidentPermissionSetBooleanList.data) && Objects.equals(this.links, incidentPermissionSetBooleanList.links) && - Objects.equals(this.meta, incidentPermissionSetBooleanList.meta); + Objects.equals(this.meta, incidentPermissionSetBooleanList.meta) && + Objects.equals(this.included, incidentPermissionSetBooleanList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponse.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponse.java index 62230977..1467250d 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetBooleanResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentPermissionSetBooleanResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetBooleanResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentPermissionSetBooleanResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPermissionSetBooleanResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentPermissionSetBooleanResp } + public IncidentPermissionSetBooleanResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPermissionSetBooleanResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentPermissionSetBooleanResponse incidentPermissionSetBooleanResponse = (IncidentPermissionSetBooleanResponse) o; - return Objects.equals(this.data, incidentPermissionSetBooleanResponse.data); + return Objects.equals(this.data, incidentPermissionSetBooleanResponse.data) && + Objects.equals(this.included, incidentPermissionSetBooleanResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentPermissionSetBooleanResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentPermissionSetBooleanResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseData.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseData.java index eda23eb7..8dec432b 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseData.java @@ -49,7 +49,7 @@ /** * IncidentPermissionSetBooleanResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetBooleanResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetList.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetList.java index 57093aa7..0507a813 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetList.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentPermissionSetList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentPermissionSetList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPermissionSetList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentPermissionSetList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPermissionSetList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentPermissionSetList incidentPermissionSetList = (IncidentPermissionSetList) o; return Objects.equals(this.data, incidentPermissionSetList.data) && Objects.equals(this.links, incidentPermissionSetList.links) && - Objects.equals(this.meta, incidentPermissionSetList.meta); + Objects.equals(this.meta, incidentPermissionSetList.meta) && + Objects.equals(this.included, incidentPermissionSetList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetResource.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetResource.java index 75035cd8..edbd9ddb 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetResource.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetResource.java @@ -48,7 +48,7 @@ /** * IncidentPermissionSetResource */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetResource { public static final String SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID = "incident_permission_set_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceList.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceList.java index 10ba0e35..0fc653b8 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceList.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentPermissionSetResourceList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetResourceList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentPermissionSetResourceList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPermissionSetResourceList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentPermissionSetResourceList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPermissionSetResourceList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentPermissionSetResourceList incidentPermissionSetResourceList = (IncidentPermissionSetResourceList) o; return Objects.equals(this.data, incidentPermissionSetResourceList.data) && Objects.equals(this.links, incidentPermissionSetResourceList.links) && - Objects.equals(this.meta, incidentPermissionSetResourceList.meta); + Objects.equals(this.meta, incidentPermissionSetResourceList.meta) && + Objects.equals(this.included, incidentPermissionSetResourceList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponse.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponse.java index 978e77e1..6582b550 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentPermissionSetResourceResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetResourceResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentPermissionSetResourceResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPermissionSetResourceResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentPermissionSetResourceRes } + public IncidentPermissionSetResourceResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPermissionSetResourceResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentPermissionSetResourceResponse incidentPermissionSetResourceResponse = (IncidentPermissionSetResourceResponse) o; - return Objects.equals(this.data, incidentPermissionSetResourceResponse.data); + return Objects.equals(this.data, incidentPermissionSetResourceResponse.data) && + Objects.equals(this.included, incidentPermissionSetResourceResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentPermissionSetResourceResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentPermissionSetResourceResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponseData.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponseData.java index 16b51619..59e0e551 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetResourceResponseData.java @@ -49,7 +49,7 @@ /** * IncidentPermissionSetResourceResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetResourceResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetResponse.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetResponse.java index f69b5db5..526e8b6f 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentPermissionSetResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentPermissionSetResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPermissionSetResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentPermissionSetResponseDat } + public IncidentPermissionSetResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPermissionSetResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentPermissionSetResponse incidentPermissionSetResponse = (IncidentPermissionSetResponse) o; - return Objects.equals(this.data, incidentPermissionSetResponse.data); + return Objects.equals(this.data, incidentPermissionSetResponse.data) && + Objects.equals(this.included, incidentPermissionSetResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentPermissionSetResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentPermissionSetResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPermissionSetResponseData.java b/src/main/java/com/rootly/client/model/IncidentPermissionSetResponseData.java index a6093fbf..e7e367bf 100644 --- a/src/main/java/com/rootly/client/model/IncidentPermissionSetResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentPermissionSetResponseData.java @@ -49,7 +49,7 @@ /** * IncidentPermissionSetResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPermissionSetResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentPostMortem.java b/src/main/java/com/rootly/client/model/IncidentPostMortem.java index 0f0e6040..f3666455 100644 --- a/src/main/java/com/rootly/client/model/IncidentPostMortem.java +++ b/src/main/java/com/rootly/client/model/IncidentPostMortem.java @@ -49,7 +49,7 @@ /** * IncidentPostMortem */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPostMortem { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/IncidentPostMortemList.java b/src/main/java/com/rootly/client/model/IncidentPostMortemList.java index 470074d3..b52859f7 100644 --- a/src/main/java/com/rootly/client/model/IncidentPostMortemList.java +++ b/src/main/java/com/rootly/client/model/IncidentPostMortemList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPostMortemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentPostMortemList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPostMortemList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentPostMortemList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPostMortemList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentPostMortemList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPostMortemList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentPostMortemList incidentPostMortemList = (IncidentPostMortemList) o; return Objects.equals(this.data, incidentPostMortemList.data) && Objects.equals(this.links, incidentPostMortemList.links) && - Objects.equals(this.meta, incidentPostMortemList.meta); + Objects.equals(this.meta, incidentPostMortemList.meta) && + Objects.equals(this.included, incidentPostMortemList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPostMortemResponse.java b/src/main/java/com/rootly/client/model/IncidentPostMortemResponse.java index 4a632a1e..19778b61 100644 --- a/src/main/java/com/rootly/client/model/IncidentPostMortemResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentPostMortemResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPostMortemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentPostMortemResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPostMortemResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentPostMortemResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentPostMortemResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentPostMortemResponseData d } + public IncidentPostMortemResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentPostMortemResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentPostMortemResponse incidentPostMortemResponse = (IncidentPostMortemResponse) o; - return Objects.equals(this.data, incidentPostMortemResponse.data); + return Objects.equals(this.data, incidentPostMortemResponse.data) && + Objects.equals(this.included, incidentPostMortemResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentPostMortemResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentPostMortemResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentPostMortemResponseData.java b/src/main/java/com/rootly/client/model/IncidentPostMortemResponseData.java index b37064cc..87194e83 100644 --- a/src/main/java/com/rootly/client/model/IncidentPostMortemResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentPostMortemResponseData.java @@ -49,7 +49,7 @@ /** * IncidentPostMortemResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentPostMortemResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentResponse.java b/src/main/java/com/rootly/client/model/IncidentResponse.java index f3c67217..3372a1a5 100644 --- a/src/main/java/com/rootly/client/model/IncidentResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentResponseData data) { } + public IncidentResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentResponse incidentResponse = (IncidentResponse) o; - return Objects.equals(this.data, incidentResponse.data); + return Objects.equals(this.data, incidentResponse.data) && + Objects.equals(this.included, incidentResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentResponseData.java b/src/main/java/com/rootly/client/model/IncidentResponseData.java index 66ebf690..7a645b8b 100644 --- a/src/main/java/com/rootly/client/model/IncidentResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentResponseData.java @@ -49,7 +49,7 @@ /** * IncidentResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentRetrospectiveStep.java b/src/main/java/com/rootly/client/model/IncidentRetrospectiveStep.java index c1fe65fc..75d5afb2 100644 --- a/src/main/java/com/rootly/client/model/IncidentRetrospectiveStep.java +++ b/src/main/java/com/rootly/client/model/IncidentRetrospectiveStep.java @@ -49,7 +49,7 @@ /** * IncidentRetrospectiveStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRetrospectiveStep { public static final String SERIALIZED_NAME_RETROSPECTIVE_STEP_ID = "retrospective_step_id"; @SerializedName(SERIALIZED_NAME_RETROSPECTIVE_STEP_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponse.java b/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponse.java index 84b86bdc..9c690929 100644 --- a/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRetrospectiveStepResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentRetrospectiveStepResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRetrospectiveStepResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentRetrospectiveStepResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentRetrospectiveStepResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentRetrospectiveStepRespons } + public IncidentRetrospectiveStepResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentRetrospectiveStepResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentRetrospectiveStepResponse incidentRetrospectiveStepResponse = (IncidentRetrospectiveStepResponse) o; - return Objects.equals(this.data, incidentRetrospectiveStepResponse.data); + return Objects.equals(this.data, incidentRetrospectiveStepResponse.data) && + Objects.equals(this.included, incidentRetrospectiveStepResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentRetrospectiveStepResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentRetrospectiveStepResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponseData.java b/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponseData.java index 9d87239b..bb85b7d2 100644 --- a/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentRetrospectiveStepResponseData.java @@ -49,7 +49,7 @@ /** * IncidentRetrospectiveStepResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRetrospectiveStepResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentRole.java b/src/main/java/com/rootly/client/model/IncidentRole.java index 8fcea678..bf6e2c75 100644 --- a/src/main/java/com/rootly/client/model/IncidentRole.java +++ b/src/main/java/com/rootly/client/model/IncidentRole.java @@ -49,7 +49,7 @@ /** * IncidentRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRole { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -104,6 +104,13 @@ public class IncidentRole { public IncidentRole() { } + public IncidentRole( + String slug + ) { + this(); + this.slug = slug; + } + public IncidentRole name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -123,11 +130,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public IncidentRole slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the incident role * @return slug @@ -137,9 +139,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public IncidentRole summary(@jakarta.annotation.Nullable String summary) { diff --git a/src/main/java/com/rootly/client/model/IncidentRoleList.java b/src/main/java/com/rootly/client/model/IncidentRoleList.java index d4165552..f95d900f 100644 --- a/src/main/java/com/rootly/client/model/IncidentRoleList.java +++ b/src/main/java/com/rootly/client/model/IncidentRoleList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentRoleList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRoleList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentRoleList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentRoleList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentRoleList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentRoleList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentRoleList incidentRoleList = (IncidentRoleList) o; return Objects.equals(this.data, incidentRoleList.data) && Objects.equals(this.links, incidentRoleList.links) && - Objects.equals(this.meta, incidentRoleList.meta); + Objects.equals(this.meta, incidentRoleList.meta) && + Objects.equals(this.included, incidentRoleList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentRoleResponse.java b/src/main/java/com/rootly/client/model/IncidentRoleResponse.java index f2ccdda3..d1f9ab31 100644 --- a/src/main/java/com/rootly/client/model/IncidentRoleResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentRoleResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentRoleResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRoleResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentRoleResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentRoleResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentRoleResponseData data) { } + public IncidentRoleResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentRoleResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentRoleResponse incidentRoleResponse = (IncidentRoleResponse) o; - return Objects.equals(this.data, incidentRoleResponse.data); + return Objects.equals(this.data, incidentRoleResponse.data) && + Objects.equals(this.included, incidentRoleResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentRoleResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentRoleResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentRoleResponseData.java b/src/main/java/com/rootly/client/model/IncidentRoleResponseData.java index b6f6c086..204bb9dc 100644 --- a/src/main/java/com/rootly/client/model/IncidentRoleResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentRoleResponseData.java @@ -49,7 +49,7 @@ /** * IncidentRoleResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRoleResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentRoleTask.java b/src/main/java/com/rootly/client/model/IncidentRoleTask.java index f8698081..63d4cec7 100644 --- a/src/main/java/com/rootly/client/model/IncidentRoleTask.java +++ b/src/main/java/com/rootly/client/model/IncidentRoleTask.java @@ -49,7 +49,7 @@ /** * IncidentRoleTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRoleTask { public static final String SERIALIZED_NAME_INCIDENT_ROLE_ID = "incident_role_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_ROLE_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentRoleTaskList.java b/src/main/java/com/rootly/client/model/IncidentRoleTaskList.java index f6908f89..d458975a 100644 --- a/src/main/java/com/rootly/client/model/IncidentRoleTaskList.java +++ b/src/main/java/com/rootly/client/model/IncidentRoleTaskList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleTaskResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentRoleTaskList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRoleTaskList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentRoleTaskList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentRoleTaskList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentRoleTaskList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentRoleTaskList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentRoleTaskList incidentRoleTaskList = (IncidentRoleTaskList) o; return Objects.equals(this.data, incidentRoleTaskList.data) && Objects.equals(this.links, incidentRoleTaskList.links) && - Objects.equals(this.meta, incidentRoleTaskList.meta); + Objects.equals(this.meta, incidentRoleTaskList.meta) && + Objects.equals(this.included, incidentRoleTaskList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentRoleTaskResponse.java b/src/main/java/com/rootly/client/model/IncidentRoleTaskResponse.java index c92dc34d..c82b6773 100644 --- a/src/main/java/com/rootly/client/model/IncidentRoleTaskResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentRoleTaskResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleTaskResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentRoleTaskResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRoleTaskResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentRoleTaskResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentRoleTaskResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentRoleTaskResponseData dat } + public IncidentRoleTaskResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentRoleTaskResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentRoleTaskResponse incidentRoleTaskResponse = (IncidentRoleTaskResponse) o; - return Objects.equals(this.data, incidentRoleTaskResponse.data); + return Objects.equals(this.data, incidentRoleTaskResponse.data) && + Objects.equals(this.included, incidentRoleTaskResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentRoleTaskResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentRoleTaskResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentRoleTaskResponseData.java b/src/main/java/com/rootly/client/model/IncidentRoleTaskResponseData.java index 73b4ee0d..beae122e 100644 --- a/src/main/java/com/rootly/client/model/IncidentRoleTaskResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentRoleTaskResponseData.java @@ -49,7 +49,7 @@ /** * IncidentRoleTaskResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentRoleTaskResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentStatusPageEvent.java b/src/main/java/com/rootly/client/model/IncidentStatusPageEvent.java index 0af776d6..80ddc64f 100644 --- a/src/main/java/com/rootly/client/model/IncidentStatusPageEvent.java +++ b/src/main/java/com/rootly/client/model/IncidentStatusPageEvent.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.IncidentStatusPageEventStatusPageComponentsInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -48,7 +51,7 @@ /** * IncidentStatusPageEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentStatusPageEvent { public static final String SERIALIZED_NAME_EVENT = "event"; @SerializedName(SERIALIZED_NAME_EVENT) @@ -137,6 +140,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean shouldTweet; + public static final String SERIALIZED_NAME_STATUS_PAGE_COMPONENTS = "status_page_components"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_COMPONENTS) + @jakarta.annotation.Nullable + private List statusPageComponents = new ArrayList<>(); + public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; @SerializedName(SERIALIZED_NAME_STARTED_AT) @jakarta.annotation.Nonnull @@ -250,6 +258,33 @@ public void setShouldTweet(@jakarta.annotation.Nullable Boolean shouldTweet) { } + public IncidentStatusPageEvent statusPageComponents(@jakarta.annotation.Nullable List statusPageComponents) { + this.statusPageComponents = statusPageComponents; + return this; + } + + public IncidentStatusPageEvent addStatusPageComponentsItem(IncidentStatusPageEventStatusPageComponentsInner statusPageComponentsItem) { + if (this.statusPageComponents == null) { + this.statusPageComponents = new ArrayList<>(); + } + this.statusPageComponents.add(statusPageComponentsItem); + return this; + } + + /** + * Affected status page components recorded on the event and their statuses + * @return statusPageComponents + */ + @jakarta.annotation.Nullable + public List getStatusPageComponents() { + return statusPageComponents; + } + + public void setStatusPageComponents(@jakarta.annotation.Nullable List statusPageComponents) { + this.statusPageComponents = statusPageComponents; + } + + public IncidentStatusPageEvent startedAt(@jakarta.annotation.Nonnull String startedAt) { this.startedAt = startedAt; return this; @@ -322,6 +357,7 @@ public boolean equals(Object o) { Objects.equals(this.status, incidentStatusPageEvent.status) && Objects.equals(this.notifySubscribers, incidentStatusPageEvent.notifySubscribers) && Objects.equals(this.shouldTweet, incidentStatusPageEvent.shouldTweet) && + Objects.equals(this.statusPageComponents, incidentStatusPageEvent.statusPageComponents) && Objects.equals(this.startedAt, incidentStatusPageEvent.startedAt) && Objects.equals(this.createdAt, incidentStatusPageEvent.createdAt) && Objects.equals(this.updatedAt, incidentStatusPageEvent.updatedAt); @@ -329,7 +365,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(event, statusPageId, status, notifySubscribers, shouldTweet, startedAt, createdAt, updatedAt); + return Objects.hash(event, statusPageId, status, notifySubscribers, shouldTweet, statusPageComponents, startedAt, createdAt, updatedAt); } @Override @@ -341,6 +377,7 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" notifySubscribers: ").append(toIndentedString(notifySubscribers)).append("\n"); sb.append(" shouldTweet: ").append(toIndentedString(shouldTweet)).append("\n"); + sb.append(" statusPageComponents: ").append(toIndentedString(statusPageComponents)).append("\n"); sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); @@ -371,6 +408,7 @@ private String toIndentedString(Object o) { openapiFields.add("status"); openapiFields.add("notify_subscribers"); openapiFields.add("should_tweet"); + openapiFields.add("status_page_components"); openapiFields.add("started_at"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -424,6 +462,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { StatusEnum.validateJsonElement(jsonObj.get("status")); } + if (jsonObj.get("status_page_components") != null && !jsonObj.get("status_page_components").isJsonNull()) { + JsonArray jsonArraystatusPageComponents = jsonObj.getAsJsonArray("status_page_components"); + if (jsonArraystatusPageComponents != null) { + // ensure the json data is an array + if (!jsonObj.get("status_page_components").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_components` to be an array in the JSON string but got `%s`", jsonObj.get("status_page_components").toString())); + } + + // validate the optional field `status_page_components` (array) + for (int i = 0; i < jsonArraystatusPageComponents.size(); i++) { + IncidentStatusPageEventStatusPageComponentsInner.validateJsonElement(jsonArraystatusPageComponents.get(i)); + }; + } + } if (!jsonObj.get("started_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `started_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("started_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/IncidentStatusPageEventList.java b/src/main/java/com/rootly/client/model/IncidentStatusPageEventList.java index 1a5185e4..48675fa5 100644 --- a/src/main/java/com/rootly/client/model/IncidentStatusPageEventList.java +++ b/src/main/java/com/rootly/client/model/IncidentStatusPageEventList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentStatusPageEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentStatusPageEventList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentStatusPageEventList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentStatusPageEventList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentStatusPageEventList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentStatusPageEventList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentStatusPageEventList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentStatusPageEventList incidentStatusPageEventList = (IncidentStatusPageEventList) o; return Objects.equals(this.data, incidentStatusPageEventList.data) && Objects.equals(this.links, incidentStatusPageEventList.links) && - Objects.equals(this.meta, incidentStatusPageEventList.meta); + Objects.equals(this.meta, incidentStatusPageEventList.meta) && + Objects.equals(this.included, incidentStatusPageEventList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponse.java b/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponse.java index 43bd51b8..e1f0cb5d 100644 --- a/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentStatusPageEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentStatusPageEventResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentStatusPageEventResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentStatusPageEventResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentStatusPageEventResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentStatusPageEventResponseD } + public IncidentStatusPageEventResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentStatusPageEventResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentStatusPageEventResponse incidentStatusPageEventResponse = (IncidentStatusPageEventResponse) o; - return Objects.equals(this.data, incidentStatusPageEventResponse.data); + return Objects.equals(this.data, incidentStatusPageEventResponse.data) && + Objects.equals(this.included, incidentStatusPageEventResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentStatusPageEventResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentStatusPageEventResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponseData.java b/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponseData.java index 6ef869d2..804a43c4 100644 --- a/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentStatusPageEventResponseData.java @@ -49,7 +49,7 @@ /** * IncidentStatusPageEventResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentStatusPageEventResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInner.java b/src/main/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInner.java new file mode 100644 index 00000000..91832820 --- /dev/null +++ b/src/main/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInner.java @@ -0,0 +1,316 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * IncidentStatusPageEventStatusPageComponentsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class IncidentStatusPageEventStatusPageComponentsInner { + public static final String SERIALIZED_NAME_STATUS_PAGE_COMPONENT_ID = "status_page_component_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_COMPONENT_ID) + @jakarta.annotation.Nonnull + private String statusPageComponentId; + + /** + * The status recorded for the component + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + OPERATIONAL("operational"), + + DEGRADED_PERFORMANCE("degraded_performance"), + + PARTIAL_OUTAGE("partial_outage"), + + MAJOR_OUTAGE("major_outage"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nullable + private StatusEnum status; + + public IncidentStatusPageEventStatusPageComponentsInner() { + } + + public IncidentStatusPageEventStatusPageComponentsInner statusPageComponentId(@jakarta.annotation.Nonnull String statusPageComponentId) { + this.statusPageComponentId = statusPageComponentId; + return this; + } + + /** + * Unique ID of a component on the event's status page + * @return statusPageComponentId + */ + @jakarta.annotation.Nonnull + public String getStatusPageComponentId() { + return statusPageComponentId; + } + + public void setStatusPageComponentId(@jakarta.annotation.Nonnull String statusPageComponentId) { + this.statusPageComponentId = statusPageComponentId; + } + + + public IncidentStatusPageEventStatusPageComponentsInner status(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + return this; + } + + /** + * The status recorded for the component + * @return status + */ + @jakarta.annotation.Nullable + public StatusEnum getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IncidentStatusPageEventStatusPageComponentsInner incidentStatusPageEventStatusPageComponentsInner = (IncidentStatusPageEventStatusPageComponentsInner) o; + return Objects.equals(this.statusPageComponentId, incidentStatusPageEventStatusPageComponentsInner.statusPageComponentId) && + Objects.equals(this.status, incidentStatusPageEventStatusPageComponentsInner.status); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(statusPageComponentId, status); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IncidentStatusPageEventStatusPageComponentsInner {\n"); + sb.append(" statusPageComponentId: ").append(toIndentedString(statusPageComponentId)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("status_page_component_id"); + openapiFields.add("status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("status_page_component_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IncidentStatusPageEventStatusPageComponentsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IncidentStatusPageEventStatusPageComponentsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in IncidentStatusPageEventStatusPageComponentsInner is not found in the empty JSON string", IncidentStatusPageEventStatusPageComponentsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IncidentStatusPageEventStatusPageComponentsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `IncidentStatusPageEventStatusPageComponentsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : IncidentStatusPageEventStatusPageComponentsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("status_page_component_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_component_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_component_id").toString())); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the optional field `status` + if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { + StatusEnum.validateJsonElement(jsonObj.get("status")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IncidentStatusPageEventStatusPageComponentsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IncidentStatusPageEventStatusPageComponentsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(IncidentStatusPageEventStatusPageComponentsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, IncidentStatusPageEventStatusPageComponentsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IncidentStatusPageEventStatusPageComponentsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of IncidentStatusPageEventStatusPageComponentsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of IncidentStatusPageEventStatusPageComponentsInner + * @throws IOException if the JSON string is invalid with respect to IncidentStatusPageEventStatusPageComponentsInner + */ + public static IncidentStatusPageEventStatusPageComponentsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IncidentStatusPageEventStatusPageComponentsInner.class); + } + + /** + * Convert an instance of IncidentStatusPageEventStatusPageComponentsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/IncidentSubStatus.java b/src/main/java/com/rootly/client/model/IncidentSubStatus.java index aeccda21..2bcdf8b0 100644 --- a/src/main/java/com/rootly/client/model/IncidentSubStatus.java +++ b/src/main/java/com/rootly/client/model/IncidentSubStatus.java @@ -49,7 +49,7 @@ /** * IncidentSubStatus */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentSubStatus { public static final String SERIALIZED_NAME_INCIDENT_ID = "incident_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentSubStatusList.java b/src/main/java/com/rootly/client/model/IncidentSubStatusList.java index 09eb30e1..78b53a0c 100644 --- a/src/main/java/com/rootly/client/model/IncidentSubStatusList.java +++ b/src/main/java/com/rootly/client/model/IncidentSubStatusList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentSubStatusResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentSubStatusList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentSubStatusList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentSubStatusList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentSubStatusList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentSubStatusList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentSubStatusList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentSubStatusList incidentSubStatusList = (IncidentSubStatusList) o; return Objects.equals(this.data, incidentSubStatusList.data) && Objects.equals(this.links, incidentSubStatusList.links) && - Objects.equals(this.meta, incidentSubStatusList.meta); + Objects.equals(this.meta, incidentSubStatusList.meta) && + Objects.equals(this.included, incidentSubStatusList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentSubStatusResponse.java b/src/main/java/com/rootly/client/model/IncidentSubStatusResponse.java index c666a755..87e801ee 100644 --- a/src/main/java/com/rootly/client/model/IncidentSubStatusResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentSubStatusResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentSubStatusResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentSubStatusResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentSubStatusResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentSubStatusResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentSubStatusResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentSubStatusResponseData da } + public IncidentSubStatusResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentSubStatusResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentSubStatusResponse incidentSubStatusResponse = (IncidentSubStatusResponse) o; - return Objects.equals(this.data, incidentSubStatusResponse.data); + return Objects.equals(this.data, incidentSubStatusResponse.data) && + Objects.equals(this.included, incidentSubStatusResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentSubStatusResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentSubStatusResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentSubStatusResponseData.java b/src/main/java/com/rootly/client/model/IncidentSubStatusResponseData.java index a65b2a93..d9fe9343 100644 --- a/src/main/java/com/rootly/client/model/IncidentSubStatusResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentSubStatusResponseData.java @@ -49,7 +49,7 @@ /** * IncidentSubStatusResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentSubStatusResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentTriggerParams.java b/src/main/java/com/rootly/client/model/IncidentTriggerParams.java index a4a89632..b1ad3cc8 100644 --- a/src/main/java/com/rootly/client/model/IncidentTriggerParams.java +++ b/src/main/java/com/rootly/client/model/IncidentTriggerParams.java @@ -51,7 +51,7 @@ /** * IncidentTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentTriggerParams { /** * Gets or Sets triggerType @@ -1180,6 +1180,87 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private IncidentConditionCauseEnum incidentConditionCause = IncidentConditionCauseEnum.ANY; + /** + * Gets or Sets incidentConditionLabel + */ + @JsonAdapter(IncidentConditionLabelEnum.Adapter.class) + public enum IncidentConditionLabelEnum { + IS("IS"), + + IS_NOT("IS NOT"), + + ANY("ANY"), + + CONTAINS("CONTAINS"), + + CONTAINS_ALL("CONTAINS_ALL"), + + CONTAINS_NONE("CONTAINS_NONE"), + + NONE("NONE"), + + SET("SET"), + + UNSET("UNSET"); + + private String value; + + IncidentConditionLabelEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IncidentConditionLabelEnum fromValue(String value) { + for (IncidentConditionLabelEnum b : IncidentConditionLabelEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IncidentConditionLabelEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IncidentConditionLabelEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IncidentConditionLabelEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IncidentConditionLabelEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_INCIDENT_CONDITION_LABEL = "incident_condition_label"; + @SerializedName(SERIALIZED_NAME_INCIDENT_CONDITION_LABEL) + @jakarta.annotation.Nullable + private IncidentConditionLabelEnum incidentConditionLabel = IncidentConditionLabelEnum.ANY; + + public static final String SERIALIZED_NAME_INCIDENT_CONDITION_LABEL_USE_REGEXP = "incident_condition_label_use_regexp"; + @SerializedName(SERIALIZED_NAME_INCIDENT_CONDITION_LABEL_USE_REGEXP) + @jakarta.annotation.Nullable + private Boolean incidentConditionLabelUseRegexp = false; + + public static final String SERIALIZED_NAME_INCIDENT_LABELS = "incident_labels"; + @SerializedName(SERIALIZED_NAME_INCIDENT_LABELS) + @jakarta.annotation.Nullable + private List incidentLabels = new ArrayList<>(); + /** * [DEPRECATED] Use incident_condition_cause instead */ @@ -2044,6 +2125,71 @@ public void setIncidentConditionCause(@jakarta.annotation.Nullable IncidentCondi } + public IncidentTriggerParams incidentConditionLabel(@jakarta.annotation.Nullable IncidentConditionLabelEnum incidentConditionLabel) { + this.incidentConditionLabel = incidentConditionLabel; + return this; + } + + /** + * Get incidentConditionLabel + * @return incidentConditionLabel + */ + @jakarta.annotation.Nullable + public IncidentConditionLabelEnum getIncidentConditionLabel() { + return incidentConditionLabel; + } + + public void setIncidentConditionLabel(@jakarta.annotation.Nullable IncidentConditionLabelEnum incidentConditionLabel) { + this.incidentConditionLabel = incidentConditionLabel; + } + + + public IncidentTriggerParams incidentConditionLabelUseRegexp(@jakarta.annotation.Nullable Boolean incidentConditionLabelUseRegexp) { + this.incidentConditionLabelUseRegexp = incidentConditionLabelUseRegexp; + return this; + } + + /** + * Get incidentConditionLabelUseRegexp + * @return incidentConditionLabelUseRegexp + */ + @jakarta.annotation.Nullable + public Boolean getIncidentConditionLabelUseRegexp() { + return incidentConditionLabelUseRegexp; + } + + public void setIncidentConditionLabelUseRegexp(@jakarta.annotation.Nullable Boolean incidentConditionLabelUseRegexp) { + this.incidentConditionLabelUseRegexp = incidentConditionLabelUseRegexp; + } + + + public IncidentTriggerParams incidentLabels(@jakarta.annotation.Nullable List incidentLabels) { + this.incidentLabels = incidentLabels; + return this; + } + + public IncidentTriggerParams addIncidentLabelsItem(String incidentLabelsItem) { + if (this.incidentLabels == null) { + this.incidentLabels = new ArrayList<>(); + } + this.incidentLabels.add(incidentLabelsItem); + return this; + } + + /** + * Get incidentLabels + * @return incidentLabels + */ + @jakarta.annotation.Nullable + public List getIncidentLabels() { + return incidentLabels; + } + + public void setIncidentLabels(@jakarta.annotation.Nullable List incidentLabels) { + this.incidentLabels = incidentLabels; + } + + public IncidentTriggerParams incidentPostMortemConditionCause(@jakarta.annotation.Nullable IncidentPostMortemConditionCauseEnum incidentPostMortemConditionCause) { this.incidentPostMortemConditionCause = incidentPostMortemConditionCause; return this; @@ -2225,6 +2371,9 @@ public boolean equals(Object o) { Objects.equals(this.incidentConditionFunctionality, incidentTriggerParams.incidentConditionFunctionality) && Objects.equals(this.incidentConditionGroup, incidentTriggerParams.incidentConditionGroup) && Objects.equals(this.incidentConditionCause, incidentTriggerParams.incidentConditionCause) && + Objects.equals(this.incidentConditionLabel, incidentTriggerParams.incidentConditionLabel) && + Objects.equals(this.incidentConditionLabelUseRegexp, incidentTriggerParams.incidentConditionLabelUseRegexp) && + Objects.equals(this.incidentLabels, incidentTriggerParams.incidentLabels) && Objects.equals(this.incidentPostMortemConditionCause, incidentTriggerParams.incidentPostMortemConditionCause) && Objects.equals(this.incidentConditionSummary, incidentTriggerParams.incidentConditionSummary) && Objects.equals(this.incidentConditionStartedAt, incidentTriggerParams.incidentConditionStartedAt) && @@ -2241,7 +2390,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(triggerType, triggers, incidentVisibilities, incidentKinds, incidentStatuses, incidentInactivityDuration, incidentCondition, incidentConditionVisibility, incidentConditionKind, incidentConditionStatus, incidentConditionSubStatus, incidentConditionEnvironment, incidentConditionSeverity, incidentConditionIncidentType, incidentConditionIncidentRoles, incidentConditionService, incidentConditionFunctionality, incidentConditionGroup, incidentConditionCause, incidentPostMortemConditionCause, incidentConditionSummary, incidentConditionStartedAt, incidentConditionDetectedAt, incidentConditionAcknowledgedAt, incidentConditionMitigatedAt, incidentConditionResolvedAt, incidentConditionalInactivity); + return Objects.hash(triggerType, triggers, incidentVisibilities, incidentKinds, incidentStatuses, incidentInactivityDuration, incidentCondition, incidentConditionVisibility, incidentConditionKind, incidentConditionStatus, incidentConditionSubStatus, incidentConditionEnvironment, incidentConditionSeverity, incidentConditionIncidentType, incidentConditionIncidentRoles, incidentConditionService, incidentConditionFunctionality, incidentConditionGroup, incidentConditionCause, incidentConditionLabel, incidentConditionLabelUseRegexp, incidentLabels, incidentPostMortemConditionCause, incidentConditionSummary, incidentConditionStartedAt, incidentConditionDetectedAt, incidentConditionAcknowledgedAt, incidentConditionMitigatedAt, incidentConditionResolvedAt, incidentConditionalInactivity); } private static int hashCodeNullable(JsonNullable a) { @@ -2274,6 +2423,9 @@ public String toString() { sb.append(" incidentConditionFunctionality: ").append(toIndentedString(incidentConditionFunctionality)).append("\n"); sb.append(" incidentConditionGroup: ").append(toIndentedString(incidentConditionGroup)).append("\n"); sb.append(" incidentConditionCause: ").append(toIndentedString(incidentConditionCause)).append("\n"); + sb.append(" incidentConditionLabel: ").append(toIndentedString(incidentConditionLabel)).append("\n"); + sb.append(" incidentConditionLabelUseRegexp: ").append(toIndentedString(incidentConditionLabelUseRegexp)).append("\n"); + sb.append(" incidentLabels: ").append(toIndentedString(incidentLabels)).append("\n"); sb.append(" incidentPostMortemConditionCause: ").append(toIndentedString(incidentPostMortemConditionCause)).append("\n"); sb.append(" incidentConditionSummary: ").append(toIndentedString(incidentConditionSummary)).append("\n"); sb.append(" incidentConditionStartedAt: ").append(toIndentedString(incidentConditionStartedAt)).append("\n"); @@ -2323,6 +2475,9 @@ private String toIndentedString(Object o) { openapiFields.add("incident_condition_functionality"); openapiFields.add("incident_condition_group"); openapiFields.add("incident_condition_cause"); + openapiFields.add("incident_condition_label"); + openapiFields.add("incident_condition_label_use_regexp"); + openapiFields.add("incident_labels"); openapiFields.add("incident_post_mortem_condition_cause"); openapiFields.add("incident_condition_summary"); openapiFields.add("incident_condition_started_at"); @@ -2480,6 +2635,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_condition_cause") != null && !jsonObj.get("incident_condition_cause").isJsonNull()) { IncidentConditionCauseEnum.validateJsonElement(jsonObj.get("incident_condition_cause")); } + if ((jsonObj.get("incident_condition_label") != null && !jsonObj.get("incident_condition_label").isJsonNull()) && !jsonObj.get("incident_condition_label").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_condition_label` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_condition_label").toString())); + } + // validate the optional field `incident_condition_label` + if (jsonObj.get("incident_condition_label") != null && !jsonObj.get("incident_condition_label").isJsonNull()) { + IncidentConditionLabelEnum.validateJsonElement(jsonObj.get("incident_condition_label")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("incident_labels") != null && !jsonObj.get("incident_labels").isJsonNull() && !jsonObj.get("incident_labels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_labels` to be an array in the JSON string but got `%s`", jsonObj.get("incident_labels").toString())); + } if ((jsonObj.get("incident_post_mortem_condition_cause") != null && !jsonObj.get("incident_post_mortem_condition_cause").isJsonNull()) && !jsonObj.get("incident_post_mortem_condition_cause").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `incident_post_mortem_condition_cause` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_post_mortem_condition_cause").toString())); } diff --git a/src/main/java/com/rootly/client/model/IncidentType.java b/src/main/java/com/rootly/client/model/IncidentType.java index 12c8a003..ed33c24d 100644 --- a/src/main/java/com/rootly/client/model/IncidentType.java +++ b/src/main/java/com/rootly/client/model/IncidentType.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentType */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentType { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -70,6 +71,11 @@ public class IncidentType { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_COLOR = "color"; @SerializedName(SERIALIZED_NAME_COLOR) @jakarta.annotation.Nullable @@ -95,6 +101,11 @@ public class IncidentType { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -108,6 +119,13 @@ public class IncidentType { public IncidentType() { } + public IncidentType( + String slug + ) { + this(); + this.slug = slug; + } + public IncidentType name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -127,11 +145,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public IncidentType slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the incident type * @return slug @@ -141,9 +154,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public IncidentType description(@jakarta.annotation.Nullable String description) { @@ -165,6 +175,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public IncidentType publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the incident type + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public IncidentType color(@jakarta.annotation.Nullable String color) { this.color = color; return this; @@ -284,6 +313,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public IncidentType addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this incident type. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + public IncidentType createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -335,11 +391,13 @@ public boolean equals(Object o) { return Objects.equals(this.name, incidentType.name) && Objects.equals(this.slug, incidentType.slug) && Objects.equals(this.description, incidentType.description) && + Objects.equals(this.publicDescription, incidentType.publicDescription) && Objects.equals(this.color, incidentType.color) && Objects.equals(this.position, incidentType.position) && Objects.equals(this.notifyEmails, incidentType.notifyEmails) && Objects.equals(this.slackChannels, incidentType.slackChannels) && Objects.equals(this.slackAliases, incidentType.slackAliases) && + Objects.equals(this.properties, incidentType.properties) && Objects.equals(this.createdAt, incidentType.createdAt) && Objects.equals(this.updatedAt, incidentType.updatedAt); } @@ -350,7 +408,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, color, position, notifyEmails, slackChannels, slackAliases, createdAt, updatedAt); + return Objects.hash(name, slug, description, publicDescription, color, position, notifyEmails, slackChannels, slackAliases, properties, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -367,11 +425,13 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -399,11 +459,13 @@ private String toIndentedString(Object o) { openapiFields.add("name"); openapiFields.add("slug"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("color"); openapiFields.add("position"); openapiFields.add("notify_emails"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -451,6 +513,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); } @@ -486,6 +551,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/IncidentTypeList.java b/src/main/java/com/rootly/client/model/IncidentTypeList.java index 7deff096..dc84d487 100644 --- a/src/main/java/com/rootly/client/model/IncidentTypeList.java +++ b/src/main/java/com/rootly/client/model/IncidentTypeList.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -53,7 +54,7 @@ /** * IncidentTypeList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentTypeList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class IncidentTypeList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentTypeList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public IncidentTypeList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentTypeList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { IncidentTypeList incidentTypeList = (IncidentTypeList) o; return Objects.equals(this.data, incidentTypeList.data) && Objects.equals(this.links, incidentTypeList.links) && - Objects.equals(this.meta, incidentTypeList.meta); + Objects.equals(this.meta, incidentTypeList.meta) && + Objects.equals(this.included, incidentTypeList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentTypeResponse.java b/src/main/java/com/rootly/client/model/IncidentTypeResponse.java index b5b88553..92e701e7 100644 --- a/src/main/java/com/rootly/client/model/IncidentTypeResponse.java +++ b/src/main/java/com/rootly/client/model/IncidentTypeResponse.java @@ -20,8 +20,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * IncidentTypeResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentTypeResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private IncidentTypeResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public IncidentTypeResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull IncidentTypeResponseData data) { } + public IncidentTypeResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public IncidentTypeResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } IncidentTypeResponse incidentTypeResponse = (IncidentTypeResponse) o; - return Objects.equals(this.data, incidentTypeResponse.data); + return Objects.equals(this.data, incidentTypeResponse.data) && + Objects.equals(this.included, incidentTypeResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IncidentTypeResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` IncidentTypeResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/IncidentTypeResponseData.java b/src/main/java/com/rootly/client/model/IncidentTypeResponseData.java index d0b36af1..7e75c446 100644 --- a/src/main/java/com/rootly/client/model/IncidentTypeResponseData.java +++ b/src/main/java/com/rootly/client/model/IncidentTypeResponseData.java @@ -49,7 +49,7 @@ /** * IncidentTypeResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentTypeResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/IncidentZoomMeetingGlobalDialInNumbersInner.java b/src/main/java/com/rootly/client/model/IncidentZoomMeetingGlobalDialInNumbersInner.java index 7cf2d6c7..0d3653fc 100644 --- a/src/main/java/com/rootly/client/model/IncidentZoomMeetingGlobalDialInNumbersInner.java +++ b/src/main/java/com/rootly/client/model/IncidentZoomMeetingGlobalDialInNumbersInner.java @@ -48,37 +48,37 @@ /** * IncidentZoomMeetingGlobalDialInNumbersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IncidentZoomMeetingGlobalDialInNumbersInner { public static final String SERIALIZED_NAME_COUNTRY = "country"; @SerializedName(SERIALIZED_NAME_COUNTRY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String country; public static final String SERIALIZED_NAME_COUNTRY_NAME = "country_name"; @SerializedName(SERIALIZED_NAME_COUNTRY_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String countryName; public static final String SERIALIZED_NAME_CITY = "city"; @SerializedName(SERIALIZED_NAME_CITY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String city; public static final String SERIALIZED_NAME_NUMBER = "number"; @SerializedName(SERIALIZED_NAME_NUMBER) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String number; public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String type; public IncidentZoomMeetingGlobalDialInNumbersInner() { } - public IncidentZoomMeetingGlobalDialInNumbersInner country(@javax.annotation.Nullable String country) { + public IncidentZoomMeetingGlobalDialInNumbersInner country(@jakarta.annotation.Nullable String country) { this.country = country; return this; } @@ -87,17 +87,17 @@ public IncidentZoomMeetingGlobalDialInNumbersInner country(@javax.annotation.Nul * Get country * @return country */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCountry() { return country; } - public void setCountry(@javax.annotation.Nullable String country) { + public void setCountry(@jakarta.annotation.Nullable String country) { this.country = country; } - public IncidentZoomMeetingGlobalDialInNumbersInner countryName(@javax.annotation.Nullable String countryName) { + public IncidentZoomMeetingGlobalDialInNumbersInner countryName(@jakarta.annotation.Nullable String countryName) { this.countryName = countryName; return this; } @@ -106,17 +106,17 @@ public IncidentZoomMeetingGlobalDialInNumbersInner countryName(@javax.annotation * Get countryName * @return countryName */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCountryName() { return countryName; } - public void setCountryName(@javax.annotation.Nullable String countryName) { + public void setCountryName(@jakarta.annotation.Nullable String countryName) { this.countryName = countryName; } - public IncidentZoomMeetingGlobalDialInNumbersInner city(@javax.annotation.Nullable String city) { + public IncidentZoomMeetingGlobalDialInNumbersInner city(@jakarta.annotation.Nullable String city) { this.city = city; return this; } @@ -125,17 +125,17 @@ public IncidentZoomMeetingGlobalDialInNumbersInner city(@javax.annotation.Nullab * Get city * @return city */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCity() { return city; } - public void setCity(@javax.annotation.Nullable String city) { + public void setCity(@jakarta.annotation.Nullable String city) { this.city = city; } - public IncidentZoomMeetingGlobalDialInNumbersInner number(@javax.annotation.Nullable String number) { + public IncidentZoomMeetingGlobalDialInNumbersInner number(@jakarta.annotation.Nullable String number) { this.number = number; return this; } @@ -144,17 +144,17 @@ public IncidentZoomMeetingGlobalDialInNumbersInner number(@javax.annotation.Null * Get number * @return number */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getNumber() { return number; } - public void setNumber(@javax.annotation.Nullable String number) { + public void setNumber(@jakarta.annotation.Nullable String number) { this.number = number; } - public IncidentZoomMeetingGlobalDialInNumbersInner type(@javax.annotation.Nullable String type) { + public IncidentZoomMeetingGlobalDialInNumbersInner type(@jakarta.annotation.Nullable String type) { this.type = type; return this; } @@ -163,12 +163,12 @@ public IncidentZoomMeetingGlobalDialInNumbersInner type(@javax.annotation.Nullab * Get type * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getType() { return type; } - public void setType(@javax.annotation.Nullable String type) { + public void setType(@jakarta.annotation.Nullable String type) { this.type = type; } diff --git a/src/main/java/com/rootly/client/model/IncidentsChartResponse.java b/src/main/java/com/rootly/client/model/IncidentsChartResponse.java new file mode 100644 index 00000000..765ce7e2 --- /dev/null +++ b/src/main/java/com/rootly/client/model/IncidentsChartResponse.java @@ -0,0 +1,211 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * IncidentsChartResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class IncidentsChartResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private Object data; + + public IncidentsChartResponse() { + } + + public IncidentsChartResponse data(@jakarta.annotation.Nonnull Object data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public Object getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull Object data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IncidentsChartResponse incidentsChartResponse = (IncidentsChartResponse) o; + return Objects.equals(this.data, incidentsChartResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IncidentsChartResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IncidentsChartResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IncidentsChartResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in IncidentsChartResponse is not found in the empty JSON string", IncidentsChartResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IncidentsChartResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `IncidentsChartResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : IncidentsChartResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IncidentsChartResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IncidentsChartResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(IncidentsChartResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, IncidentsChartResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IncidentsChartResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of IncidentsChartResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of IncidentsChartResponse + * @throws IOException if the JSON string is invalid with respect to IncidentsChartResponse + */ + public static IncidentsChartResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IncidentsChartResponse.class); + } + + /** + * Convert an instance of IncidentsChartResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParams.java b/src/main/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParams.java new file mode 100644 index 00000000..ba38b334 --- /dev/null +++ b/src/main/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParams.java @@ -0,0 +1,329 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * InviteToGoogleChatSpaceTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class InviteToGoogleChatSpaceTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + INVITE_TO_GOOGLE_CHAT_SPACE("invite_to_google_chat_space"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_SPACE = "space"; + @SerializedName(SERIALIZED_NAME_SPACE) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner space; + + public static final String SERIALIZED_NAME_EMAILS = "emails"; + @SerializedName(SERIALIZED_NAME_EMAILS) + @jakarta.annotation.Nonnull + private String emails; + + public InviteToGoogleChatSpaceTaskParams() { + } + + public InviteToGoogleChatSpaceTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public InviteToGoogleChatSpaceTaskParams space(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + return this; + } + + /** + * Get space + * @return space + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getSpace() { + return space; + } + + public void setSpace(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + } + + + public InviteToGoogleChatSpaceTaskParams emails(@jakarta.annotation.Nonnull String emails) { + this.emails = emails; + return this; + } + + /** + * Comma separated list of emails to invite + * @return emails + */ + @jakarta.annotation.Nonnull + public String getEmails() { + return emails; + } + + public void setEmails(@jakarta.annotation.Nonnull String emails) { + this.emails = emails; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InviteToGoogleChatSpaceTaskParams inviteToGoogleChatSpaceTaskParams = (InviteToGoogleChatSpaceTaskParams) o; + return Objects.equals(this.taskType, inviteToGoogleChatSpaceTaskParams.taskType) && + Objects.equals(this.space, inviteToGoogleChatSpaceTaskParams.space) && + Objects.equals(this.emails, inviteToGoogleChatSpaceTaskParams.emails); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, space, emails); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InviteToGoogleChatSpaceTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" space: ").append(toIndentedString(space)).append("\n"); + sb.append(" emails: ").append(toIndentedString(emails)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("space"); + openapiFields.add("emails"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("space"); + openapiRequiredFields.add("emails"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InviteToGoogleChatSpaceTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InviteToGoogleChatSpaceTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InviteToGoogleChatSpaceTaskParams is not found in the empty JSON string", InviteToGoogleChatSpaceTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InviteToGoogleChatSpaceTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InviteToGoogleChatSpaceTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : InviteToGoogleChatSpaceTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // validate the required field `space` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("space")); + if (!jsonObj.get("emails").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `emails` to be a primitive type in the JSON string but got `%s`", jsonObj.get("emails").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InviteToGoogleChatSpaceTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InviteToGoogleChatSpaceTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InviteToGoogleChatSpaceTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InviteToGoogleChatSpaceTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InviteToGoogleChatSpaceTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InviteToGoogleChatSpaceTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of InviteToGoogleChatSpaceTaskParams + * @throws IOException if the JSON string is invalid with respect to InviteToGoogleChatSpaceTaskParams + */ + public static InviteToGoogleChatSpaceTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InviteToGoogleChatSpaceTaskParams.class); + } + + /** + * Convert an instance of InviteToGoogleChatSpaceTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParams.java b/src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParams.java new file mode 100644 index 00000000..dea52bab --- /dev/null +++ b/src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParams.java @@ -0,0 +1,483 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * InviteToMicrosoftTeamsChannelRootlyTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class InviteToMicrosoftTeamsChannelRootlyTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + INVITE_TO_MICROSOFT_TEAMS_CHANNEL_ROOTLY("invite_to_microsoft_teams_channel_rootly"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_TEAM = "team"; + @SerializedName(SERIALIZED_NAME_TEAM) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner team; + + public static final String SERIALIZED_NAME_CHANNEL = "channel"; + @SerializedName(SERIALIZED_NAME_CHANNEL) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner channel; + + public static final String SERIALIZED_NAME_ESCALATION_POLICY_TARGET = "escalation_policy_target"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_TARGET) + @jakarta.annotation.Nullable + private AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget; + + public static final String SERIALIZED_NAME_SERVICE_TARGET = "service_target"; + @SerializedName(SERIALIZED_NAME_SERVICE_TARGET) + @jakarta.annotation.Nullable + private AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget; + + public static final String SERIALIZED_NAME_USER_TARGET = "user_target"; + @SerializedName(SERIALIZED_NAME_USER_TARGET) + @jakarta.annotation.Nullable + private AddActionItemTaskParamsPostToSlackChannelsInner userTarget; + + public static final String SERIALIZED_NAME_GROUP_TARGET = "group_target"; + @SerializedName(SERIALIZED_NAME_GROUP_TARGET) + @jakarta.annotation.Nullable + private AddActionItemTaskParamsPostToSlackChannelsInner groupTarget; + + public static final String SERIALIZED_NAME_SCHEDULE_TARGET = "schedule_target"; + @SerializedName(SERIALIZED_NAME_SCHEDULE_TARGET) + @jakarta.annotation.Nullable + private AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget; + + public InviteToMicrosoftTeamsChannelRootlyTaskParams() { + } + + public InviteToMicrosoftTeamsChannelRootlyTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public InviteToMicrosoftTeamsChannelRootlyTaskParams team(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner team) { + this.team = team; + return this; + } + + /** + * Get team + * @return team + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getTeam() { + return team; + } + + public void setTeam(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner team) { + this.team = team; + } + + + public InviteToMicrosoftTeamsChannelRootlyTaskParams channel(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner channel) { + this.channel = channel; + return this; + } + + /** + * Get channel + * @return channel + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getChannel() { + return channel; + } + + public void setChannel(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner channel) { + this.channel = channel; + } + + + public InviteToMicrosoftTeamsChannelRootlyTaskParams escalationPolicyTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget) { + this.escalationPolicyTarget = escalationPolicyTarget; + return this; + } + + /** + * Get escalationPolicyTarget + * @return escalationPolicyTarget + */ + @jakarta.annotation.Nullable + public AddActionItemTaskParamsPostToSlackChannelsInner getEscalationPolicyTarget() { + return escalationPolicyTarget; + } + + public void setEscalationPolicyTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner escalationPolicyTarget) { + this.escalationPolicyTarget = escalationPolicyTarget; + } + + + public InviteToMicrosoftTeamsChannelRootlyTaskParams serviceTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget) { + this.serviceTarget = serviceTarget; + return this; + } + + /** + * Get serviceTarget + * @return serviceTarget + */ + @jakarta.annotation.Nullable + public AddActionItemTaskParamsPostToSlackChannelsInner getServiceTarget() { + return serviceTarget; + } + + public void setServiceTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner serviceTarget) { + this.serviceTarget = serviceTarget; + } + + + public InviteToMicrosoftTeamsChannelRootlyTaskParams userTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner userTarget) { + this.userTarget = userTarget; + return this; + } + + /** + * Get userTarget + * @return userTarget + */ + @jakarta.annotation.Nullable + public AddActionItemTaskParamsPostToSlackChannelsInner getUserTarget() { + return userTarget; + } + + public void setUserTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner userTarget) { + this.userTarget = userTarget; + } + + + public InviteToMicrosoftTeamsChannelRootlyTaskParams groupTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner groupTarget) { + this.groupTarget = groupTarget; + return this; + } + + /** + * Get groupTarget + * @return groupTarget + */ + @jakarta.annotation.Nullable + public AddActionItemTaskParamsPostToSlackChannelsInner getGroupTarget() { + return groupTarget; + } + + public void setGroupTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner groupTarget) { + this.groupTarget = groupTarget; + } + + + public InviteToMicrosoftTeamsChannelRootlyTaskParams scheduleTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget) { + this.scheduleTarget = scheduleTarget; + return this; + } + + /** + * Get scheduleTarget + * @return scheduleTarget + */ + @jakarta.annotation.Nullable + public AddActionItemTaskParamsPostToSlackChannelsInner getScheduleTarget() { + return scheduleTarget; + } + + public void setScheduleTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner scheduleTarget) { + this.scheduleTarget = scheduleTarget; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InviteToMicrosoftTeamsChannelRootlyTaskParams inviteToMicrosoftTeamsChannelRootlyTaskParams = (InviteToMicrosoftTeamsChannelRootlyTaskParams) o; + return Objects.equals(this.taskType, inviteToMicrosoftTeamsChannelRootlyTaskParams.taskType) && + Objects.equals(this.team, inviteToMicrosoftTeamsChannelRootlyTaskParams.team) && + Objects.equals(this.channel, inviteToMicrosoftTeamsChannelRootlyTaskParams.channel) && + Objects.equals(this.escalationPolicyTarget, inviteToMicrosoftTeamsChannelRootlyTaskParams.escalationPolicyTarget) && + Objects.equals(this.serviceTarget, inviteToMicrosoftTeamsChannelRootlyTaskParams.serviceTarget) && + Objects.equals(this.userTarget, inviteToMicrosoftTeamsChannelRootlyTaskParams.userTarget) && + Objects.equals(this.groupTarget, inviteToMicrosoftTeamsChannelRootlyTaskParams.groupTarget) && + Objects.equals(this.scheduleTarget, inviteToMicrosoftTeamsChannelRootlyTaskParams.scheduleTarget); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, team, channel, escalationPolicyTarget, serviceTarget, userTarget, groupTarget, scheduleTarget); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InviteToMicrosoftTeamsChannelRootlyTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" team: ").append(toIndentedString(team)).append("\n"); + sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); + sb.append(" escalationPolicyTarget: ").append(toIndentedString(escalationPolicyTarget)).append("\n"); + sb.append(" serviceTarget: ").append(toIndentedString(serviceTarget)).append("\n"); + sb.append(" userTarget: ").append(toIndentedString(userTarget)).append("\n"); + sb.append(" groupTarget: ").append(toIndentedString(groupTarget)).append("\n"); + sb.append(" scheduleTarget: ").append(toIndentedString(scheduleTarget)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("team"); + openapiFields.add("channel"); + openapiFields.add("escalation_policy_target"); + openapiFields.add("service_target"); + openapiFields.add("user_target"); + openapiFields.add("group_target"); + openapiFields.add("schedule_target"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("team"); + openapiRequiredFields.add("channel"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InviteToMicrosoftTeamsChannelRootlyTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InviteToMicrosoftTeamsChannelRootlyTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InviteToMicrosoftTeamsChannelRootlyTaskParams is not found in the empty JSON string", InviteToMicrosoftTeamsChannelRootlyTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InviteToMicrosoftTeamsChannelRootlyTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InviteToMicrosoftTeamsChannelRootlyTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : InviteToMicrosoftTeamsChannelRootlyTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // validate the required field `team` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("team")); + // validate the required field `channel` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("channel")); + // validate the optional field `escalation_policy_target` + if (jsonObj.get("escalation_policy_target") != null && !jsonObj.get("escalation_policy_target").isJsonNull()) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("escalation_policy_target")); + } + // validate the optional field `service_target` + if (jsonObj.get("service_target") != null && !jsonObj.get("service_target").isJsonNull()) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("service_target")); + } + // validate the optional field `user_target` + if (jsonObj.get("user_target") != null && !jsonObj.get("user_target").isJsonNull()) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("user_target")); + } + // validate the optional field `group_target` + if (jsonObj.get("group_target") != null && !jsonObj.get("group_target").isJsonNull()) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("group_target")); + } + // validate the optional field `schedule_target` + if (jsonObj.get("schedule_target") != null && !jsonObj.get("schedule_target").isJsonNull()) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("schedule_target")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InviteToMicrosoftTeamsChannelRootlyTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InviteToMicrosoftTeamsChannelRootlyTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InviteToMicrosoftTeamsChannelRootlyTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InviteToMicrosoftTeamsChannelRootlyTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InviteToMicrosoftTeamsChannelRootlyTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InviteToMicrosoftTeamsChannelRootlyTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of InviteToMicrosoftTeamsChannelRootlyTaskParams + * @throws IOException if the JSON string is invalid with respect to InviteToMicrosoftTeamsChannelRootlyTaskParams + */ + public static InviteToMicrosoftTeamsChannelRootlyTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InviteToMicrosoftTeamsChannelRootlyTaskParams.class); + } + + /** + * Convert an instance of InviteToMicrosoftTeamsChannelRootlyTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelTaskParams.java b/src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelTaskParams.java index 7a4f05c1..5abdc761 100644 --- a/src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelTaskParams.java +++ b/src/main/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelTaskParams.java @@ -49,7 +49,7 @@ /** * InviteToMicrosoftTeamsChannelTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class InviteToMicrosoftTeamsChannelTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelOpsgenieTaskParams.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelOpsgenieTaskParams.java index 93c42fd1..6317a813 100644 --- a/src/main/java/com/rootly/client/model/InviteToSlackChannelOpsgenieTaskParams.java +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelOpsgenieTaskParams.java @@ -51,7 +51,7 @@ /** * InviteToSlackChannelOpsgenieTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class InviteToSlackChannelOpsgenieTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParams.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParams.java index 16e303fb..811b0e53 100644 --- a/src/main/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParams.java +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParams.java @@ -19,381 +19,252 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf1; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * InviteToSlackChannelPagerdutyTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class InviteToSlackChannelPagerdutyTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - INVITE_TO_SLACK_CHANNEL_PAGERDUTY("invite_to_slack_channel_pagerduty"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class InviteToSlackChannelPagerdutyTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(InviteToSlackChannelPagerdutyTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InviteToSlackChannelPagerdutyTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InviteToSlackChannelPagerdutyTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterAutoAssignRolePagerdutyTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRolePagerdutyTaskParamsAnyOf1.class)); + final TypeAdapter adapterAutoAssignRolePagerdutyTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(AutoAssignRolePagerdutyTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InviteToSlackChannelPagerdutyTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `AutoAssignRolePagerdutyTaskParamsAnyOf1` + if (value.getActualInstance() instanceof AutoAssignRolePagerdutyTaskParamsAnyOf1) { + JsonElement element = adapterAutoAssignRolePagerdutyTaskParamsAnyOf1.toJsonTree((AutoAssignRolePagerdutyTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AutoAssignRolePagerdutyTaskParamsAnyOf` + if (value.getActualInstance() instanceof AutoAssignRolePagerdutyTaskParamsAnyOf) { + JsonElement element = adapterAutoAssignRolePagerdutyTaskParamsAnyOf.toJsonTree((AutoAssignRolePagerdutyTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1"); + } + + @Override + public InviteToSlackChannelPagerdutyTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize AutoAssignRolePagerdutyTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRolePagerdutyTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRolePagerdutyTaskParamsAnyOf1; + InviteToSlackChannelPagerdutyTaskParams ret = new InviteToSlackChannelPagerdutyTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRolePagerdutyTaskParamsAnyOf1'", e); + } + // deserialize AutoAssignRolePagerdutyTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + AutoAssignRolePagerdutyTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterAutoAssignRolePagerdutyTaskParamsAnyOf; + InviteToSlackChannelPagerdutyTaskParams ret = new InviteToSlackChannelPagerdutyTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AutoAssignRolePagerdutyTaskParamsAnyOf'", e); + } + + throw new IOException(String.format("Failed deserialization for InviteToSlackChannelPagerdutyTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + public InviteToSlackChannelPagerdutyTaskParams() { + super("anyOf", Boolean.FALSE); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_CHANNELS = "channels"; - @SerializedName(SERIALIZED_NAME_CHANNELS) - @jakarta.annotation.Nonnull - private List channels = new ArrayList<>(); - - public static final String SERIALIZED_NAME_ESCALATION_POLICY = "escalation_policy"; - @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY) - @jakarta.annotation.Nullable - private Object escalationPolicy; - - public static final String SERIALIZED_NAME_SCHEDULE = "schedule"; - @SerializedName(SERIALIZED_NAME_SCHEDULE) - @jakarta.annotation.Nullable - private Object schedule; - - public static final String SERIALIZED_NAME_SERVICE = "service"; - @SerializedName(SERIALIZED_NAME_SERVICE) - @jakarta.annotation.Nullable - private Object service; - - public InviteToSlackChannelPagerdutyTaskParams() { - } - - public InviteToSlackChannelPagerdutyTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public InviteToSlackChannelPagerdutyTaskParams channels(@jakarta.annotation.Nonnull List channels) { - this.channels = channels; - return this; - } - - public InviteToSlackChannelPagerdutyTaskParams addChannelsItem(Object channelsItem) { - if (this.channels == null) { - this.channels = new ArrayList<>(); + public InviteToSlackChannelPagerdutyTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - this.channels.add(channelsItem); - return this; - } - - /** - * Get channels - * @return channels - */ - @jakarta.annotation.Nonnull - public List getChannels() { - return channels; - } - - public void setChannels(@jakarta.annotation.Nonnull List channels) { - this.channels = channels; - } - - - public InviteToSlackChannelPagerdutyTaskParams escalationPolicy(@jakarta.annotation.Nullable Object escalationPolicy) { - this.escalationPolicy = escalationPolicy; - return this; - } - - /** - * Get escalationPolicy - * @return escalationPolicy - */ - @jakarta.annotation.Nullable - public Object getEscalationPolicy() { - return escalationPolicy; - } - - public void setEscalationPolicy(@jakarta.annotation.Nullable Object escalationPolicy) { - this.escalationPolicy = escalationPolicy; - } - - - public InviteToSlackChannelPagerdutyTaskParams schedule(@jakarta.annotation.Nullable Object schedule) { - this.schedule = schedule; - return this; - } - - /** - * Get schedule - * @return schedule - */ - @jakarta.annotation.Nullable - public Object getSchedule() { - return schedule; - } - - public void setSchedule(@jakarta.annotation.Nullable Object schedule) { - this.schedule = schedule; - } - - - public InviteToSlackChannelPagerdutyTaskParams service(@jakarta.annotation.Nullable Object service) { - this.service = service; - return this; - } - - /** - * Get service - * @return service - */ - @jakarta.annotation.Nullable - public Object getService() { - return service; - } - - public void setService(@jakarta.annotation.Nullable Object service) { - this.service = service; - } - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; + static { + schemas.put("AutoAssignRolePagerdutyTaskParamsAnyOf1", AutoAssignRolePagerdutyTaskParamsAnyOf1.class); + schemas.put("AutoAssignRolePagerdutyTaskParamsAnyOf", AutoAssignRolePagerdutyTaskParamsAnyOf.class); } - InviteToSlackChannelPagerdutyTaskParams inviteToSlackChannelPagerdutyTaskParams = (InviteToSlackChannelPagerdutyTaskParams) o; - return Objects.equals(this.taskType, inviteToSlackChannelPagerdutyTaskParams.taskType) && - Objects.equals(this.channels, inviteToSlackChannelPagerdutyTaskParams.channels) && - Objects.equals(this.escalationPolicy, inviteToSlackChannelPagerdutyTaskParams.escalationPolicy) && - Objects.equals(this.schedule, inviteToSlackChannelPagerdutyTaskParams.schedule) && - Objects.equals(this.service, inviteToSlackChannelPagerdutyTaskParams.service); - } - @Override - public int hashCode() { - return Objects.hash(taskType, channels, escalationPolicy, schedule, service); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class InviteToSlackChannelPagerdutyTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); - sb.append(" escalationPolicy: ").append(toIndentedString(escalationPolicy)).append("\n"); - sb.append(" schedule: ").append(toIndentedString(schedule)).append("\n"); - sb.append(" service: ").append(toIndentedString(service)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + @Override + public Map> getSchemas() { + return InviteToSlackChannelPagerdutyTaskParams.schemas; } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("channels"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to InviteToSlackChannelPagerdutyTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!InviteToSlackChannelPagerdutyTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in InviteToSlackChannelPagerdutyTaskParams is not found in the empty JSON string", InviteToSlackChannelPagerdutyTaskParams.openapiRequiredFields.toString())); - } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!InviteToSlackChannelPagerdutyTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InviteToSlackChannelPagerdutyTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof AutoAssignRolePagerdutyTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; } - } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : InviteToSlackChannelPagerdutyTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + if (instance instanceof AutoAssignRolePagerdutyTaskParamsAnyOf) { + super.setActualInstance(instance); + return; } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - // ensure the json data is an array - if (!jsonObj.get("channels").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `channels` to be an array in the JSON string but got `%s`", jsonObj.get("channels").toString())); - } - JsonArray jsonArraychannels = jsonObj.getAsJsonArray("channels"); - // validate the required field `channels` (array) - for (int i = 0; i < jsonArraychannels.size(); i++) { - }; - // validate the optional field `escalation_policy` - if (jsonObj.get("escalation_policy") != null && !jsonObj.get("escalation_policy").isJsonNull()) { - } - // validate the optional field `schedule` - if (jsonObj.get("schedule") != null && !jsonObj.get("schedule").isJsonNull()) { - } - // validate the optional field `service` - if (jsonObj.get("service") != null && !jsonObj.get("service").isJsonNull()) { - } - } + throw new RuntimeException("Invalid instance type. Must be AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1"); + } - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + /** + * Get the actual instance, which can be the following: + * AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1 + * + * @return The actual instance (AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1) + */ @SuppressWarnings("unchecked") @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!InviteToSlackChannelPagerdutyTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'InviteToSlackChannelPagerdutyTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelPagerdutyTaskParams.class)); + public Object getActualInstance() { + return super.getActualInstance(); + } - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, InviteToSlackChannelPagerdutyTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } + /** + * Get the actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf1`. If the actual instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf1` + */ + public AutoAssignRolePagerdutyTaskParamsAnyOf1 getAutoAssignRolePagerdutyTaskParamsAnyOf1() throws ClassCastException { + return (AutoAssignRolePagerdutyTaskParamsAnyOf1)super.getActualInstance(); + } - @Override - public InviteToSlackChannelPagerdutyTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } + /** + * Get the actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf`. If the actual instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AutoAssignRolePagerdutyTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `AutoAssignRolePagerdutyTaskParamsAnyOf` + */ + public AutoAssignRolePagerdutyTaskParamsAnyOf getAutoAssignRolePagerdutyTaskParamsAnyOf() throws ClassCastException { + return (AutoAssignRolePagerdutyTaskParamsAnyOf)super.getActualInstance(); + } - }.nullSafe(); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InviteToSlackChannelPagerdutyTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with AutoAssignRolePagerdutyTaskParamsAnyOf1 + try { + AutoAssignRolePagerdutyTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AutoAssignRolePagerdutyTaskParamsAnyOf + try { + AutoAssignRolePagerdutyTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AutoAssignRolePagerdutyTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format("The JSON string is invalid for InviteToSlackChannelPagerdutyTaskParams with anyOf schemas: AutoAssignRolePagerdutyTaskParamsAnyOf, AutoAssignRolePagerdutyTaskParamsAnyOf1. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of InviteToSlackChannelPagerdutyTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of InviteToSlackChannelPagerdutyTaskParams - * @throws IOException if the JSON string is invalid with respect to InviteToSlackChannelPagerdutyTaskParams - */ - public static InviteToSlackChannelPagerdutyTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, InviteToSlackChannelPagerdutyTaskParams.class); - } + /** + * Create an instance of InviteToSlackChannelPagerdutyTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of InviteToSlackChannelPagerdutyTaskParams + * @throws IOException if the JSON string is invalid with respect to InviteToSlackChannelPagerdutyTaskParams + */ + public static InviteToSlackChannelPagerdutyTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InviteToSlackChannelPagerdutyTaskParams.class); + } - /** - * Convert an instance of InviteToSlackChannelPagerdutyTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of InviteToSlackChannelPagerdutyTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelRootlyTaskParams.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelRootlyTaskParams.java index 7ccba4bc..971b6360 100644 --- a/src/main/java/com/rootly/client/model/InviteToSlackChannelRootlyTaskParams.java +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelRootlyTaskParams.java @@ -51,7 +51,7 @@ /** * InviteToSlackChannelRootlyTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class InviteToSlackChannelRootlyTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParams.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParams.java index 1609ae3f..f782fb8b 100644 --- a/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParams.java +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParams.java @@ -19,401 +19,298 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf1; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf2; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * InviteToSlackChannelTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class InviteToSlackChannelTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - INVITE_TO_SLACK_CHANNEL("invite_to_slack_channel"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class InviteToSlackChannelTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(InviteToSlackChannelTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InviteToSlackChannelTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InviteToSlackChannelTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterInviteToSlackChannelTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf.class)); + final TypeAdapter adapterInviteToSlackChannelTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf1.class)); + final TypeAdapter adapterInviteToSlackChannelTaskParamsAnyOf2 = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf2.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InviteToSlackChannelTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `InviteToSlackChannelTaskParamsAnyOf` + if (value.getActualInstance() instanceof InviteToSlackChannelTaskParamsAnyOf) { + JsonElement element = adapterInviteToSlackChannelTaskParamsAnyOf.toJsonTree((InviteToSlackChannelTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToSlackChannelTaskParamsAnyOf1` + if (value.getActualInstance() instanceof InviteToSlackChannelTaskParamsAnyOf1) { + JsonElement element = adapterInviteToSlackChannelTaskParamsAnyOf1.toJsonTree((InviteToSlackChannelTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToSlackChannelTaskParamsAnyOf2` + if (value.getActualInstance() instanceof InviteToSlackChannelTaskParamsAnyOf2) { + JsonElement element = adapterInviteToSlackChannelTaskParamsAnyOf2.toJsonTree((InviteToSlackChannelTaskParamsAnyOf2)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, InviteToSlackChannelTaskParamsAnyOf2"); + } + + @Override + public InviteToSlackChannelTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize InviteToSlackChannelTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + InviteToSlackChannelTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToSlackChannelTaskParamsAnyOf; + InviteToSlackChannelTaskParams ret = new InviteToSlackChannelTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelTaskParamsAnyOf'", e); + } + // deserialize InviteToSlackChannelTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + InviteToSlackChannelTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToSlackChannelTaskParamsAnyOf1; + InviteToSlackChannelTaskParams ret = new InviteToSlackChannelTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelTaskParamsAnyOf1'", e); + } + // deserialize InviteToSlackChannelTaskParamsAnyOf2 + try { + // validate the JSON object to see if any exception is thrown + InviteToSlackChannelTaskParamsAnyOf2.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToSlackChannelTaskParamsAnyOf2; + InviteToSlackChannelTaskParams ret = new InviteToSlackChannelTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf2 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelTaskParamsAnyOf2'", e); + } + + throw new IOException(String.format("Failed deserialization for InviteToSlackChannelTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } } - public String getValue() { - return value; - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public String toString() { - return String.valueOf(value); + public InviteToSlackChannelTaskParams() { + super("anyOf", Boolean.FALSE); } - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); + public InviteToSlackChannelTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + static { + schemas.put("InviteToSlackChannelTaskParamsAnyOf", InviteToSlackChannelTaskParamsAnyOf.class); + schemas.put("InviteToSlackChannelTaskParamsAnyOf1", InviteToSlackChannelTaskParamsAnyOf1.class); + schemas.put("InviteToSlackChannelTaskParamsAnyOf2", InviteToSlackChannelTaskParamsAnyOf2.class); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_CHANNEL = "channel"; - @SerializedName(SERIALIZED_NAME_CHANNEL) - @jakarta.annotation.Nonnull - private Object channel; - - public static final String SERIALIZED_NAME_SLACK_USERS = "slack_users"; - @SerializedName(SERIALIZED_NAME_SLACK_USERS) - @jakarta.annotation.Nullable - private List slackUsers = new ArrayList<>(); - - public static final String SERIALIZED_NAME_SLACK_USER_GROUPS = "slack_user_groups"; - @SerializedName(SERIALIZED_NAME_SLACK_USER_GROUPS) - @jakarta.annotation.Nullable - private List slackUserGroups = new ArrayList<>(); - - public static final String SERIALIZED_NAME_SLACK_EMAILS = "slack_emails"; - @SerializedName(SERIALIZED_NAME_SLACK_EMAILS) - @jakarta.annotation.Nullable - private String slackEmails; - - public InviteToSlackChannelTaskParams() { - } - - public InviteToSlackChannelTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public InviteToSlackChannelTaskParams channel(@jakarta.annotation.Nonnull Object channel) { - this.channel = channel; - return this; - } - - /** - * Get channel - * @return channel - */ - @jakarta.annotation.Nonnull - public Object getChannel() { - return channel; - } - - public void setChannel(@jakarta.annotation.Nonnull Object channel) { - this.channel = channel; - } - - - public InviteToSlackChannelTaskParams slackUsers(@jakarta.annotation.Nullable List slackUsers) { - this.slackUsers = slackUsers; - return this; - } - - public InviteToSlackChannelTaskParams addSlackUsersItem(Object slackUsersItem) { - if (this.slackUsers == null) { - this.slackUsers = new ArrayList<>(); + @Override + public Map> getSchemas() { + return InviteToSlackChannelTaskParams.schemas; } - this.slackUsers.add(slackUsersItem); - return this; - } - - /** - * Get slackUsers - * @return slackUsers - */ - @jakarta.annotation.Nullable - public List getSlackUsers() { - return slackUsers; - } - - public void setSlackUsers(@jakarta.annotation.Nullable List slackUsers) { - this.slackUsers = slackUsers; - } - - - public InviteToSlackChannelTaskParams slackUserGroups(@jakarta.annotation.Nullable List slackUserGroups) { - this.slackUserGroups = slackUserGroups; - return this; - } - - public InviteToSlackChannelTaskParams addSlackUserGroupsItem(Object slackUserGroupsItem) { - if (this.slackUserGroups == null) { - this.slackUserGroups = new ArrayList<>(); + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, InviteToSlackChannelTaskParamsAnyOf2 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof InviteToSlackChannelTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof InviteToSlackChannelTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof InviteToSlackChannelTaskParamsAnyOf2) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, InviteToSlackChannelTaskParamsAnyOf2"); } - this.slackUserGroups.add(slackUserGroupsItem); - return this; - } - - /** - * Get slackUserGroups - * @return slackUserGroups - */ - @jakarta.annotation.Nullable - public List getSlackUserGroups() { - return slackUserGroups; - } - - public void setSlackUserGroups(@jakarta.annotation.Nullable List slackUserGroups) { - this.slackUserGroups = slackUserGroups; - } - - - public InviteToSlackChannelTaskParams slackEmails(@jakarta.annotation.Nullable String slackEmails) { - this.slackEmails = slackEmails; - return this; - } - - /** - * Comma separated list of emails to invite to the channel - * @return slackEmails - */ - @jakarta.annotation.Nullable - public String getSlackEmails() { - return slackEmails; - } - - public void setSlackEmails(@jakarta.annotation.Nullable String slackEmails) { - this.slackEmails = slackEmails; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; + + /** + * Get the actual instance, which can be the following: + * InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, InviteToSlackChannelTaskParamsAnyOf2 + * + * @return The actual instance (InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, InviteToSlackChannelTaskParamsAnyOf2) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - if (o == null || getClass() != o.getClass()) { - return false; + + /** + * Get the actual instance of `InviteToSlackChannelTaskParamsAnyOf`. If the actual instance is not `InviteToSlackChannelTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToSlackChannelTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `InviteToSlackChannelTaskParamsAnyOf` + */ + public InviteToSlackChannelTaskParamsAnyOf getInviteToSlackChannelTaskParamsAnyOf() throws ClassCastException { + return (InviteToSlackChannelTaskParamsAnyOf)super.getActualInstance(); } - InviteToSlackChannelTaskParams inviteToSlackChannelTaskParams = (InviteToSlackChannelTaskParams) o; - return Objects.equals(this.taskType, inviteToSlackChannelTaskParams.taskType) && - Objects.equals(this.channel, inviteToSlackChannelTaskParams.channel) && - Objects.equals(this.slackUsers, inviteToSlackChannelTaskParams.slackUsers) && - Objects.equals(this.slackUserGroups, inviteToSlackChannelTaskParams.slackUserGroups) && - Objects.equals(this.slackEmails, inviteToSlackChannelTaskParams.slackEmails); - } - - @Override - public int hashCode() { - return Objects.hash(taskType, channel, slackUsers, slackUserGroups, slackEmails); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class InviteToSlackChannelTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" channel: ").append(toIndentedString(channel)).append("\n"); - sb.append(" slackUsers: ").append(toIndentedString(slackUsers)).append("\n"); - sb.append(" slackUserGroups: ").append(toIndentedString(slackUserGroups)).append("\n"); - sb.append(" slackEmails: ").append(toIndentedString(slackEmails)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + + /** + * Get the actual instance of `InviteToSlackChannelTaskParamsAnyOf1`. If the actual instance is not `InviteToSlackChannelTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToSlackChannelTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `InviteToSlackChannelTaskParamsAnyOf1` + */ + public InviteToSlackChannelTaskParamsAnyOf1 getInviteToSlackChannelTaskParamsAnyOf1() throws ClassCastException { + return (InviteToSlackChannelTaskParamsAnyOf1)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("channel"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to InviteToSlackChannelTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!InviteToSlackChannelTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in InviteToSlackChannelTaskParams is not found in the empty JSON string", InviteToSlackChannelTaskParams.openapiRequiredFields.toString())); - } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!InviteToSlackChannelTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InviteToSlackChannelTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); - } - } + /** + * Get the actual instance of `InviteToSlackChannelTaskParamsAnyOf2`. If the actual instance is not `InviteToSlackChannelTaskParamsAnyOf2`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToSlackChannelTaskParamsAnyOf2` + * @throws ClassCastException if the instance is not `InviteToSlackChannelTaskParamsAnyOf2` + */ + public InviteToSlackChannelTaskParamsAnyOf2 getInviteToSlackChannelTaskParamsAnyOf2() throws ClassCastException { + return (InviteToSlackChannelTaskParamsAnyOf2)super.getActualInstance(); + } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : InviteToSlackChannelTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InviteToSlackChannelTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with InviteToSlackChannelTaskParamsAnyOf + try { + InviteToSlackChannelTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - // validate the required field `channel` - if (jsonObj.get("slack_users") != null && !jsonObj.get("slack_users").isJsonNull()) { - JsonArray jsonArrayslackUsers = jsonObj.getAsJsonArray("slack_users"); - if (jsonArrayslackUsers != null) { - // ensure the json data is an array - if (!jsonObj.get("slack_users").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_users` to be an array in the JSON string but got `%s`", jsonObj.get("slack_users").toString())); - } - - // validate the optional field `slack_users` (array) - for (int i = 0; i < jsonArrayslackUsers.size(); i++) { - }; + // validate the json string with InviteToSlackChannelTaskParamsAnyOf1 + try { + InviteToSlackChannelTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if (jsonObj.get("slack_user_groups") != null && !jsonObj.get("slack_user_groups").isJsonNull()) { - JsonArray jsonArrayslackUserGroups = jsonObj.getAsJsonArray("slack_user_groups"); - if (jsonArrayslackUserGroups != null) { - // ensure the json data is an array - if (!jsonObj.get("slack_user_groups").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_user_groups` to be an array in the JSON string but got `%s`", jsonObj.get("slack_user_groups").toString())); - } - - // validate the optional field `slack_user_groups` (array) - for (int i = 0; i < jsonArrayslackUserGroups.size(); i++) { - }; + // validate the json string with InviteToSlackChannelTaskParamsAnyOf2 + try { + InviteToSlackChannelTaskParamsAnyOf2.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf2 failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if ((jsonObj.get("slack_emails") != null && !jsonObj.get("slack_emails").isJsonNull()) && !jsonObj.get("slack_emails").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_emails` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slack_emails").toString())); - } - } + throw new IOException(String.format("The JSON string is invalid for InviteToSlackChannelTaskParams with anyOf schemas: InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, InviteToSlackChannelTaskParamsAnyOf2. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!InviteToSlackChannelTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'InviteToSlackChannelTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, InviteToSlackChannelTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public InviteToSlackChannelTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + /** + * Create an instance of InviteToSlackChannelTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of InviteToSlackChannelTaskParams + * @throws IOException if the JSON string is invalid with respect to InviteToSlackChannelTaskParams + */ + public static InviteToSlackChannelTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InviteToSlackChannelTaskParams.class); + } + + /** + * Convert an instance of InviteToSlackChannelTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); } - } - - /** - * Create an instance of InviteToSlackChannelTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of InviteToSlackChannelTaskParams - * @throws IOException if the JSON string is invalid with respect to InviteToSlackChannelTaskParams - */ - public static InviteToSlackChannelTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, InviteToSlackChannelTaskParams.class); - } - - /** - * Convert an instance of InviteToSlackChannelTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } } diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf.java new file mode 100644 index 00000000..8307a13f --- /dev/null +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * InviteToSlackChannelTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class InviteToSlackChannelTaskParamsAnyOf { + public static final String SERIALIZED_NAME_SLACK_USERS = "slack_users"; + @SerializedName(SERIALIZED_NAME_SLACK_USERS) + @jakarta.annotation.Nonnull + private List slackUsers = new ArrayList<>(); + + public InviteToSlackChannelTaskParamsAnyOf() { + } + + public InviteToSlackChannelTaskParamsAnyOf slackUsers(@jakarta.annotation.Nonnull List slackUsers) { + this.slackUsers = slackUsers; + return this; + } + + public InviteToSlackChannelTaskParamsAnyOf addSlackUsersItem(AddActionItemTaskParamsPostToSlackChannelsInner slackUsersItem) { + if (this.slackUsers == null) { + this.slackUsers = new ArrayList<>(); + } + this.slackUsers.add(slackUsersItem); + return this; + } + + /** + * Get slackUsers + * @return slackUsers + */ + @jakarta.annotation.Nonnull + public List getSlackUsers() { + return slackUsers; + } + + public void setSlackUsers(@jakarta.annotation.Nonnull List slackUsers) { + this.slackUsers = slackUsers; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InviteToSlackChannelTaskParamsAnyOf inviteToSlackChannelTaskParamsAnyOf = (InviteToSlackChannelTaskParamsAnyOf) o; + return Objects.equals(this.slackUsers, inviteToSlackChannelTaskParamsAnyOf.slackUsers); + } + + @Override + public int hashCode() { + return Objects.hash(slackUsers); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InviteToSlackChannelTaskParamsAnyOf {\n"); + sb.append(" slackUsers: ").append(toIndentedString(slackUsers)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("slack_users"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("slack_users"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InviteToSlackChannelTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InviteToSlackChannelTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InviteToSlackChannelTaskParamsAnyOf is not found in the empty JSON string", InviteToSlackChannelTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InviteToSlackChannelTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InviteToSlackChannelTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : InviteToSlackChannelTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("slack_users").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `slack_users` to be an array in the JSON string but got `%s`", jsonObj.get("slack_users").toString())); + } + + JsonArray jsonArrayslackUsers = jsonObj.getAsJsonArray("slack_users"); + // validate the required field `slack_users` (array) + for (int i = 0; i < jsonArrayslackUsers.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArrayslackUsers.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InviteToSlackChannelTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InviteToSlackChannelTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InviteToSlackChannelTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InviteToSlackChannelTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InviteToSlackChannelTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of InviteToSlackChannelTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to InviteToSlackChannelTaskParamsAnyOf + */ + public static InviteToSlackChannelTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InviteToSlackChannelTaskParamsAnyOf.class); + } + + /** + * Convert an instance of InviteToSlackChannelTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1.java new file mode 100644 index 00000000..4a1b243f --- /dev/null +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * InviteToSlackChannelTaskParamsAnyOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class InviteToSlackChannelTaskParamsAnyOf1 { + public static final String SERIALIZED_NAME_SLACK_USER_GROUPS = "slack_user_groups"; + @SerializedName(SERIALIZED_NAME_SLACK_USER_GROUPS) + @jakarta.annotation.Nonnull + private List slackUserGroups = new ArrayList<>(); + + public InviteToSlackChannelTaskParamsAnyOf1() { + } + + public InviteToSlackChannelTaskParamsAnyOf1 slackUserGroups(@jakarta.annotation.Nonnull List slackUserGroups) { + this.slackUserGroups = slackUserGroups; + return this; + } + + public InviteToSlackChannelTaskParamsAnyOf1 addSlackUserGroupsItem(AddActionItemTaskParamsPostToSlackChannelsInner slackUserGroupsItem) { + if (this.slackUserGroups == null) { + this.slackUserGroups = new ArrayList<>(); + } + this.slackUserGroups.add(slackUserGroupsItem); + return this; + } + + /** + * Get slackUserGroups + * @return slackUserGroups + */ + @jakarta.annotation.Nonnull + public List getSlackUserGroups() { + return slackUserGroups; + } + + public void setSlackUserGroups(@jakarta.annotation.Nonnull List slackUserGroups) { + this.slackUserGroups = slackUserGroups; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InviteToSlackChannelTaskParamsAnyOf1 inviteToSlackChannelTaskParamsAnyOf1 = (InviteToSlackChannelTaskParamsAnyOf1) o; + return Objects.equals(this.slackUserGroups, inviteToSlackChannelTaskParamsAnyOf1.slackUserGroups); + } + + @Override + public int hashCode() { + return Objects.hash(slackUserGroups); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InviteToSlackChannelTaskParamsAnyOf1 {\n"); + sb.append(" slackUserGroups: ").append(toIndentedString(slackUserGroups)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("slack_user_groups"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("slack_user_groups"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InviteToSlackChannelTaskParamsAnyOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InviteToSlackChannelTaskParamsAnyOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InviteToSlackChannelTaskParamsAnyOf1 is not found in the empty JSON string", InviteToSlackChannelTaskParamsAnyOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InviteToSlackChannelTaskParamsAnyOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InviteToSlackChannelTaskParamsAnyOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : InviteToSlackChannelTaskParamsAnyOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("slack_user_groups").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `slack_user_groups` to be an array in the JSON string but got `%s`", jsonObj.get("slack_user_groups").toString())); + } + + JsonArray jsonArrayslackUserGroups = jsonObj.getAsJsonArray("slack_user_groups"); + // validate the required field `slack_user_groups` (array) + for (int i = 0; i < jsonArrayslackUserGroups.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArrayslackUserGroups.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InviteToSlackChannelTaskParamsAnyOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InviteToSlackChannelTaskParamsAnyOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InviteToSlackChannelTaskParamsAnyOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InviteToSlackChannelTaskParamsAnyOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InviteToSlackChannelTaskParamsAnyOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of InviteToSlackChannelTaskParamsAnyOf1 + * @throws IOException if the JSON string is invalid with respect to InviteToSlackChannelTaskParamsAnyOf1 + */ + public static InviteToSlackChannelTaskParamsAnyOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InviteToSlackChannelTaskParamsAnyOf1.class); + } + + /** + * Convert an instance of InviteToSlackChannelTaskParamsAnyOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2.java new file mode 100644 index 00000000..ebe91e4a --- /dev/null +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * InviteToSlackChannelTaskParamsAnyOf2 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class InviteToSlackChannelTaskParamsAnyOf2 { + public static final String SERIALIZED_NAME_SLACK_EMAILS = "slack_emails"; + @SerializedName(SERIALIZED_NAME_SLACK_EMAILS) + @jakarta.annotation.Nonnull + private String slackEmails; + + public InviteToSlackChannelTaskParamsAnyOf2() { + } + + public InviteToSlackChannelTaskParamsAnyOf2 slackEmails(@jakarta.annotation.Nonnull String slackEmails) { + this.slackEmails = slackEmails; + return this; + } + + /** + * Get slackEmails + * @return slackEmails + */ + @jakarta.annotation.Nonnull + public String getSlackEmails() { + return slackEmails; + } + + public void setSlackEmails(@jakarta.annotation.Nonnull String slackEmails) { + this.slackEmails = slackEmails; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + InviteToSlackChannelTaskParamsAnyOf2 inviteToSlackChannelTaskParamsAnyOf2 = (InviteToSlackChannelTaskParamsAnyOf2) o; + return Objects.equals(this.slackEmails, inviteToSlackChannelTaskParamsAnyOf2.slackEmails); + } + + @Override + public int hashCode() { + return Objects.hash(slackEmails); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class InviteToSlackChannelTaskParamsAnyOf2 {\n"); + sb.append(" slackEmails: ").append(toIndentedString(slackEmails)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("slack_emails"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("slack_emails"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InviteToSlackChannelTaskParamsAnyOf2 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InviteToSlackChannelTaskParamsAnyOf2.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in InviteToSlackChannelTaskParamsAnyOf2 is not found in the empty JSON string", InviteToSlackChannelTaskParamsAnyOf2.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InviteToSlackChannelTaskParamsAnyOf2.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `InviteToSlackChannelTaskParamsAnyOf2` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : InviteToSlackChannelTaskParamsAnyOf2.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("slack_emails").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slack_emails` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slack_emails").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InviteToSlackChannelTaskParamsAnyOf2.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InviteToSlackChannelTaskParamsAnyOf2' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf2.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, InviteToSlackChannelTaskParamsAnyOf2 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InviteToSlackChannelTaskParamsAnyOf2 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of InviteToSlackChannelTaskParamsAnyOf2 given an JSON string + * + * @param jsonString JSON string + * @return An instance of InviteToSlackChannelTaskParamsAnyOf2 + * @throws IOException if the JSON string is invalid with respect to InviteToSlackChannelTaskParamsAnyOf2 + */ + public static InviteToSlackChannelTaskParamsAnyOf2 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InviteToSlackChannelTaskParamsAnyOf2.class); + } + + /** + * Convert an instance of InviteToSlackChannelTaskParamsAnyOf2 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/InviteToSlackChannelVictorOpsTaskParams.java b/src/main/java/com/rootly/client/model/InviteToSlackChannelVictorOpsTaskParams.java index 95a1ff5e..f7da071b 100644 --- a/src/main/java/com/rootly/client/model/InviteToSlackChannelVictorOpsTaskParams.java +++ b/src/main/java/com/rootly/client/model/InviteToSlackChannelVictorOpsTaskParams.java @@ -51,7 +51,7 @@ /** * InviteToSlackChannelVictorOpsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class InviteToSlackChannelVictorOpsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/IpRanges.java b/src/main/java/com/rootly/client/model/IpRanges.java index dfc1eaaa..ee6d8011 100644 --- a/src/main/java/com/rootly/client/model/IpRanges.java +++ b/src/main/java/com/rootly/client/model/IpRanges.java @@ -50,7 +50,7 @@ /** * IpRanges */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IpRanges { public static final String SERIALIZED_NAME_INTEGRATIONS_IPV4 = "integrations_ipv4"; @SerializedName(SERIALIZED_NAME_INTEGRATIONS_IPV4) diff --git a/src/main/java/com/rootly/client/model/IpRangesResponse.java b/src/main/java/com/rootly/client/model/IpRangesResponse.java index b4b63898..cf60793e 100644 --- a/src/main/java/com/rootly/client/model/IpRangesResponse.java +++ b/src/main/java/com/rootly/client/model/IpRangesResponse.java @@ -49,7 +49,7 @@ /** * IpRangesResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IpRangesResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/IpRangesResponseData.java b/src/main/java/com/rootly/client/model/IpRangesResponseData.java index 5d87e426..c5ff5df7 100644 --- a/src/main/java/com/rootly/client/model/IpRangesResponseData.java +++ b/src/main/java/com/rootly/client/model/IpRangesResponseData.java @@ -49,7 +49,7 @@ /** * IpRangesResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class IpRangesResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/JsonapiIncludedResource.java b/src/main/java/com/rootly/client/model/JsonapiIncludedResource.java new file mode 100644 index 00000000..8ac633f8 --- /dev/null +++ b/src/main/java/com/rootly/client/model/JsonapiIncludedResource.java @@ -0,0 +1,317 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * JsonapiIncludedResource + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class JsonapiIncludedResource { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private String type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nullable + private Map attributes = new HashMap<>(); + + public static final String SERIALIZED_NAME_RELATIONSHIPS = "relationships"; + @SerializedName(SERIALIZED_NAME_RELATIONSHIPS) + @jakarta.annotation.Nullable + private Map relationships = new HashMap<>(); + + public JsonapiIncludedResource() { + } + + public JsonapiIncludedResource id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public JsonapiIncludedResource type(@jakarta.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull String type) { + this.type = type; + } + + + public JsonapiIncludedResource attributes(@jakarta.annotation.Nullable Map attributes) { + this.attributes = attributes; + return this; + } + + public JsonapiIncludedResource putAttributesItem(String key, Object attributesItem) { + if (this.attributes == null) { + this.attributes = new HashMap<>(); + } + this.attributes.put(key, attributesItem); + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nullable + public Map getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nullable Map attributes) { + this.attributes = attributes; + } + + + public JsonapiIncludedResource relationships(@jakarta.annotation.Nullable Map relationships) { + this.relationships = relationships; + return this; + } + + public JsonapiIncludedResource putRelationshipsItem(String key, Object relationshipsItem) { + if (this.relationships == null) { + this.relationships = new HashMap<>(); + } + this.relationships.put(key, relationshipsItem); + return this; + } + + /** + * Get relationships + * @return relationships + */ + @jakarta.annotation.Nullable + public Map getRelationships() { + return relationships; + } + + public void setRelationships(@jakarta.annotation.Nullable Map relationships) { + this.relationships = relationships; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JsonapiIncludedResource jsonapiIncludedResource = (JsonapiIncludedResource) o; + return Objects.equals(this.id, jsonapiIncludedResource.id) && + Objects.equals(this.type, jsonapiIncludedResource.type) && + Objects.equals(this.attributes, jsonapiIncludedResource.attributes) && + Objects.equals(this.relationships, jsonapiIncludedResource.relationships); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes, relationships); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JsonapiIncludedResource {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" relationships: ").append(toIndentedString(relationships)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + openapiFields.add("relationships"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to JsonapiIncludedResource + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!JsonapiIncludedResource.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in JsonapiIncludedResource is not found in the empty JSON string", JsonapiIncludedResource.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!JsonapiIncludedResource.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `JsonapiIncludedResource` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : JsonapiIncludedResource.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!JsonapiIncludedResource.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'JsonapiIncludedResource' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(JsonapiIncludedResource.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, JsonapiIncludedResource value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public JsonapiIncludedResource read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of JsonapiIncludedResource given an JSON string + * + * @param jsonString JSON string + * @return An instance of JsonapiIncludedResource + * @throws IOException if the JSON string is invalid with respect to JsonapiIncludedResource + */ + public static JsonapiIncludedResource fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, JsonapiIncludedResource.class); + } + + /** + * Convert an instance of JsonapiIncludedResource to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/Links.java b/src/main/java/com/rootly/client/model/Links.java index d3b84342..e1b01815 100644 --- a/src/main/java/com/rootly/client/model/Links.java +++ b/src/main/java/com/rootly/client/model/Links.java @@ -48,7 +48,7 @@ /** * Links */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Links { public static final String SERIALIZED_NAME_SELF = "self"; @SerializedName(SERIALIZED_NAME_SELF) @@ -72,7 +72,7 @@ public class Links { public static final String SERIALIZED_NAME_LAST = "last"; @SerializedName(SERIALIZED_NAME_LAST) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String last; public Links() { @@ -154,7 +154,7 @@ public void setNext(@jakarta.annotation.Nullable String next) { } - public Links last(@jakarta.annotation.Nonnull String last) { + public Links last(@jakarta.annotation.Nullable String last) { this.last = last; return this; } @@ -163,12 +163,12 @@ public Links last(@jakarta.annotation.Nonnull String last) { * Get last * @return last */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getLast() { return last; } - public void setLast(@jakarta.annotation.Nonnull String last) { + public void setLast(@jakarta.annotation.Nullable String last) { this.last = last; } @@ -281,7 +281,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("next") != null && !jsonObj.get("next").isJsonNull()) && !jsonObj.get("next").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `next` to be a primitive type in the JSON string but got `%s`", jsonObj.get("next").toString())); } - if (!jsonObj.get("last").isJsonPrimitive()) { + if ((jsonObj.get("last") != null && !jsonObj.get("last").isJsonNull()) && !jsonObj.get("last").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `last` to be a primitive type in the JSON string but got `%s`", jsonObj.get("last").toString())); } } diff --git a/src/main/java/com/rootly/client/model/LiveCallRouter.java b/src/main/java/com/rootly/client/model/LiveCallRouter.java index 136e107d..ee50c6b8 100644 --- a/src/main/java/com/rootly/client/model/LiveCallRouter.java +++ b/src/main/java/com/rootly/client/model/LiveCallRouter.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -52,7 +53,7 @@ /** * LiveCallRouter */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class LiveCallRouter { /** * The kind of the live_call_router @@ -136,6 +137,10 @@ public enum CountryCodeEnum { NZ("NZ"), + SE("SE"), + + CH("CH"), + GB("GB"), US("US"); @@ -262,6 +267,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String callerGreeting; + public static final String SERIALIZED_NAME_UNAVAILABLE_RESPONDER_MESSAGE = "unavailable_responder_message"; + @SerializedName(SERIALIZED_NAME_UNAVAILABLE_RESPONDER_MESSAGE) + @jakarta.annotation.Nullable + private String unavailableResponderMessage; + /** * The waiting music URL of the live_call_router */ @@ -349,6 +359,21 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean shouldAutoResolveAlertOnCallEnd; + public static final String SERIALIZED_NAME_NOTIFY_VIA_SMS = "notify_via_sms"; + @SerializedName(SERIALIZED_NAME_NOTIFY_VIA_SMS) + @jakarta.annotation.Nullable + private Boolean notifyViaSms; + + public static final String SERIALIZED_NAME_NOTIFY_VIA_PUSH_NOTIFICATION = "notify_via_push_notification"; + @SerializedName(SERIALIZED_NAME_NOTIFY_VIA_PUSH_NOTIFICATION) + @jakarta.annotation.Nullable + private Boolean notifyViaPushNotification; + + public static final String SERIALIZED_NAME_INFORMATIONAL_NOTIFICATION_MESSAGE = "informational_notification_message"; + @SerializedName(SERIALIZED_NAME_INFORMATIONAL_NOTIFICATION_MESSAGE) + @jakarta.annotation.Nullable + private String informationalNotificationMessage; + public static final String SERIALIZED_NAME_ALERT_URGENCY_ID = "alert_urgency_id"; @SerializedName(SERIALIZED_NAME_ALERT_URGENCY_ID) @jakarta.annotation.Nullable @@ -534,6 +559,25 @@ public void setCallerGreeting(@jakarta.annotation.Nullable String callerGreeting } + public LiveCallRouter unavailableResponderMessage(@jakarta.annotation.Nullable String unavailableResponderMessage) { + this.unavailableResponderMessage = unavailableResponderMessage; + return this; + } + + /** + * The message played to the caller when a responder doesn't answer and the call moves on to the next person in the escalation. Leave blank to use the default message. + * @return unavailableResponderMessage + */ + @jakarta.annotation.Nullable + public String getUnavailableResponderMessage() { + return unavailableResponderMessage; + } + + public void setUnavailableResponderMessage(@jakarta.annotation.Nullable String unavailableResponderMessage) { + this.unavailableResponderMessage = unavailableResponderMessage; + } + + public LiveCallRouter waitingMusicUrl(@jakarta.annotation.Nullable WaitingMusicUrlEnum waitingMusicUrl) { this.waitingMusicUrl = waitingMusicUrl; return this; @@ -629,6 +673,63 @@ public void setShouldAutoResolveAlertOnCallEnd(@jakarta.annotation.Nullable Bool } + public LiveCallRouter notifyViaSms(@jakarta.annotation.Nullable Boolean notifyViaSms) { + this.notifyViaSms = notifyViaSms; + return this; + } + + /** + * Whether responders are also notified via SMS when this router pages them + * @return notifyViaSms + */ + @jakarta.annotation.Nullable + public Boolean getNotifyViaSms() { + return notifyViaSms; + } + + public void setNotifyViaSms(@jakarta.annotation.Nullable Boolean notifyViaSms) { + this.notifyViaSms = notifyViaSms; + } + + + public LiveCallRouter notifyViaPushNotification(@jakarta.annotation.Nullable Boolean notifyViaPushNotification) { + this.notifyViaPushNotification = notifyViaPushNotification; + return this; + } + + /** + * Whether responders are also notified via push notification when this router pages them + * @return notifyViaPushNotification + */ + @jakarta.annotation.Nullable + public Boolean getNotifyViaPushNotification() { + return notifyViaPushNotification; + } + + public void setNotifyViaPushNotification(@jakarta.annotation.Nullable Boolean notifyViaPushNotification) { + this.notifyViaPushNotification = notifyViaPushNotification; + } + + + public LiveCallRouter informationalNotificationMessage(@jakarta.annotation.Nullable String informationalNotificationMessage) { + this.informationalNotificationMessage = informationalNotificationMessage; + return this; + } + + /** + * Optional message included in the SMS/push notification. Supports variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name }}. + * @return informationalNotificationMessage + */ + @jakarta.annotation.Nullable + public String getInformationalNotificationMessage() { + return informationalNotificationMessage; + } + + public void setInformationalNotificationMessage(@jakarta.annotation.Nullable String informationalNotificationMessage) { + this.informationalNotificationMessage = informationalNotificationMessage; + } + + public LiveCallRouter alertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId) { this.alertUrgencyId = alertUrgencyId; return this; @@ -769,11 +870,15 @@ public boolean equals(Object o) { Objects.equals(this.phoneNumber, liveCallRouter.phoneNumber) && Objects.equals(this.voicemailGreeting, liveCallRouter.voicemailGreeting) && Objects.equals(this.callerGreeting, liveCallRouter.callerGreeting) && + Objects.equals(this.unavailableResponderMessage, liveCallRouter.unavailableResponderMessage) && Objects.equals(this.waitingMusicUrl, liveCallRouter.waitingMusicUrl) && Objects.equals(this.sentToVoicemailDelay, liveCallRouter.sentToVoicemailDelay) && Objects.equals(this.shouldRedirectToVoicemailOnNoAnswer, liveCallRouter.shouldRedirectToVoicemailOnNoAnswer) && Objects.equals(this.escalationLevelDelayInSeconds, liveCallRouter.escalationLevelDelayInSeconds) && Objects.equals(this.shouldAutoResolveAlertOnCallEnd, liveCallRouter.shouldAutoResolveAlertOnCallEnd) && + Objects.equals(this.notifyViaSms, liveCallRouter.notifyViaSms) && + Objects.equals(this.notifyViaPushNotification, liveCallRouter.notifyViaPushNotification) && + Objects.equals(this.informationalNotificationMessage, liveCallRouter.informationalNotificationMessage) && Objects.equals(this.alertUrgencyId, liveCallRouter.alertUrgencyId) && Objects.equals(this.callingTreePrompt, liveCallRouter.callingTreePrompt) && Objects.equals(this.pagingTargets, liveCallRouter.pagingTargets) && @@ -782,9 +887,20 @@ public boolean equals(Object o) { Objects.equals(this.updatedAt, liveCallRouter.updatedAt); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(kind, enabled, name, countryCode, phoneType, phoneNumber, voicemailGreeting, callerGreeting, waitingMusicUrl, sentToVoicemailDelay, shouldRedirectToVoicemailOnNoAnswer, escalationLevelDelayInSeconds, shouldAutoResolveAlertOnCallEnd, alertUrgencyId, callingTreePrompt, pagingTargets, escalationPolicyTriggerParams, createdAt, updatedAt); + return Objects.hash(kind, enabled, name, countryCode, phoneType, phoneNumber, voicemailGreeting, callerGreeting, unavailableResponderMessage, waitingMusicUrl, sentToVoicemailDelay, shouldRedirectToVoicemailOnNoAnswer, escalationLevelDelayInSeconds, shouldAutoResolveAlertOnCallEnd, notifyViaSms, notifyViaPushNotification, informationalNotificationMessage, alertUrgencyId, callingTreePrompt, pagingTargets, escalationPolicyTriggerParams, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -799,11 +915,15 @@ public String toString() { sb.append(" phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n"); sb.append(" voicemailGreeting: ").append(toIndentedString(voicemailGreeting)).append("\n"); sb.append(" callerGreeting: ").append(toIndentedString(callerGreeting)).append("\n"); + sb.append(" unavailableResponderMessage: ").append(toIndentedString(unavailableResponderMessage)).append("\n"); sb.append(" waitingMusicUrl: ").append(toIndentedString(waitingMusicUrl)).append("\n"); sb.append(" sentToVoicemailDelay: ").append(toIndentedString(sentToVoicemailDelay)).append("\n"); sb.append(" shouldRedirectToVoicemailOnNoAnswer: ").append(toIndentedString(shouldRedirectToVoicemailOnNoAnswer)).append("\n"); sb.append(" escalationLevelDelayInSeconds: ").append(toIndentedString(escalationLevelDelayInSeconds)).append("\n"); sb.append(" shouldAutoResolveAlertOnCallEnd: ").append(toIndentedString(shouldAutoResolveAlertOnCallEnd)).append("\n"); + sb.append(" notifyViaSms: ").append(toIndentedString(notifyViaSms)).append("\n"); + sb.append(" notifyViaPushNotification: ").append(toIndentedString(notifyViaPushNotification)).append("\n"); + sb.append(" informationalNotificationMessage: ").append(toIndentedString(informationalNotificationMessage)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); sb.append(" callingTreePrompt: ").append(toIndentedString(callingTreePrompt)).append("\n"); sb.append(" pagingTargets: ").append(toIndentedString(pagingTargets)).append("\n"); @@ -840,11 +960,15 @@ private String toIndentedString(Object o) { openapiFields.add("phone_number"); openapiFields.add("voicemail_greeting"); openapiFields.add("caller_greeting"); + openapiFields.add("unavailable_responder_message"); openapiFields.add("waiting_music_url"); openapiFields.add("sent_to_voicemail_delay"); openapiFields.add("should_redirect_to_voicemail_on_no_answer"); openapiFields.add("escalation_level_delay_in_seconds"); openapiFields.add("should_auto_resolve_alert_on_call_end"); + openapiFields.add("notify_via_sms"); + openapiFields.add("notify_via_push_notification"); + openapiFields.add("informational_notification_message"); openapiFields.add("alert_urgency_id"); openapiFields.add("calling_tree_prompt"); openapiFields.add("paging_targets"); @@ -920,6 +1044,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("caller_greeting") != null && !jsonObj.get("caller_greeting").isJsonNull()) && !jsonObj.get("caller_greeting").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `caller_greeting` to be a primitive type in the JSON string but got `%s`", jsonObj.get("caller_greeting").toString())); } + if ((jsonObj.get("unavailable_responder_message") != null && !jsonObj.get("unavailable_responder_message").isJsonNull()) && !jsonObj.get("unavailable_responder_message").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `unavailable_responder_message` to be a primitive type in the JSON string but got `%s`", jsonObj.get("unavailable_responder_message").toString())); + } if ((jsonObj.get("waiting_music_url") != null && !jsonObj.get("waiting_music_url").isJsonNull()) && !jsonObj.get("waiting_music_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `waiting_music_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("waiting_music_url").toString())); } @@ -927,6 +1054,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("waiting_music_url") != null && !jsonObj.get("waiting_music_url").isJsonNull()) { WaitingMusicUrlEnum.validateJsonElement(jsonObj.get("waiting_music_url")); } + if ((jsonObj.get("informational_notification_message") != null && !jsonObj.get("informational_notification_message").isJsonNull()) && !jsonObj.get("informational_notification_message").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `informational_notification_message` to be a primitive type in the JSON string but got `%s`", jsonObj.get("informational_notification_message").toString())); + } if ((jsonObj.get("alert_urgency_id") != null && !jsonObj.get("alert_urgency_id").isJsonNull()) && !jsonObj.get("alert_urgency_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `alert_urgency_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_urgency_id").toString())); } diff --git a/src/main/java/com/rootly/client/model/LiveCallRouterList.java b/src/main/java/com/rootly/client/model/LiveCallRouterList.java index bd89b22c..c33b8d64 100644 --- a/src/main/java/com/rootly/client/model/LiveCallRouterList.java +++ b/src/main/java/com/rootly/client/model/LiveCallRouterList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.LiveCallRouterResponseData; import com.rootly.client.model.Meta; @@ -53,7 +54,7 @@ /** * LiveCallRouterList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class LiveCallRouterList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class LiveCallRouterList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public LiveCallRouterList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public LiveCallRouterList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public LiveCallRouterList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { LiveCallRouterList liveCallRouterList = (LiveCallRouterList) o; return Objects.equals(this.data, liveCallRouterList.data) && Objects.equals(this.links, liveCallRouterList.links) && - Objects.equals(this.meta, liveCallRouterList.meta); + Objects.equals(this.meta, liveCallRouterList.meta) && + Objects.equals(this.included, liveCallRouterList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/LiveCallRouterResponse.java b/src/main/java/com/rootly/client/model/LiveCallRouterResponse.java index 5c3af104..5e56da7c 100644 --- a/src/main/java/com/rootly/client/model/LiveCallRouterResponse.java +++ b/src/main/java/com/rootly/client/model/LiveCallRouterResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.LiveCallRouterResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * LiveCallRouterResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class LiveCallRouterResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private LiveCallRouterResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public LiveCallRouterResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull LiveCallRouterResponseData data) } + public LiveCallRouterResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public LiveCallRouterResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } LiveCallRouterResponse liveCallRouterResponse = (LiveCallRouterResponse) o; - return Objects.equals(this.data, liveCallRouterResponse.data); + return Objects.equals(this.data, liveCallRouterResponse.data) && + Objects.equals(this.included, liveCallRouterResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class LiveCallRouterResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` LiveCallRouterResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/LiveCallRouterResponseData.java b/src/main/java/com/rootly/client/model/LiveCallRouterResponseData.java index fc20494d..29ea1c51 100644 --- a/src/main/java/com/rootly/client/model/LiveCallRouterResponseData.java +++ b/src/main/java/com/rootly/client/model/LiveCallRouterResponseData.java @@ -49,7 +49,7 @@ /** * LiveCallRouterResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class LiveCallRouterResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/MeetingRecording.java b/src/main/java/com/rootly/client/model/MeetingRecording.java index 3598655f..6a6c8eeb 100644 --- a/src/main/java/com/rootly/client/model/MeetingRecording.java +++ b/src/main/java/com/rootly/client/model/MeetingRecording.java @@ -51,7 +51,7 @@ /** * MeetingRecording */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class MeetingRecording { /** * Meeting platform @@ -111,12 +111,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PLATFORM = "platform"; @SerializedName(SERIALIZED_NAME_PLATFORM) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private PlatformEnum platform; public static final String SERIALIZED_NAME_SESSION_NUMBER = "session_number"; @SerializedName(SERIALIZED_NAME_SESSION_NUMBER) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Integer sessionNumber; /** @@ -183,58 +183,73 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private StatusEnum status; public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; @SerializedName(SERIALIZED_NAME_STARTED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private OffsetDateTime startedAt; public static final String SERIALIZED_NAME_ENDED_AT = "ended_at"; @SerializedName(SERIALIZED_NAME_ENDED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private OffsetDateTime endedAt; public static final String SERIALIZED_NAME_DURATION_MINUTES = "duration_minutes"; @SerializedName(SERIALIZED_NAME_DURATION_MINUTES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private BigDecimal durationMinutes; public static final String SERIALIZED_NAME_SPEAKER_COUNT = "speaker_count"; @SerializedName(SERIALIZED_NAME_SPEAKER_COUNT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer speakerCount; public static final String SERIALIZED_NAME_WORD_COUNT = "word_count"; @SerializedName(SERIALIZED_NAME_WORD_COUNT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer wordCount; public static final String SERIALIZED_NAME_TRANSCRIPT_SUMMARY = "transcript_summary"; @SerializedName(SERIALIZED_NAME_TRANSCRIPT_SUMMARY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String transcriptSummary; - public static final String SERIALIZED_NAME_HAS_VIDEO = "has_video"; - @SerializedName(SERIALIZED_NAME_HAS_VIDEO) - @javax.annotation.Nullable - private Boolean hasVideo; + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_MEETING_URL = "meeting_url"; + @SerializedName(SERIALIZED_NAME_MEETING_URL) + @jakarta.annotation.Nullable + private String meetingUrl; + + public static final String SERIALIZED_NAME_VIDEO_URL = "video_url"; + @SerializedName(SERIALIZED_NAME_VIDEO_URL) + @jakarta.annotation.Nullable + private String videoUrl; + + public static final String SERIALIZED_NAME_CREATED_BY = "created_by"; + @SerializedName(SERIALIZED_NAME_CREATED_BY) + @jakarta.annotation.Nullable + private String createdBy; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OffsetDateTime createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OffsetDateTime updatedAt; public MeetingRecording() { } - public MeetingRecording platform(@javax.annotation.Nonnull PlatformEnum platform) { + public MeetingRecording platform(@jakarta.annotation.Nonnull PlatformEnum platform) { this.platform = platform; return this; } @@ -243,17 +258,17 @@ public MeetingRecording platform(@javax.annotation.Nonnull PlatformEnum platform * Meeting platform * @return platform */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public PlatformEnum getPlatform() { return platform; } - public void setPlatform(@javax.annotation.Nonnull PlatformEnum platform) { + public void setPlatform(@jakarta.annotation.Nonnull PlatformEnum platform) { this.platform = platform; } - public MeetingRecording sessionNumber(@javax.annotation.Nonnull Integer sessionNumber) { + public MeetingRecording sessionNumber(@jakarta.annotation.Nonnull Integer sessionNumber) { this.sessionNumber = sessionNumber; return this; } @@ -262,17 +277,17 @@ public MeetingRecording sessionNumber(@javax.annotation.Nonnull Integer sessionN * Session number within the incident for this platform (starts at 1, increments on re-invite) * @return sessionNumber */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Integer getSessionNumber() { return sessionNumber; } - public void setSessionNumber(@javax.annotation.Nonnull Integer sessionNumber) { + public void setSessionNumber(@jakarta.annotation.Nonnull Integer sessionNumber) { this.sessionNumber = sessionNumber; } - public MeetingRecording status(@javax.annotation.Nonnull StatusEnum status) { + public MeetingRecording status(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; return this; } @@ -281,17 +296,17 @@ public MeetingRecording status(@javax.annotation.Nonnull StatusEnum status) { * Current recording lifecycle status * @return status */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public StatusEnum getStatus() { return status; } - public void setStatus(@javax.annotation.Nonnull StatusEnum status) { + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; } - public MeetingRecording startedAt(@javax.annotation.Nullable OffsetDateTime startedAt) { + public MeetingRecording startedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { this.startedAt = startedAt; return this; } @@ -300,17 +315,17 @@ public MeetingRecording startedAt(@javax.annotation.Nullable OffsetDateTime star * When the bot started recording (null if bot never joined) * @return startedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public OffsetDateTime getStartedAt() { return startedAt; } - public void setStartedAt(@javax.annotation.Nullable OffsetDateTime startedAt) { + public void setStartedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { this.startedAt = startedAt; } - public MeetingRecording endedAt(@javax.annotation.Nullable OffsetDateTime endedAt) { + public MeetingRecording endedAt(@jakarta.annotation.Nullable OffsetDateTime endedAt) { this.endedAt = endedAt; return this; } @@ -319,17 +334,17 @@ public MeetingRecording endedAt(@javax.annotation.Nullable OffsetDateTime endedA * When the recording ended * @return endedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public OffsetDateTime getEndedAt() { return endedAt; } - public void setEndedAt(@javax.annotation.Nullable OffsetDateTime endedAt) { + public void setEndedAt(@jakarta.annotation.Nullable OffsetDateTime endedAt) { this.endedAt = endedAt; } - public MeetingRecording durationMinutes(@javax.annotation.Nullable BigDecimal durationMinutes) { + public MeetingRecording durationMinutes(@jakarta.annotation.Nullable BigDecimal durationMinutes) { this.durationMinutes = durationMinutes; return this; } @@ -338,17 +353,17 @@ public MeetingRecording durationMinutes(@javax.annotation.Nullable BigDecimal du * Recording duration in minutes (null if not started) * @return durationMinutes */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public BigDecimal getDurationMinutes() { return durationMinutes; } - public void setDurationMinutes(@javax.annotation.Nullable BigDecimal durationMinutes) { + public void setDurationMinutes(@jakarta.annotation.Nullable BigDecimal durationMinutes) { this.durationMinutes = durationMinutes; } - public MeetingRecording speakerCount(@javax.annotation.Nullable Integer speakerCount) { + public MeetingRecording speakerCount(@jakarta.annotation.Nullable Integer speakerCount) { this.speakerCount = speakerCount; return this; } @@ -357,17 +372,17 @@ public MeetingRecording speakerCount(@javax.annotation.Nullable Integer speakerC * Number of unique speakers detected in the transcript * @return speakerCount */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getSpeakerCount() { return speakerCount; } - public void setSpeakerCount(@javax.annotation.Nullable Integer speakerCount) { + public void setSpeakerCount(@jakarta.annotation.Nullable Integer speakerCount) { this.speakerCount = speakerCount; } - public MeetingRecording wordCount(@javax.annotation.Nullable Integer wordCount) { + public MeetingRecording wordCount(@jakarta.annotation.Nullable Integer wordCount) { this.wordCount = wordCount; return this; } @@ -376,17 +391,17 @@ public MeetingRecording wordCount(@javax.annotation.Nullable Integer wordCount) * Total word count across all transcript segments * @return wordCount */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getWordCount() { return wordCount; } - public void setWordCount(@javax.annotation.Nullable Integer wordCount) { + public void setWordCount(@jakarta.annotation.Nullable Integer wordCount) { this.wordCount = wordCount; } - public MeetingRecording transcriptSummary(@javax.annotation.Nullable String transcriptSummary) { + public MeetingRecording transcriptSummary(@jakarta.annotation.Nullable String transcriptSummary) { this.transcriptSummary = transcriptSummary; return this; } @@ -395,36 +410,93 @@ public MeetingRecording transcriptSummary(@javax.annotation.Nullable String tran * AI-generated summary of the meeting transcript (null if no transcript or not yet analyzed) * @return transcriptSummary */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getTranscriptSummary() { return transcriptSummary; } - public void setTranscriptSummary(@javax.annotation.Nullable String transcriptSummary) { + public void setTranscriptSummary(@jakarta.annotation.Nullable String transcriptSummary) { this.transcriptSummary = transcriptSummary; } - public MeetingRecording hasVideo(@javax.annotation.Nullable Boolean hasVideo) { - this.hasVideo = hasVideo; + public MeetingRecording title(@jakarta.annotation.Nullable String title) { + this.title = title; return this; } /** - * Whether a video recording file is attached - * @return hasVideo + * Human-readable label for the recording session + * @return title */ - @javax.annotation.Nullable - public Boolean getHasVideo() { - return hasVideo; + @jakarta.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nullable String title) { + this.title = title; } - public void setHasVideo(@javax.annotation.Nullable Boolean hasVideo) { - this.hasVideo = hasVideo; + + public MeetingRecording meetingUrl(@jakarta.annotation.Nullable String meetingUrl) { + this.meetingUrl = meetingUrl; + return this; } + /** + * Original meeting URL + * @return meetingUrl + */ + @jakarta.annotation.Nullable + public String getMeetingUrl() { + return meetingUrl; + } - public MeetingRecording createdAt(@javax.annotation.Nonnull OffsetDateTime createdAt) { + public void setMeetingUrl(@jakarta.annotation.Nullable String meetingUrl) { + this.meetingUrl = meetingUrl; + } + + + public MeetingRecording videoUrl(@jakarta.annotation.Nullable String videoUrl) { + this.videoUrl = videoUrl; + return this; + } + + /** + * Signed URL to stream/download the video recording + * @return videoUrl + */ + @jakarta.annotation.Nullable + public String getVideoUrl() { + return videoUrl; + } + + public void setVideoUrl(@jakarta.annotation.Nullable String videoUrl) { + this.videoUrl = videoUrl; + } + + + public MeetingRecording createdBy(@jakarta.annotation.Nullable String createdBy) { + this.createdBy = createdBy; + return this; + } + + /** + * Source that created the recording (e.g. desktop_sdk, recall_bot) + * @return createdBy + */ + @jakarta.annotation.Nullable + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(@jakarta.annotation.Nullable String createdBy) { + this.createdBy = createdBy; + } + + + public MeetingRecording createdAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -433,17 +505,17 @@ public MeetingRecording createdAt(@javax.annotation.Nonnull OffsetDateTime creat * When the recording session was created * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OffsetDateTime getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull OffsetDateTime createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { this.createdAt = createdAt; } - public MeetingRecording updatedAt(@javax.annotation.Nonnull OffsetDateTime updatedAt) { + public MeetingRecording updatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } @@ -452,12 +524,12 @@ public MeetingRecording updatedAt(@javax.annotation.Nonnull OffsetDateTime updat * When the recording session was last updated * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OffsetDateTime getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull OffsetDateTime updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { this.updatedAt = updatedAt; } @@ -481,7 +553,10 @@ public boolean equals(Object o) { Objects.equals(this.speakerCount, meetingRecording.speakerCount) && Objects.equals(this.wordCount, meetingRecording.wordCount) && Objects.equals(this.transcriptSummary, meetingRecording.transcriptSummary) && - Objects.equals(this.hasVideo, meetingRecording.hasVideo) && + Objects.equals(this.title, meetingRecording.title) && + Objects.equals(this.meetingUrl, meetingRecording.meetingUrl) && + Objects.equals(this.videoUrl, meetingRecording.videoUrl) && + Objects.equals(this.createdBy, meetingRecording.createdBy) && Objects.equals(this.createdAt, meetingRecording.createdAt) && Objects.equals(this.updatedAt, meetingRecording.updatedAt); } @@ -492,7 +567,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(platform, sessionNumber, status, startedAt, endedAt, durationMinutes, speakerCount, wordCount, transcriptSummary, hasVideo, createdAt, updatedAt); + return Objects.hash(platform, sessionNumber, status, startedAt, endedAt, durationMinutes, speakerCount, wordCount, transcriptSummary, title, meetingUrl, videoUrl, createdBy, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -515,7 +590,10 @@ public String toString() { sb.append(" speakerCount: ").append(toIndentedString(speakerCount)).append("\n"); sb.append(" wordCount: ").append(toIndentedString(wordCount)).append("\n"); sb.append(" transcriptSummary: ").append(toIndentedString(transcriptSummary)).append("\n"); - sb.append(" hasVideo: ").append(toIndentedString(hasVideo)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" meetingUrl: ").append(toIndentedString(meetingUrl)).append("\n"); + sb.append(" videoUrl: ").append(toIndentedString(videoUrl)).append("\n"); + sb.append(" createdBy: ").append(toIndentedString(createdBy)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -549,7 +627,10 @@ private String toIndentedString(Object o) { openapiFields.add("speaker_count"); openapiFields.add("word_count"); openapiFields.add("transcript_summary"); - openapiFields.add("has_video"); + openapiFields.add("title"); + openapiFields.add("meeting_url"); + openapiFields.add("video_url"); + openapiFields.add("created_by"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -603,6 +684,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("transcript_summary") != null && !jsonObj.get("transcript_summary").isJsonNull()) && !jsonObj.get("transcript_summary").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `transcript_summary` to be a primitive type in the JSON string but got `%s`", jsonObj.get("transcript_summary").toString())); } + if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if ((jsonObj.get("meeting_url") != null && !jsonObj.get("meeting_url").isJsonNull()) && !jsonObj.get("meeting_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `meeting_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("meeting_url").toString())); + } + if ((jsonObj.get("video_url") != null && !jsonObj.get("video_url").isJsonNull()) && !jsonObj.get("video_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `video_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("video_url").toString())); + } + if ((jsonObj.get("created_by") != null && !jsonObj.get("created_by").isJsonNull()) && !jsonObj.get("created_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_by").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingDetail.java b/src/main/java/com/rootly/client/model/MeetingRecordingDetail.java new file mode 100644 index 00000000..c0f301c7 --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingDetail.java @@ -0,0 +1,872 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingDetailAllOfTranscript; +import java.io.IOException; +import java.math.BigDecimal; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * MeetingRecordingDetail + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingDetail { + /** + * Meeting platform + */ + @JsonAdapter(PlatformEnum.Adapter.class) + public enum PlatformEnum { + ZOOM("zoom"), + + GOOGLE_MEET("google_meet"), + + MICROSOFT_TEAMS("microsoft_teams"), + + WEBEX("webex"); + + private String value; + + PlatformEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlatformEnum fromValue(String value) { + for (PlatformEnum b : PlatformEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlatformEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlatformEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlatformEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlatformEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PLATFORM = "platform"; + @SerializedName(SERIALIZED_NAME_PLATFORM) + @jakarta.annotation.Nonnull + private PlatformEnum platform; + + public static final String SERIALIZED_NAME_SESSION_NUMBER = "session_number"; + @SerializedName(SERIALIZED_NAME_SESSION_NUMBER) + @jakarta.annotation.Nonnull + private Integer sessionNumber; + + /** + * Current recording lifecycle status + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + PENDING("pending"), + + RECORDING("recording"), + + PAUSED("paused"), + + CALL_ENDED("call_ended"), + + ANALYZING("analyzing"), + + COMPLETED("completed"), + + FAILED("failed"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nonnull + private StatusEnum status; + + public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; + @SerializedName(SERIALIZED_NAME_STARTED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime startedAt; + + public static final String SERIALIZED_NAME_ENDED_AT = "ended_at"; + @SerializedName(SERIALIZED_NAME_ENDED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime endedAt; + + public static final String SERIALIZED_NAME_DURATION_MINUTES = "duration_minutes"; + @SerializedName(SERIALIZED_NAME_DURATION_MINUTES) + @jakarta.annotation.Nullable + private BigDecimal durationMinutes; + + public static final String SERIALIZED_NAME_SPEAKER_COUNT = "speaker_count"; + @SerializedName(SERIALIZED_NAME_SPEAKER_COUNT) + @jakarta.annotation.Nullable + private Integer speakerCount; + + public static final String SERIALIZED_NAME_WORD_COUNT = "word_count"; + @SerializedName(SERIALIZED_NAME_WORD_COUNT) + @jakarta.annotation.Nullable + private Integer wordCount; + + public static final String SERIALIZED_NAME_TRANSCRIPT_SUMMARY = "transcript_summary"; + @SerializedName(SERIALIZED_NAME_TRANSCRIPT_SUMMARY) + @jakarta.annotation.Nullable + private String transcriptSummary; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_MEETING_URL = "meeting_url"; + @SerializedName(SERIALIZED_NAME_MEETING_URL) + @jakarta.annotation.Nullable + private String meetingUrl; + + public static final String SERIALIZED_NAME_VIDEO_URL = "video_url"; + @SerializedName(SERIALIZED_NAME_VIDEO_URL) + @jakarta.annotation.Nullable + private String videoUrl; + + public static final String SERIALIZED_NAME_CREATED_BY = "created_by"; + @SerializedName(SERIALIZED_NAME_CREATED_BY) + @jakarta.annotation.Nullable + private String createdBy; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime updatedAt; + + public static final String SERIALIZED_NAME_TRANSCRIPT = "transcript"; + @SerializedName(SERIALIZED_NAME_TRANSCRIPT) + @jakarta.annotation.Nullable + private MeetingRecordingDetailAllOfTranscript transcript; + + public static final String SERIALIZED_NAME_RECALL_UPLOAD_ID = "recall_upload_id"; + @SerializedName(SERIALIZED_NAME_RECALL_UPLOAD_ID) + @jakarta.annotation.Nullable + private String recallUploadId; + + public static final String SERIALIZED_NAME_RECORDABLE_ID = "recordable_id"; + @SerializedName(SERIALIZED_NAME_RECORDABLE_ID) + @jakarta.annotation.Nullable + private String recordableId; + + public static final String SERIALIZED_NAME_RECORDABLE_TYPE = "recordable_type"; + @SerializedName(SERIALIZED_NAME_RECORDABLE_TYPE) + @jakarta.annotation.Nullable + private String recordableType; + + public MeetingRecordingDetail() { + } + + public MeetingRecordingDetail platform(@jakarta.annotation.Nonnull PlatformEnum platform) { + this.platform = platform; + return this; + } + + /** + * Meeting platform + * @return platform + */ + @jakarta.annotation.Nonnull + public PlatformEnum getPlatform() { + return platform; + } + + public void setPlatform(@jakarta.annotation.Nonnull PlatformEnum platform) { + this.platform = platform; + } + + + public MeetingRecordingDetail sessionNumber(@jakarta.annotation.Nonnull Integer sessionNumber) { + this.sessionNumber = sessionNumber; + return this; + } + + /** + * Session number within the incident for this platform (starts at 1, increments on re-invite) + * @return sessionNumber + */ + @jakarta.annotation.Nonnull + public Integer getSessionNumber() { + return sessionNumber; + } + + public void setSessionNumber(@jakarta.annotation.Nonnull Integer sessionNumber) { + this.sessionNumber = sessionNumber; + } + + + public MeetingRecordingDetail status(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + return this; + } + + /** + * Current recording lifecycle status + * @return status + */ + @jakarta.annotation.Nonnull + public StatusEnum getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + } + + + public MeetingRecordingDetail startedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + return this; + } + + /** + * When the bot started recording (null if bot never joined) + * @return startedAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getStartedAt() { + return startedAt; + } + + public void setStartedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + } + + + public MeetingRecordingDetail endedAt(@jakarta.annotation.Nullable OffsetDateTime endedAt) { + this.endedAt = endedAt; + return this; + } + + /** + * When the recording ended + * @return endedAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getEndedAt() { + return endedAt; + } + + public void setEndedAt(@jakarta.annotation.Nullable OffsetDateTime endedAt) { + this.endedAt = endedAt; + } + + + public MeetingRecordingDetail durationMinutes(@jakarta.annotation.Nullable BigDecimal durationMinutes) { + this.durationMinutes = durationMinutes; + return this; + } + + /** + * Recording duration in minutes (null if not started) + * @return durationMinutes + */ + @jakarta.annotation.Nullable + public BigDecimal getDurationMinutes() { + return durationMinutes; + } + + public void setDurationMinutes(@jakarta.annotation.Nullable BigDecimal durationMinutes) { + this.durationMinutes = durationMinutes; + } + + + public MeetingRecordingDetail speakerCount(@jakarta.annotation.Nullable Integer speakerCount) { + this.speakerCount = speakerCount; + return this; + } + + /** + * Number of unique speakers detected in the transcript + * @return speakerCount + */ + @jakarta.annotation.Nullable + public Integer getSpeakerCount() { + return speakerCount; + } + + public void setSpeakerCount(@jakarta.annotation.Nullable Integer speakerCount) { + this.speakerCount = speakerCount; + } + + + public MeetingRecordingDetail wordCount(@jakarta.annotation.Nullable Integer wordCount) { + this.wordCount = wordCount; + return this; + } + + /** + * Total word count across all transcript segments + * @return wordCount + */ + @jakarta.annotation.Nullable + public Integer getWordCount() { + return wordCount; + } + + public void setWordCount(@jakarta.annotation.Nullable Integer wordCount) { + this.wordCount = wordCount; + } + + + public MeetingRecordingDetail transcriptSummary(@jakarta.annotation.Nullable String transcriptSummary) { + this.transcriptSummary = transcriptSummary; + return this; + } + + /** + * AI-generated summary of the meeting transcript (null if no transcript or not yet analyzed) + * @return transcriptSummary + */ + @jakarta.annotation.Nullable + public String getTranscriptSummary() { + return transcriptSummary; + } + + public void setTranscriptSummary(@jakarta.annotation.Nullable String transcriptSummary) { + this.transcriptSummary = transcriptSummary; + } + + + public MeetingRecordingDetail title(@jakarta.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Human-readable label for the recording session + * @return title + */ + @jakarta.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nullable String title) { + this.title = title; + } + + + public MeetingRecordingDetail meetingUrl(@jakarta.annotation.Nullable String meetingUrl) { + this.meetingUrl = meetingUrl; + return this; + } + + /** + * Original meeting URL + * @return meetingUrl + */ + @jakarta.annotation.Nullable + public String getMeetingUrl() { + return meetingUrl; + } + + public void setMeetingUrl(@jakarta.annotation.Nullable String meetingUrl) { + this.meetingUrl = meetingUrl; + } + + + public MeetingRecordingDetail videoUrl(@jakarta.annotation.Nullable String videoUrl) { + this.videoUrl = videoUrl; + return this; + } + + /** + * Signed URL to stream/download the video recording + * @return videoUrl + */ + @jakarta.annotation.Nullable + public String getVideoUrl() { + return videoUrl; + } + + public void setVideoUrl(@jakarta.annotation.Nullable String videoUrl) { + this.videoUrl = videoUrl; + } + + + public MeetingRecordingDetail createdBy(@jakarta.annotation.Nullable String createdBy) { + this.createdBy = createdBy; + return this; + } + + /** + * Source that created the recording (e.g. desktop_sdk, recall_bot) + * @return createdBy + */ + @jakarta.annotation.Nullable + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(@jakarta.annotation.Nullable String createdBy) { + this.createdBy = createdBy; + } + + + public MeetingRecordingDetail createdAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * When the recording session was created + * @return createdAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + + public MeetingRecordingDetail updatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * When the recording session was last updated + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + + public MeetingRecordingDetail transcript(@jakarta.annotation.Nullable MeetingRecordingDetailAllOfTranscript transcript) { + this.transcript = transcript; + return this; + } + + /** + * Get transcript + * @return transcript + */ + @jakarta.annotation.Nullable + public MeetingRecordingDetailAllOfTranscript getTranscript() { + return transcript; + } + + public void setTranscript(@jakarta.annotation.Nullable MeetingRecordingDetailAllOfTranscript transcript) { + this.transcript = transcript; + } + + + public MeetingRecordingDetail recallUploadId(@jakarta.annotation.Nullable String recallUploadId) { + this.recallUploadId = recallUploadId; + return this; + } + + /** + * Recall upload identifier + * @return recallUploadId + */ + @jakarta.annotation.Nullable + public String getRecallUploadId() { + return recallUploadId; + } + + public void setRecallUploadId(@jakarta.annotation.Nullable String recallUploadId) { + this.recallUploadId = recallUploadId; + } + + + public MeetingRecordingDetail recordableId(@jakarta.annotation.Nullable String recordableId) { + this.recordableId = recordableId; + return this; + } + + /** + * UUID of the associated recordable (e.g. incident) + * @return recordableId + */ + @jakarta.annotation.Nullable + public String getRecordableId() { + return recordableId; + } + + public void setRecordableId(@jakarta.annotation.Nullable String recordableId) { + this.recordableId = recordableId; + } + + + public MeetingRecordingDetail recordableType(@jakarta.annotation.Nullable String recordableType) { + this.recordableType = recordableType; + return this; + } + + /** + * Type of the associated recordable (e.g. Incident) + * @return recordableType + */ + @jakarta.annotation.Nullable + public String getRecordableType() { + return recordableType; + } + + public void setRecordableType(@jakarta.annotation.Nullable String recordableType) { + this.recordableType = recordableType; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeetingRecordingDetail meetingRecordingDetail = (MeetingRecordingDetail) o; + return Objects.equals(this.platform, meetingRecordingDetail.platform) && + Objects.equals(this.sessionNumber, meetingRecordingDetail.sessionNumber) && + Objects.equals(this.status, meetingRecordingDetail.status) && + Objects.equals(this.startedAt, meetingRecordingDetail.startedAt) && + Objects.equals(this.endedAt, meetingRecordingDetail.endedAt) && + Objects.equals(this.durationMinutes, meetingRecordingDetail.durationMinutes) && + Objects.equals(this.speakerCount, meetingRecordingDetail.speakerCount) && + Objects.equals(this.wordCount, meetingRecordingDetail.wordCount) && + Objects.equals(this.transcriptSummary, meetingRecordingDetail.transcriptSummary) && + Objects.equals(this.title, meetingRecordingDetail.title) && + Objects.equals(this.meetingUrl, meetingRecordingDetail.meetingUrl) && + Objects.equals(this.videoUrl, meetingRecordingDetail.videoUrl) && + Objects.equals(this.createdBy, meetingRecordingDetail.createdBy) && + Objects.equals(this.createdAt, meetingRecordingDetail.createdAt) && + Objects.equals(this.updatedAt, meetingRecordingDetail.updatedAt) && + Objects.equals(this.transcript, meetingRecordingDetail.transcript) && + Objects.equals(this.recallUploadId, meetingRecordingDetail.recallUploadId) && + Objects.equals(this.recordableId, meetingRecordingDetail.recordableId) && + Objects.equals(this.recordableType, meetingRecordingDetail.recordableType); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(platform, sessionNumber, status, startedAt, endedAt, durationMinutes, speakerCount, wordCount, transcriptSummary, title, meetingUrl, videoUrl, createdBy, createdAt, updatedAt, transcript, recallUploadId, recordableId, recordableType); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeetingRecordingDetail {\n"); + sb.append(" platform: ").append(toIndentedString(platform)).append("\n"); + sb.append(" sessionNumber: ").append(toIndentedString(sessionNumber)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); + sb.append(" endedAt: ").append(toIndentedString(endedAt)).append("\n"); + sb.append(" durationMinutes: ").append(toIndentedString(durationMinutes)).append("\n"); + sb.append(" speakerCount: ").append(toIndentedString(speakerCount)).append("\n"); + sb.append(" wordCount: ").append(toIndentedString(wordCount)).append("\n"); + sb.append(" transcriptSummary: ").append(toIndentedString(transcriptSummary)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" meetingUrl: ").append(toIndentedString(meetingUrl)).append("\n"); + sb.append(" videoUrl: ").append(toIndentedString(videoUrl)).append("\n"); + sb.append(" createdBy: ").append(toIndentedString(createdBy)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" transcript: ").append(toIndentedString(transcript)).append("\n"); + sb.append(" recallUploadId: ").append(toIndentedString(recallUploadId)).append("\n"); + sb.append(" recordableId: ").append(toIndentedString(recordableId)).append("\n"); + sb.append(" recordableType: ").append(toIndentedString(recordableType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("platform"); + openapiFields.add("session_number"); + openapiFields.add("status"); + openapiFields.add("started_at"); + openapiFields.add("ended_at"); + openapiFields.add("duration_minutes"); + openapiFields.add("speaker_count"); + openapiFields.add("word_count"); + openapiFields.add("transcript_summary"); + openapiFields.add("title"); + openapiFields.add("meeting_url"); + openapiFields.add("video_url"); + openapiFields.add("created_by"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + openapiFields.add("transcript"); + openapiFields.add("recall_upload_id"); + openapiFields.add("recordable_id"); + openapiFields.add("recordable_type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("platform"); + openapiRequiredFields.add("session_number"); + openapiRequiredFields.add("status"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingDetail + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MeetingRecordingDetail.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MeetingRecordingDetail is not found in the empty JSON string", MeetingRecordingDetail.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MeetingRecordingDetail.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MeetingRecordingDetail` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MeetingRecordingDetail.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("platform").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `platform` to be a primitive type in the JSON string but got `%s`", jsonObj.get("platform").toString())); + } + // validate the required field `platform` + PlatformEnum.validateJsonElement(jsonObj.get("platform")); + if (!jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the required field `status` + StatusEnum.validateJsonElement(jsonObj.get("status")); + if ((jsonObj.get("transcript_summary") != null && !jsonObj.get("transcript_summary").isJsonNull()) && !jsonObj.get("transcript_summary").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `transcript_summary` to be a primitive type in the JSON string but got `%s`", jsonObj.get("transcript_summary").toString())); + } + if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if ((jsonObj.get("meeting_url") != null && !jsonObj.get("meeting_url").isJsonNull()) && !jsonObj.get("meeting_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `meeting_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("meeting_url").toString())); + } + if ((jsonObj.get("video_url") != null && !jsonObj.get("video_url").isJsonNull()) && !jsonObj.get("video_url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `video_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("video_url").toString())); + } + if ((jsonObj.get("created_by") != null && !jsonObj.get("created_by").isJsonNull()) && !jsonObj.get("created_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_by").toString())); + } + // validate the optional field `transcript` + if (jsonObj.get("transcript") != null && !jsonObj.get("transcript").isJsonNull()) { + MeetingRecordingDetailAllOfTranscript.validateJsonElement(jsonObj.get("transcript")); + } + if ((jsonObj.get("recall_upload_id") != null && !jsonObj.get("recall_upload_id").isJsonNull()) && !jsonObj.get("recall_upload_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recall_upload_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recall_upload_id").toString())); + } + if ((jsonObj.get("recordable_id") != null && !jsonObj.get("recordable_id").isJsonNull()) && !jsonObj.get("recordable_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recordable_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recordable_id").toString())); + } + if ((jsonObj.get("recordable_type") != null && !jsonObj.get("recordable_type").isJsonNull()) && !jsonObj.get("recordable_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `recordable_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("recordable_type").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingDetail.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingDetail' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MeetingRecordingDetail.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingDetail value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MeetingRecordingDetail read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MeetingRecordingDetail given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingDetail + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingDetail + */ + public static MeetingRecordingDetail fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingDetail.class); + } + + /** + * Convert an instance of MeetingRecordingDetail to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscript.java b/src/main/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscript.java new file mode 100644 index 00000000..7b334213 --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscript.java @@ -0,0 +1,295 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.rootly.client.model.MeetingRecordingTranscriptSegment; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingDetailAllOfTranscript extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(MeetingRecordingDetailAllOfTranscript.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingDetailAllOfTranscript.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingDetailAllOfTranscript' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + + final Type typeInstanceListMeetingRecordingTranscriptSegment = new TypeToken>(){}.getType(); + final TypeAdapter> adapterListMeetingRecordingTranscriptSegment = (TypeAdapter>) gson.getDelegateAdapter(this, TypeToken.get(typeInstanceListMeetingRecordingTranscriptSegment)); + final TypeAdapter adapterObject = gson.getDelegateAdapter(this, TypeToken.get(Object.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingDetailAllOfTranscript value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `List` + if (value.getActualInstance() instanceof List) { + List list = (List) value.getActualInstance(); + if (list.get(0) instanceof MeetingRecordingTranscriptSegment) { + JsonArray array = adapterListMeetingRecordingTranscriptSegment.toJsonTree((List)value.getActualInstance()).getAsJsonArray(); + elementAdapter.write(out, array); + return; + } + } + // check if the actual instance is of the type `Object` + if (value.getActualInstance() instanceof Object) { + JsonPrimitive primitive = adapterObject.toJsonTree((Object)value.getActualInstance()).getAsJsonPrimitive(); + elementAdapter.write(out, primitive); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: List, Object"); + } + + @Override + public MeetingRecordingDetailAllOfTranscript read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize List + try { + // validate the JSON object to see if any exception is thrown + if (!jsonElement.isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected json element to be a array type in the JSON string but got `%s`", jsonElement.toString())); + } + + JsonArray array = jsonElement.getAsJsonArray(); + // validate array items + for(JsonElement element : array) { + MeetingRecordingTranscriptSegment.validateJsonElement(element); + } + actualAdapter = adapterListMeetingRecordingTranscriptSegment; + match++; + log.log(Level.FINER, "Input data matches schema 'List'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for List failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'List'", e); + } + // deserialize Object + try { + // validate the JSON object to see if any exception is thrown + if (!jsonElement.getAsJsonPrimitive().isNumber()) { + throw new IllegalArgumentException(String.format("Expected json element to be of type Number in the JSON string but got `%s`", jsonElement.toString())); + } + actualAdapter = adapterObject; + match++; + log.log(Level.FINER, "Input data matches schema 'Object'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for Object failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'Object'", e); + } + + if (match == 1) { + MeetingRecordingDetailAllOfTranscript ret = new MeetingRecordingDetailAllOfTranscript(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for MeetingRecordingDetailAllOfTranscript: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public MeetingRecordingDetailAllOfTranscript() { + super("oneOf", Boolean.FALSE); + } + + public MeetingRecordingDetailAllOfTranscript(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("List", List.class); + schemas.put("Object", Object.class); + } + + @Override + public Map> getSchemas() { + return MeetingRecordingDetailAllOfTranscript.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * List, Object + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof List) { + List list = (List) instance; + if (list.get(0) instanceof MeetingRecordingTranscriptSegment) { + super.setActualInstance(instance); + return; + } + } + + if (instance instanceof Object) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be List, Object"); + } + + /** + * Get the actual instance, which can be the following: + * List, Object + * + * @return The actual instance (List, Object) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `List`. If the actual instance is not `List`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `List` + * @throws ClassCastException if the instance is not `List` + */ + public List getListMeetingRecordingTranscriptSegment() throws ClassCastException { + return (List)super.getActualInstance(); + } + + /** + * Get the actual instance of `Object`. If the actual instance is not `Object`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `Object` + * @throws ClassCastException if the instance is not `Object` + */ + public Object getObject() throws ClassCastException { + return (Object)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingDetailAllOfTranscript + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with List + try { + if (!jsonElement.isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected json element to be a array type in the JSON string but got `%s`", jsonElement.toString())); + } + JsonArray array = jsonElement.getAsJsonArray(); + // validate array items + for(JsonElement element : array) { + MeetingRecordingTranscriptSegment.validateJsonElement(element); + } + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for List failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with Object + try { + if (!jsonElement.getAsJsonPrimitive().isNumber()) { + throw new IllegalArgumentException(String.format("Expected json element to be of type Number in the JSON string but got `%s`", jsonElement.toString())); + } + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for Object failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for MeetingRecordingDetailAllOfTranscript with oneOf schemas: List, Object. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of MeetingRecordingDetailAllOfTranscript given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingDetailAllOfTranscript + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingDetailAllOfTranscript + */ + public static MeetingRecordingDetailAllOfTranscript fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingDetailAllOfTranscript.class); + } + + /** + * Convert an instance of MeetingRecordingDetailAllOfTranscript to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingDetailResponse.java b/src/main/java/com/rootly/client/model/MeetingRecordingDetailResponse.java new file mode 100644 index 00000000..e5aca4f6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingDetailResponse.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingDetailResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * MeetingRecordingDetailResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingDetailResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private MeetingRecordingDetailResponseData data; + + public MeetingRecordingDetailResponse() { + } + + public MeetingRecordingDetailResponse data(@jakarta.annotation.Nonnull MeetingRecordingDetailResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public MeetingRecordingDetailResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull MeetingRecordingDetailResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeetingRecordingDetailResponse meetingRecordingDetailResponse = (MeetingRecordingDetailResponse) o; + return Objects.equals(this.data, meetingRecordingDetailResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeetingRecordingDetailResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingDetailResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MeetingRecordingDetailResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MeetingRecordingDetailResponse is not found in the empty JSON string", MeetingRecordingDetailResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MeetingRecordingDetailResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MeetingRecordingDetailResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MeetingRecordingDetailResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + MeetingRecordingDetailResponseData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingDetailResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingDetailResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MeetingRecordingDetailResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingDetailResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MeetingRecordingDetailResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MeetingRecordingDetailResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingDetailResponse + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingDetailResponse + */ + public static MeetingRecordingDetailResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingDetailResponse.class); + } + + /** + * Convert an instance of MeetingRecordingDetailResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingDetailResponseData.java b/src/main/java/com/rootly/client/model/MeetingRecordingDetailResponseData.java new file mode 100644 index 00000000..f7208d97 --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingDetailResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingDetail; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * MeetingRecordingDetailResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingDetailResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + MEETING_RECORDINGS("meeting_recordings"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private MeetingRecordingDetail attributes; + + public MeetingRecordingDetailResponseData() { + } + + public MeetingRecordingDetailResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique UUID of the meeting recording + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public MeetingRecordingDetailResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public MeetingRecordingDetailResponseData attributes(@jakarta.annotation.Nonnull MeetingRecordingDetail attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public MeetingRecordingDetail getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull MeetingRecordingDetail attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeetingRecordingDetailResponseData meetingRecordingDetailResponseData = (MeetingRecordingDetailResponseData) o; + return Objects.equals(this.id, meetingRecordingDetailResponseData.id) && + Objects.equals(this.type, meetingRecordingDetailResponseData.type) && + Objects.equals(this.attributes, meetingRecordingDetailResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeetingRecordingDetailResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingDetailResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MeetingRecordingDetailResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MeetingRecordingDetailResponseData is not found in the empty JSON string", MeetingRecordingDetailResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MeetingRecordingDetailResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MeetingRecordingDetailResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MeetingRecordingDetailResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + MeetingRecordingDetail.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingDetailResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingDetailResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MeetingRecordingDetailResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingDetailResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MeetingRecordingDetailResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MeetingRecordingDetailResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingDetailResponseData + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingDetailResponseData + */ + public static MeetingRecordingDetailResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingDetailResponseData.class); + } + + /** + * Convert an instance of MeetingRecordingDetailResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingList.java b/src/main/java/com/rootly/client/model/MeetingRecordingList.java index ce8ae51a..9d385ecb 100644 --- a/src/main/java/com/rootly/client/model/MeetingRecordingList.java +++ b/src/main/java/com/rootly/client/model/MeetingRecordingList.java @@ -19,7 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.MeetingRecordingListDataInner; +import com.rootly.client.model.MeetingRecordingResponseData; import com.rootly.client.model.Meta; import java.io.IOException; import java.util.ArrayList; @@ -52,27 +52,27 @@ /** * MeetingRecordingList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class MeetingRecordingList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull - private List data = new ArrayList<>(); + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); public static final String SERIALIZED_NAME_META = "meta"; @SerializedName(SERIALIZED_NAME_META) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Meta meta; public MeetingRecordingList() { } - public MeetingRecordingList data(@javax.annotation.Nonnull List data) { + public MeetingRecordingList data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } - public MeetingRecordingList addDataItem(MeetingRecordingListDataInner dataItem) { + public MeetingRecordingList addDataItem(MeetingRecordingResponseData dataItem) { if (this.data == null) { this.data = new ArrayList<>(); } @@ -84,17 +84,17 @@ public MeetingRecordingList addDataItem(MeetingRecordingListDataInner dataItem) * Get data * @return data */ - @javax.annotation.Nonnull - public List getData() { + @jakarta.annotation.Nonnull + public List getData() { return data; } - public void setData(@javax.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public MeetingRecordingList meta(@javax.annotation.Nullable Meta meta) { + public MeetingRecordingList meta(@jakarta.annotation.Nullable Meta meta) { this.meta = meta; return this; } @@ -103,12 +103,12 @@ public MeetingRecordingList meta(@javax.annotation.Nullable Meta meta) { * Get meta * @return meta */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Meta getMeta() { return meta; } - public void setMeta(@javax.annotation.Nullable Meta meta) { + public void setMeta(@jakarta.annotation.Nullable Meta meta) { this.meta = meta; } @@ -204,7 +204,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); // validate the required field `data` (array) for (int i = 0; i < jsonArraydata.size(); i++) { - MeetingRecordingListDataInner.validateJsonElement(jsonArraydata.get(i)); + MeetingRecordingResponseData.validateJsonElement(jsonArraydata.get(i)); }; // validate the optional field `meta` if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingResponse.java b/src/main/java/com/rootly/client/model/MeetingRecordingResponse.java new file mode 100644 index 00000000..c1af7d71 --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingResponse.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * MeetingRecordingResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private MeetingRecordingResponseData data; + + public MeetingRecordingResponse() { + } + + public MeetingRecordingResponse data(@jakarta.annotation.Nonnull MeetingRecordingResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public MeetingRecordingResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull MeetingRecordingResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeetingRecordingResponse meetingRecordingResponse = (MeetingRecordingResponse) o; + return Objects.equals(this.data, meetingRecordingResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeetingRecordingResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MeetingRecordingResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MeetingRecordingResponse is not found in the empty JSON string", MeetingRecordingResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MeetingRecordingResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MeetingRecordingResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MeetingRecordingResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + MeetingRecordingResponseData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MeetingRecordingResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MeetingRecordingResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MeetingRecordingResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingResponse + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingResponse + */ + public static MeetingRecordingResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingResponse.class); + } + + /** + * Convert an instance of MeetingRecordingResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingResponseData.java b/src/main/java/com/rootly/client/model/MeetingRecordingResponseData.java new file mode 100644 index 00000000..22528aef --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecording; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * MeetingRecordingResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + MEETING_RECORDINGS("meeting_recordings"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private MeetingRecording attributes; + + public MeetingRecordingResponseData() { + } + + public MeetingRecordingResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique UUID of the meeting recording + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public MeetingRecordingResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public MeetingRecordingResponseData attributes(@jakarta.annotation.Nonnull MeetingRecording attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public MeetingRecording getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull MeetingRecording attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeetingRecordingResponseData meetingRecordingResponseData = (MeetingRecordingResponseData) o; + return Objects.equals(this.id, meetingRecordingResponseData.id) && + Objects.equals(this.type, meetingRecordingResponseData.type) && + Objects.equals(this.attributes, meetingRecordingResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeetingRecordingResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MeetingRecordingResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MeetingRecordingResponseData is not found in the empty JSON string", MeetingRecordingResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MeetingRecordingResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MeetingRecordingResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MeetingRecordingResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + MeetingRecording.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MeetingRecordingResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MeetingRecordingResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MeetingRecordingResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingResponseData + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingResponseData + */ + public static MeetingRecordingResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingResponseData.class); + } + + /** + * Convert an instance of MeetingRecordingResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingTranscriptSegment.java b/src/main/java/com/rootly/client/model/MeetingRecordingTranscriptSegment.java new file mode 100644 index 00000000..a943ff94 --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingTranscriptSegment.java @@ -0,0 +1,263 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingTranscriptWord; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * MeetingRecordingTranscriptSegment + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingTranscriptSegment { + public static final String SERIALIZED_NAME_SPEAKER = "speaker"; + @SerializedName(SERIALIZED_NAME_SPEAKER) + @jakarta.annotation.Nonnull + private String speaker; + + public static final String SERIALIZED_NAME_WORDS = "words"; + @SerializedName(SERIALIZED_NAME_WORDS) + @jakarta.annotation.Nonnull + private List words = new ArrayList<>(); + + public MeetingRecordingTranscriptSegment() { + } + + public MeetingRecordingTranscriptSegment speaker(@jakarta.annotation.Nonnull String speaker) { + this.speaker = speaker; + return this; + } + + /** + * Speaker label (e.g. Speaker 1) + * @return speaker + */ + @jakarta.annotation.Nonnull + public String getSpeaker() { + return speaker; + } + + public void setSpeaker(@jakarta.annotation.Nonnull String speaker) { + this.speaker = speaker; + } + + + public MeetingRecordingTranscriptSegment words(@jakarta.annotation.Nonnull List words) { + this.words = words; + return this; + } + + public MeetingRecordingTranscriptSegment addWordsItem(MeetingRecordingTranscriptWord wordsItem) { + if (this.words == null) { + this.words = new ArrayList<>(); + } + this.words.add(wordsItem); + return this; + } + + /** + * Timestamped words spoken by this speaker + * @return words + */ + @jakarta.annotation.Nonnull + public List getWords() { + return words; + } + + public void setWords(@jakarta.annotation.Nonnull List words) { + this.words = words; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeetingRecordingTranscriptSegment meetingRecordingTranscriptSegment = (MeetingRecordingTranscriptSegment) o; + return Objects.equals(this.speaker, meetingRecordingTranscriptSegment.speaker) && + Objects.equals(this.words, meetingRecordingTranscriptSegment.words); + } + + @Override + public int hashCode() { + return Objects.hash(speaker, words); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeetingRecordingTranscriptSegment {\n"); + sb.append(" speaker: ").append(toIndentedString(speaker)).append("\n"); + sb.append(" words: ").append(toIndentedString(words)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("speaker"); + openapiFields.add("words"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("speaker"); + openapiRequiredFields.add("words"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingTranscriptSegment + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MeetingRecordingTranscriptSegment.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MeetingRecordingTranscriptSegment is not found in the empty JSON string", MeetingRecordingTranscriptSegment.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MeetingRecordingTranscriptSegment.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MeetingRecordingTranscriptSegment` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MeetingRecordingTranscriptSegment.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("speaker").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `speaker` to be a primitive type in the JSON string but got `%s`", jsonObj.get("speaker").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("words").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `words` to be an array in the JSON string but got `%s`", jsonObj.get("words").toString())); + } + + JsonArray jsonArraywords = jsonObj.getAsJsonArray("words"); + // validate the required field `words` (array) + for (int i = 0; i < jsonArraywords.size(); i++) { + MeetingRecordingTranscriptWord.validateJsonElement(jsonArraywords.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingTranscriptSegment.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingTranscriptSegment' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MeetingRecordingTranscriptSegment.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingTranscriptSegment value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MeetingRecordingTranscriptSegment read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MeetingRecordingTranscriptSegment given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingTranscriptSegment + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingTranscriptSegment + */ + public static MeetingRecordingTranscriptSegment fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingTranscriptSegment.class); + } + + /** + * Convert an instance of MeetingRecordingTranscriptSegment to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/MeetingRecordingTranscriptWord.java b/src/main/java/com/rootly/client/model/MeetingRecordingTranscriptWord.java new file mode 100644 index 00000000..3877e59b --- /dev/null +++ b/src/main/java/com/rootly/client/model/MeetingRecordingTranscriptWord.java @@ -0,0 +1,269 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * MeetingRecordingTranscriptWord + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class MeetingRecordingTranscriptWord { + public static final String SERIALIZED_NAME_TEXT = "text"; + @SerializedName(SERIALIZED_NAME_TEXT) + @jakarta.annotation.Nonnull + private String text; + + public static final String SERIALIZED_NAME_START_TIMESTAMP = "start_timestamp"; + @SerializedName(SERIALIZED_NAME_START_TIMESTAMP) + @jakarta.annotation.Nullable + private BigDecimal startTimestamp; + + public static final String SERIALIZED_NAME_END_TIMESTAMP = "end_timestamp"; + @SerializedName(SERIALIZED_NAME_END_TIMESTAMP) + @jakarta.annotation.Nullable + private BigDecimal endTimestamp; + + public MeetingRecordingTranscriptWord() { + } + + public MeetingRecordingTranscriptWord text(@jakarta.annotation.Nonnull String text) { + this.text = text; + return this; + } + + /** + * Transcribed word + * @return text + */ + @jakarta.annotation.Nonnull + public String getText() { + return text; + } + + public void setText(@jakarta.annotation.Nonnull String text) { + this.text = text; + } + + + public MeetingRecordingTranscriptWord startTimestamp(@jakarta.annotation.Nullable BigDecimal startTimestamp) { + this.startTimestamp = startTimestamp; + return this; + } + + /** + * Start time in seconds from recording start + * @return startTimestamp + */ + @jakarta.annotation.Nullable + public BigDecimal getStartTimestamp() { + return startTimestamp; + } + + public void setStartTimestamp(@jakarta.annotation.Nullable BigDecimal startTimestamp) { + this.startTimestamp = startTimestamp; + } + + + public MeetingRecordingTranscriptWord endTimestamp(@jakarta.annotation.Nullable BigDecimal endTimestamp) { + this.endTimestamp = endTimestamp; + return this; + } + + /** + * End time in seconds from recording start + * @return endTimestamp + */ + @jakarta.annotation.Nullable + public BigDecimal getEndTimestamp() { + return endTimestamp; + } + + public void setEndTimestamp(@jakarta.annotation.Nullable BigDecimal endTimestamp) { + this.endTimestamp = endTimestamp; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MeetingRecordingTranscriptWord meetingRecordingTranscriptWord = (MeetingRecordingTranscriptWord) o; + return Objects.equals(this.text, meetingRecordingTranscriptWord.text) && + Objects.equals(this.startTimestamp, meetingRecordingTranscriptWord.startTimestamp) && + Objects.equals(this.endTimestamp, meetingRecordingTranscriptWord.endTimestamp); + } + + @Override + public int hashCode() { + return Objects.hash(text, startTimestamp, endTimestamp); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MeetingRecordingTranscriptWord {\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" startTimestamp: ").append(toIndentedString(startTimestamp)).append("\n"); + sb.append(" endTimestamp: ").append(toIndentedString(endTimestamp)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("text"); + openapiFields.add("start_timestamp"); + openapiFields.add("end_timestamp"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MeetingRecordingTranscriptWord + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MeetingRecordingTranscriptWord.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in MeetingRecordingTranscriptWord is not found in the empty JSON string", MeetingRecordingTranscriptWord.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MeetingRecordingTranscriptWord.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `MeetingRecordingTranscriptWord` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MeetingRecordingTranscriptWord.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("text").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `text` to be a primitive type in the JSON string but got `%s`", jsonObj.get("text").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MeetingRecordingTranscriptWord.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MeetingRecordingTranscriptWord' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MeetingRecordingTranscriptWord.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MeetingRecordingTranscriptWord value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MeetingRecordingTranscriptWord read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of MeetingRecordingTranscriptWord given an JSON string + * + * @param jsonString JSON string + * @return An instance of MeetingRecordingTranscriptWord + * @throws IOException if the JSON string is invalid with respect to MeetingRecordingTranscriptWord + */ + public static MeetingRecordingTranscriptWord fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MeetingRecordingTranscriptWord.class); + } + + /** + * Convert an instance of MeetingRecordingTranscriptWord to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/Meta.java b/src/main/java/com/rootly/client/model/Meta.java index 73c8e0fb..4693843f 100644 --- a/src/main/java/com/rootly/client/model/Meta.java +++ b/src/main/java/com/rootly/client/model/Meta.java @@ -21,6 +21,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -48,11 +49,16 @@ /** * Meta */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Meta { + public static final String SERIALIZED_NAME_NEXT_CURSOR = "next_cursor"; + @SerializedName(SERIALIZED_NAME_NEXT_CURSOR) + @jakarta.annotation.Nullable + private String nextCursor; + public static final String SERIALIZED_NAME_CURRENT_PAGE = "current_page"; @SerializedName(SERIALIZED_NAME_CURRENT_PAGE) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private Integer currentPage; public static final String SERIALIZED_NAME_NEXT_PAGE = "next_page"; @@ -78,7 +84,26 @@ public class Meta { public Meta() { } - public Meta currentPage(@jakarta.annotation.Nonnull Integer currentPage) { + public Meta nextCursor(@jakarta.annotation.Nullable String nextCursor) { + this.nextCursor = nextCursor; + return this; + } + + /** + * Get nextCursor + * @return nextCursor + */ + @jakarta.annotation.Nullable + public String getNextCursor() { + return nextCursor; + } + + public void setNextCursor(@jakarta.annotation.Nullable String nextCursor) { + this.nextCursor = nextCursor; + } + + + public Meta currentPage(@jakarta.annotation.Nullable Integer currentPage) { this.currentPage = currentPage; return this; } @@ -87,12 +112,12 @@ public Meta currentPage(@jakarta.annotation.Nonnull Integer currentPage) { * Get currentPage * @return currentPage */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public Integer getCurrentPage() { return currentPage; } - public void setCurrentPage(@jakarta.annotation.Nonnull Integer currentPage) { + public void setCurrentPage(@jakarta.annotation.Nullable Integer currentPage) { this.currentPage = currentPage; } @@ -183,22 +208,35 @@ public boolean equals(Object o) { return false; } Meta meta = (Meta) o; - return Objects.equals(this.currentPage, meta.currentPage) && + return Objects.equals(this.nextCursor, meta.nextCursor) && + Objects.equals(this.currentPage, meta.currentPage) && Objects.equals(this.nextPage, meta.nextPage) && Objects.equals(this.prevPage, meta.prevPage) && Objects.equals(this.totalCount, meta.totalCount) && Objects.equals(this.totalPages, meta.totalPages); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(currentPage, nextPage, prevPage, totalCount, totalPages); + return Objects.hash(nextCursor, currentPage, nextPage, prevPage, totalCount, totalPages); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class Meta {\n"); + sb.append(" nextCursor: ").append(toIndentedString(nextCursor)).append("\n"); sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n"); sb.append(" nextPage: ").append(toIndentedString(nextPage)).append("\n"); sb.append(" prevPage: ").append(toIndentedString(prevPage)).append("\n"); @@ -226,6 +264,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("next_cursor"); openapiFields.add("current_page"); openapiFields.add("next_page"); openapiFields.add("prev_page"); @@ -269,6 +308,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("next_cursor") != null && !jsonObj.get("next_cursor").isJsonNull()) && !jsonObj.get("next_cursor").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `next_cursor` to be a primitive type in the JSON string but got `%s`", jsonObj.get("next_cursor").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/MitigateIncident.java b/src/main/java/com/rootly/client/model/MitigateIncident.java index 0ac9fbbf..4d8e9952 100644 --- a/src/main/java/com/rootly/client/model/MitigateIncident.java +++ b/src/main/java/com/rootly/client/model/MitigateIncident.java @@ -49,7 +49,7 @@ /** * MitigateIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class MitigateIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/MitigateIncidentData.java b/src/main/java/com/rootly/client/model/MitigateIncidentData.java index ae732c12..cac69c54 100644 --- a/src/main/java/com/rootly/client/model/MitigateIncidentData.java +++ b/src/main/java/com/rootly/client/model/MitigateIncidentData.java @@ -49,7 +49,7 @@ /** * MitigateIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class MitigateIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/MitigateIncidentDataAttributes.java b/src/main/java/com/rootly/client/model/MitigateIncidentDataAttributes.java index aac614d2..df8501c7 100644 --- a/src/main/java/com/rootly/client/model/MitigateIncidentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/MitigateIncidentDataAttributes.java @@ -49,7 +49,7 @@ /** * MitigateIncidentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class MitigateIncidentDataAttributes { public static final String SERIALIZED_NAME_MITIGATION_MESSAGE = "mitigation_message"; @SerializedName(SERIALIZED_NAME_MITIGATION_MESSAGE) diff --git a/src/main/java/com/rootly/client/model/NewAlert.java b/src/main/java/com/rootly/client/model/NewAlert.java index 0f6b4591..18ddfc77 100644 --- a/src/main/java/com/rootly/client/model/NewAlert.java +++ b/src/main/java/com/rootly/client/model/NewAlert.java @@ -49,7 +49,7 @@ /** * NewAlert */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlert { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertData.java b/src/main/java/com/rootly/client/model/NewAlertData.java index b468dd4c..78279f73 100644 --- a/src/main/java/com/rootly/client/model/NewAlertData.java +++ b/src/main/java/com/rootly/client/model/NewAlertData.java @@ -49,7 +49,7 @@ /** * NewAlertData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertDataAttributes.java index 67080887..22025b7f 100644 --- a/src/main/java/com/rootly/client/model/NewAlertDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertDataAttributes.java @@ -21,6 +21,7 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.NewAlertDataAttributesAlertFieldValuesAttributesInner; import com.rootly.client.model.NewAlertDataAttributesLabelsInner; +import com.rootly.client.model.NewAlertDataAttributesNotificationTargetsInner; import java.io.IOException; import java.time.OffsetDateTime; import java.util.ArrayList; @@ -54,7 +55,7 @@ /** * NewAlertDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertDataAttributes { /** * Whether the alert is marked as noise @@ -113,144 +114,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private NoiseEnum noise; - /** - * The source of the alert - */ - @JsonAdapter(SourceEnum.Adapter.class) - public enum SourceEnum { - ROOTLY("rootly"), - - MANUAL("manual"), - - API("api"), - - HEARTBEAT("heartbeat"), - - WEB("web"), - - SLACK("slack"), - - EMAIL("email"), - - WORKFLOW("workflow"), - - LIVE_CALL_ROUTING("live_call_routing"), - - MOBILE("mobile"), - - PAGERDUTY("pagerduty"), - - OPSGENIE("opsgenie"), - - VICTOROPS("victorops"), - - PAGERTREE("pagertree"), - - DATADOG("datadog"), - - NOBL9("nobl9"), - - ZENDESK("zendesk"), - - ASANA("asana"), - - CLICKUP("clickup"), - - SENTRY("sentry"), - - ROLLBAR("rollbar"), - - JIRA("jira"), - - HONEYCOMB("honeycomb"), - - SERVICE_NOW("service_now"), - - LINEAR("linear"), - - GRAFANA("grafana"), - - ALERTMANAGER("alertmanager"), - - GOOGLE_CLOUD("google_cloud"), - - GENERIC_WEBHOOK("generic_webhook"), - - CLOUD_WATCH("cloud_watch"), - - AZURE("azure"), - - SPLUNK("splunk"), - - CHRONOSPHERE("chronosphere"), - - APP_OPTICS("app_optics"), - - BUG_SNAG("bug_snag"), - - MONTE_CARLO("monte_carlo"), - - NAGIOS("nagios"), - - PRTG("prtg"), - - CATCHPOINT("catchpoint"), - - APP_DYNAMICS("app_dynamics"), - - CHECKLY("checkly"), - - NEW_RELIC("new_relic"), - - GITLAB("gitlab"); - - private String value; - - SourceEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static SourceEnum fromValue(String value) { - for (SourceEnum b : SourceEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final SourceEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public SourceEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return SourceEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - SourceEnum.fromValue(value); - } - } - public static final String SERIALIZED_NAME_SOURCE = "source"; + @Deprecated @SerializedName(SERIALIZED_NAME_SOURCE) - @jakarta.annotation.Nonnull - private SourceEnum source; + @jakarta.annotation.Nullable + private String source; /** * Only available for organizations with Rootly On-Call enabled. Can be one of open, triggered. @@ -329,6 +197,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List groupIds; + public static final String SERIALIZED_NAME_FUNCTIONALITY_IDS = "functionality_ids"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List functionalityIds; + public static final String SERIALIZED_NAME_ENVIRONMENT_IDS = "environment_ids"; @SerializedName(SERIALIZED_NAME_ENVIRONMENT_IDS) @jakarta.annotation.Nullable @@ -360,7 +233,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti private String alertUrgencyId; /** - * Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, User. + * Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, Functionality, User. Please contact support if you encounter issues using `Functionality` as a notification target type. */ @JsonAdapter(NotificationTargetTypeEnum.Adapter.class) public enum NotificationTargetTypeEnum { @@ -370,7 +243,9 @@ public enum NotificationTargetTypeEnum { ESCALATION_POLICY("EscalationPolicy"), - SERVICE("Service"); + SERVICE("Service"), + + FUNCTIONALITY("Functionality"); private String value; @@ -425,6 +300,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String notificationTargetId; + public static final String SERIALIZED_NAME_NOTIFICATION_TARGETS = "notification_targets"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TARGETS) + @jakarta.annotation.Nullable + private List notificationTargets; + public static final String SERIALIZED_NAME_LABELS = "labels"; @SerializedName(SERIALIZED_NAME_LABELS) @jakarta.annotation.Nullable @@ -467,21 +347,25 @@ public void setNoise(@jakarta.annotation.Nullable NoiseEnum noise) { } - public NewAlertDataAttributes source(@jakarta.annotation.Nonnull SourceEnum source) { + @Deprecated + public NewAlertDataAttributes source(@jakarta.annotation.Nullable String source) { this.source = source; return this; } /** - * The source of the alert + * Deprecated. Accepted for backwards compatibility; new clients should omit. Defaults to `api`. * @return source + * @deprecated */ - @jakarta.annotation.Nonnull - public SourceEnum getSource() { + @Deprecated + @jakarta.annotation.Nullable + public String getSource() { return source; } - public void setSource(@jakarta.annotation.Nonnull SourceEnum source) { + @Deprecated + public void setSource(@jakarta.annotation.Nullable String source) { this.source = source; } @@ -597,6 +481,33 @@ public void setGroupIds(@jakarta.annotation.Nullable List groupIds) { } + public NewAlertDataAttributes functionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + return this; + } + + public NewAlertDataAttributes addFunctionalityIdsItem(String functionalityIdsItem) { + if (this.functionalityIds == null) { + this.functionalityIds = new ArrayList<>(); + } + this.functionalityIds.add(functionalityIdsItem); + return this; + } + + /** + * The Functionality IDs to attach to the alert + * @return functionalityIds + */ + @jakarta.annotation.Nullable + public List getFunctionalityIds() { + return functionalityIds; + } + + public void setFunctionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + } + + public NewAlertDataAttributes environmentIds(@jakarta.annotation.Nullable List environmentIds) { this.environmentIds = environmentIds; return this; @@ -725,7 +636,7 @@ public NewAlertDataAttributes notificationTargetType(@jakarta.annotation.Nullabl } /** - * Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, User. + * Only available for organizations with Rootly On-Call enabled. Can be one of Group, Service, EscalationPolicy, Functionality, User. Please contact support if you encounter issues using `Functionality` as a notification target type. * @return notificationTargetType */ @jakarta.annotation.Nullable @@ -757,6 +668,33 @@ public void setNotificationTargetId(@jakarta.annotation.Nullable String notifica } + public NewAlertDataAttributes notificationTargets(@jakarta.annotation.Nullable List notificationTargets) { + this.notificationTargets = notificationTargets; + return this; + } + + public NewAlertDataAttributes addNotificationTargetsItem(NewAlertDataAttributesNotificationTargetsInner notificationTargetsItem) { + if (this.notificationTargets == null) { + this.notificationTargets = new ArrayList<>(); + } + this.notificationTargets.add(notificationTargetsItem); + return this; + } + + /** + * Only available for organizations with Rootly On-Call enabled. Page multiple destinations (any combination of Group, Service, EscalationPolicy, Functionality, or User) in a single request. `Functionality` targets require the `enable_paging_functionalities` feature; a request that includes one while it is disabled is rejected. Applies to alert creation only. When provided, this takes precedence over the singular `notification_target_type` / `notification_target_id` fields. + * @return notificationTargets + */ + @jakarta.annotation.Nullable + public List getNotificationTargets() { + return notificationTargets; + } + + public void setNotificationTargets(@jakarta.annotation.Nullable List notificationTargets) { + this.notificationTargets = notificationTargets; + } + + public NewAlertDataAttributes labels(@jakarta.annotation.Nullable List labels) { this.labels = labels; return this; @@ -866,6 +804,7 @@ public boolean equals(Object o) { Objects.equals(this.description, newAlertDataAttributes.description) && Objects.equals(this.serviceIds, newAlertDataAttributes.serviceIds) && Objects.equals(this.groupIds, newAlertDataAttributes.groupIds) && + Objects.equals(this.functionalityIds, newAlertDataAttributes.functionalityIds) && Objects.equals(this.environmentIds, newAlertDataAttributes.environmentIds) && Objects.equals(this.startedAt, newAlertDataAttributes.startedAt) && Objects.equals(this.endedAt, newAlertDataAttributes.endedAt) && @@ -874,6 +813,7 @@ public boolean equals(Object o) { Objects.equals(this.alertUrgencyId, newAlertDataAttributes.alertUrgencyId) && Objects.equals(this.notificationTargetType, newAlertDataAttributes.notificationTargetType) && Objects.equals(this.notificationTargetId, newAlertDataAttributes.notificationTargetId) && + Objects.equals(this.notificationTargets, newAlertDataAttributes.notificationTargets) && Objects.equals(this.labels, newAlertDataAttributes.labels) && Objects.equals(this.data, newAlertDataAttributes.data) && Objects.equals(this.deduplicationKey, newAlertDataAttributes.deduplicationKey) && @@ -886,7 +826,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(noise, source, status, summary, description, serviceIds, groupIds, environmentIds, startedAt, endedAt, externalId, externalUrl, alertUrgencyId, notificationTargetType, notificationTargetId, labels, data, deduplicationKey, alertFieldValuesAttributes); + return Objects.hash(noise, source, status, summary, description, serviceIds, groupIds, functionalityIds, environmentIds, startedAt, endedAt, externalId, externalUrl, alertUrgencyId, notificationTargetType, notificationTargetId, notificationTargets, labels, data, deduplicationKey, alertFieldValuesAttributes); } private static int hashCodeNullable(JsonNullable a) { @@ -907,6 +847,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); sb.append(" groupIds: ").append(toIndentedString(groupIds)).append("\n"); + sb.append(" functionalityIds: ").append(toIndentedString(functionalityIds)).append("\n"); sb.append(" environmentIds: ").append(toIndentedString(environmentIds)).append("\n"); sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); sb.append(" endedAt: ").append(toIndentedString(endedAt)).append("\n"); @@ -915,6 +856,7 @@ public String toString() { sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); sb.append(" notificationTargetType: ").append(toIndentedString(notificationTargetType)).append("\n"); sb.append(" notificationTargetId: ").append(toIndentedString(notificationTargetId)).append("\n"); + sb.append(" notificationTargets: ").append(toIndentedString(notificationTargets)).append("\n"); sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" deduplicationKey: ").append(toIndentedString(deduplicationKey)).append("\n"); @@ -948,6 +890,7 @@ private String toIndentedString(Object o) { openapiFields.add("description"); openapiFields.add("service_ids"); openapiFields.add("group_ids"); + openapiFields.add("functionality_ids"); openapiFields.add("environment_ids"); openapiFields.add("started_at"); openapiFields.add("ended_at"); @@ -956,6 +899,7 @@ private String toIndentedString(Object o) { openapiFields.add("alert_urgency_id"); openapiFields.add("notification_target_type"); openapiFields.add("notification_target_id"); + openapiFields.add("notification_targets"); openapiFields.add("labels"); openapiFields.add("data"); openapiFields.add("deduplication_key"); @@ -963,7 +907,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("source"); openapiRequiredFields.add("summary"); } @@ -1002,11 +945,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("noise") != null && !jsonObj.get("noise").isJsonNull()) { NoiseEnum.validateJsonElement(jsonObj.get("noise")); } - if (!jsonObj.get("source").isJsonPrimitive()) { + if ((jsonObj.get("source") != null && !jsonObj.get("source").isJsonNull()) && !jsonObj.get("source").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source").toString())); } - // validate the required field `source` - SourceEnum.validateJsonElement(jsonObj.get("source")); if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); } @@ -1029,6 +970,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti throw new IllegalArgumentException(String.format("Expected the field `group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("group_ids").toString())); } // ensure the optional json data is an array if present + if (jsonObj.get("functionality_ids") != null && !jsonObj.get("functionality_ids").isJsonNull() && !jsonObj.get("functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("functionality_ids").toString())); + } + // ensure the optional json data is an array if present if (jsonObj.get("environment_ids") != null && !jsonObj.get("environment_ids").isJsonNull() && !jsonObj.get("environment_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("environment_ids").toString())); } @@ -1051,6 +996,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("notification_target_id") != null && !jsonObj.get("notification_target_id").isJsonNull()) && !jsonObj.get("notification_target_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `notification_target_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notification_target_id").toString())); } + if (jsonObj.get("notification_targets") != null && !jsonObj.get("notification_targets").isJsonNull()) { + JsonArray jsonArraynotificationTargets = jsonObj.getAsJsonArray("notification_targets"); + if (jsonArraynotificationTargets != null) { + // ensure the json data is an array + if (!jsonObj.get("notification_targets").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `notification_targets` to be an array in the JSON string but got `%s`", jsonObj.get("notification_targets").toString())); + } + + // validate the optional field `notification_targets` (array) + for (int i = 0; i < jsonArraynotificationTargets.size(); i++) { + NewAlertDataAttributesNotificationTargetsInner.validateJsonElement(jsonArraynotificationTargets.get(i)); + }; + } + } if (jsonObj.get("labels") != null && !jsonObj.get("labels").isJsonNull()) { JsonArray jsonArraylabels = jsonObj.getAsJsonArray("labels"); if (jsonArraylabels != null) { diff --git a/src/main/java/com/rootly/client/model/NewAlertDataAttributesAlertFieldValuesAttributesInner.java b/src/main/java/com/rootly/client/model/NewAlertDataAttributesAlertFieldValuesAttributesInner.java index e927faf7..0e21de97 100644 --- a/src/main/java/com/rootly/client/model/NewAlertDataAttributesAlertFieldValuesAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertDataAttributesAlertFieldValuesAttributesInner.java @@ -48,7 +48,7 @@ /** * NewAlertDataAttributesAlertFieldValuesAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertDataAttributesAlertFieldValuesAttributesInner { public static final String SERIALIZED_NAME_ALERT_FIELD_ID = "alert_field_id"; @SerializedName(SERIALIZED_NAME_ALERT_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInner.java b/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInner.java index 4ad3d0c9..b0743297 100644 --- a/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInner.java @@ -49,7 +49,7 @@ /** * NewAlertDataAttributesLabelsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertDataAttributesLabelsInner { public static final String SERIALIZED_NAME_KEY = "key"; @SerializedName(SERIALIZED_NAME_KEY) diff --git a/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInnerValue.java b/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInnerValue.java index 86564b05..eb2ef1c6 100644 --- a/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInnerValue.java +++ b/src/main/java/com/rootly/client/model/NewAlertDataAttributesLabelsInnerValue.java @@ -51,7 +51,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertDataAttributesLabelsInnerValue extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewAlertDataAttributesLabelsInnerValue.class.getName()); diff --git a/src/main/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInner.java b/src/main/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInner.java new file mode 100644 index 00000000..b0a5da6b --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInner.java @@ -0,0 +1,305 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewAlertDataAttributesNotificationTargetsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewAlertDataAttributesNotificationTargetsInner { + /** + * The type of the notification target. Can be one of Group, Service, EscalationPolicy, Functionality, User. + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + USER("User"), + + GROUP("Group"), + + ESCALATION_POLICY("EscalationPolicy"), + + SERVICE("Service"), + + FUNCTIONALITY("Functionality"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + public NewAlertDataAttributesNotificationTargetsInner() { + } + + public NewAlertDataAttributesNotificationTargetsInner type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * The type of the notification target. Can be one of Group, Service, EscalationPolicy, Functionality, User. + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewAlertDataAttributesNotificationTargetsInner id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * The identifier of the notification target object. + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewAlertDataAttributesNotificationTargetsInner newAlertDataAttributesNotificationTargetsInner = (NewAlertDataAttributesNotificationTargetsInner) o; + return Objects.equals(this.type, newAlertDataAttributesNotificationTargetsInner.type) && + Objects.equals(this.id, newAlertDataAttributesNotificationTargetsInner.id); + } + + @Override + public int hashCode() { + return Objects.hash(type, id); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewAlertDataAttributesNotificationTargetsInner {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewAlertDataAttributesNotificationTargetsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewAlertDataAttributesNotificationTargetsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewAlertDataAttributesNotificationTargetsInner is not found in the empty JSON string", NewAlertDataAttributesNotificationTargetsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewAlertDataAttributesNotificationTargetsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewAlertDataAttributesNotificationTargetsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewAlertDataAttributesNotificationTargetsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewAlertDataAttributesNotificationTargetsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewAlertDataAttributesNotificationTargetsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewAlertDataAttributesNotificationTargetsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewAlertDataAttributesNotificationTargetsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewAlertDataAttributesNotificationTargetsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewAlertDataAttributesNotificationTargetsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewAlertDataAttributesNotificationTargetsInner + * @throws IOException if the JSON string is invalid with respect to NewAlertDataAttributesNotificationTargetsInner + */ + public static NewAlertDataAttributesNotificationTargetsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewAlertDataAttributesNotificationTargetsInner.class); + } + + /** + * Convert an instance of NewAlertDataAttributesNotificationTargetsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewAlertEvent.java b/src/main/java/com/rootly/client/model/NewAlertEvent.java index 37ef0099..53da7a9d 100644 --- a/src/main/java/com/rootly/client/model/NewAlertEvent.java +++ b/src/main/java/com/rootly/client/model/NewAlertEvent.java @@ -49,7 +49,7 @@ /** * NewAlertEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertEvent { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertEventData.java b/src/main/java/com/rootly/client/model/NewAlertEventData.java index cf3f85a4..2dfea14c 100644 --- a/src/main/java/com/rootly/client/model/NewAlertEventData.java +++ b/src/main/java/com/rootly/client/model/NewAlertEventData.java @@ -49,7 +49,7 @@ /** * NewAlertEventData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertEventData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertEventDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertEventDataAttributes.java index 8ed9e55e..dbece460 100644 --- a/src/main/java/com/rootly/client/model/NewAlertEventDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertEventDataAttributes.java @@ -48,7 +48,7 @@ /** * NewAlertEventDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertEventDataAttributes { /** * Gets or Sets kind diff --git a/src/main/java/com/rootly/client/model/NewAlertField.java b/src/main/java/com/rootly/client/model/NewAlertField.java index 7e967900..12883463 100644 --- a/src/main/java/com/rootly/client/model/NewAlertField.java +++ b/src/main/java/com/rootly/client/model/NewAlertField.java @@ -49,7 +49,7 @@ /** * NewAlertField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertFieldData.java b/src/main/java/com/rootly/client/model/NewAlertFieldData.java index c9d277fe..d5d2f445 100644 --- a/src/main/java/com/rootly/client/model/NewAlertFieldData.java +++ b/src/main/java/com/rootly/client/model/NewAlertFieldData.java @@ -49,7 +49,7 @@ /** * NewAlertFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertFieldData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertFieldDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertFieldDataAttributes.java index 7a1d4b50..2bc2fbcf 100644 --- a/src/main/java/com/rootly/client/model/NewAlertFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertFieldDataAttributes.java @@ -21,6 +21,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -48,8 +49,14 @@ /** * NewAlertFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertFieldDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -58,6 +65,29 @@ public class NewAlertFieldDataAttributes { public NewAlertFieldDataAttributes() { } + @Deprecated + public NewAlertFieldDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewAlertFieldDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -87,18 +117,31 @@ public boolean equals(Object o) { return false; } NewAlertFieldDataAttributes newAlertFieldDataAttributes = (NewAlertFieldDataAttributes) o; - return Objects.equals(this.name, newAlertFieldDataAttributes.name); + return Objects.equals(this.slug, newAlertFieldDataAttributes.slug) && + Objects.equals(this.name, newAlertFieldDataAttributes.name); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(name); + return Objects.hash(slug, name); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewAlertFieldDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append("}"); return sb.toString(); @@ -122,6 +165,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); // a set of required properties/fields (JSON key names) @@ -157,6 +201,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewAlertGroup.java b/src/main/java/com/rootly/client/model/NewAlertGroup.java index e90d4cca..e76276bd 100644 --- a/src/main/java/com/rootly/client/model/NewAlertGroup.java +++ b/src/main/java/com/rootly/client/model/NewAlertGroup.java @@ -49,7 +49,7 @@ /** * NewAlertGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertGroupData.java b/src/main/java/com/rootly/client/model/NewAlertGroupData.java index e7ae7fd5..7510d37a 100644 --- a/src/main/java/com/rootly/client/model/NewAlertGroupData.java +++ b/src/main/java/com/rootly/client/model/NewAlertGroupData.java @@ -49,7 +49,7 @@ /** * NewAlertGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributes.java index 0dd43b71..360c3c4d 100644 --- a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributes.java @@ -54,8 +54,14 @@ /** * NewAlertGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertGroupDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -263,6 +269,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewAlertGroupDataAttributes() { } + @Deprecated + public NewAlertGroupDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewAlertGroupDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -480,7 +509,8 @@ public boolean equals(Object o) { return false; } NewAlertGroupDataAttributes newAlertGroupDataAttributes = (NewAlertGroupDataAttributes) o; - return Objects.equals(this.name, newAlertGroupDataAttributes.name) && + return Objects.equals(this.slug, newAlertGroupDataAttributes.slug) && + Objects.equals(this.name, newAlertGroupDataAttributes.name) && Objects.equals(this.description, newAlertGroupDataAttributes.description) && Objects.equals(this.timeWindow, newAlertGroupDataAttributes.timeWindow) && Objects.equals(this.targets, newAlertGroupDataAttributes.targets) && @@ -497,7 +527,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, timeWindow, targets, attributes, groupByAlertTitle, groupByAlertUrgency, conditionType, conditions); + return Objects.hash(slug, name, description, timeWindow, targets, attributes, groupByAlertTitle, groupByAlertUrgency, conditionType, conditions); } private static int hashCodeNullable(JsonNullable a) { @@ -511,6 +541,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewAlertGroupDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" timeWindow: ").append(toIndentedString(timeWindow)).append("\n"); @@ -542,6 +573,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("time_window"); @@ -585,6 +617,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesAttributesInner.java b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesAttributesInner.java index 25a34e22..95eeb99b 100644 --- a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesAttributesInner.java @@ -48,7 +48,7 @@ /** * NewAlertGroupDataAttributesAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertGroupDataAttributesAttributesInner { public static final String SERIALIZED_NAME_JSON_PATH = "json_path"; @SerializedName(SERIALIZED_NAME_JSON_PATH) diff --git a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesConditionsInner.java b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesConditionsInner.java index 80ef2dc3..e2183985 100644 --- a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesConditionsInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesConditionsInner.java @@ -51,7 +51,7 @@ /** * NewAlertGroupDataAttributesConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertGroupDataAttributesConditionsInner { /** * The type of the property field diff --git a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesTargetsInner.java b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesTargetsInner.java index 8cbb98c9..dc603a76 100644 --- a/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesTargetsInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertGroupDataAttributesTargetsInner.java @@ -49,10 +49,10 @@ /** * NewAlertGroupDataAttributesTargetsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertGroupDataAttributesTargetsInner { /** - * The type of the target. + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(TargetTypeEnum.Adapter.class) public enum TargetTypeEnum { @@ -60,7 +60,9 @@ public enum TargetTypeEnum { SERVICE("Service"), - ESCALATION_POLICY("EscalationPolicy"); + ESCALATION_POLICY("EscalationPolicy"), + + FUNCTIONALITY("Functionality"); private String value; @@ -124,7 +126,7 @@ public NewAlertGroupDataAttributesTargetsInner targetType(@jakarta.annotation.No } /** - * The type of the target. + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. * @return targetType */ @jakarta.annotation.Nonnull @@ -143,7 +145,7 @@ public NewAlertGroupDataAttributesTargetsInner targetId(@jakarta.annotation.Nonn } /** - * id for the Group, Service or EscalationPolicy + * id for the Group, Service, EscalationPolicy or Functionality * @return targetId */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/NewAlertRetriggerRule.java b/src/main/java/com/rootly/client/model/NewAlertRetriggerRule.java new file mode 100644 index 00000000..08293eb1 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewAlertRetriggerRule.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertRetriggerRuleData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewAlertRetriggerRule + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewAlertRetriggerRule { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private NewAlertRetriggerRuleData data; + + public NewAlertRetriggerRule() { + } + + public NewAlertRetriggerRule data(@jakarta.annotation.Nonnull NewAlertRetriggerRuleData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public NewAlertRetriggerRuleData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull NewAlertRetriggerRuleData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewAlertRetriggerRule newAlertRetriggerRule = (NewAlertRetriggerRule) o; + return Objects.equals(this.data, newAlertRetriggerRule.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewAlertRetriggerRule {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewAlertRetriggerRule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewAlertRetriggerRule.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewAlertRetriggerRule is not found in the empty JSON string", NewAlertRetriggerRule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewAlertRetriggerRule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewAlertRetriggerRule` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewAlertRetriggerRule.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + NewAlertRetriggerRuleData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewAlertRetriggerRule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewAlertRetriggerRule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewAlertRetriggerRule.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewAlertRetriggerRule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewAlertRetriggerRule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewAlertRetriggerRule given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewAlertRetriggerRule + * @throws IOException if the JSON string is invalid with respect to NewAlertRetriggerRule + */ + public static NewAlertRetriggerRule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewAlertRetriggerRule.class); + } + + /** + * Convert an instance of NewAlertRetriggerRule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleData.java b/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleData.java new file mode 100644 index 00000000..3cd1fe22 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertRetriggerRuleDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewAlertRetriggerRuleData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewAlertRetriggerRuleData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + ALERT_RETRIGGER_RULES("alert_retrigger_rules"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private NewAlertRetriggerRuleDataAttributes attributes; + + public NewAlertRetriggerRuleData() { + } + + public NewAlertRetriggerRuleData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewAlertRetriggerRuleData attributes(@jakarta.annotation.Nonnull NewAlertRetriggerRuleDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public NewAlertRetriggerRuleDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull NewAlertRetriggerRuleDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewAlertRetriggerRuleData newAlertRetriggerRuleData = (NewAlertRetriggerRuleData) o; + return Objects.equals(this.type, newAlertRetriggerRuleData.type) && + Objects.equals(this.attributes, newAlertRetriggerRuleData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewAlertRetriggerRuleData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewAlertRetriggerRuleData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewAlertRetriggerRuleData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewAlertRetriggerRuleData is not found in the empty JSON string", NewAlertRetriggerRuleData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewAlertRetriggerRuleData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewAlertRetriggerRuleData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewAlertRetriggerRuleData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + NewAlertRetriggerRuleDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewAlertRetriggerRuleData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewAlertRetriggerRuleData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewAlertRetriggerRuleData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewAlertRetriggerRuleData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewAlertRetriggerRuleData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewAlertRetriggerRuleData given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewAlertRetriggerRuleData + * @throws IOException if the JSON string is invalid with respect to NewAlertRetriggerRuleData + */ + public static NewAlertRetriggerRuleData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewAlertRetriggerRuleData.class); + } + + /** + * Convert an instance of NewAlertRetriggerRuleData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributes.java new file mode 100644 index 00000000..b545dff7 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributes.java @@ -0,0 +1,498 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertRetriggerRuleDataAttributesConditionsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewAlertRetriggerRuleDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewAlertRetriggerRuleDataAttributes { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + + /** + * Whether all or any of the conditions must match + */ + @JsonAdapter(MatchModeEnum.Adapter.class) + public enum MatchModeEnum { + MATCH_ALL_RULES("match-all-rules"), + + MATCH_ANY_RULE("match-any-rule"); + + private String value; + + MatchModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MatchModeEnum fromValue(String value) { + for (MatchModeEnum b : MatchModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MatchModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MatchModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MatchModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MatchModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MATCH_MODE = "match_mode"; + @SerializedName(SERIALIZED_NAME_MATCH_MODE) + @jakarta.annotation.Nullable + private MatchModeEnum matchMode; + + /** + * Re-trigger the alert this many minutes after acknowledgment. Null means never re-trigger. + */ + @JsonAdapter(TimeoutMinutesEnum.Adapter.class) + public enum TimeoutMinutesEnum { + NUMBER_10(10), + + NUMBER_20(20), + + NUMBER_30(30), + + NUMBER_40(40), + + NUMBER_50(50), + + NUMBER_60(60), + + NUMBER_90(90), + + NUMBER_120(120), + + NUMBER_180(180), + + NUMBER_240(240), + + NUMBER_300(300), + + NUMBER_360(360), + + NUMBER_720(720), + + NUMBER_1440(1440); + + private Integer value; + + TimeoutMinutesEnum(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TimeoutMinutesEnum fromValue(Integer value) { + for (TimeoutMinutesEnum b : TimeoutMinutesEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TimeoutMinutesEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TimeoutMinutesEnum read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return TimeoutMinutesEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + TimeoutMinutesEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TIMEOUT_MINUTES = "timeout_minutes"; + @SerializedName(SERIALIZED_NAME_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private TimeoutMinutesEnum timeoutMinutes; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @jakarta.annotation.Nullable + private List conditions = new ArrayList<>(); + + public NewAlertRetriggerRuleDataAttributes() { + } + + public NewAlertRetriggerRuleDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * A human-readable name for the rule + * @return name + */ + @jakarta.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + + public NewAlertRetriggerRuleDataAttributes matchMode(@jakarta.annotation.Nullable MatchModeEnum matchMode) { + this.matchMode = matchMode; + return this; + } + + /** + * Whether all or any of the conditions must match + * @return matchMode + */ + @jakarta.annotation.Nullable + public MatchModeEnum getMatchMode() { + return matchMode; + } + + public void setMatchMode(@jakarta.annotation.Nullable MatchModeEnum matchMode) { + this.matchMode = matchMode; + } + + + public NewAlertRetriggerRuleDataAttributes timeoutMinutes(@jakarta.annotation.Nullable TimeoutMinutesEnum timeoutMinutes) { + this.timeoutMinutes = timeoutMinutes; + return this; + } + + /** + * Re-trigger the alert this many minutes after acknowledgment. Null means never re-trigger. + * @return timeoutMinutes + */ + @jakarta.annotation.Nullable + public TimeoutMinutesEnum getTimeoutMinutes() { + return timeoutMinutes; + } + + public void setTimeoutMinutes(@jakarta.annotation.Nullable TimeoutMinutesEnum timeoutMinutes) { + this.timeoutMinutes = timeoutMinutes; + } + + + public NewAlertRetriggerRuleDataAttributes position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * The position of the rule; the first matching rule (by position) decides the outcome + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public NewAlertRetriggerRuleDataAttributes conditions(@jakarta.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public NewAlertRetriggerRuleDataAttributes addConditionsItem(NewAlertRetriggerRuleDataAttributesConditionsInner conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * The conditions that determine which alerts this rule applies to. An empty array applies to every alert. + * @return conditions + */ + @jakarta.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@jakarta.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewAlertRetriggerRuleDataAttributes newAlertRetriggerRuleDataAttributes = (NewAlertRetriggerRuleDataAttributes) o; + return Objects.equals(this.name, newAlertRetriggerRuleDataAttributes.name) && + Objects.equals(this.matchMode, newAlertRetriggerRuleDataAttributes.matchMode) && + Objects.equals(this.timeoutMinutes, newAlertRetriggerRuleDataAttributes.timeoutMinutes) && + Objects.equals(this.position, newAlertRetriggerRuleDataAttributes.position) && + Objects.equals(this.conditions, newAlertRetriggerRuleDataAttributes.conditions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, matchMode, timeoutMinutes, position, conditions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewAlertRetriggerRuleDataAttributes {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" matchMode: ").append(toIndentedString(matchMode)).append("\n"); + sb.append(" timeoutMinutes: ").append(toIndentedString(timeoutMinutes)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("match_mode"); + openapiFields.add("timeout_minutes"); + openapiFields.add("position"); + openapiFields.add("conditions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("name"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewAlertRetriggerRuleDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewAlertRetriggerRuleDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewAlertRetriggerRuleDataAttributes is not found in the empty JSON string", NewAlertRetriggerRuleDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewAlertRetriggerRuleDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewAlertRetriggerRuleDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewAlertRetriggerRuleDataAttributes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) && !jsonObj.get("match_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `match_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("match_mode").toString())); + } + // validate the optional field `match_mode` + if (jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) { + MatchModeEnum.validateJsonElement(jsonObj.get("match_mode")); + } + // validate the optional field `timeout_minutes` + if (jsonObj.get("timeout_minutes") != null && !jsonObj.get("timeout_minutes").isJsonNull()) { + TimeoutMinutesEnum.validateJsonElement(jsonObj.get("timeout_minutes")); + } + if (jsonObj.get("conditions") != null && !jsonObj.get("conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `conditions` to be an array in the JSON string but got `%s`", jsonObj.get("conditions").toString())); + } + + // validate the optional field `conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + NewAlertRetriggerRuleDataAttributesConditionsInner.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewAlertRetriggerRuleDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewAlertRetriggerRuleDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewAlertRetriggerRuleDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewAlertRetriggerRuleDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewAlertRetriggerRuleDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewAlertRetriggerRuleDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewAlertRetriggerRuleDataAttributes + * @throws IOException if the JSON string is invalid with respect to NewAlertRetriggerRuleDataAttributes + */ + public static NewAlertRetriggerRuleDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewAlertRetriggerRuleDataAttributes.class); + } + + /** + * Convert an instance of NewAlertRetriggerRuleDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInner.java b/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInner.java new file mode 100644 index 00000000..ebe30954 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInner.java @@ -0,0 +1,486 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewAlertRetriggerRuleDataAttributesConditionsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewAlertRetriggerRuleDataAttributesConditionsInner { + /** + * The operand the condition matches on. Native operands (urgency, source, service, group) match by record; alert_field/payload match a field value. + */ + @JsonAdapter(KindEnum.Adapter.class) + public enum KindEnum { + URGENCY("urgency"), + + SOURCE("source"), + + SERVICE("service"), + + GROUP("group"), + + ALERT_FIELD("alert_field"), + + PAYLOAD("payload"); + + private String value; + + KindEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static KindEnum fromValue(String value) { + for (KindEnum b : KindEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final KindEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public KindEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return KindEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + KindEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_KIND = "kind"; + @SerializedName(SERIALIZED_NAME_KIND) + @jakarta.annotation.Nonnull + private KindEnum kind; + + /** + * How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; alert_field/payload additionally support the string/regex operators. + */ + @JsonAdapter(OperatorEnum.Adapter.class) + public enum OperatorEnum { + IS_ONE_OF("is_one_of"), + + IS_NOT_ONE_OF("is_not_one_of"), + + IS_SET("is_set"), + + IS_NOT_SET("is_not_set"), + + CONTAINS("contains"), + + DOES_NOT_CONTAIN("does_not_contain"), + + STARTS_WITH("starts_with"), + + ENDS_WITH("ends_with"), + + MATCHES_REGEX("matches_regex"); + + private String value; + + OperatorEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static OperatorEnum fromValue(String value) { + for (OperatorEnum b : OperatorEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final OperatorEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public OperatorEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return OperatorEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + OperatorEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @jakarta.annotation.Nonnull + private OperatorEnum operator; + + public static final String SERIALIZED_NAME_RECORD_IDS = "record_ids"; + @SerializedName(SERIALIZED_NAME_RECORD_IDS) + @jakarta.annotation.Nullable + private List recordIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @jakarta.annotation.Nullable + private List values = new ArrayList<>(); + + public static final String SERIALIZED_NAME_PROPERTY_FIELD_NAME = "property_field_name"; + @SerializedName(SERIALIZED_NAME_PROPERTY_FIELD_NAME) + @jakarta.annotation.Nullable + private String propertyFieldName; + + public NewAlertRetriggerRuleDataAttributesConditionsInner() { + } + + public NewAlertRetriggerRuleDataAttributesConditionsInner kind(@jakarta.annotation.Nonnull KindEnum kind) { + this.kind = kind; + return this; + } + + /** + * The operand the condition matches on. Native operands (urgency, source, service, group) match by record; alert_field/payload match a field value. + * @return kind + */ + @jakarta.annotation.Nonnull + public KindEnum getKind() { + return kind; + } + + public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { + this.kind = kind; + } + + + public NewAlertRetriggerRuleDataAttributesConditionsInner operator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + return this; + } + + /** + * How the operand is compared. Native operands support is_one_of/is_not_one_of/is_set/is_not_set; alert_field/payload additionally support the string/regex operators. + * @return operator + */ + @jakarta.annotation.Nonnull + public OperatorEnum getOperator() { + return operator; + } + + public void setOperator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + } + + + public NewAlertRetriggerRuleDataAttributesConditionsInner recordIds(@jakarta.annotation.Nullable List recordIds) { + this.recordIds = recordIds; + return this; + } + + public NewAlertRetriggerRuleDataAttributesConditionsInner addRecordIdsItem(UUID recordIdsItem) { + if (this.recordIds == null) { + this.recordIds = new ArrayList<>(); + } + this.recordIds.add(recordIdsItem); + return this; + } + + /** + * For urgency/service/group/source conditions: the IDs of the matched records (AlertUrgency, Service, Group, or Alerts::Source). + * @return recordIds + */ + @jakarta.annotation.Nullable + public List getRecordIds() { + return recordIds; + } + + public void setRecordIds(@jakarta.annotation.Nullable List recordIds) { + this.recordIds = recordIds; + } + + + public NewAlertRetriggerRuleDataAttributesConditionsInner values(@jakarta.annotation.Nullable List values) { + this.values = values; + return this; + } + + public NewAlertRetriggerRuleDataAttributesConditionsInner addValuesItem(String valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); + } + this.values.add(valuesItem); + return this; + } + + /** + * For source conditions: non-integration source aliases (e.g. manual, api). For alert_field/payload conditions: the values to compare against. + * @return values + */ + @jakarta.annotation.Nullable + public List getValues() { + return values; + } + + public void setValues(@jakarta.annotation.Nullable List values) { + this.values = values; + } + + + public NewAlertRetriggerRuleDataAttributesConditionsInner propertyFieldName(@jakarta.annotation.Nullable String propertyFieldName) { + this.propertyFieldName = propertyFieldName; + return this; + } + + /** + * For alert_field conditions: the alert field id. For payload conditions: a JSON Path (e.g. $.priority). + * @return propertyFieldName + */ + @jakarta.annotation.Nullable + public String getPropertyFieldName() { + return propertyFieldName; + } + + public void setPropertyFieldName(@jakarta.annotation.Nullable String propertyFieldName) { + this.propertyFieldName = propertyFieldName; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewAlertRetriggerRuleDataAttributesConditionsInner newAlertRetriggerRuleDataAttributesConditionsInner = (NewAlertRetriggerRuleDataAttributesConditionsInner) o; + return Objects.equals(this.kind, newAlertRetriggerRuleDataAttributesConditionsInner.kind) && + Objects.equals(this.operator, newAlertRetriggerRuleDataAttributesConditionsInner.operator) && + Objects.equals(this.recordIds, newAlertRetriggerRuleDataAttributesConditionsInner.recordIds) && + Objects.equals(this.values, newAlertRetriggerRuleDataAttributesConditionsInner.values) && + Objects.equals(this.propertyFieldName, newAlertRetriggerRuleDataAttributesConditionsInner.propertyFieldName); + } + + @Override + public int hashCode() { + return Objects.hash(kind, operator, recordIds, values, propertyFieldName); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewAlertRetriggerRuleDataAttributesConditionsInner {\n"); + sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); + sb.append(" operator: ").append(toIndentedString(operator)).append("\n"); + sb.append(" recordIds: ").append(toIndentedString(recordIds)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); + sb.append(" propertyFieldName: ").append(toIndentedString(propertyFieldName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("kind"); + openapiFields.add("operator"); + openapiFields.add("record_ids"); + openapiFields.add("values"); + openapiFields.add("property_field_name"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("kind"); + openapiRequiredFields.add("operator"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewAlertRetriggerRuleDataAttributesConditionsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewAlertRetriggerRuleDataAttributesConditionsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewAlertRetriggerRuleDataAttributesConditionsInner is not found in the empty JSON string", NewAlertRetriggerRuleDataAttributesConditionsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewAlertRetriggerRuleDataAttributesConditionsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewAlertRetriggerRuleDataAttributesConditionsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewAlertRetriggerRuleDataAttributesConditionsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("kind").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); + } + // validate the required field `kind` + KindEnum.validateJsonElement(jsonObj.get("kind")); + if (!jsonObj.get("operator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `operator` to be a primitive type in the JSON string but got `%s`", jsonObj.get("operator").toString())); + } + // validate the required field `operator` + OperatorEnum.validateJsonElement(jsonObj.get("operator")); + // ensure the optional json data is an array if present + if (jsonObj.get("record_ids") != null && !jsonObj.get("record_ids").isJsonNull() && !jsonObj.get("record_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `record_ids` to be an array in the JSON string but got `%s`", jsonObj.get("record_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("values") != null && !jsonObj.get("values").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `values` to be an array in the JSON string but got `%s`", jsonObj.get("values").toString())); + } + if ((jsonObj.get("property_field_name") != null && !jsonObj.get("property_field_name").isJsonNull()) && !jsonObj.get("property_field_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `property_field_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property_field_name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewAlertRetriggerRuleDataAttributesConditionsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewAlertRetriggerRuleDataAttributesConditionsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewAlertRetriggerRuleDataAttributesConditionsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewAlertRetriggerRuleDataAttributesConditionsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewAlertRetriggerRuleDataAttributesConditionsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewAlertRetriggerRuleDataAttributesConditionsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewAlertRetriggerRuleDataAttributesConditionsInner + * @throws IOException if the JSON string is invalid with respect to NewAlertRetriggerRuleDataAttributesConditionsInner + */ + public static NewAlertRetriggerRuleDataAttributesConditionsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewAlertRetriggerRuleDataAttributesConditionsInner.class); + } + + /** + * Convert an instance of NewAlertRetriggerRuleDataAttributesConditionsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewAlertRoute.java b/src/main/java/com/rootly/client/model/NewAlertRoute.java index 31fded07..9ecef423 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRoute.java +++ b/src/main/java/com/rootly/client/model/NewAlertRoute.java @@ -49,7 +49,7 @@ /** * NewAlertRoute */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRoute { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertRouteData.java b/src/main/java/com/rootly/client/model/NewAlertRouteData.java index 5134fc4d..f0e4d9a1 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRouteData.java +++ b/src/main/java/com/rootly/client/model/NewAlertRouteData.java @@ -49,7 +49,7 @@ /** * NewAlertRouteData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRouteData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributes.java index e8503ab8..8c6f77fe 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributes.java @@ -52,7 +52,7 @@ /** * NewAlertRouteDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRouteDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInner.java b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInner.java index abe06a7f..d5b264c6 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInner.java @@ -52,7 +52,7 @@ /** * NewAlertRouteDataAttributesRulesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRouteDataAttributesRulesInner { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -67,7 +67,7 @@ public class NewAlertRouteDataAttributesRulesInner { public static final String SERIALIZED_NAME_FALLBACK_RULE = "fallback_rule"; @SerializedName(SERIALIZED_NAME_FALLBACK_RULE) @jakarta.annotation.Nullable - private Boolean fallbackRule; + private Boolean fallbackRule = false; public static final String SERIALIZED_NAME_DESTINATIONS = "destinations"; @SerializedName(SERIALIZED_NAME_DESTINATIONS) diff --git a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInner.java b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInner.java index 99def785..8d611041 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInner.java @@ -51,7 +51,7 @@ /** * NewAlertRouteDataAttributesRulesInnerConditionGroupsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRouteDataAttributesRulesInnerConditionGroupsInner { public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) diff --git a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java index 90d4d503..a616bee3 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java @@ -52,7 +52,7 @@ /** * NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner { /** * Gets or Sets propertyFieldConditionType diff --git a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerDestinationsInner.java b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerDestinationsInner.java index 6013b6af..cc1041fc 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerDestinationsInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertRouteDataAttributesRulesInnerDestinationsInner.java @@ -49,10 +49,10 @@ /** * NewAlertRouteDataAttributesRulesInnerDestinationsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRouteDataAttributesRulesInnerDestinationsInner { /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(TargetTypeEnum.Adapter.class) public enum TargetTypeEnum { @@ -60,6 +60,8 @@ public enum TargetTypeEnum { GROUP("Group"), + FUNCTIONALITY("Functionality"), + ESCALATION_POLICY("EscalationPolicy"); private String value; @@ -124,7 +126,7 @@ public NewAlertRouteDataAttributesRulesInnerDestinationsInner targetType(@jakart } /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. * @return targetType */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/NewAlertRoutingRule.java b/src/main/java/com/rootly/client/model/NewAlertRoutingRule.java index 453077aa..b521d9f3 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRoutingRule.java +++ b/src/main/java/com/rootly/client/model/NewAlertRoutingRule.java @@ -49,7 +49,7 @@ /** * NewAlertRoutingRule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRoutingRule { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertRoutingRuleData.java b/src/main/java/com/rootly/client/model/NewAlertRoutingRuleData.java index aea46a0e..48d9f00a 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRoutingRuleData.java +++ b/src/main/java/com/rootly/client/model/NewAlertRoutingRuleData.java @@ -49,7 +49,7 @@ /** * NewAlertRoutingRuleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRoutingRuleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributes.java index fbbe8ef1..2cd2f672 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributes.java @@ -53,7 +53,7 @@ /** * NewAlertRoutingRuleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRoutingRuleDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributesConditionsInner.java b/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributesConditionsInner.java index e063e9a1..f8312f0f 100644 --- a/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributesConditionsInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertRoutingRuleDataAttributesConditionsInner.java @@ -50,7 +50,7 @@ /** * NewAlertRoutingRuleDataAttributesConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertRoutingRuleDataAttributesConditionsInner { /** * The type of the property field diff --git a/src/main/java/com/rootly/client/model/NewAlertUrgency.java b/src/main/java/com/rootly/client/model/NewAlertUrgency.java index 7094aebe..d3ffb207 100644 --- a/src/main/java/com/rootly/client/model/NewAlertUrgency.java +++ b/src/main/java/com/rootly/client/model/NewAlertUrgency.java @@ -49,7 +49,7 @@ /** * NewAlertUrgency */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertUrgency { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertUrgencyData.java b/src/main/java/com/rootly/client/model/NewAlertUrgencyData.java index 5dddcfed..370b26d4 100644 --- a/src/main/java/com/rootly/client/model/NewAlertUrgencyData.java +++ b/src/main/java/com/rootly/client/model/NewAlertUrgencyData.java @@ -49,7 +49,7 @@ /** * NewAlertUrgencyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertUrgencyData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertUrgencyDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertUrgencyDataAttributes.java index c557d343..69a2ef23 100644 --- a/src/main/java/com/rootly/client/model/NewAlertUrgencyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertUrgencyDataAttributes.java @@ -49,7 +49,7 @@ /** * NewAlertUrgencyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertUrgencyDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -66,6 +66,11 @@ public class NewAlertUrgencyDataAttributes { @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES = "retrigger_timeout_minutes"; + @SerializedName(SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private Integer retriggerTimeoutMinutes; + public NewAlertUrgencyDataAttributes() { } @@ -126,6 +131,25 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public NewAlertUrgencyDataAttributes retriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + return this; + } + + /** + * Re-trigger acknowledged alerts of this urgency after N minutes; null inherits the workspace default, negative = never. + * @return retriggerTimeoutMinutes + */ + @jakarta.annotation.Nullable + public Integer getRetriggerTimeoutMinutes() { + return retriggerTimeoutMinutes; + } + + public void setRetriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + } + + @Override public boolean equals(Object o) { @@ -138,7 +162,8 @@ public boolean equals(Object o) { NewAlertUrgencyDataAttributes newAlertUrgencyDataAttributes = (NewAlertUrgencyDataAttributes) o; return Objects.equals(this.name, newAlertUrgencyDataAttributes.name) && Objects.equals(this.description, newAlertUrgencyDataAttributes.description) && - Objects.equals(this.position, newAlertUrgencyDataAttributes.position); + Objects.equals(this.position, newAlertUrgencyDataAttributes.position) && + Objects.equals(this.retriggerTimeoutMinutes, newAlertUrgencyDataAttributes.retriggerTimeoutMinutes); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -147,7 +172,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(name, description, position, retriggerTimeoutMinutes); } private static int hashCodeNullable(JsonNullable a) { @@ -164,6 +189,7 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" retriggerTimeoutMinutes: ").append(toIndentedString(retriggerTimeoutMinutes)).append("\n"); sb.append("}"); return sb.toString(); } @@ -189,6 +215,7 @@ private String toIndentedString(Object o) { openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); + openapiFields.add("retrigger_timeout_minutes"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/NewAlertsSource.java b/src/main/java/com/rootly/client/model/NewAlertsSource.java index 794e5342..d7cd3453 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSource.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSource.java @@ -49,7 +49,7 @@ /** * NewAlertsSource */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSource { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceData.java b/src/main/java/com/rootly/client/model/NewAlertsSourceData.java index e58d953d..b4fa508f 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceData.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceData.java @@ -49,7 +49,7 @@ /** * NewAlertsSourceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributes.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributes.java index c9634081..695c4902 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributes.java @@ -56,13 +56,18 @@ /** * NewAlertsSourceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull private String name; + public static final String SERIALIZED_NAME_ENABLED = "enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @jakarta.annotation.Nullable + private Boolean enabled; + /** * The alert source type */ @@ -74,8 +79,12 @@ public enum SourceTypeEnum { CATCHPOINT("catchpoint"), + CLOUDFLARE("cloudflare"), + DATADOG("datadog"), + DYNATRACE("dynatrace"), + ALERTMANAGER("alertmanager"), GOOGLE_CLOUD("google_cloud"), @@ -88,6 +97,8 @@ public enum SourceTypeEnum { CLOUD_WATCH("cloud_watch"), + AWS_SNS("aws_sns"), + CHECKLY("checkly"), AZURE("azure"), @@ -285,6 +296,25 @@ public void setName(@jakarta.annotation.Nonnull String name) { } + public NewAlertsSourceDataAttributes enabled(@jakarta.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the alert source is enabled. Disabled sources do not create alerts from incoming events. + * @return enabled + */ + @jakarta.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@jakarta.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + public NewAlertsSourceDataAttributes sourceType(@jakarta.annotation.Nullable SourceTypeEnum sourceType) { this.sourceType = sourceType; return this; @@ -548,6 +578,7 @@ public boolean equals(Object o) { } NewAlertsSourceDataAttributes newAlertsSourceDataAttributes = (NewAlertsSourceDataAttributes) o; return Objects.equals(this.name, newAlertsSourceDataAttributes.name) && + Objects.equals(this.enabled, newAlertsSourceDataAttributes.enabled) && Objects.equals(this.sourceType, newAlertsSourceDataAttributes.sourceType) && Objects.equals(this.alertUrgencyId, newAlertsSourceDataAttributes.alertUrgencyId) && Objects.equals(this.deduplicateAlertsByKey, newAlertsSourceDataAttributes.deduplicateAlertsByKey) && @@ -568,7 +599,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, sourceType, alertUrgencyId, deduplicateAlertsByKey, deduplicationKeyKind, deduplicationKeyPath, deduplicationKeyRegexp, ownerGroupIds, alertTemplateAttributes, alertSourceUrgencyRulesAttributes, sourceableAttributes, resolutionRuleAttributes, alertSourceFieldsAttributes); + return Objects.hash(name, enabled, sourceType, alertUrgencyId, deduplicateAlertsByKey, deduplicationKeyKind, deduplicationKeyPath, deduplicationKeyRegexp, ownerGroupIds, alertTemplateAttributes, alertSourceUrgencyRulesAttributes, sourceableAttributes, resolutionRuleAttributes, alertSourceFieldsAttributes); } private static int hashCodeNullable(JsonNullable a) { @@ -583,6 +614,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewAlertsSourceDataAttributes {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" sourceType: ").append(toIndentedString(sourceType)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); sb.append(" deduplicateAlertsByKey: ").append(toIndentedString(deduplicateAlertsByKey)).append("\n"); @@ -618,6 +650,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("name"); + openapiFields.add("enabled"); openapiFields.add("source_type"); openapiFields.add("alert_urgency_id"); openapiFields.add("deduplicate_alerts_by_key"); diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner.java index e6a2a7cf..800c5ec5 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner.java @@ -49,7 +49,7 @@ /** * NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner { public static final String SERIALIZED_NAME_ALERT_FIELD_ID = "alert_field_id"; @SerializedName(SERIALIZED_NAME_ALERT_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner.java index 71df4fe0..d2d2f0dc 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner.java @@ -49,7 +49,7 @@ /** * NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner { public static final String SERIALIZED_NAME_JSON_PATH = "json_path"; @SerializedName(SERIALIZED_NAME_JSON_PATH) diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertTemplateAttributes.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertTemplateAttributes.java index b5f9c35d..ad9dc736 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertTemplateAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesAlertTemplateAttributes.java @@ -49,7 +49,7 @@ /** * NewAlertsSourceDataAttributesAlertTemplateAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributesAlertTemplateAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributes.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributes.java index fafaab3f..8101646a 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributes.java @@ -52,7 +52,7 @@ /** * Provide additional attributes for email alerts source */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributesResolutionRuleAttributes { public static final String SERIALIZED_NAME_ENABLED = "enabled"; @SerializedName(SERIALIZED_NAME_ENABLED) diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner.java index b569b160..892337b7 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner.java @@ -49,7 +49,7 @@ /** * NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributesResolutionRuleAttributesConditionsAttributesInner { public static final String SERIALIZED_NAME_FIELD = "field"; @SerializedName(SERIALIZED_NAME_FIELD) diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributes.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributes.java index 37ae4570..f850ec2c 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributes.java @@ -50,9 +50,9 @@ import com.rootly.client.JSON; /** - * Provide additional attributes for generic_webhook alerts source + * Provide additional attributes for the underlying source. `auto_resolve`, `resolve_state` and `field_mappings_attributes` apply to generic_webhook sources; `accept_threaded_emails` applies to email sources. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributesSourceableAttributes { public static final String SERIALIZED_NAME_AUTO_RESOLVE = "auto_resolve"; @SerializedName(SERIALIZED_NAME_AUTO_RESOLVE) diff --git a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.java b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.java index 3515316c..8082cf45 100644 --- a/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner.java @@ -48,7 +48,7 @@ /** * NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner { /** * Select the field on which the condition to be evaluated @@ -150,7 +150,7 @@ public NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesI } /** - * JSON path expression to extract a specific value from the alert's payload for evaluation + * JSON path expression to extract a specific value from the alert's payload for evaluation. For `notification_target_id` only: if your account has opted in to Dynamic Notification Targets, this may also be a Liquid template that resolves to a notification target id at routing time. * @return jsonPath */ @jakarta.annotation.Nullable diff --git a/src/main/java/com/rootly/client/model/NewApiKey.java b/src/main/java/com/rootly/client/model/NewApiKey.java index d4d0ebaf..f93ba111 100644 --- a/src/main/java/com/rootly/client/model/NewApiKey.java +++ b/src/main/java/com/rootly/client/model/NewApiKey.java @@ -49,17 +49,17 @@ /** * NewApiKey */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewApiKey { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewApiKeyData data; public NewApiKey() { } - public NewApiKey data(@javax.annotation.Nonnull NewApiKeyData data) { + public NewApiKey data(@jakarta.annotation.Nonnull NewApiKeyData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public NewApiKey data(@javax.annotation.Nonnull NewApiKeyData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewApiKeyData getData() { return data; } - public void setData(@javax.annotation.Nonnull NewApiKeyData data) { + public void setData(@jakarta.annotation.Nonnull NewApiKeyData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/NewApiKeyData.java b/src/main/java/com/rootly/client/model/NewApiKeyData.java index a4a8ee6d..84db0bbb 100644 --- a/src/main/java/com/rootly/client/model/NewApiKeyData.java +++ b/src/main/java/com/rootly/client/model/NewApiKeyData.java @@ -49,7 +49,7 @@ /** * NewApiKeyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewApiKeyData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewApiKeyDataAttributes attributes; public NewApiKeyData() { } - public NewApiKeyData type(@javax.annotation.Nonnull TypeEnum type) { + public NewApiKeyData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public NewApiKeyData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public NewApiKeyData attributes(@javax.annotation.Nonnull NewApiKeyDataAttributes attributes) { + public NewApiKeyData attributes(@jakarta.annotation.Nonnull NewApiKeyDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public NewApiKeyData attributes(@javax.annotation.Nonnull NewApiKeyDataAttribute * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewApiKeyDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull NewApiKeyDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull NewApiKeyDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/NewApiKeyDataAttributes.java b/src/main/java/com/rootly/client/model/NewApiKeyDataAttributes.java index d4cdba00..17843bd9 100644 --- a/src/main/java/com/rootly/client/model/NewApiKeyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewApiKeyDataAttributes.java @@ -50,16 +50,16 @@ /** * NewApiKeyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewApiKeyDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; /** @@ -118,33 +118,33 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_KIND = "kind"; @SerializedName(SERIALIZED_NAME_KIND) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private KindEnum kind; public static final String SERIALIZED_NAME_EXPIRES_AT = "expires_at"; @SerializedName(SERIALIZED_NAME_EXPIRES_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OffsetDateTime expiresAt; public static final String SERIALIZED_NAME_GROUP_ID = "group_id"; @SerializedName(SERIALIZED_NAME_GROUP_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String groupId; public static final String SERIALIZED_NAME_ROLE_ID = "role_id"; @SerializedName(SERIALIZED_NAME_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String roleId; public static final String SERIALIZED_NAME_ON_CALL_ROLE_ID = "on_call_role_id"; @SerializedName(SERIALIZED_NAME_ON_CALL_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String onCallRoleId; public NewApiKeyDataAttributes() { } - public NewApiKeyDataAttributes name(@javax.annotation.Nonnull String name) { + public NewApiKeyDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -153,17 +153,17 @@ public NewApiKeyDataAttributes name(@javax.annotation.Nonnull String name) { * The name of the API key * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public NewApiKeyDataAttributes description(@javax.annotation.Nullable String description) { + public NewApiKeyDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -172,17 +172,17 @@ public NewApiKeyDataAttributes description(@javax.annotation.Nullable String des * A description of the API key * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public NewApiKeyDataAttributes kind(@javax.annotation.Nonnull KindEnum kind) { + public NewApiKeyDataAttributes kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; } @@ -191,17 +191,17 @@ public NewApiKeyDataAttributes kind(@javax.annotation.Nonnull KindEnum kind) { * The kind of the API key * @return kind */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public KindEnum getKind() { return kind; } - public void setKind(@javax.annotation.Nonnull KindEnum kind) { + public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; } - public NewApiKeyDataAttributes expiresAt(@javax.annotation.Nonnull OffsetDateTime expiresAt) { + public NewApiKeyDataAttributes expiresAt(@jakarta.annotation.Nonnull OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } @@ -210,17 +210,17 @@ public NewApiKeyDataAttributes expiresAt(@javax.annotation.Nonnull OffsetDateTim * The expiration date of the API key (ISO 8601) * @return expiresAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OffsetDateTime getExpiresAt() { return expiresAt; } - public void setExpiresAt(@javax.annotation.Nonnull OffsetDateTime expiresAt) { + public void setExpiresAt(@jakarta.annotation.Nonnull OffsetDateTime expiresAt) { this.expiresAt = expiresAt; } - public NewApiKeyDataAttributes groupId(@javax.annotation.Nullable String groupId) { + public NewApiKeyDataAttributes groupId(@jakarta.annotation.Nullable String groupId) { this.groupId = groupId; return this; } @@ -229,17 +229,17 @@ public NewApiKeyDataAttributes groupId(@javax.annotation.Nullable String groupId * The group (team) ID. Required when kind is 'team'. * @return groupId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getGroupId() { return groupId; } - public void setGroupId(@javax.annotation.Nullable String groupId) { + public void setGroupId(@jakarta.annotation.Nullable String groupId) { this.groupId = groupId; } - public NewApiKeyDataAttributes roleId(@javax.annotation.Nullable String roleId) { + public NewApiKeyDataAttributes roleId(@jakarta.annotation.Nullable String roleId) { this.roleId = roleId; return this; } @@ -248,17 +248,17 @@ public NewApiKeyDataAttributes roleId(@javax.annotation.Nullable String roleId) * The role ID for organization API keys * @return roleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getRoleId() { return roleId; } - public void setRoleId(@javax.annotation.Nullable String roleId) { + public void setRoleId(@jakarta.annotation.Nullable String roleId) { this.roleId = roleId; } - public NewApiKeyDataAttributes onCallRoleId(@javax.annotation.Nullable String onCallRoleId) { + public NewApiKeyDataAttributes onCallRoleId(@jakarta.annotation.Nullable String onCallRoleId) { this.onCallRoleId = onCallRoleId; return this; } @@ -267,12 +267,12 @@ public NewApiKeyDataAttributes onCallRoleId(@javax.annotation.Nullable String on * The on-call role ID for organization API keys * @return onCallRoleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getOnCallRoleId() { return onCallRoleId; } - public void setOnCallRoleId(@javax.annotation.Nullable String onCallRoleId) { + public void setOnCallRoleId(@jakarta.annotation.Nullable String onCallRoleId) { this.onCallRoleId = onCallRoleId; } diff --git a/src/main/java/com/rootly/client/model/NewAuthorization.java b/src/main/java/com/rootly/client/model/NewAuthorization.java index f3da65dd..38165359 100644 --- a/src/main/java/com/rootly/client/model/NewAuthorization.java +++ b/src/main/java/com/rootly/client/model/NewAuthorization.java @@ -49,7 +49,7 @@ /** * NewAuthorization */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAuthorization { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewAuthorizationData.java b/src/main/java/com/rootly/client/model/NewAuthorizationData.java index dde0e54c..8203c9e3 100644 --- a/src/main/java/com/rootly/client/model/NewAuthorizationData.java +++ b/src/main/java/com/rootly/client/model/NewAuthorizationData.java @@ -49,7 +49,7 @@ /** * NewAuthorizationData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAuthorizationData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewAuthorizationDataAttributes.java b/src/main/java/com/rootly/client/model/NewAuthorizationDataAttributes.java index 22755e9c..c12a1029 100644 --- a/src/main/java/com/rootly/client/model/NewAuthorizationDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewAuthorizationDataAttributes.java @@ -50,7 +50,7 @@ /** * NewAuthorizationDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewAuthorizationDataAttributes { public static final String SERIALIZED_NAME_AUTHORIZABLE_ID = "authorizable_id"; @SerializedName(SERIALIZED_NAME_AUTHORIZABLE_ID) diff --git a/src/main/java/com/rootly/client/model/NewCatalog.java b/src/main/java/com/rootly/client/model/NewCatalog.java index 5b24d9e5..7de29960 100644 --- a/src/main/java/com/rootly/client/model/NewCatalog.java +++ b/src/main/java/com/rootly/client/model/NewCatalog.java @@ -49,7 +49,7 @@ /** * NewCatalog */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalog { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplate.java b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplate.java index a7190ce9..b83784a1 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplate.java +++ b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplate.java @@ -49,17 +49,17 @@ /** * NewCatalogChecklistTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogChecklistTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewCatalogChecklistTemplateData data; public NewCatalogChecklistTemplate() { } - public NewCatalogChecklistTemplate data(@javax.annotation.Nonnull NewCatalogChecklistTemplateData data) { + public NewCatalogChecklistTemplate data(@jakarta.annotation.Nonnull NewCatalogChecklistTemplateData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public NewCatalogChecklistTemplate data(@javax.annotation.Nonnull NewCatalogChec * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewCatalogChecklistTemplateData getData() { return data; } - public void setData(@javax.annotation.Nonnull NewCatalogChecklistTemplateData data) { + public void setData(@jakarta.annotation.Nonnull NewCatalogChecklistTemplateData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateData.java b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateData.java index 08445cd6..6da59668 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateData.java +++ b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateData.java @@ -49,7 +49,7 @@ /** * NewCatalogChecklistTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogChecklistTemplateData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewCatalogChecklistTemplateDataAttributes attributes; public NewCatalogChecklistTemplateData() { } - public NewCatalogChecklistTemplateData type(@javax.annotation.Nonnull TypeEnum type) { + public NewCatalogChecklistTemplateData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public NewCatalogChecklistTemplateData type(@javax.annotation.Nonnull TypeEnum t * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public NewCatalogChecklistTemplateData attributes(@javax.annotation.Nonnull NewCatalogChecklistTemplateDataAttributes attributes) { + public NewCatalogChecklistTemplateData attributes(@jakarta.annotation.Nonnull NewCatalogChecklistTemplateDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public NewCatalogChecklistTemplateData attributes(@javax.annotation.Nonnull NewC * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewCatalogChecklistTemplateDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull NewCatalogChecklistTemplateDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull NewCatalogChecklistTemplateDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributes.java index d5e8deaa..31b04326 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributes.java @@ -53,16 +53,22 @@ /** * NewCatalogChecklistTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogChecklistTemplateDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; /** @@ -129,7 +135,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CatalogTypeEnum catalogType; /** @@ -186,28 +192,51 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_SCOPE_TYPE = "scope_type"; @SerializedName(SERIALIZED_NAME_SCOPE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ScopeTypeEnum scopeType; public static final String SERIALIZED_NAME_SCOPE_ID = "scope_id"; @SerializedName(SERIALIZED_NAME_SCOPE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String scopeId; public static final String SERIALIZED_NAME_FIELDS = "fields"; @SerializedName(SERIALIZED_NAME_FIELDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List fields; public static final String SERIALIZED_NAME_OWNERS = "owners"; @SerializedName(SERIALIZED_NAME_OWNERS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List owners; public NewCatalogChecklistTemplateDataAttributes() { } - public NewCatalogChecklistTemplateDataAttributes name(@javax.annotation.Nonnull String name) { + @Deprecated + public NewCatalogChecklistTemplateDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public NewCatalogChecklistTemplateDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -216,17 +245,17 @@ public NewCatalogChecklistTemplateDataAttributes name(@javax.annotation.Nonnull * The name of the checklist template * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public NewCatalogChecklistTemplateDataAttributes description(@javax.annotation.Nullable String description) { + public NewCatalogChecklistTemplateDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -235,17 +264,17 @@ public NewCatalogChecklistTemplateDataAttributes description(@javax.annotation.N * The description of the checklist template * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public NewCatalogChecklistTemplateDataAttributes catalogType(@javax.annotation.Nonnull CatalogTypeEnum catalogType) { + public NewCatalogChecklistTemplateDataAttributes catalogType(@jakarta.annotation.Nonnull CatalogTypeEnum catalogType) { this.catalogType = catalogType; return this; } @@ -254,17 +283,17 @@ public NewCatalogChecklistTemplateDataAttributes catalogType(@javax.annotation.N * The catalog type * @return catalogType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CatalogTypeEnum getCatalogType() { return catalogType; } - public void setCatalogType(@javax.annotation.Nonnull CatalogTypeEnum catalogType) { + public void setCatalogType(@jakarta.annotation.Nonnull CatalogTypeEnum catalogType) { this.catalogType = catalogType; } - public NewCatalogChecklistTemplateDataAttributes scopeType(@javax.annotation.Nonnull ScopeTypeEnum scopeType) { + public NewCatalogChecklistTemplateDataAttributes scopeType(@jakarta.annotation.Nonnull ScopeTypeEnum scopeType) { this.scopeType = scopeType; return this; } @@ -273,17 +302,17 @@ public NewCatalogChecklistTemplateDataAttributes scopeType(@javax.annotation.Non * The scope type * @return scopeType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ScopeTypeEnum getScopeType() { return scopeType; } - public void setScopeType(@javax.annotation.Nonnull ScopeTypeEnum scopeType) { + public void setScopeType(@jakarta.annotation.Nonnull ScopeTypeEnum scopeType) { this.scopeType = scopeType; } - public NewCatalogChecklistTemplateDataAttributes scopeId(@javax.annotation.Nullable String scopeId) { + public NewCatalogChecklistTemplateDataAttributes scopeId(@jakarta.annotation.Nullable String scopeId) { this.scopeId = scopeId; return this; } @@ -292,17 +321,17 @@ public NewCatalogChecklistTemplateDataAttributes scopeId(@javax.annotation.Nulla * The scope ID (team or catalog UUID) * @return scopeId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getScopeId() { return scopeId; } - public void setScopeId(@javax.annotation.Nullable String scopeId) { + public void setScopeId(@jakarta.annotation.Nullable String scopeId) { this.scopeId = scopeId; } - public NewCatalogChecklistTemplateDataAttributes fields(@javax.annotation.Nullable List fields) { + public NewCatalogChecklistTemplateDataAttributes fields(@jakarta.annotation.Nullable List fields) { this.fields = fields; return this; } @@ -319,17 +348,17 @@ public NewCatalogChecklistTemplateDataAttributes addFieldsItem(NewCatalogCheckli * Template fields. Position is determined by array order. * @return fields */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getFields() { return fields; } - public void setFields(@javax.annotation.Nullable List fields) { + public void setFields(@jakarta.annotation.Nullable List fields) { this.fields = fields; } - public NewCatalogChecklistTemplateDataAttributes owners(@javax.annotation.Nullable List owners) { + public NewCatalogChecklistTemplateDataAttributes owners(@jakarta.annotation.Nullable List owners) { this.owners = owners; return this; } @@ -346,12 +375,12 @@ public NewCatalogChecklistTemplateDataAttributes addOwnersItem(NewCatalogCheckli * Template owners * @return owners */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getOwners() { return owners; } - public void setOwners(@javax.annotation.Nullable List owners) { + public void setOwners(@jakarta.annotation.Nullable List owners) { this.owners = owners; } @@ -366,7 +395,8 @@ public boolean equals(Object o) { return false; } NewCatalogChecklistTemplateDataAttributes newCatalogChecklistTemplateDataAttributes = (NewCatalogChecklistTemplateDataAttributes) o; - return Objects.equals(this.name, newCatalogChecklistTemplateDataAttributes.name) && + return Objects.equals(this.slug, newCatalogChecklistTemplateDataAttributes.slug) && + Objects.equals(this.name, newCatalogChecklistTemplateDataAttributes.name) && Objects.equals(this.description, newCatalogChecklistTemplateDataAttributes.description) && Objects.equals(this.catalogType, newCatalogChecklistTemplateDataAttributes.catalogType) && Objects.equals(this.scopeType, newCatalogChecklistTemplateDataAttributes.scopeType) && @@ -381,7 +411,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, catalogType, scopeType, scopeId, fields, owners); + return Objects.hash(slug, name, description, catalogType, scopeType, scopeId, fields, owners); } private static int hashCodeNullable(JsonNullable a) { @@ -395,6 +425,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCatalogChecklistTemplateDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); @@ -424,6 +455,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("catalog_type"); @@ -467,6 +499,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesFieldsInner.java b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesFieldsInner.java index 21153807..006b15fa 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesFieldsInner.java +++ b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesFieldsInner.java @@ -59,7 +59,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogChecklistTemplateDataAttributesFieldsInner extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewCatalogChecklistTemplateDataAttributesFieldsInner.class.getName()); diff --git a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesOwnersInner.java b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesOwnersInner.java index 3441dc7a..50a3c419 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesOwnersInner.java +++ b/src/main/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesOwnersInner.java @@ -48,11 +48,11 @@ /** * NewCatalogChecklistTemplateDataAttributesOwnersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogChecklistTemplateDataAttributesOwnersInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -109,13 +109,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public NewCatalogChecklistTemplateDataAttributesOwnersInner() { } - public NewCatalogChecklistTemplateDataAttributesOwnersInner id(@javax.annotation.Nonnull String id) { + public NewCatalogChecklistTemplateDataAttributesOwnersInner id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -124,17 +124,17 @@ public NewCatalogChecklistTemplateDataAttributesOwnersInner id(@javax.annotation * User ID for user owners, or field key for field owners * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public NewCatalogChecklistTemplateDataAttributesOwnersInner type(@javax.annotation.Nonnull TypeEnum type) { + public NewCatalogChecklistTemplateDataAttributesOwnersInner type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -143,12 +143,12 @@ public NewCatalogChecklistTemplateDataAttributesOwnersInner type(@javax.annotati * Type of owner * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } diff --git a/src/main/java/com/rootly/client/model/NewCatalogData.java b/src/main/java/com/rootly/client/model/NewCatalogData.java index 9a88ea49..3a43ad1e 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogData.java +++ b/src/main/java/com/rootly/client/model/NewCatalogData.java @@ -49,7 +49,7 @@ /** * NewCatalogData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCatalogDataAttributes.java b/src/main/java/com/rootly/client/model/NewCatalogDataAttributes.java index 584f8ee1..f4c159c6 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCatalogDataAttributes.java @@ -49,8 +49,14 @@ /** * NewCatalogDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -135,9 +141,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public NewCatalogDataAttributes() { } + @Deprecated + public NewCatalogDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewCatalogDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -214,6 +248,25 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public NewCatalogDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog. Must be unique within the team. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + @Override public boolean equals(Object o) { @@ -224,10 +277,12 @@ public boolean equals(Object o) { return false; } NewCatalogDataAttributes newCatalogDataAttributes = (NewCatalogDataAttributes) o; - return Objects.equals(this.name, newCatalogDataAttributes.name) && + return Objects.equals(this.slug, newCatalogDataAttributes.slug) && + Objects.equals(this.name, newCatalogDataAttributes.name) && Objects.equals(this.description, newCatalogDataAttributes.description) && Objects.equals(this.icon, newCatalogDataAttributes.icon) && - Objects.equals(this.position, newCatalogDataAttributes.position); + Objects.equals(this.position, newCatalogDataAttributes.position) && + Objects.equals(this.externalId, newCatalogDataAttributes.externalId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -236,7 +291,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, icon, position); + return Objects.hash(slug, name, description, icon, position, externalId); } private static int hashCodeNullable(JsonNullable a) { @@ -250,10 +305,12 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCatalogDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" icon: ").append(toIndentedString(icon)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -276,10 +333,12 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("icon"); openapiFields.add("position"); + openapiFields.add("external_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -314,6 +373,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -327,6 +389,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("icon") != null && !jsonObj.get("icon").isJsonNull()) { IconEnum.validateJsonElement(jsonObj.get("icon")); } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewCatalogEntity.java b/src/main/java/com/rootly/client/model/NewCatalogEntity.java index d7fbe5a5..fc5d1c99 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogEntity.java +++ b/src/main/java/com/rootly/client/model/NewCatalogEntity.java @@ -49,7 +49,7 @@ /** * NewCatalogEntity */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogEntity { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCatalogEntityData.java b/src/main/java/com/rootly/client/model/NewCatalogEntityData.java index 62f2e807..59d12a43 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogEntityData.java +++ b/src/main/java/com/rootly/client/model/NewCatalogEntityData.java @@ -49,7 +49,7 @@ /** * NewCatalogEntityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogEntityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributes.java b/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributes.java index e0e8e210..9b44b831 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributes.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCatalogEntityDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,8 +52,14 @@ /** * NewCatalogEntityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogEntityDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -61,14 +70,57 @@ public class NewCatalogEntityDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_BACKSTAGE_ID = "backstage_id"; + @SerializedName(SERIALIZED_NAME_BACKSTAGE_ID) + @jakarta.annotation.Nullable + private String backstageId; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public NewCatalogEntityDataAttributes() { } + @Deprecated + public NewCatalogEntityDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewCatalogEntityDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -107,6 +159,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public NewCatalogEntityDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the catalog entity + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public NewCatalogEntityDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; @@ -126,6 +197,71 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public NewCatalogEntityDataAttributes backstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + return this; + } + + /** + * The Backstage entity ID this catalog entity is linked to. + * @return backstageId + */ + @jakarta.annotation.Nullable + public String getBackstageId() { + return backstageId; + } + + public void setBackstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + } + + + public NewCatalogEntityDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog entity. Must be unique within the catalog. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public NewCatalogEntityDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public NewCatalogEntityDataAttributes addPropertiesItem(NewCatalogEntityDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this catalog entity + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -136,9 +272,14 @@ public boolean equals(Object o) { return false; } NewCatalogEntityDataAttributes newCatalogEntityDataAttributes = (NewCatalogEntityDataAttributes) o; - return Objects.equals(this.name, newCatalogEntityDataAttributes.name) && + return Objects.equals(this.slug, newCatalogEntityDataAttributes.slug) && + Objects.equals(this.name, newCatalogEntityDataAttributes.name) && Objects.equals(this.description, newCatalogEntityDataAttributes.description) && - Objects.equals(this.position, newCatalogEntityDataAttributes.position); + Objects.equals(this.publicDescription, newCatalogEntityDataAttributes.publicDescription) && + Objects.equals(this.position, newCatalogEntityDataAttributes.position) && + Objects.equals(this.backstageId, newCatalogEntityDataAttributes.backstageId) && + Objects.equals(this.externalId, newCatalogEntityDataAttributes.externalId) && + Objects.equals(this.properties, newCatalogEntityDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -147,7 +288,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(slug, name, description, publicDescription, position, backstageId, externalId, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -161,9 +302,14 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCatalogEntityDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" backstageId: ").append(toIndentedString(backstageId)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -186,9 +332,14 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("position"); + openapiFields.add("backstage_id"); + openapiFields.add("external_id"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -223,12 +374,38 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("backstage_id") != null && !jsonObj.get("backstage_id").isJsonNull()) && !jsonObj.get("backstage_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `backstage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("backstage_id").toString())); + } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCatalogEntityDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributesPropertiesInner.java b/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributesPropertiesInner.java index dcd43cf1..79aad5cc 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributesPropertiesInner.java +++ b/src/main/java/com/rootly/client/model/NewCatalogEntityDataAttributesPropertiesInner.java @@ -48,22 +48,22 @@ /** * NewCatalogEntityDataAttributesPropertiesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogEntityDataAttributesPropertiesInner { public static final String SERIALIZED_NAME_CATALOG_PROPERTY_ID = "catalog_property_id"; @SerializedName(SERIALIZED_NAME_CATALOG_PROPERTY_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String catalogPropertyId; public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String value; public NewCatalogEntityDataAttributesPropertiesInner() { } - public NewCatalogEntityDataAttributesPropertiesInner catalogPropertyId(@javax.annotation.Nonnull String catalogPropertyId) { + public NewCatalogEntityDataAttributesPropertiesInner catalogPropertyId(@jakarta.annotation.Nonnull String catalogPropertyId) { this.catalogPropertyId = catalogPropertyId; return this; } @@ -72,17 +72,17 @@ public NewCatalogEntityDataAttributesPropertiesInner catalogPropertyId(@javax.an * Unique ID of the catalog property * @return catalogPropertyId */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCatalogPropertyId() { return catalogPropertyId; } - public void setCatalogPropertyId(@javax.annotation.Nonnull String catalogPropertyId) { + public void setCatalogPropertyId(@jakarta.annotation.Nonnull String catalogPropertyId) { this.catalogPropertyId = catalogPropertyId; } - public NewCatalogEntityDataAttributesPropertiesInner value(@javax.annotation.Nonnull String value) { + public NewCatalogEntityDataAttributesPropertiesInner value(@jakarta.annotation.Nonnull String value) { this.value = value; return this; } @@ -91,12 +91,12 @@ public NewCatalogEntityDataAttributesPropertiesInner value(@javax.annotation.Non * The value for this property * @return value */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getValue() { return value; } - public void setValue(@javax.annotation.Nonnull String value) { + public void setValue(@jakarta.annotation.Nonnull String value) { this.value = value; } diff --git a/src/main/java/com/rootly/client/model/NewCatalogEntityProperty.java b/src/main/java/com/rootly/client/model/NewCatalogEntityProperty.java index 601fae8c..6f57d8c6 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogEntityProperty.java +++ b/src/main/java/com/rootly/client/model/NewCatalogEntityProperty.java @@ -47,9 +47,11 @@ import com.rootly.client.JSON; /** - * NewCatalogEntityProperty + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. + * @deprecated */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@Deprecated +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogEntityProperty { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyData.java b/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyData.java index 190ea738..d55b298a 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyData.java +++ b/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyData.java @@ -49,7 +49,7 @@ /** * NewCatalogEntityPropertyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogEntityPropertyData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyDataAttributes.java b/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyDataAttributes.java index e64cedc7..7eb11499 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCatalogEntityPropertyDataAttributes.java @@ -46,9 +46,9 @@ import com.rootly.client.JSON; /** - * NewCatalogEntityPropertyDataAttributes + * Maximum of 50 values allowed per catalog field. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogEntityPropertyDataAttributes { public static final String SERIALIZED_NAME_CATALOG_ENTITY_ID = "catalog_entity_id"; @SerializedName(SERIALIZED_NAME_CATALOG_ENTITY_ID) @@ -67,7 +67,9 @@ public class NewCatalogEntityPropertyDataAttributes { public enum KeyEnum { TEXT("text"), - CATALOG_ENTITY("catalog_entity"); + CATALOG_ENTITY("catalog_entity"), + + SLACK("slack"); private String value; diff --git a/src/main/java/com/rootly/client/model/NewCatalogField.java b/src/main/java/com/rootly/client/model/NewCatalogField.java index 9745045c..e66bc6aa 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogField.java +++ b/src/main/java/com/rootly/client/model/NewCatalogField.java @@ -49,7 +49,7 @@ /** * A catalog can have a maximum of 50 fields. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCatalogFieldData.java b/src/main/java/com/rootly/client/model/NewCatalogFieldData.java index ee393b6b..62a8767d 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogFieldData.java +++ b/src/main/java/com/rootly/client/model/NewCatalogFieldData.java @@ -49,14 +49,14 @@ /** * NewCatalogFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogFieldData { /** * Gets or Sets type */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { - CATALOG_FIELDS("catalog_fields"); + CATALOG_PROPERTIES("catalog_properties"); private String value; diff --git a/src/main/java/com/rootly/client/model/NewCatalogFieldDataAttributes.java b/src/main/java/com/rootly/client/model/NewCatalogFieldDataAttributes.java index 8140b295..8041f2e6 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCatalogFieldDataAttributes.java @@ -49,8 +49,14 @@ /** * NewCatalogFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogFieldDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -63,7 +69,23 @@ public class NewCatalogFieldDataAttributes { public enum KindEnum { TEXT("text"), - REFERENCE("reference"); + REFERENCE("reference"), + + BOOLEAN("boolean"), + + SERVICE("service"), + + FUNCTIONALITY("functionality"), + + ENVIRONMENT("environment"), + + GROUP("group"), + + CAUSE("cause"), + + INCIDENT_TYPE("incident_type"), + + USER("user"); private String value; @@ -128,9 +150,109 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_REQUIRED = "required"; + @SerializedName(SERIALIZED_NAME_REQUIRED) + @jakarta.annotation.Nullable + private Boolean required; + + /** + * The type of catalog the field belongs to. + */ + @JsonAdapter(CatalogTypeEnum.Adapter.class) + public enum CatalogTypeEnum { + CATALOG("catalog"), + + CAUSE("cause"), + + ENVIRONMENT("environment"), + + FUNCTIONALITY("functionality"), + + INCIDENT_TYPE("incident_type"), + + SERVICE("service"), + + TEAM("team"); + + private String value; + + CatalogTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogTypeEnum fromValue(String value) { + for (CatalogTypeEnum b : CatalogTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; + @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) + @jakarta.annotation.Nullable + private CatalogTypeEnum catalogType; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public NewCatalogFieldDataAttributes() { } + @Deprecated + public NewCatalogFieldDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewCatalogFieldDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -226,6 +348,63 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public NewCatalogFieldDataAttributes required(@jakarta.annotation.Nullable Boolean required) { + this.required = required; + return this; + } + + /** + * Whether the field is required. + * @return required + */ + @jakarta.annotation.Nullable + public Boolean getRequired() { + return required; + } + + public void setRequired(@jakarta.annotation.Nullable Boolean required) { + this.required = required; + } + + + public NewCatalogFieldDataAttributes catalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { + this.catalogType = catalogType; + return this; + } + + /** + * The type of catalog the field belongs to. + * @return catalogType + */ + @jakarta.annotation.Nullable + public CatalogTypeEnum getCatalogType() { + return catalogType; + } + + public void setCatalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { + this.catalogType = catalogType; + } + + + public NewCatalogFieldDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog field. Must be unique within the scope. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + @Override public boolean equals(Object o) { @@ -236,11 +415,15 @@ public boolean equals(Object o) { return false; } NewCatalogFieldDataAttributes newCatalogFieldDataAttributes = (NewCatalogFieldDataAttributes) o; - return Objects.equals(this.name, newCatalogFieldDataAttributes.name) && + return Objects.equals(this.slug, newCatalogFieldDataAttributes.slug) && + Objects.equals(this.name, newCatalogFieldDataAttributes.name) && Objects.equals(this.kind, newCatalogFieldDataAttributes.kind) && Objects.equals(this.kindCatalogId, newCatalogFieldDataAttributes.kindCatalogId) && Objects.equals(this.multiple, newCatalogFieldDataAttributes.multiple) && - Objects.equals(this.position, newCatalogFieldDataAttributes.position); + Objects.equals(this.position, newCatalogFieldDataAttributes.position) && + Objects.equals(this.required, newCatalogFieldDataAttributes.required) && + Objects.equals(this.catalogType, newCatalogFieldDataAttributes.catalogType) && + Objects.equals(this.externalId, newCatalogFieldDataAttributes.externalId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -249,7 +432,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, kind, kindCatalogId, multiple, position); + return Objects.hash(slug, name, kind, kindCatalogId, multiple, position, required, catalogType, externalId); } private static int hashCodeNullable(JsonNullable a) { @@ -263,11 +446,15 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCatalogFieldDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" kindCatalogId: ").append(toIndentedString(kindCatalogId)).append("\n"); sb.append(" multiple: ").append(toIndentedString(multiple)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" required: ").append(toIndentedString(required)).append("\n"); + sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -290,11 +477,15 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("kind"); openapiFields.add("kind_catalog_id"); openapiFields.add("multiple"); openapiFields.add("position"); + openapiFields.add("required"); + openapiFields.add("catalog_type"); + openapiFields.add("external_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -330,6 +521,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -341,6 +535,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("kind_catalog_id") != null && !jsonObj.get("kind_catalog_id").isJsonNull()) && !jsonObj.get("kind_catalog_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind_catalog_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind_catalog_id").toString())); } + if ((jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) && !jsonObj.get("catalog_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `catalog_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("catalog_type").toString())); + } + // validate the optional field `catalog_type` + if (jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) { + CatalogTypeEnum.validateJsonElement(jsonObj.get("catalog_type")); + } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewCatalogProperty.java b/src/main/java/com/rootly/client/model/NewCatalogProperty.java index b27e7db9..cab010ad 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogProperty.java +++ b/src/main/java/com/rootly/client/model/NewCatalogProperty.java @@ -49,17 +49,17 @@ /** * A catalog can have a maximum of 50 properties. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogProperty { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewCatalogPropertyData data; public NewCatalogProperty() { } - public NewCatalogProperty data(@javax.annotation.Nonnull NewCatalogPropertyData data) { + public NewCatalogProperty data(@jakarta.annotation.Nonnull NewCatalogPropertyData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public NewCatalogProperty data(@javax.annotation.Nonnull NewCatalogPropertyData * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewCatalogPropertyData getData() { return data; } - public void setData(@javax.annotation.Nonnull NewCatalogPropertyData data) { + public void setData(@jakarta.annotation.Nonnull NewCatalogPropertyData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/NewCatalogPropertyData.java b/src/main/java/com/rootly/client/model/NewCatalogPropertyData.java index 8114971a..23f671d6 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogPropertyData.java +++ b/src/main/java/com/rootly/client/model/NewCatalogPropertyData.java @@ -49,7 +49,7 @@ /** * NewCatalogPropertyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogPropertyData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewCatalogPropertyDataAttributes attributes; public NewCatalogPropertyData() { } - public NewCatalogPropertyData type(@javax.annotation.Nonnull TypeEnum type) { + public NewCatalogPropertyData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public NewCatalogPropertyData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public NewCatalogPropertyData attributes(@javax.annotation.Nonnull NewCatalogPropertyDataAttributes attributes) { + public NewCatalogPropertyData attributes(@jakarta.annotation.Nonnull NewCatalogPropertyDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public NewCatalogPropertyData attributes(@javax.annotation.Nonnull NewCatalogPro * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewCatalogPropertyDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull NewCatalogPropertyDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull NewCatalogPropertyDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/NewCatalogPropertyDataAttributes.java b/src/main/java/com/rootly/client/model/NewCatalogPropertyDataAttributes.java index aca9dfbb..6479d129 100644 --- a/src/main/java/com/rootly/client/model/NewCatalogPropertyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCatalogPropertyDataAttributes.java @@ -49,11 +49,17 @@ /** * NewCatalogPropertyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCatalogPropertyDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; /** @@ -67,8 +73,6 @@ public enum KindEnum { BOOLEAN("boolean"), - REFERENCE2("reference"), - SERVICE("service"), FUNCTIONALITY("functionality"), @@ -128,27 +132,27 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_KIND = "kind"; @SerializedName(SERIALIZED_NAME_KIND) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private KindEnum kind; public static final String SERIALIZED_NAME_KIND_CATALOG_ID = "kind_catalog_id"; @SerializedName(SERIALIZED_NAME_KIND_CATALOG_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String kindCatalogId; public static final String SERIALIZED_NAME_MULTIPLE = "multiple"; @SerializedName(SERIALIZED_NAME_MULTIPLE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean multiple; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; public static final String SERIALIZED_NAME_REQUIRED = "required"; @SerializedName(SERIALIZED_NAME_REQUIRED) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean required; /** @@ -215,13 +219,41 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CatalogTypeEnum catalogType; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public NewCatalogPropertyDataAttributes() { } - public NewCatalogPropertyDataAttributes name(@javax.annotation.Nonnull String name) { + @Deprecated + public NewCatalogPropertyDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public NewCatalogPropertyDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -230,17 +262,17 @@ public NewCatalogPropertyDataAttributes name(@javax.annotation.Nonnull String na * Get name * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public NewCatalogPropertyDataAttributes kind(@javax.annotation.Nonnull KindEnum kind) { + public NewCatalogPropertyDataAttributes kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; } @@ -249,17 +281,17 @@ public NewCatalogPropertyDataAttributes kind(@javax.annotation.Nonnull KindEnum * Get kind * @return kind */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public KindEnum getKind() { return kind; } - public void setKind(@javax.annotation.Nonnull KindEnum kind) { + public void setKind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; } - public NewCatalogPropertyDataAttributes kindCatalogId(@javax.annotation.Nullable String kindCatalogId) { + public NewCatalogPropertyDataAttributes kindCatalogId(@jakarta.annotation.Nullable String kindCatalogId) { this.kindCatalogId = kindCatalogId; return this; } @@ -268,17 +300,17 @@ public NewCatalogPropertyDataAttributes kindCatalogId(@javax.annotation.Nullable * Restricts values to items of specified catalog. * @return kindCatalogId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getKindCatalogId() { return kindCatalogId; } - public void setKindCatalogId(@javax.annotation.Nullable String kindCatalogId) { + public void setKindCatalogId(@jakarta.annotation.Nullable String kindCatalogId) { this.kindCatalogId = kindCatalogId; } - public NewCatalogPropertyDataAttributes multiple(@javax.annotation.Nullable Boolean multiple) { + public NewCatalogPropertyDataAttributes multiple(@jakarta.annotation.Nullable Boolean multiple) { this.multiple = multiple; return this; } @@ -287,17 +319,17 @@ public NewCatalogPropertyDataAttributes multiple(@javax.annotation.Nullable Bool * Whether the attribute accepts multiple values. * @return multiple */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getMultiple() { return multiple; } - public void setMultiple(@javax.annotation.Nullable Boolean multiple) { + public void setMultiple(@jakarta.annotation.Nullable Boolean multiple) { this.multiple = multiple; } - public NewCatalogPropertyDataAttributes position(@javax.annotation.Nullable Integer position) { + public NewCatalogPropertyDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -306,17 +338,17 @@ public NewCatalogPropertyDataAttributes position(@javax.annotation.Nullable Inte * Default position of the item when displayed in a list. * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public NewCatalogPropertyDataAttributes required(@javax.annotation.Nullable Boolean required) { + public NewCatalogPropertyDataAttributes required(@jakarta.annotation.Nullable Boolean required) { this.required = required; return this; } @@ -325,17 +357,17 @@ public NewCatalogPropertyDataAttributes required(@javax.annotation.Nullable Bool * Whether the property is required. * @return required */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getRequired() { return required; } - public void setRequired(@javax.annotation.Nullable Boolean required) { + public void setRequired(@jakarta.annotation.Nullable Boolean required) { this.required = required; } - public NewCatalogPropertyDataAttributes catalogType(@javax.annotation.Nullable CatalogTypeEnum catalogType) { + public NewCatalogPropertyDataAttributes catalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { this.catalogType = catalogType; return this; } @@ -344,16 +376,35 @@ public NewCatalogPropertyDataAttributes catalogType(@javax.annotation.Nullable C * The type of catalog the property belongs to. * @return catalogType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CatalogTypeEnum getCatalogType() { return catalogType; } - public void setCatalogType(@javax.annotation.Nullable CatalogTypeEnum catalogType) { + public void setCatalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { this.catalogType = catalogType; } + public NewCatalogPropertyDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog property. Must be unique within the scope. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + @Override public boolean equals(Object o) { @@ -364,13 +415,15 @@ public boolean equals(Object o) { return false; } NewCatalogPropertyDataAttributes newCatalogPropertyDataAttributes = (NewCatalogPropertyDataAttributes) o; - return Objects.equals(this.name, newCatalogPropertyDataAttributes.name) && + return Objects.equals(this.slug, newCatalogPropertyDataAttributes.slug) && + Objects.equals(this.name, newCatalogPropertyDataAttributes.name) && Objects.equals(this.kind, newCatalogPropertyDataAttributes.kind) && Objects.equals(this.kindCatalogId, newCatalogPropertyDataAttributes.kindCatalogId) && Objects.equals(this.multiple, newCatalogPropertyDataAttributes.multiple) && Objects.equals(this.position, newCatalogPropertyDataAttributes.position) && Objects.equals(this.required, newCatalogPropertyDataAttributes.required) && - Objects.equals(this.catalogType, newCatalogPropertyDataAttributes.catalogType); + Objects.equals(this.catalogType, newCatalogPropertyDataAttributes.catalogType) && + Objects.equals(this.externalId, newCatalogPropertyDataAttributes.externalId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -379,7 +432,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, kind, kindCatalogId, multiple, position, required, catalogType); + return Objects.hash(slug, name, kind, kindCatalogId, multiple, position, required, catalogType, externalId); } private static int hashCodeNullable(JsonNullable a) { @@ -393,6 +446,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCatalogPropertyDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" kindCatalogId: ").append(toIndentedString(kindCatalogId)).append("\n"); @@ -400,6 +454,7 @@ public String toString() { sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" required: ").append(toIndentedString(required)).append("\n"); sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -422,6 +477,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("kind"); openapiFields.add("kind_catalog_id"); @@ -429,6 +485,7 @@ private String toIndentedString(Object o) { openapiFields.add("position"); openapiFields.add("required"); openapiFields.add("catalog_type"); + openapiFields.add("external_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -464,6 +521,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -482,6 +542,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) { CatalogTypeEnum.validateJsonElement(jsonObj.get("catalog_type")); } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewCause.java b/src/main/java/com/rootly/client/model/NewCause.java index 3177ffe1..f6dc5c65 100644 --- a/src/main/java/com/rootly/client/model/NewCause.java +++ b/src/main/java/com/rootly/client/model/NewCause.java @@ -49,7 +49,7 @@ /** * NewCause */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCause { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCauseData.java b/src/main/java/com/rootly/client/model/NewCauseData.java index 8c0b5a1e..0a078166 100644 --- a/src/main/java/com/rootly/client/model/NewCauseData.java +++ b/src/main/java/com/rootly/client/model/NewCauseData.java @@ -49,7 +49,7 @@ /** * NewCauseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCauseData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCauseDataAttributes.java b/src/main/java/com/rootly/client/model/NewCauseDataAttributes.java index 3b34523e..b2d74433 100644 --- a/src/main/java/com/rootly/client/model/NewCauseDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCauseDataAttributes.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,8 +52,14 @@ /** * NewCauseDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCauseDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -61,14 +70,47 @@ public class NewCauseDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public NewCauseDataAttributes() { } + @Deprecated + public NewCauseDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewCauseDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -107,6 +149,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public NewCauseDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the cause + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public NewCauseDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; @@ -126,6 +187,33 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public NewCauseDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public NewCauseDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this cause. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -136,9 +224,12 @@ public boolean equals(Object o) { return false; } NewCauseDataAttributes newCauseDataAttributes = (NewCauseDataAttributes) o; - return Objects.equals(this.name, newCauseDataAttributes.name) && + return Objects.equals(this.slug, newCauseDataAttributes.slug) && + Objects.equals(this.name, newCauseDataAttributes.name) && Objects.equals(this.description, newCauseDataAttributes.description) && - Objects.equals(this.position, newCauseDataAttributes.position); + Objects.equals(this.publicDescription, newCauseDataAttributes.publicDescription) && + Objects.equals(this.position, newCauseDataAttributes.position) && + Objects.equals(this.properties, newCauseDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -147,7 +238,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(slug, name, description, publicDescription, position, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -161,9 +252,12 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCauseDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -186,9 +280,12 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("position"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -223,12 +320,32 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewCauseDataAttributesPropertiesInner.java b/src/main/java/com/rootly/client/model/NewCauseDataAttributesPropertiesInner.java index 19914bec..0ab054c5 100644 --- a/src/main/java/com/rootly/client/model/NewCauseDataAttributesPropertiesInner.java +++ b/src/main/java/com/rootly/client/model/NewCauseDataAttributesPropertiesInner.java @@ -48,22 +48,22 @@ /** * Set a value for a catalog property */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCauseDataAttributesPropertiesInner { public static final String SERIALIZED_NAME_CATALOG_PROPERTY_ID = "catalog_property_id"; @SerializedName(SERIALIZED_NAME_CATALOG_PROPERTY_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String catalogPropertyId; public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String value; public NewCauseDataAttributesPropertiesInner() { } - public NewCauseDataAttributesPropertiesInner catalogPropertyId(@javax.annotation.Nonnull String catalogPropertyId) { + public NewCauseDataAttributesPropertiesInner catalogPropertyId(@jakarta.annotation.Nonnull String catalogPropertyId) { this.catalogPropertyId = catalogPropertyId; return this; } @@ -72,17 +72,17 @@ public NewCauseDataAttributesPropertiesInner catalogPropertyId(@javax.annotation * Catalog property ID * @return catalogPropertyId */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCatalogPropertyId() { return catalogPropertyId; } - public void setCatalogPropertyId(@javax.annotation.Nonnull String catalogPropertyId) { + public void setCatalogPropertyId(@jakarta.annotation.Nonnull String catalogPropertyId) { this.catalogPropertyId = catalogPropertyId; } - public NewCauseDataAttributesPropertiesInner value(@javax.annotation.Nonnull String value) { + public NewCauseDataAttributesPropertiesInner value(@jakarta.annotation.Nonnull String value) { this.value = value; return this; } @@ -91,12 +91,12 @@ public NewCauseDataAttributesPropertiesInner value(@javax.annotation.Nonnull Str * The property value * @return value */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getValue() { return value; } - public void setValue(@javax.annotation.Nonnull String value) { + public void setValue(@jakarta.annotation.Nonnull String value) { this.value = value; } diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsGroup.java b/src/main/java/com/rootly/client/model/NewCommunicationsGroup.java index cfefb3db..08b528ff 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsGroup.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsGroup.java @@ -49,7 +49,7 @@ /** * NewCommunicationsGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsGroupData.java b/src/main/java/com/rootly/client/model/NewCommunicationsGroupData.java index 07154155..a2b7c464 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsGroupData.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsGroupData.java @@ -49,7 +49,7 @@ /** * NewCommunicationsGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributes.java b/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributes.java index ec00a1ae..caac351d 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributes.java @@ -53,7 +53,7 @@ /** * NewCommunicationsGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsGroupDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java b/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java index 95cff61a..1a018fc4 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java @@ -48,7 +48,7 @@ /** * NewCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java b/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java index 02798aea..32394f26 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java @@ -51,7 +51,7 @@ /** * NewCommunicationsGroupDataAttributesCommunicationGroupConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsGroupDataAttributesCommunicationGroupConditionsInner { /** * Property type diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsStage.java b/src/main/java/com/rootly/client/model/NewCommunicationsStage.java index 0cfe6868..ae298e31 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsStage.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsStage.java @@ -49,7 +49,7 @@ /** * NewCommunicationsStage */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsStage { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsStageData.java b/src/main/java/com/rootly/client/model/NewCommunicationsStageData.java index aadcf6e3..b5d26032 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsStageData.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsStageData.java @@ -49,7 +49,7 @@ /** * NewCommunicationsStageData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsStageData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsStageDataAttributes.java b/src/main/java/com/rootly/client/model/NewCommunicationsStageDataAttributes.java index 66ca9e90..366c354c 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsStageDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsStageDataAttributes.java @@ -49,8 +49,14 @@ /** * NewCommunicationsStageDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsStageDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -69,6 +75,29 @@ public class NewCommunicationsStageDataAttributes { public NewCommunicationsStageDataAttributes() { } + @Deprecated + public NewCommunicationsStageDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewCommunicationsStageDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -136,7 +165,8 @@ public boolean equals(Object o) { return false; } NewCommunicationsStageDataAttributes newCommunicationsStageDataAttributes = (NewCommunicationsStageDataAttributes) o; - return Objects.equals(this.name, newCommunicationsStageDataAttributes.name) && + return Objects.equals(this.slug, newCommunicationsStageDataAttributes.slug) && + Objects.equals(this.name, newCommunicationsStageDataAttributes.name) && Objects.equals(this.description, newCommunicationsStageDataAttributes.description) && Objects.equals(this.position, newCommunicationsStageDataAttributes.position); } @@ -147,7 +177,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(slug, name, description, position); } private static int hashCodeNullable(JsonNullable a) { @@ -161,6 +191,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCommunicationsStageDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -186,6 +217,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); @@ -223,6 +255,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsTemplate.java b/src/main/java/com/rootly/client/model/NewCommunicationsTemplate.java index f0a3c116..8f68feee 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsTemplate.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsTemplate.java @@ -49,7 +49,7 @@ /** * NewCommunicationsTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsTemplateData.java b/src/main/java/com/rootly/client/model/NewCommunicationsTemplateData.java index cf7952e8..af10ddc3 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsTemplateData.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsTemplateData.java @@ -49,7 +49,7 @@ /** * NewCommunicationsTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsTemplateData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributes.java index fd1ab907..2c75abbd 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributes.java @@ -52,7 +52,7 @@ /** * NewCommunicationsTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsTemplateDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java b/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java index 483918bb..c1d351bf 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java @@ -49,7 +49,7 @@ /** * NewCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner { public static final String SERIALIZED_NAME_COMMUNICATION_STAGE_ID = "communication_stage_id"; @SerializedName(SERIALIZED_NAME_COMMUNICATION_STAGE_ID) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsType.java b/src/main/java/com/rootly/client/model/NewCommunicationsType.java index 7147e1fc..136b0148 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsType.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsType.java @@ -49,7 +49,7 @@ /** * NewCommunicationsType */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsType { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsTypeData.java b/src/main/java/com/rootly/client/model/NewCommunicationsTypeData.java index 0e2ed1da..07ceb9a7 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsTypeData.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsTypeData.java @@ -49,7 +49,7 @@ /** * NewCommunicationsTypeData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsTypeData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCommunicationsTypeDataAttributes.java b/src/main/java/com/rootly/client/model/NewCommunicationsTypeDataAttributes.java index 5ee65de6..865fc725 100644 --- a/src/main/java/com/rootly/client/model/NewCommunicationsTypeDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCommunicationsTypeDataAttributes.java @@ -49,8 +49,14 @@ /** * NewCommunicationsTypeDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCommunicationsTypeDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -74,6 +80,29 @@ public class NewCommunicationsTypeDataAttributes { public NewCommunicationsTypeDataAttributes() { } + @Deprecated + public NewCommunicationsTypeDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewCommunicationsTypeDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -160,7 +189,8 @@ public boolean equals(Object o) { return false; } NewCommunicationsTypeDataAttributes newCommunicationsTypeDataAttributes = (NewCommunicationsTypeDataAttributes) o; - return Objects.equals(this.name, newCommunicationsTypeDataAttributes.name) && + return Objects.equals(this.slug, newCommunicationsTypeDataAttributes.slug) && + Objects.equals(this.name, newCommunicationsTypeDataAttributes.name) && Objects.equals(this.description, newCommunicationsTypeDataAttributes.description) && Objects.equals(this.color, newCommunicationsTypeDataAttributes.color) && Objects.equals(this.position, newCommunicationsTypeDataAttributes.position); @@ -172,7 +202,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, color, position); + return Objects.hash(slug, name, description, color, position); } private static int hashCodeNullable(JsonNullable a) { @@ -186,6 +216,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCommunicationsTypeDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); @@ -212,6 +243,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("color"); @@ -251,6 +283,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewCustomField.java b/src/main/java/com/rootly/client/model/NewCustomField.java index fdfc17ef..852fc967 100644 --- a/src/main/java/com/rootly/client/model/NewCustomField.java +++ b/src/main/java/com/rootly/client/model/NewCustomField.java @@ -49,7 +49,7 @@ /** * NewCustomField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCustomFieldData.java b/src/main/java/com/rootly/client/model/NewCustomFieldData.java index e1bdc9ae..24a729b7 100644 --- a/src/main/java/com/rootly/client/model/NewCustomFieldData.java +++ b/src/main/java/com/rootly/client/model/NewCustomFieldData.java @@ -49,7 +49,7 @@ /** * NewCustomFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomFieldData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCustomFieldDataAttributes.java b/src/main/java/com/rootly/client/model/NewCustomFieldDataAttributes.java index 9ebe337e..1253bf27 100644 --- a/src/main/java/com/rootly/client/model/NewCustomFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCustomFieldDataAttributes.java @@ -51,7 +51,7 @@ /** * NewCustomFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomFieldDataAttributes { public static final String SERIALIZED_NAME_LABEL = "label"; @SerializedName(SERIALIZED_NAME_LABEL) diff --git a/src/main/java/com/rootly/client/model/NewCustomFieldOption.java b/src/main/java/com/rootly/client/model/NewCustomFieldOption.java index eca23a6b..28808ac7 100644 --- a/src/main/java/com/rootly/client/model/NewCustomFieldOption.java +++ b/src/main/java/com/rootly/client/model/NewCustomFieldOption.java @@ -49,7 +49,7 @@ /** * NewCustomFieldOption */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomFieldOption { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCustomFieldOptionData.java b/src/main/java/com/rootly/client/model/NewCustomFieldOptionData.java index c6e0993b..b4c07564 100644 --- a/src/main/java/com/rootly/client/model/NewCustomFieldOptionData.java +++ b/src/main/java/com/rootly/client/model/NewCustomFieldOptionData.java @@ -49,7 +49,7 @@ /** * NewCustomFieldOptionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomFieldOptionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCustomFieldOptionDataAttributes.java b/src/main/java/com/rootly/client/model/NewCustomFieldOptionDataAttributes.java index 795a49a6..97fbc439 100644 --- a/src/main/java/com/rootly/client/model/NewCustomFieldOptionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCustomFieldOptionDataAttributes.java @@ -48,7 +48,7 @@ /** * NewCustomFieldOptionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomFieldOptionDataAttributes { public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) diff --git a/src/main/java/com/rootly/client/model/NewCustomForm.java b/src/main/java/com/rootly/client/model/NewCustomForm.java index 14606e77..889d5e04 100644 --- a/src/main/java/com/rootly/client/model/NewCustomForm.java +++ b/src/main/java/com/rootly/client/model/NewCustomForm.java @@ -49,7 +49,7 @@ /** * NewCustomForm */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomForm { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewCustomFormData.java b/src/main/java/com/rootly/client/model/NewCustomFormData.java index 1215a5ac..816906b0 100644 --- a/src/main/java/com/rootly/client/model/NewCustomFormData.java +++ b/src/main/java/com/rootly/client/model/NewCustomFormData.java @@ -49,7 +49,7 @@ /** * NewCustomFormData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomFormData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewCustomFormDataAttributes.java b/src/main/java/com/rootly/client/model/NewCustomFormDataAttributes.java index 968f24f6..dd01d471 100644 --- a/src/main/java/com/rootly/client/model/NewCustomFormDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewCustomFormDataAttributes.java @@ -49,18 +49,19 @@ /** * NewCustomFormDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewCustomFormDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -79,41 +80,45 @@ public class NewCustomFormDataAttributes { public NewCustomFormDataAttributes() { } - public NewCustomFormDataAttributes name(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public NewCustomFormDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * The name of the custom form. - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ - @jakarta.annotation.Nonnull - public String getName() { - return name; + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public NewCustomFormDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public NewCustomFormDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; return this; } /** - * The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. - * @return slug + * The name of the custom form. + * @return name */ - @jakarta.annotation.Nullable - public String getSlug() { - return slug; + @jakarta.annotation.Nonnull + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; } @@ -184,8 +189,8 @@ public boolean equals(Object o) { return false; } NewCustomFormDataAttributes newCustomFormDataAttributes = (NewCustomFormDataAttributes) o; - return Objects.equals(this.name, newCustomFormDataAttributes.name) && - Objects.equals(this.slug, newCustomFormDataAttributes.slug) && + return Objects.equals(this.slug, newCustomFormDataAttributes.slug) && + Objects.equals(this.name, newCustomFormDataAttributes.name) && Objects.equals(this.description, newCustomFormDataAttributes.description) && Objects.equals(this.enabled, newCustomFormDataAttributes.enabled) && Objects.equals(this.command, newCustomFormDataAttributes.command); @@ -197,7 +202,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, enabled, command); + return Objects.hash(slug, name, description, enabled, command); } private static int hashCodeNullable(JsonNullable a) { @@ -211,8 +216,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewCustomFormDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" command: ").append(toIndentedString(command)).append("\n"); @@ -238,8 +243,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("enabled"); openapiFields.add("command"); @@ -278,12 +283,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewDashboard.java b/src/main/java/com/rootly/client/model/NewDashboard.java index c9534c9e..edc7e685 100644 --- a/src/main/java/com/rootly/client/model/NewDashboard.java +++ b/src/main/java/com/rootly/client/model/NewDashboard.java @@ -49,7 +49,7 @@ /** * NewDashboard */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboard { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewDashboardData.java b/src/main/java/com/rootly/client/model/NewDashboardData.java index c5ff183b..fbab7afb 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardData.java +++ b/src/main/java/com/rootly/client/model/NewDashboardData.java @@ -49,7 +49,7 @@ /** * NewDashboardData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewDashboardDataAttributes.java b/src/main/java/com/rootly/client/model/NewDashboardDataAttributes.java index b7f3680a..e778082b 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewDashboardDataAttributes.java @@ -49,7 +49,7 @@ /** * NewDashboardDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanel.java b/src/main/java/com/rootly/client/model/NewDashboardPanel.java index 5c4eaf47..4bbfa3d9 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanel.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanel.java @@ -49,7 +49,7 @@ /** * NewDashboardPanel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanel { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelData.java b/src/main/java/com/rootly/client/model/NewDashboardPanelData.java index 81c39fec..d701840a 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelData.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelData.java @@ -49,7 +49,7 @@ /** * NewDashboardPanelData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributes.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributes.java index d1a5be14..706a1a8b 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributes.java @@ -51,7 +51,7 @@ /** * NewDashboardPanelDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParams.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParams.java index 6ab62c14..90c3c16c 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParams.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParams.java @@ -53,7 +53,7 @@ /** * NewDashboardPanelDataAttributesParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParams { /** * Gets or Sets display diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatalabels.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatalabels.java index 2cb6a66d..1b98780e 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatalabels.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatalabels.java @@ -48,7 +48,7 @@ /** * NewDashboardPanelDataAttributesParamsDatalabels */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsDatalabels { public static final String SERIALIZED_NAME_ENABLED = "enabled"; @SerializedName(SERIALIZED_NAME_ENABLED) diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInner.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInner.java index f935449c..7b350b3f 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInner.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInner.java @@ -54,7 +54,7 @@ /** * NewDashboardPanelDataAttributesParamsDatasetsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsDatasetsInner { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerAggregate.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerAggregate.java index 81fc5ff2..7c2e4833 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerAggregate.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerAggregate.java @@ -49,7 +49,7 @@ /** * NewDashboardPanelDataAttributesParamsDatasetsInnerAggregate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsDatasetsInnerAggregate { /** * Gets or Sets operation diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInner.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInner.java index 5afe58c0..429a4ff3 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInner.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInner.java @@ -51,7 +51,7 @@ /** * NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInner { /** * Gets or Sets operation diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInnerRulesInner.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInnerRulesInner.java index 99110a62..e9f02867 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInnerRulesInner.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInnerRulesInner.java @@ -48,7 +48,7 @@ /** * NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInnerRulesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsDatasetsInnerFilterInnerRulesInner { /** * Gets or Sets operation diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.java index 30c76061..567d5558 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.java @@ -58,7 +58,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy.class.getName()); @@ -148,11 +148,11 @@ public NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy read(JsonReader public static final Map> schemas = new HashMap>(); public NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy() { - super("oneOf", Boolean.TRUE); + super("oneOf", Boolean.FALSE); } public NewDashboardPanelDataAttributesParamsDatasetsInnerGroupBy(Object o) { - super("oneOf", Boolean.TRUE); + super("oneOf", Boolean.FALSE); setActualInstance(o); } @@ -175,11 +175,6 @@ public Map> getSchemas() { */ @Override public void setActualInstance(Object instance) { - if (instance == null) { - super.setActualInstance(instance); - return; - } - if (instance instanceof String) { super.setActualInstance(instance); return; diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.java index 7409e79f..f373bd36 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf.java @@ -48,7 +48,7 @@ /** * NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf { /** * Gets or Sets key @@ -57,7 +57,9 @@ public class NewDashboardPanelDataAttributesParamsDatasetsInnerGroupByOneOf { public enum KeyEnum { CUSTOM_FIELD("custom_field"), - INCIDENT_ROLE("incident_role"); + INCIDENT_ROLE("incident_role"), + + ALERT_FIELD("alert_field"); private String value; diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsLegend.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsLegend.java index 78a43bc7..2dad5591 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsLegend.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesParamsLegend.java @@ -48,7 +48,7 @@ /** * NewDashboardPanelDataAttributesParamsLegend */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesParamsLegend { /** * Gets or Sets groups diff --git a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesPosition.java b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesPosition.java index 594ed244..9cf0bb51 100644 --- a/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesPosition.java +++ b/src/main/java/com/rootly/client/model/NewDashboardPanelDataAttributesPosition.java @@ -49,7 +49,7 @@ /** * NewDashboardPanelDataAttributesPosition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewDashboardPanelDataAttributesPosition { public static final String SERIALIZED_NAME_X = "x"; @SerializedName(SERIALIZED_NAME_X) diff --git a/src/main/java/com/rootly/client/model/NewEdgeConnector.java b/src/main/java/com/rootly/client/model/NewEdgeConnector.java index 7e27d913..e4ad59be 100644 --- a/src/main/java/com/rootly/client/model/NewEdgeConnector.java +++ b/src/main/java/com/rootly/client/model/NewEdgeConnector.java @@ -49,7 +49,7 @@ /** * NewEdgeConnector */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEdgeConnector { public static final String SERIALIZED_NAME_EDGE_CONNECTOR = "edge_connector"; @SerializedName(SERIALIZED_NAME_EDGE_CONNECTOR) diff --git a/src/main/java/com/rootly/client/model/NewEdgeConnectorAction.java b/src/main/java/com/rootly/client/model/NewEdgeConnectorAction.java index 824f3f6a..7f50f299 100644 --- a/src/main/java/com/rootly/client/model/NewEdgeConnectorAction.java +++ b/src/main/java/com/rootly/client/model/NewEdgeConnectorAction.java @@ -49,7 +49,7 @@ /** * NewEdgeConnectorAction */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEdgeConnectorAction { public static final String SERIALIZED_NAME_ACTION = "action"; @SerializedName(SERIALIZED_NAME_ACTION) diff --git a/src/main/java/com/rootly/client/model/NewEdgeConnectorActionAction.java b/src/main/java/com/rootly/client/model/NewEdgeConnectorActionAction.java index ed39e606..4fd57b18 100644 --- a/src/main/java/com/rootly/client/model/NewEdgeConnectorActionAction.java +++ b/src/main/java/com/rootly/client/model/NewEdgeConnectorActionAction.java @@ -49,7 +49,7 @@ /** * NewEdgeConnectorActionAction */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEdgeConnectorActionAction { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewEdgeConnectorActionActionMetadata.java b/src/main/java/com/rootly/client/model/NewEdgeConnectorActionActionMetadata.java index 5789d431..02fd9a97 100644 --- a/src/main/java/com/rootly/client/model/NewEdgeConnectorActionActionMetadata.java +++ b/src/main/java/com/rootly/client/model/NewEdgeConnectorActionActionMetadata.java @@ -52,7 +52,7 @@ /** * NewEdgeConnectorActionActionMetadata */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEdgeConnectorActionActionMetadata { public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) diff --git a/src/main/java/com/rootly/client/model/NewEdgeConnectorEdgeConnector.java b/src/main/java/com/rootly/client/model/NewEdgeConnectorEdgeConnector.java index aedf0c48..97421787 100644 --- a/src/main/java/com/rootly/client/model/NewEdgeConnectorEdgeConnector.java +++ b/src/main/java/com/rootly/client/model/NewEdgeConnectorEdgeConnector.java @@ -51,7 +51,7 @@ /** * NewEdgeConnectorEdgeConnector */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEdgeConnectorEdgeConnector { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewEnvironment.java b/src/main/java/com/rootly/client/model/NewEnvironment.java index 938c81cc..7dabf285 100644 --- a/src/main/java/com/rootly/client/model/NewEnvironment.java +++ b/src/main/java/com/rootly/client/model/NewEnvironment.java @@ -49,7 +49,7 @@ /** * NewEnvironment */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEnvironment { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewEnvironmentData.java b/src/main/java/com/rootly/client/model/NewEnvironmentData.java index c6d961a3..9cce0ede 100644 --- a/src/main/java/com/rootly/client/model/NewEnvironmentData.java +++ b/src/main/java/com/rootly/client/model/NewEnvironmentData.java @@ -49,7 +49,7 @@ /** * NewEnvironmentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEnvironmentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributes.java b/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributes.java index 9a0b52d6..c78be570 100644 --- a/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,8 +54,14 @@ /** * NewEnvironmentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEnvironmentDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -65,6 +72,11 @@ public class NewEnvironmentDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_COLOR = "color"; @SerializedName(SERIALIZED_NAME_COLOR) @jakarta.annotation.Nullable @@ -75,6 +87,11 @@ public class NewEnvironmentDataAttributes { @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) @jakarta.annotation.Nullable @@ -90,9 +107,37 @@ public class NewEnvironmentDataAttributes { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public NewEnvironmentDataAttributes() { } + @Deprecated + public NewEnvironmentDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewEnvironmentDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -131,6 +176,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public NewEnvironmentDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the environment + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public NewEnvironmentDataAttributes color(@jakarta.annotation.Nullable String color) { this.color = color; return this; @@ -169,6 +233,25 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public NewEnvironmentDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * The external id associated to this environment + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + public NewEnvironmentDataAttributes notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { this.notifyEmails = notifyEmails; return this; @@ -250,6 +333,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public NewEnvironmentDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this environment. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -260,13 +370,17 @@ public boolean equals(Object o) { return false; } NewEnvironmentDataAttributes newEnvironmentDataAttributes = (NewEnvironmentDataAttributes) o; - return Objects.equals(this.name, newEnvironmentDataAttributes.name) && + return Objects.equals(this.slug, newEnvironmentDataAttributes.slug) && + Objects.equals(this.name, newEnvironmentDataAttributes.name) && Objects.equals(this.description, newEnvironmentDataAttributes.description) && + Objects.equals(this.publicDescription, newEnvironmentDataAttributes.publicDescription) && Objects.equals(this.color, newEnvironmentDataAttributes.color) && Objects.equals(this.position, newEnvironmentDataAttributes.position) && + Objects.equals(this.externalId, newEnvironmentDataAttributes.externalId) && Objects.equals(this.notifyEmails, newEnvironmentDataAttributes.notifyEmails) && Objects.equals(this.slackChannels, newEnvironmentDataAttributes.slackChannels) && - Objects.equals(this.slackAliases, newEnvironmentDataAttributes.slackAliases); + Objects.equals(this.slackAliases, newEnvironmentDataAttributes.slackAliases) && + Objects.equals(this.properties, newEnvironmentDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -275,7 +389,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, color, position, notifyEmails, slackChannels, slackAliases); + return Objects.hash(slug, name, description, publicDescription, color, position, externalId, notifyEmails, slackChannels, slackAliases, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -289,13 +403,17 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewEnvironmentDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -318,13 +436,17 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("color"); openapiFields.add("position"); + openapiFields.add("external_id"); openapiFields.add("notify_emails"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -359,15 +481,24 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); @@ -400,6 +531,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackAliasesInner.java b/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackAliasesInner.java index 919aa206..db7710aa 100644 --- a/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackAliasesInner.java +++ b/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackAliasesInner.java @@ -48,7 +48,7 @@ /** * NewEnvironmentDataAttributesSlackAliasesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEnvironmentDataAttributesSlackAliasesInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackChannelsInner.java b/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackChannelsInner.java index fce41288..ed835235 100644 --- a/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackChannelsInner.java +++ b/src/main/java/com/rootly/client/model/NewEnvironmentDataAttributesSlackChannelsInner.java @@ -48,7 +48,7 @@ /** * NewEnvironmentDataAttributesSlackChannelsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEnvironmentDataAttributesSlackChannelsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicy.java b/src/main/java/com/rootly/client/model/NewEscalationPolicy.java index dbaaed30..591814b8 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicy.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicy.java @@ -49,7 +49,7 @@ /** * NewEscalationPolicy */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicy { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyData.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyData.java index 79678762..f727a01e 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyData.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyData.java @@ -49,7 +49,7 @@ /** * NewEscalationPolicyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributes.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributes.java index c7cfbaf2..7dc45afe 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributes.java @@ -52,7 +52,7 @@ /** * NewEscalationPolicyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -80,6 +80,7 @@ public class NewEscalationPolicyDataAttributes { private List serviceIds = new ArrayList<>(); public static final String SERIALIZED_NAME_BUSINESS_HOURS = "business_hours"; + @Deprecated @SerializedName(SERIALIZED_NAME_BUSINESS_HOURS) @jakarta.annotation.Nullable private NewEscalationPolicyDataAttributesBusinessHours businessHours; @@ -198,6 +199,7 @@ public void setServiceIds(@jakarta.annotation.Nullable List serviceIds) } + @Deprecated public NewEscalationPolicyDataAttributes businessHours(@jakarta.annotation.Nullable NewEscalationPolicyDataAttributesBusinessHours businessHours) { this.businessHours = businessHours; return this; @@ -206,12 +208,15 @@ public NewEscalationPolicyDataAttributes businessHours(@jakarta.annotation.Nulla /** * Get businessHours * @return businessHours + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable public NewEscalationPolicyDataAttributesBusinessHours getBusinessHours() { return businessHours; } + @Deprecated public void setBusinessHours(@jakarta.annotation.Nullable NewEscalationPolicyDataAttributesBusinessHours businessHours) { this.businessHours = businessHours; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributesBusinessHours.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributesBusinessHours.java index 3983e92f..0bde068c 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributesBusinessHours.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyDataAttributesBusinessHours.java @@ -50,8 +50,10 @@ /** * NewEscalationPolicyDataAttributesBusinessHours + * @deprecated */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@Deprecated +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyDataAttributesBusinessHours { /** * Time zone for business hours @@ -116,8 +118,6 @@ public enum TimeZoneEnum { MEXICO_CITY("Mexico City"), - AMERICA_MEXICO_CITY2("America/Mexico_City"), - MONTERREY("Monterrey"), AMERICA_MONTERREY("America/Monterrey"), @@ -144,8 +144,6 @@ public enum TimeZoneEnum { QUITO("Quito"), - AMERICA_LIMA2("America/Lima"), - ATLANTIC_TIME_CANADA_("Atlantic Time (Canada)"), AMERICA_HALIFAX("America/Halifax"), @@ -206,14 +204,6 @@ public enum TimeZoneEnum { ATLANTIC_CAPE_VERDE("Atlantic/Cape_Verde"), - CASABLANCA("Casablanca"), - - AFRICA_CASABLANCA("Africa/Casablanca"), - - DUBLIN("Dublin"), - - EUROPE_DUBLIN("Europe/Dublin"), - EDINBURGH("Edinburgh"), EUROPE_LONDON("Europe/London"), @@ -224,8 +214,6 @@ public enum TimeZoneEnum { LONDON("London"), - EUROPE_LONDON2("Europe/London"), - MONROVIA("Monrovia"), AFRICA_MONROVIA("Africa/Monrovia"), @@ -262,10 +250,18 @@ public enum TimeZoneEnum { EUROPE_BUDAPEST("Europe/Budapest"), + CASABLANCA("Casablanca"), + + AFRICA_CASABLANCA("Africa/Casablanca"), + COPENHAGEN("Copenhagen"), EUROPE_COPENHAGEN("Europe/Copenhagen"), + DUBLIN("Dublin"), + + EUROPE_DUBLIN("Europe/Dublin"), + LJUBLJANA("Ljubljana"), EUROPE_LJUBLJANA("Europe/Ljubljana"), @@ -316,8 +312,6 @@ public enum TimeZoneEnum { ZURICH("Zurich"), - EUROPE_ZURICH2("Europe/Zurich"), - ATHENS("Athens"), EUROPE_ATHENS("Europe/Athens"), @@ -400,8 +394,6 @@ public enum TimeZoneEnum { ST_PETERSBURG("St. Petersburg"), - EUROPE_MOSCOW2("Europe/Moscow"), - VOLGOGRAD("Volgograd"), EUROPE_VOLGOGRAD("Europe/Volgograd"), @@ -420,8 +412,6 @@ public enum TimeZoneEnum { MUSCAT("Muscat"), - ASIA_MUSCAT2("Asia/Muscat"), - SAMARA("Samara"), EUROPE_SAMARA("Europe/Samara"), @@ -444,8 +434,6 @@ public enum TimeZoneEnum { ASTANA("Astana"), - ASIA_ALMATY2("Asia/Almaty"), - EKATERINBURG("Ekaterinburg"), ASIA_YEKATERINBURG("Asia/Yekaterinburg"), @@ -456,8 +444,6 @@ public enum TimeZoneEnum { KARACHI("Karachi"), - ASIA_KARACHI2("Asia/Karachi"), - TASHKENT("Tashkent"), ASIA_TASHKENT("Asia/Tashkent"), @@ -468,16 +454,10 @@ public enum TimeZoneEnum { KOLKATA("Kolkata"), - ASIA_KOLKATA2("Asia/Kolkata"), - MUMBAI("Mumbai"), - ASIA_KOLKATA3("Asia/Kolkata"), - NEW_DELHI("New Delhi"), - ASIA_KOLKATA4("Asia/Kolkata"), - SRI_JAYAWARDENEPURA("Sri Jayawardenepura"), ASIA_COLOMBO("Asia/Colombo"), @@ -504,8 +484,6 @@ public enum TimeZoneEnum { HANOI("Hanoi"), - ASIA_BANGKOK2("Asia/Bangkok"), - JAKARTA("Jakarta"), ASIA_JAKARTA("Asia/Jakarta"), @@ -560,16 +538,12 @@ public enum TimeZoneEnum { SAPPORO("Sapporo"), - ASIA_TOKYO2("Asia/Tokyo"), - SEOUL("Seoul"), ASIA_SEOUL("Asia/Seoul"), TOKYO("Tokyo"), - ASIA_TOKYO3("Asia/Tokyo"), - YAKUTSK("Yakutsk"), ASIA_YAKUTSK("Asia/Yakutsk"), @@ -648,8 +622,6 @@ public enum TimeZoneEnum { WELLINGTON("Wellington"), - PACIFIC_AUCKLAND2("Pacific/Auckland"), - CHATHAM_IS_("Chatham Is."), PACIFIC_CHATHAM("Pacific/Chatham"), @@ -664,7 +636,39 @@ public enum TimeZoneEnum { TOKELAU_IS_("Tokelau Is."), - PACIFIC_FAKAOFO("Pacific/Fakaofo"); + PACIFIC_FAKAOFO("Pacific/Fakaofo"), + + AMERICA_ADAK("America/Adak"), + + AMERICA_ATKA("America/Atka"), + + US_ALEUTIAN("US/Aleutian"), + + AMERICA_VANCOUVER("America/Vancouver"), + + CANADA_PACIFIC("Canada/Pacific"), + + AMERICA_MIQUELON("America/Miquelon"), + + AUSTRALIA_EUCLA("Australia/Eucla"), + + AUSTRALIA_LHI("Australia/LHI"), + + AUSTRALIA_LORD_HOWE("Australia/Lord_Howe"), + + CHILE_EASTER_ISLAND("Chile/EasterIsland"), + + PACIFIC_EASTER("Pacific/Easter"), + + PACIFIC_GAMBIER("Pacific/Gambier"), + + PACIFIC_PITCAIRN("Pacific/Pitcairn"), + + PACIFIC_MARQUESAS("Pacific/Marquesas"), + + PACIFIC_KIRITIMATI("Pacific/Kiritimati"), + + PACIFIC_NORFOLK("Pacific/Norfolk"); private String value; diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevel.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevel.java index e30eed42..7adae711 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevel.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevel.java @@ -49,7 +49,7 @@ /** * NewEscalationPolicyLevel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyLevel { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelData.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelData.java index 62c34c39..03368c96 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelData.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelData.java @@ -49,7 +49,7 @@ /** * NewEscalationPolicyLevelData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyLevelData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributes.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributes.java index 697c3f5a..b1e78832 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributes.java @@ -52,7 +52,7 @@ /** * NewEscalationPolicyLevelDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyLevelDataAttributes { public static final String SERIALIZED_NAME_DELAY = "delay"; @SerializedName(SERIALIZED_NAME_DELAY) @@ -123,7 +123,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_STRATEGY = "paging_strategy_configuration_strategy"; @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_STRATEGY) @jakarta.annotation.Nullable - private PagingStrategyConfigurationStrategyEnum pagingStrategyConfigurationStrategy; + private PagingStrategyConfigurationStrategyEnum pagingStrategyConfigurationStrategy = PagingStrategyConfigurationStrategyEnum.DEFAULT; /** * Gets or Sets pagingStrategyConfigurationScheduleStrategy @@ -180,7 +180,131 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_SCHEDULE_STRATEGY = "paging_strategy_configuration_schedule_strategy"; @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_SCHEDULE_STRATEGY) @jakarta.annotation.Nullable - private PagingStrategyConfigurationScheduleStrategyEnum pagingStrategyConfigurationScheduleStrategy; + private PagingStrategyConfigurationScheduleStrategyEnum pagingStrategyConfigurationScheduleStrategy = PagingStrategyConfigurationScheduleStrategyEnum.ON_CALL_ONLY; + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS = "paging_strategy_configuration_repeats"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS) + @jakarta.annotation.Nullable + private Integer pagingStrategyConfigurationRepeats; + + /** + * Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. + */ + @JsonAdapter(PagingStrategyConfigurationRepeatsModeEnum.Adapter.class) + public enum PagingStrategyConfigurationRepeatsModeEnum { + USERS("users"), + + ALL("all"); + + private String value; + + PagingStrategyConfigurationRepeatsModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingStrategyConfigurationRepeatsModeEnum fromValue(String value) { + for (PagingStrategyConfigurationRepeatsModeEnum b : PagingStrategyConfigurationRepeatsModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingStrategyConfigurationRepeatsModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingStrategyConfigurationRepeatsModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingStrategyConfigurationRepeatsModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingStrategyConfigurationRepeatsModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS_MODE = "paging_strategy_configuration_repeats_mode"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS_MODE) + @jakarta.annotation.Nullable + private PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode; + + /** + * Scope of rotation ordering: active rotation members only, or entire schedule. + */ + @JsonAdapter(PagingStrategyConfigurationRotationScopeEnum.Adapter.class) + public enum PagingStrategyConfigurationRotationScopeEnum { + ACTIVE_ROTATION("active_rotation"), + + ENTIRE_SCHEDULE("entire_schedule"); + + private String value; + + PagingStrategyConfigurationRotationScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingStrategyConfigurationRotationScopeEnum fromValue(String value) { + for (PagingStrategyConfigurationRotationScopeEnum b : PagingStrategyConfigurationRotationScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingStrategyConfigurationRotationScopeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingStrategyConfigurationRotationScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingStrategyConfigurationRotationScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingStrategyConfigurationRotationScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_ROTATION_SCOPE = "paging_strategy_configuration_rotation_scope"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_ROTATION_SCOPE) + @jakarta.annotation.Nullable + private PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope; + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_PAGE_USERS_COUNT = "paging_strategy_configuration_page_users_count"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_PAGE_USERS_COUNT) + @jakarta.annotation.Nullable + private Integer pagingStrategyConfigurationPageUsersCount; public static final String SERIALIZED_NAME_ESCALATION_POLICY_PATH_ID = "escalation_policy_path_id"; @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_PATH_ID) @@ -201,7 +325,7 @@ public NewEscalationPolicyLevelDataAttributes delay(@jakarta.annotation.Nullable } /** - * Delay before notification targets will be alerted. + * Delay before notifying targets in the next Escalation Level. * @return delay */ @jakarta.annotation.Nullable @@ -271,6 +395,82 @@ public void setPagingStrategyConfigurationScheduleStrategy(@jakarta.annotation.N } + public NewEscalationPolicyLevelDataAttributes pagingStrategyConfigurationRepeats(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationRepeats) { + this.pagingStrategyConfigurationRepeats = pagingStrategyConfigurationRepeats; + return this; + } + + /** + * Number of times to rotate through the roster (cycle-based round robin). + * @return pagingStrategyConfigurationRepeats + */ + @jakarta.annotation.Nullable + public Integer getPagingStrategyConfigurationRepeats() { + return pagingStrategyConfigurationRepeats; + } + + public void setPagingStrategyConfigurationRepeats(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationRepeats) { + this.pagingStrategyConfigurationRepeats = pagingStrategyConfigurationRepeats; + } + + + public NewEscalationPolicyLevelDataAttributes pagingStrategyConfigurationRepeatsMode(@jakarta.annotation.Nullable PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode) { + this.pagingStrategyConfigurationRepeatsMode = pagingStrategyConfigurationRepeatsMode; + return this; + } + + /** + * Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. + * @return pagingStrategyConfigurationRepeatsMode + */ + @jakarta.annotation.Nullable + public PagingStrategyConfigurationRepeatsModeEnum getPagingStrategyConfigurationRepeatsMode() { + return pagingStrategyConfigurationRepeatsMode; + } + + public void setPagingStrategyConfigurationRepeatsMode(@jakarta.annotation.Nullable PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode) { + this.pagingStrategyConfigurationRepeatsMode = pagingStrategyConfigurationRepeatsMode; + } + + + public NewEscalationPolicyLevelDataAttributes pagingStrategyConfigurationRotationScope(@jakarta.annotation.Nullable PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope) { + this.pagingStrategyConfigurationRotationScope = pagingStrategyConfigurationRotationScope; + return this; + } + + /** + * Scope of rotation ordering: active rotation members only, or entire schedule. + * @return pagingStrategyConfigurationRotationScope + */ + @jakarta.annotation.Nullable + public PagingStrategyConfigurationRotationScopeEnum getPagingStrategyConfigurationRotationScope() { + return pagingStrategyConfigurationRotationScope; + } + + public void setPagingStrategyConfigurationRotationScope(@jakarta.annotation.Nullable PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope) { + this.pagingStrategyConfigurationRotationScope = pagingStrategyConfigurationRotationScope; + } + + + public NewEscalationPolicyLevelDataAttributes pagingStrategyConfigurationPageUsersCount(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationPageUsersCount) { + this.pagingStrategyConfigurationPageUsersCount = pagingStrategyConfigurationPageUsersCount; + return this; + } + + /** + * Number of users to page at a time (cycle-based round robin). + * @return pagingStrategyConfigurationPageUsersCount + */ + @jakarta.annotation.Nullable + public Integer getPagingStrategyConfigurationPageUsersCount() { + return pagingStrategyConfigurationPageUsersCount; + } + + public void setPagingStrategyConfigurationPageUsersCount(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationPageUsersCount) { + this.pagingStrategyConfigurationPageUsersCount = pagingStrategyConfigurationPageUsersCount; + } + + public NewEscalationPolicyLevelDataAttributes escalationPolicyPathId(@jakarta.annotation.Nullable String escalationPolicyPathId) { this.escalationPolicyPathId = escalationPolicyPathId; return this; @@ -331,6 +531,10 @@ public boolean equals(Object o) { Objects.equals(this.position, newEscalationPolicyLevelDataAttributes.position) && Objects.equals(this.pagingStrategyConfigurationStrategy, newEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationStrategy) && Objects.equals(this.pagingStrategyConfigurationScheduleStrategy, newEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationScheduleStrategy) && + Objects.equals(this.pagingStrategyConfigurationRepeats, newEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationRepeats) && + Objects.equals(this.pagingStrategyConfigurationRepeatsMode, newEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationRepeatsMode) && + Objects.equals(this.pagingStrategyConfigurationRotationScope, newEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationRotationScope) && + Objects.equals(this.pagingStrategyConfigurationPageUsersCount, newEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationPageUsersCount) && Objects.equals(this.escalationPolicyPathId, newEscalationPolicyLevelDataAttributes.escalationPolicyPathId) && Objects.equals(this.notificationTargetParams, newEscalationPolicyLevelDataAttributes.notificationTargetParams); } @@ -341,7 +545,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(delay, position, pagingStrategyConfigurationStrategy, pagingStrategyConfigurationScheduleStrategy, escalationPolicyPathId, notificationTargetParams); + return Objects.hash(delay, position, pagingStrategyConfigurationStrategy, pagingStrategyConfigurationScheduleStrategy, pagingStrategyConfigurationRepeats, pagingStrategyConfigurationRepeatsMode, pagingStrategyConfigurationRotationScope, pagingStrategyConfigurationPageUsersCount, escalationPolicyPathId, notificationTargetParams); } private static int hashCodeNullable(JsonNullable a) { @@ -359,6 +563,10 @@ public String toString() { sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" pagingStrategyConfigurationStrategy: ").append(toIndentedString(pagingStrategyConfigurationStrategy)).append("\n"); sb.append(" pagingStrategyConfigurationScheduleStrategy: ").append(toIndentedString(pagingStrategyConfigurationScheduleStrategy)).append("\n"); + sb.append(" pagingStrategyConfigurationRepeats: ").append(toIndentedString(pagingStrategyConfigurationRepeats)).append("\n"); + sb.append(" pagingStrategyConfigurationRepeatsMode: ").append(toIndentedString(pagingStrategyConfigurationRepeatsMode)).append("\n"); + sb.append(" pagingStrategyConfigurationRotationScope: ").append(toIndentedString(pagingStrategyConfigurationRotationScope)).append("\n"); + sb.append(" pagingStrategyConfigurationPageUsersCount: ").append(toIndentedString(pagingStrategyConfigurationPageUsersCount)).append("\n"); sb.append(" escalationPolicyPathId: ").append(toIndentedString(escalationPolicyPathId)).append("\n"); sb.append(" notificationTargetParams: ").append(toIndentedString(notificationTargetParams)).append("\n"); sb.append("}"); @@ -387,6 +595,10 @@ private String toIndentedString(Object o) { openapiFields.add("position"); openapiFields.add("paging_strategy_configuration_strategy"); openapiFields.add("paging_strategy_configuration_schedule_strategy"); + openapiFields.add("paging_strategy_configuration_repeats"); + openapiFields.add("paging_strategy_configuration_repeats_mode"); + openapiFields.add("paging_strategy_configuration_rotation_scope"); + openapiFields.add("paging_strategy_configuration_page_users_count"); openapiFields.add("escalation_policy_path_id"); openapiFields.add("notification_target_params"); @@ -438,6 +650,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("paging_strategy_configuration_schedule_strategy") != null && !jsonObj.get("paging_strategy_configuration_schedule_strategy").isJsonNull()) { PagingStrategyConfigurationScheduleStrategyEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_schedule_strategy")); } + if ((jsonObj.get("paging_strategy_configuration_repeats_mode") != null && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonNull()) && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_strategy_configuration_repeats_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("paging_strategy_configuration_repeats_mode").toString())); + } + // validate the optional field `paging_strategy_configuration_repeats_mode` + if (jsonObj.get("paging_strategy_configuration_repeats_mode") != null && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonNull()) { + PagingStrategyConfigurationRepeatsModeEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_repeats_mode")); + } + if ((jsonObj.get("paging_strategy_configuration_rotation_scope") != null && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonNull()) && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_strategy_configuration_rotation_scope` to be a primitive type in the JSON string but got `%s`", jsonObj.get("paging_strategy_configuration_rotation_scope").toString())); + } + // validate the optional field `paging_strategy_configuration_rotation_scope` + if (jsonObj.get("paging_strategy_configuration_rotation_scope") != null && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonNull()) { + PagingStrategyConfigurationRotationScopeEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_rotation_scope")); + } if ((jsonObj.get("escalation_policy_path_id") != null && !jsonObj.get("escalation_policy_path_id").isJsonNull()) && !jsonObj.get("escalation_policy_path_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_path_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_path_id").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java index ceef0b8b..3c563898 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java @@ -49,7 +49,7 @@ /** * NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -69,6 +69,8 @@ public enum TypeEnum { SLACK_CHANNEL("slack_channel"), + MICROSOFT_TEAMS_CHANNEL("microsoft_teams_channel"), + SERVICE("service"); private String value; @@ -187,7 +189,7 @@ public NewEscalationPolicyLevelDataAttributesNotificationTargetParamsInner id(@j } /** - * The ID of notification target. If Slack channel, then id of the slack channel (eg. C06Q2JK7RQW) + * The ID of notification target. If Slack channel, then id of the slack channel (eg. C06Q2JK7RQW). If Microsoft Teams channel, then the Rootly channel UUID. * @return id */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPath.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPath.java index 03e6d188..e7d2d90b 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPath.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPath.java @@ -49,7 +49,7 @@ /** * NewEscalationPolicyPath */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPath { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathData.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathData.java index 32a01c6d..4f5508d6 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathData.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathData.java @@ -49,7 +49,7 @@ /** * NewEscalationPolicyPathData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributes.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributes.java index da2caf7a..576b4c82 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributes.java @@ -53,7 +53,7 @@ /** * NewEscalationPolicyPathDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -117,6 +117,125 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private NotificationTypeEnum notificationType = NotificationTypeEnum.AUDIBLE; + /** + * The type of escalation path to create + */ + @JsonAdapter(PathTypeEnum.Adapter.class) + public enum PathTypeEnum { + ESCALATION("escalation"), + + DEFERRAL("deferral"); + + private String value; + + PathTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PathTypeEnum fromValue(String value) { + for (PathTypeEnum b : PathTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PathTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PathTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PathTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PathTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PATH_TYPE = "path_type"; + @SerializedName(SERIALIZED_NAME_PATH_TYPE) + @jakarta.annotation.Nullable + private PathTypeEnum pathType = PathTypeEnum.ESCALATION; + + /** + * What happens after a deferral path finishes. Required for deferral paths. + */ + @JsonAdapter(AfterDeferralBehaviorEnum.Adapter.class) + public enum AfterDeferralBehaviorEnum { + RE_EVALUATE("re_evaluate"), + + EXECUTE_PATH("execute_path"); + + private String value; + + AfterDeferralBehaviorEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AfterDeferralBehaviorEnum fromValue(String value) { + for (AfterDeferralBehaviorEnum b : AfterDeferralBehaviorEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AfterDeferralBehaviorEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AfterDeferralBehaviorEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AfterDeferralBehaviorEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AfterDeferralBehaviorEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_AFTER_DEFERRAL_BEHAVIOR = "after_deferral_behavior"; + @SerializedName(SERIALIZED_NAME_AFTER_DEFERRAL_BEHAVIOR) + @jakarta.annotation.Nullable + private AfterDeferralBehaviorEnum afterDeferralBehavior; + + public static final String SERIALIZED_NAME_AFTER_DEFERRAL_PATH_ID = "after_deferral_path_id"; + @SerializedName(SERIALIZED_NAME_AFTER_DEFERRAL_PATH_ID) + @jakarta.annotation.Nullable + private String afterDeferralPathId; + public static final String SERIALIZED_NAME_DEFAULT = "default"; @SerializedName(SERIALIZED_NAME_DEFAULT) @jakarta.annotation.Nullable @@ -199,6 +318,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer initialDelay; + public static final String SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES = "retrigger_timeout_minutes"; + @SerializedName(SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private Integer retriggerTimeoutMinutes; + public static final String SERIALIZED_NAME_RULES = "rules"; @SerializedName(SERIALIZED_NAME_RULES) @jakarta.annotation.Nullable @@ -267,8 +391,6 @@ public enum TimeRestrictionTimeZoneEnum { MEXICO_CITY("Mexico City"), - AMERICA_MEXICO_CITY2("America/Mexico_City"), - MONTERREY("Monterrey"), AMERICA_MONTERREY("America/Monterrey"), @@ -295,8 +417,6 @@ public enum TimeRestrictionTimeZoneEnum { QUITO("Quito"), - AMERICA_LIMA2("America/Lima"), - ATLANTIC_TIME_CANADA_("Atlantic Time (Canada)"), AMERICA_HALIFAX("America/Halifax"), @@ -357,14 +477,6 @@ public enum TimeRestrictionTimeZoneEnum { ATLANTIC_CAPE_VERDE("Atlantic/Cape_Verde"), - CASABLANCA("Casablanca"), - - AFRICA_CASABLANCA("Africa/Casablanca"), - - DUBLIN("Dublin"), - - EUROPE_DUBLIN("Europe/Dublin"), - EDINBURGH("Edinburgh"), EUROPE_LONDON("Europe/London"), @@ -375,8 +487,6 @@ public enum TimeRestrictionTimeZoneEnum { LONDON("London"), - EUROPE_LONDON2("Europe/London"), - MONROVIA("Monrovia"), AFRICA_MONROVIA("Africa/Monrovia"), @@ -413,10 +523,18 @@ public enum TimeRestrictionTimeZoneEnum { EUROPE_BUDAPEST("Europe/Budapest"), + CASABLANCA("Casablanca"), + + AFRICA_CASABLANCA("Africa/Casablanca"), + COPENHAGEN("Copenhagen"), EUROPE_COPENHAGEN("Europe/Copenhagen"), + DUBLIN("Dublin"), + + EUROPE_DUBLIN("Europe/Dublin"), + LJUBLJANA("Ljubljana"), EUROPE_LJUBLJANA("Europe/Ljubljana"), @@ -467,8 +585,6 @@ public enum TimeRestrictionTimeZoneEnum { ZURICH("Zurich"), - EUROPE_ZURICH2("Europe/Zurich"), - ATHENS("Athens"), EUROPE_ATHENS("Europe/Athens"), @@ -551,8 +667,6 @@ public enum TimeRestrictionTimeZoneEnum { ST_PETERSBURG("St. Petersburg"), - EUROPE_MOSCOW2("Europe/Moscow"), - VOLGOGRAD("Volgograd"), EUROPE_VOLGOGRAD("Europe/Volgograd"), @@ -571,8 +685,6 @@ public enum TimeRestrictionTimeZoneEnum { MUSCAT("Muscat"), - ASIA_MUSCAT2("Asia/Muscat"), - SAMARA("Samara"), EUROPE_SAMARA("Europe/Samara"), @@ -595,8 +707,6 @@ public enum TimeRestrictionTimeZoneEnum { ASTANA("Astana"), - ASIA_ALMATY2("Asia/Almaty"), - EKATERINBURG("Ekaterinburg"), ASIA_YEKATERINBURG("Asia/Yekaterinburg"), @@ -607,8 +717,6 @@ public enum TimeRestrictionTimeZoneEnum { KARACHI("Karachi"), - ASIA_KARACHI2("Asia/Karachi"), - TASHKENT("Tashkent"), ASIA_TASHKENT("Asia/Tashkent"), @@ -619,16 +727,10 @@ public enum TimeRestrictionTimeZoneEnum { KOLKATA("Kolkata"), - ASIA_KOLKATA2("Asia/Kolkata"), - MUMBAI("Mumbai"), - ASIA_KOLKATA3("Asia/Kolkata"), - NEW_DELHI("New Delhi"), - ASIA_KOLKATA4("Asia/Kolkata"), - SRI_JAYAWARDENEPURA("Sri Jayawardenepura"), ASIA_COLOMBO("Asia/Colombo"), @@ -655,8 +757,6 @@ public enum TimeRestrictionTimeZoneEnum { HANOI("Hanoi"), - ASIA_BANGKOK2("Asia/Bangkok"), - JAKARTA("Jakarta"), ASIA_JAKARTA("Asia/Jakarta"), @@ -711,16 +811,12 @@ public enum TimeRestrictionTimeZoneEnum { SAPPORO("Sapporo"), - ASIA_TOKYO2("Asia/Tokyo"), - SEOUL("Seoul"), ASIA_SEOUL("Asia/Seoul"), TOKYO("Tokyo"), - ASIA_TOKYO3("Asia/Tokyo"), - YAKUTSK("Yakutsk"), ASIA_YAKUTSK("Asia/Yakutsk"), @@ -799,8 +895,6 @@ public enum TimeRestrictionTimeZoneEnum { WELLINGTON("Wellington"), - PACIFIC_AUCKLAND2("Pacific/Auckland"), - CHATHAM_IS_("Chatham Is."), PACIFIC_CHATHAM("Pacific/Chatham"), @@ -815,7 +909,39 @@ public enum TimeRestrictionTimeZoneEnum { TOKELAU_IS_("Tokelau Is."), - PACIFIC_FAKAOFO("Pacific/Fakaofo"); + PACIFIC_FAKAOFO("Pacific/Fakaofo"), + + AMERICA_ADAK("America/Adak"), + + AMERICA_ATKA("America/Atka"), + + US_ALEUTIAN("US/Aleutian"), + + AMERICA_VANCOUVER("America/Vancouver"), + + CANADA_PACIFIC("Canada/Pacific"), + + AMERICA_MIQUELON("America/Miquelon"), + + AUSTRALIA_EUCLA("Australia/Eucla"), + + AUSTRALIA_LHI("Australia/LHI"), + + AUSTRALIA_LORD_HOWE("Australia/Lord_Howe"), + + CHILE_EASTER_ISLAND("Chile/EasterIsland"), + + PACIFIC_EASTER("Pacific/Easter"), + + PACIFIC_GAMBIER("Pacific/Gambier"), + + PACIFIC_PITCAIRN("Pacific/Pitcairn"), + + PACIFIC_MARQUESAS("Pacific/Marquesas"), + + PACIFIC_KIRITIMATI("Pacific/Kiritimati"), + + PACIFIC_NORFOLK("Pacific/Norfolk"); private String value; @@ -911,6 +1037,63 @@ public void setNotificationType(@jakarta.annotation.Nullable NotificationTypeEnu } + public NewEscalationPolicyPathDataAttributes pathType(@jakarta.annotation.Nullable PathTypeEnum pathType) { + this.pathType = pathType; + return this; + } + + /** + * The type of escalation path to create + * @return pathType + */ + @jakarta.annotation.Nullable + public PathTypeEnum getPathType() { + return pathType; + } + + public void setPathType(@jakarta.annotation.Nullable PathTypeEnum pathType) { + this.pathType = pathType; + } + + + public NewEscalationPolicyPathDataAttributes afterDeferralBehavior(@jakarta.annotation.Nullable AfterDeferralBehaviorEnum afterDeferralBehavior) { + this.afterDeferralBehavior = afterDeferralBehavior; + return this; + } + + /** + * What happens after a deferral path finishes. Required for deferral paths. + * @return afterDeferralBehavior + */ + @jakarta.annotation.Nullable + public AfterDeferralBehaviorEnum getAfterDeferralBehavior() { + return afterDeferralBehavior; + } + + public void setAfterDeferralBehavior(@jakarta.annotation.Nullable AfterDeferralBehaviorEnum afterDeferralBehavior) { + this.afterDeferralBehavior = afterDeferralBehavior; + } + + + public NewEscalationPolicyPathDataAttributes afterDeferralPathId(@jakarta.annotation.Nullable String afterDeferralPathId) { + this.afterDeferralPathId = afterDeferralPathId; + return this; + } + + /** + * The escalation path to execute after this deferral path when after_deferral_behavior is execute_path. + * @return afterDeferralPathId + */ + @jakarta.annotation.Nullable + public String getAfterDeferralPathId() { + return afterDeferralPathId; + } + + public void setAfterDeferralPathId(@jakarta.annotation.Nullable String afterDeferralPathId) { + this.afterDeferralPathId = afterDeferralPathId; + } + + public NewEscalationPolicyPathDataAttributes _default(@jakarta.annotation.Nullable Boolean _default) { this._default = _default; return this; @@ -1025,6 +1208,25 @@ public void setInitialDelay(@jakarta.annotation.Nullable Integer initialDelay) { } + public NewEscalationPolicyPathDataAttributes retriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + return this; + } + + /** + * Re-trigger acknowledged alerts on this path after N minutes; null inherits the urgency/workspace default, negative = never. + * @return retriggerTimeoutMinutes + */ + @jakarta.annotation.Nullable + public Integer getRetriggerTimeoutMinutes() { + return retriggerTimeoutMinutes; + } + + public void setRetriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + } + + public NewEscalationPolicyPathDataAttributes rules(@jakarta.annotation.Nullable List rules) { this.rules = rules; return this; @@ -1110,12 +1312,16 @@ public boolean equals(Object o) { NewEscalationPolicyPathDataAttributes newEscalationPolicyPathDataAttributes = (NewEscalationPolicyPathDataAttributes) o; return Objects.equals(this.name, newEscalationPolicyPathDataAttributes.name) && Objects.equals(this.notificationType, newEscalationPolicyPathDataAttributes.notificationType) && + Objects.equals(this.pathType, newEscalationPolicyPathDataAttributes.pathType) && + Objects.equals(this.afterDeferralBehavior, newEscalationPolicyPathDataAttributes.afterDeferralBehavior) && + Objects.equals(this.afterDeferralPathId, newEscalationPolicyPathDataAttributes.afterDeferralPathId) && Objects.equals(this._default, newEscalationPolicyPathDataAttributes._default) && Objects.equals(this.matchMode, newEscalationPolicyPathDataAttributes.matchMode) && Objects.equals(this.position, newEscalationPolicyPathDataAttributes.position) && Objects.equals(this.repeat, newEscalationPolicyPathDataAttributes.repeat) && Objects.equals(this.repeatCount, newEscalationPolicyPathDataAttributes.repeatCount) && Objects.equals(this.initialDelay, newEscalationPolicyPathDataAttributes.initialDelay) && + Objects.equals(this.retriggerTimeoutMinutes, newEscalationPolicyPathDataAttributes.retriggerTimeoutMinutes) && Objects.equals(this.rules, newEscalationPolicyPathDataAttributes.rules) && Objects.equals(this.timeRestrictionTimeZone, newEscalationPolicyPathDataAttributes.timeRestrictionTimeZone) && Objects.equals(this.timeRestrictions, newEscalationPolicyPathDataAttributes.timeRestrictions); @@ -1127,7 +1333,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, notificationType, _default, matchMode, position, repeat, repeatCount, initialDelay, rules, timeRestrictionTimeZone, timeRestrictions); + return Objects.hash(name, notificationType, pathType, afterDeferralBehavior, afterDeferralPathId, _default, matchMode, position, repeat, repeatCount, initialDelay, retriggerTimeoutMinutes, rules, timeRestrictionTimeZone, timeRestrictions); } private static int hashCodeNullable(JsonNullable a) { @@ -1143,12 +1349,16 @@ public String toString() { sb.append("class NewEscalationPolicyPathDataAttributes {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" pathType: ").append(toIndentedString(pathType)).append("\n"); + sb.append(" afterDeferralBehavior: ").append(toIndentedString(afterDeferralBehavior)).append("\n"); + sb.append(" afterDeferralPathId: ").append(toIndentedString(afterDeferralPathId)).append("\n"); sb.append(" _default: ").append(toIndentedString(_default)).append("\n"); sb.append(" matchMode: ").append(toIndentedString(matchMode)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" repeat: ").append(toIndentedString(repeat)).append("\n"); sb.append(" repeatCount: ").append(toIndentedString(repeatCount)).append("\n"); sb.append(" initialDelay: ").append(toIndentedString(initialDelay)).append("\n"); + sb.append(" retriggerTimeoutMinutes: ").append(toIndentedString(retriggerTimeoutMinutes)).append("\n"); sb.append(" rules: ").append(toIndentedString(rules)).append("\n"); sb.append(" timeRestrictionTimeZone: ").append(toIndentedString(timeRestrictionTimeZone)).append("\n"); sb.append(" timeRestrictions: ").append(toIndentedString(timeRestrictions)).append("\n"); @@ -1176,12 +1386,16 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("name"); openapiFields.add("notification_type"); + openapiFields.add("path_type"); + openapiFields.add("after_deferral_behavior"); + openapiFields.add("after_deferral_path_id"); openapiFields.add("default"); openapiFields.add("match_mode"); openapiFields.add("position"); openapiFields.add("repeat"); openapiFields.add("repeat_count"); openapiFields.add("initial_delay"); + openapiFields.add("retrigger_timeout_minutes"); openapiFields.add("rules"); openapiFields.add("time_restriction_time_zone"); openapiFields.add("time_restrictions"); @@ -1229,6 +1443,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("notification_type") != null && !jsonObj.get("notification_type").isJsonNull()) { NotificationTypeEnum.validateJsonElement(jsonObj.get("notification_type")); } + if ((jsonObj.get("path_type") != null && !jsonObj.get("path_type").isJsonNull()) && !jsonObj.get("path_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `path_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path_type").toString())); + } + // validate the optional field `path_type` + if (jsonObj.get("path_type") != null && !jsonObj.get("path_type").isJsonNull()) { + PathTypeEnum.validateJsonElement(jsonObj.get("path_type")); + } + if ((jsonObj.get("after_deferral_behavior") != null && !jsonObj.get("after_deferral_behavior").isJsonNull()) && !jsonObj.get("after_deferral_behavior").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `after_deferral_behavior` to be a primitive type in the JSON string but got `%s`", jsonObj.get("after_deferral_behavior").toString())); + } + // validate the optional field `after_deferral_behavior` + if (jsonObj.get("after_deferral_behavior") != null && !jsonObj.get("after_deferral_behavior").isJsonNull()) { + AfterDeferralBehaviorEnum.validateJsonElement(jsonObj.get("after_deferral_behavior")); + } + if ((jsonObj.get("after_deferral_path_id") != null && !jsonObj.get("after_deferral_path_id").isJsonNull()) && !jsonObj.get("after_deferral_path_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `after_deferral_path_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("after_deferral_path_id").toString())); + } if ((jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) && !jsonObj.get("match_mode").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `match_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("match_mode").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInner.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInner.java index 7dac2866..6398cc4f 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInner.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInner.java @@ -19,13 +19,20 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf1; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf3; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf4; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf6; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf7; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; @@ -62,7 +69,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInner extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewEscalationPolicyPathDataAttributesRulesInner.class.getName()); @@ -74,9 +81,14 @@ public TypeAdapter create(Gson gson, TypeToken type) { return null; // this class only serializes 'NewEscalationPolicyPathDataAttributesRulesInner' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.class)); - final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.class)); - final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf1 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf2 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf3 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf4 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf5 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf6 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf7 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.class)); return (TypeAdapter) new TypeAdapter() { @Override @@ -86,25 +98,55 @@ public void write(JsonWriter out, NewEscalationPolicyPathDataAttributesRulesInne return; } - // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf` - if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf) { - JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerAnyOf)value.getActualInstance()); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf)value.getActualInstance()); elementAdapter.write(out, element); return; } - // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1` - if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1) { - JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1)value.getActualInstance()); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf1) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf1.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf1)value.getActualInstance()); elementAdapter.write(out, element); return; } - // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2` - if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2) { - JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2)value.getActualInstance()); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf2) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf2.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf2)value.getActualInstance()); elementAdapter.write(out, element); return; } - throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2"); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf3) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf3.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf3)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf4) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf4.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf4)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf5) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf5.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf5)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf6) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf6.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf6)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf7) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf7.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf7)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7"); } @Override @@ -112,71 +154,140 @@ public NewEscalationPolicyPathDataAttributesRulesInner read(JsonReader in) throw Object deserialized = null; JsonElement jsonElement = elementAdapter.read(in); + int match = 0; ArrayList errorMessages = new ArrayList<>(); TypeAdapter actualAdapter = elementAdapter; - // deserialize NewEscalationPolicyPathDataAttributesRulesInnerAnyOf + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf try { // validate the JSON object to see if any exception is thrown - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.validateJsonElement(jsonElement); - actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf; - NewEscalationPolicyPathDataAttributesRulesInner ret = new NewEscalationPolicyPathDataAttributesRulesInner(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf'"); } catch (Exception e) { // deserialization failed, continue - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerAnyOf'", e); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf'", e); } - // deserialize NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 try { // validate the JSON object to see if any exception is thrown - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.validateJsonElement(jsonElement); - actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1; - NewEscalationPolicyPathDataAttributesRulesInner ret = new NewEscalationPolicyPathDataAttributesRulesInner(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf1; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf1'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf1'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf2; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf2'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf2'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf3; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf3'"); } catch (Exception e) { // deserialization failed, continue - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1'", e); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf3'", e); } - // deserialize NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 try { // validate the JSON object to see if any exception is thrown - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.validateJsonElement(jsonElement); - actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf4; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf4'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf4'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf5; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf5'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf5'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf6; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf6'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf6'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf7; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf7'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf7'", e); + } + + if (match == 1) { NewEscalationPolicyPathDataAttributesRulesInner ret = new NewEscalationPolicyPathDataAttributesRulesInner(); ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); return ret; - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2'", e); } - throw new IOException(String.format("Failed deserialization for NewEscalationPolicyPathDataAttributesRulesInner: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + throw new IOException(String.format("Failed deserialization for NewEscalationPolicyPathDataAttributesRulesInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); } }.nullSafe(); } } - // store a list of schema names defined in anyOf + // store a list of schema names defined in oneOf public static final Map> schemas = new HashMap>(); public NewEscalationPolicyPathDataAttributesRulesInner() { - super("anyOf", Boolean.FALSE); + super("oneOf", Boolean.FALSE); } public NewEscalationPolicyPathDataAttributesRulesInner(Object o) { - super("anyOf", Boolean.FALSE); + super("oneOf", Boolean.FALSE); setActualInstance(o); } static { - schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerAnyOf", NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.class); - schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1", NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.class); - schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2", NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf", NewEscalationPolicyPathDataAttributesRulesInnerOneOf.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf1", NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf2", NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf3", NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf4", NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf5", NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf6", NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf7", NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.class); } @Override @@ -185,37 +296,62 @@ public Map> getSchemas() { } /** - * Set the instance that matches the anyOf child schema, check - * the instance parameter is valid against the anyOf child schemas: - * NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 * - * It could be an instance of the 'anyOf' schemas. + * It could be an instance of the 'oneOf' schemas. */ @Override public void setActualInstance(Object instance) { - if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf) { + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf1) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf2) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf3) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf4) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf5) { super.setActualInstance(instance); return; } - if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1) { + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf6) { super.setActualInstance(instance); return; } - if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2) { + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf7) { super.setActualInstance(instance); return; } - throw new RuntimeException("Invalid instance type. Must be NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2"); + throw new RuntimeException("Invalid instance type. Must be NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7"); } /** * Get the actual instance, which can be the following: - * NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + * NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 * - * @return The actual instance (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2) + * @return The actual instance (NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7) */ @SuppressWarnings("unchecked") @Override @@ -224,36 +360,91 @@ public Object getActualInstance() { } /** - * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf`, + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf getNewEscalationPolicyPathDataAttributesRulesInnerOneOf() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf1() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf1)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf2() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf2)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3`, * the ClassCastException will be thrown. * - * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf` - * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf` + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3` */ - public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf getNewEscalationPolicyPathDataAttributesRulesInnerAnyOf() throws ClassCastException { - return (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf)super.getActualInstance(); + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf3() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf3)super.getActualInstance(); } /** - * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1`, + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4`, * the ClassCastException will be thrown. * - * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1` - * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1` + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4` */ - public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 getNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1() throws ClassCastException { - return (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1)super.getActualInstance(); + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf4() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf4)super.getActualInstance(); } /** - * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2`, + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5`, * the ClassCastException will be thrown. * - * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2` - * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2` + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5` */ - public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 getNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2() throws ClassCastException { - return (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2)super.getActualInstance(); + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf5() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf5)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf6() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf6)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf7() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf7)super.getActualInstance(); } /** @@ -263,33 +454,76 @@ public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 getNewEscalationPol * @throws IOException if the JSON Element is invalid with respect to NewEscalationPolicyPathDataAttributesRulesInner */ public static void validateJsonElement(JsonElement jsonElement) throws IOException { - // validate anyOf schemas one by one + // validate oneOf schemas one by one + int validCount = 0; ArrayList errorMessages = new ArrayList<>(); - // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerAnyOf + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf try { - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.validateJsonElement(jsonElement); - return; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf.validateJsonElement(jsonElement); + validCount++; } catch (Exception e) { - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf failed with `%s`.", e.getMessage())); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf failed with `%s`.", e.getMessage())); // continue to the next one } - // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 try { - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.validateJsonElement(jsonElement); - return; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.validateJsonElement(jsonElement); + validCount++; } catch (Exception e) { - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 failed with `%s`.", e.getMessage())); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 failed with `%s`.", e.getMessage())); // continue to the next one } - // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 try { - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.validateJsonElement(jsonElement); - return; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.validateJsonElement(jsonElement); + validCount++; } catch (Exception e) { - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 failed with `%s`.", e.getMessage())); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 failed with `%s`.", e.getMessage())); // continue to the next one } - throw new IOException(String.format("The JSON string is invalid for NewEscalationPolicyPathDataAttributesRulesInner with anyOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for NewEscalationPolicyPathDataAttributesRulesInner with oneOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } } /** diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.java index 3b88c578..0783a9cb 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf.java @@ -50,7 +50,7 @@ /** * NewEscalationPolicyPathDataAttributesRulesInnerOneOf */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf { /** * The type of the escalation path rule @@ -104,18 +104,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; @SerializedName(SERIALIZED_NAME_RULE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RuleTypeEnum ruleType; public static final String SERIALIZED_NAME_URGENCY_IDS = "urgency_ids"; @SerializedName(SERIALIZED_NAME_URGENCY_IDS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List urgencyIds = new ArrayList<>(); public NewEscalationPolicyPathDataAttributesRulesInnerOneOf() { } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf ruleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; return this; } @@ -124,17 +124,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf ruleType(@javax.anno * The type of the escalation path rule * @return ruleType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RuleTypeEnum getRuleType() { return ruleType; } - public void setRuleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf urgencyIds(@javax.annotation.Nonnull List urgencyIds) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf urgencyIds(@jakarta.annotation.Nonnull List urgencyIds) { this.urgencyIds = urgencyIds; return this; } @@ -151,12 +151,12 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf addUrgencyIdsItem(St * Alert urgency ids for which this escalation path should be used * @return urgencyIds */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getUrgencyIds() { return urgencyIds; } - public void setUrgencyIds(@javax.annotation.Nonnull List urgencyIds) { + public void setUrgencyIds(@jakarta.annotation.Nonnull List urgencyIds) { this.urgencyIds = urgencyIds; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.java index 9bfc4146..af6a09ad 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.java @@ -48,7 +48,7 @@ /** * NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 { /** * The type of the escalation path rule @@ -102,18 +102,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; @SerializedName(SERIALIZED_NAME_RULE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RuleTypeEnum ruleType; public static final String SERIALIZED_NAME_WITHIN_WORKING_HOUR = "within_working_hour"; @SerializedName(SERIALIZED_NAME_WITHIN_WORKING_HOUR) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Boolean withinWorkingHour; public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1() { } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 ruleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; return this; } @@ -122,17 +122,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 ruleType(@javax.ann * The type of the escalation path rule * @return ruleType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RuleTypeEnum getRuleType() { return ruleType; } - public void setRuleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 withinWorkingHour(@javax.annotation.Nonnull Boolean withinWorkingHour) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 withinWorkingHour(@jakarta.annotation.Nonnull Boolean withinWorkingHour) { this.withinWorkingHour = withinWorkingHour; return this; } @@ -141,12 +141,12 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 withinWorkingHour(@ * Whether the escalation path should be used within working hours * @return withinWorkingHour */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Boolean getWithinWorkingHour() { return withinWorkingHour; } - public void setWithinWorkingHour(@javax.annotation.Nonnull Boolean withinWorkingHour) { + public void setWithinWorkingHour(@jakarta.annotation.Nonnull Boolean withinWorkingHour) { this.withinWorkingHour = withinWorkingHour; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.java index b7176dcd..962e142d 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.java @@ -51,7 +51,7 @@ /** * NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 { /** * The type of the escalation path rule @@ -105,12 +105,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; @SerializedName(SERIALIZED_NAME_RULE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RuleTypeEnum ruleType; public static final String SERIALIZED_NAME_JSON_PATH = "json_path"; @SerializedName(SERIALIZED_NAME_JSON_PATH) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String jsonPath; /** @@ -126,6 +126,18 @@ public enum OperatorEnum { DOES_NOT_CONTAIN("does_not_contain"), + CONTAINS_KEY("contains_key"), + + DOES_NOT_CONTAIN_KEY("does_not_contain_key"), + + STARTS_WITH("starts_with"), + + DOES_NOT_START_WITH("does_not_start_with"), + + MATCHES("matches"), + + DOES_NOT_MATCH("does_not_match"), + IS_ONE_OF("is_one_of"), IS_NOT_ONE_OF("is_not_one_of"), @@ -179,23 +191,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_OPERATOR = "operator"; @SerializedName(SERIALIZED_NAME_OPERATOR) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OperatorEnum operator; public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String value; public static final String SERIALIZED_NAME_VALUES = "values"; @SerializedName(SERIALIZED_NAME_VALUES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List values = new ArrayList<>(); public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2() { } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 ruleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; return this; } @@ -204,17 +216,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 ruleType(@javax.ann * The type of the escalation path rule * @return ruleType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RuleTypeEnum getRuleType() { return ruleType; } - public void setRuleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 jsonPath(@javax.annotation.Nonnull String jsonPath) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 jsonPath(@jakarta.annotation.Nonnull String jsonPath) { this.jsonPath = jsonPath; return this; } @@ -223,17 +235,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 jsonPath(@javax.ann * JSON path to extract value from payload * @return jsonPath */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getJsonPath() { return jsonPath; } - public void setJsonPath(@javax.annotation.Nonnull String jsonPath) { + public void setJsonPath(@jakarta.annotation.Nonnull String jsonPath) { this.jsonPath = jsonPath; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 operator(@javax.annotation.Nonnull OperatorEnum operator) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 operator(@jakarta.annotation.Nonnull OperatorEnum operator) { this.operator = operator; return this; } @@ -242,17 +254,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 operator(@javax.ann * How JSON path value should be matched * @return operator */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OperatorEnum getOperator() { return operator; } - public void setOperator(@javax.annotation.Nonnull OperatorEnum operator) { + public void setOperator(@jakarta.annotation.Nonnull OperatorEnum operator) { this.operator = operator; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 value(@javax.annotation.Nullable String value) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 value(@jakarta.annotation.Nullable String value) { this.value = value; return this; } @@ -261,17 +273,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 value(@javax.annota * Value with which JSON path value should be matched * @return value */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getValue() { return value; } - public void setValue(@javax.annotation.Nullable String value) { + public void setValue(@jakarta.annotation.Nullable String value) { this.value = value; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 values(@javax.annotation.Nullable List values) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 values(@jakarta.annotation.Nullable List values) { this.values = values; return this; } @@ -288,12 +300,12 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 addValuesItem(Strin * Values to match against (for is_one_of / is_not_one_of operators) * @return values */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getValues() { return values; } - public void setValues(@javax.annotation.Nullable List values) { + public void setValues(@jakarta.annotation.Nullable List values) { this.values = values; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.java index ef52997b..27d3b6fe 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.java @@ -50,7 +50,7 @@ /** * NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 { /** * The type of the escalation path rule @@ -104,17 +104,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; @SerializedName(SERIALIZED_NAME_RULE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RuleTypeEnum ruleType; public static final String SERIALIZED_NAME_FIELDABLE_TYPE = "fieldable_type"; @SerializedName(SERIALIZED_NAME_FIELDABLE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String fieldableType; public static final String SERIALIZED_NAME_FIELDABLE_ID = "fieldable_id"; @SerializedName(SERIALIZED_NAME_FIELDABLE_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String fieldableId; /** @@ -195,18 +195,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_OPERATOR = "operator"; @SerializedName(SERIALIZED_NAME_OPERATOR) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OperatorEnum operator; public static final String SERIALIZED_NAME_VALUES = "values"; @SerializedName(SERIALIZED_NAME_VALUES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List values = new ArrayList<>(); public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3() { } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 ruleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; return this; } @@ -215,17 +215,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 ruleType(@javax.ann * The type of the escalation path rule * @return ruleType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RuleTypeEnum getRuleType() { return ruleType; } - public void setRuleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 fieldableType(@javax.annotation.Nonnull String fieldableType) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 fieldableType(@jakarta.annotation.Nonnull String fieldableType) { this.fieldableType = fieldableType; return this; } @@ -234,17 +234,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 fieldableType(@java * The type of the fieldable (e.g., AlertField) * @return fieldableType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getFieldableType() { return fieldableType; } - public void setFieldableType(@javax.annotation.Nonnull String fieldableType) { + public void setFieldableType(@jakarta.annotation.Nonnull String fieldableType) { this.fieldableType = fieldableType; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 fieldableId(@javax.annotation.Nonnull String fieldableId) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 fieldableId(@jakarta.annotation.Nonnull String fieldableId) { this.fieldableId = fieldableId; return this; } @@ -253,17 +253,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 fieldableId(@javax. * The ID of the alert field * @return fieldableId */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getFieldableId() { return fieldableId; } - public void setFieldableId(@javax.annotation.Nonnull String fieldableId) { + public void setFieldableId(@jakarta.annotation.Nonnull String fieldableId) { this.fieldableId = fieldableId; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 operator(@javax.annotation.Nonnull OperatorEnum operator) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 operator(@jakarta.annotation.Nonnull OperatorEnum operator) { this.operator = operator; return this; } @@ -272,17 +272,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 operator(@javax.ann * How the alert field value should be matched * @return operator */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OperatorEnum getOperator() { return operator; } - public void setOperator(@javax.annotation.Nonnull OperatorEnum operator) { + public void setOperator(@jakarta.annotation.Nonnull OperatorEnum operator) { this.operator = operator; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 values(@javax.annotation.Nullable List values) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 values(@jakarta.annotation.Nullable List values) { this.values = values; return this; } @@ -299,12 +299,12 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 addValuesItem(Strin * Values to match against * @return values */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getValues() { return values; } - public void setValues(@javax.annotation.Nullable List values) { + public void setValues(@jakarta.annotation.Nullable List values) { this.values = values; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.java index 6fb4a06c..b3402ac6 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.java @@ -50,7 +50,7 @@ /** * NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 { /** * The type of the escalation path rule @@ -104,18 +104,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; @SerializedName(SERIALIZED_NAME_RULE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RuleTypeEnum ruleType; public static final String SERIALIZED_NAME_SERVICE_IDS = "service_ids"; @SerializedName(SERIALIZED_NAME_SERVICE_IDS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List serviceIds = new ArrayList<>(); public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4() { } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 ruleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; return this; } @@ -124,17 +124,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 ruleType(@javax.ann * The type of the escalation path rule * @return ruleType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RuleTypeEnum getRuleType() { return ruleType; } - public void setRuleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 serviceIds(@javax.annotation.Nonnull List serviceIds) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 serviceIds(@jakarta.annotation.Nonnull List serviceIds) { this.serviceIds = serviceIds; return this; } @@ -151,12 +151,12 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 addServiceIdsItem(S * Service ids for which this escalation path should be used * @return serviceIds */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getServiceIds() { return serviceIds; } - public void setServiceIds(@javax.annotation.Nonnull List serviceIds) { + public void setServiceIds(@jakarta.annotation.Nonnull List serviceIds) { this.serviceIds = serviceIds; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.java index 985d734b..c4a3d75e 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.java @@ -51,7 +51,7 @@ /** * NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 { /** * The type of the escalation path rule @@ -105,7 +105,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; @SerializedName(SERIALIZED_NAME_RULE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RuleTypeEnum ruleType; /** @@ -171,8 +171,6 @@ public enum TimeZoneEnum { MEXICO_CITY("Mexico City"), - AMERICA_MEXICO_CITY2("America/Mexico_City"), - MONTERREY("Monterrey"), AMERICA_MONTERREY("America/Monterrey"), @@ -199,8 +197,6 @@ public enum TimeZoneEnum { QUITO("Quito"), - AMERICA_LIMA2("America/Lima"), - ATLANTIC_TIME_CANADA_("Atlantic Time (Canada)"), AMERICA_HALIFAX("America/Halifax"), @@ -271,8 +267,6 @@ public enum TimeZoneEnum { LONDON("London"), - EUROPE_LONDON2("Europe/London"), - MONROVIA("Monrovia"), AFRICA_MONROVIA("Africa/Monrovia"), @@ -371,8 +365,6 @@ public enum TimeZoneEnum { ZURICH("Zurich"), - EUROPE_ZURICH2("Europe/Zurich"), - ATHENS("Athens"), EUROPE_ATHENS("Europe/Athens"), @@ -455,8 +447,6 @@ public enum TimeZoneEnum { ST_PETERSBURG("St. Petersburg"), - EUROPE_MOSCOW2("Europe/Moscow"), - VOLGOGRAD("Volgograd"), EUROPE_VOLGOGRAD("Europe/Volgograd"), @@ -475,8 +465,6 @@ public enum TimeZoneEnum { MUSCAT("Muscat"), - ASIA_MUSCAT2("Asia/Muscat"), - SAMARA("Samara"), EUROPE_SAMARA("Europe/Samara"), @@ -499,8 +487,6 @@ public enum TimeZoneEnum { ASTANA("Astana"), - ASIA_ALMATY2("Asia/Almaty"), - EKATERINBURG("Ekaterinburg"), ASIA_YEKATERINBURG("Asia/Yekaterinburg"), @@ -511,8 +497,6 @@ public enum TimeZoneEnum { KARACHI("Karachi"), - ASIA_KARACHI2("Asia/Karachi"), - TASHKENT("Tashkent"), ASIA_TASHKENT("Asia/Tashkent"), @@ -523,16 +507,10 @@ public enum TimeZoneEnum { KOLKATA("Kolkata"), - ASIA_KOLKATA2("Asia/Kolkata"), - MUMBAI("Mumbai"), - ASIA_KOLKATA3("Asia/Kolkata"), - NEW_DELHI("New Delhi"), - ASIA_KOLKATA4("Asia/Kolkata"), - SRI_JAYAWARDENEPURA("Sri Jayawardenepura"), ASIA_COLOMBO("Asia/Colombo"), @@ -559,8 +537,6 @@ public enum TimeZoneEnum { HANOI("Hanoi"), - ASIA_BANGKOK2("Asia/Bangkok"), - JAKARTA("Jakarta"), ASIA_JAKARTA("Asia/Jakarta"), @@ -615,16 +591,12 @@ public enum TimeZoneEnum { SAPPORO("Sapporo"), - ASIA_TOKYO2("Asia/Tokyo"), - SEOUL("Seoul"), ASIA_SEOUL("Asia/Seoul"), TOKYO("Tokyo"), - ASIA_TOKYO3("Asia/Tokyo"), - YAKUTSK("Yakutsk"), ASIA_YAKUTSK("Asia/Yakutsk"), @@ -703,8 +675,6 @@ public enum TimeZoneEnum { WELLINGTON("Wellington"), - PACIFIC_AUCKLAND2("Pacific/Auckland"), - CHATHAM_IS_("Chatham Is."), PACIFIC_CHATHAM("Pacific/Chatham"), @@ -719,7 +689,39 @@ public enum TimeZoneEnum { TOKELAU_IS_("Tokelau Is."), - PACIFIC_FAKAOFO("Pacific/Fakaofo"); + PACIFIC_FAKAOFO("Pacific/Fakaofo"), + + AMERICA_ADAK("America/Adak"), + + AMERICA_ATKA("America/Atka"), + + US_ALEUTIAN("US/Aleutian"), + + AMERICA_VANCOUVER("America/Vancouver"), + + CANADA_PACIFIC("Canada/Pacific"), + + AMERICA_MIQUELON("America/Miquelon"), + + AUSTRALIA_EUCLA("Australia/Eucla"), + + AUSTRALIA_LHI("Australia/LHI"), + + AUSTRALIA_LORD_HOWE("Australia/Lord_Howe"), + + CHILE_EASTER_ISLAND("Chile/EasterIsland"), + + PACIFIC_EASTER("Pacific/Easter"), + + PACIFIC_GAMBIER("Pacific/Gambier"), + + PACIFIC_PITCAIRN("Pacific/Pitcairn"), + + PACIFIC_MARQUESAS("Pacific/Marquesas"), + + PACIFIC_KIRITIMATI("Pacific/Kiritimati"), + + PACIFIC_NORFOLK("Pacific/Norfolk"); private String value; @@ -766,18 +768,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TIME_ZONE = "time_zone"; @SerializedName(SERIALIZED_NAME_TIME_ZONE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TimeZoneEnum timeZone; public static final String SERIALIZED_NAME_TIME_BLOCKS = "time_blocks"; @SerializedName(SERIALIZED_NAME_TIME_BLOCKS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List timeBlocks = new ArrayList<>(); public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5() { } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 ruleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; return this; } @@ -786,17 +788,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 ruleType(@javax.ann * The type of the escalation path rule * @return ruleType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RuleTypeEnum getRuleType() { return ruleType; } - public void setRuleType(@javax.annotation.Nonnull RuleTypeEnum ruleType) { + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { this.ruleType = ruleType; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 timeZone(@javax.annotation.Nonnull TimeZoneEnum timeZone) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 timeZone(@jakarta.annotation.Nonnull TimeZoneEnum timeZone) { this.timeZone = timeZone; return this; } @@ -805,17 +807,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 timeZone(@javax.ann * Time zone for the deferral window * @return timeZone */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TimeZoneEnum getTimeZone() { return timeZone; } - public void setTimeZone(@javax.annotation.Nonnull TimeZoneEnum timeZone) { + public void setTimeZone(@jakarta.annotation.Nonnull TimeZoneEnum timeZone) { this.timeZone = timeZone; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 timeBlocks(@javax.annotation.Nonnull List timeBlocks) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 timeBlocks(@jakarta.annotation.Nonnull List timeBlocks) { this.timeBlocks = timeBlocks; return this; } @@ -832,12 +834,12 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 addTimeBlocksItem(N * Time windows during which alerts are deferred * @return timeBlocks */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getTimeBlocks() { return timeBlocks; } - public void setTimeBlocks(@javax.annotation.Nonnull List timeBlocks) { + public void setTimeBlocks(@jakarta.annotation.Nonnull List timeBlocks) { this.timeBlocks = timeBlocks; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.java index 3ab98c8a..f936954e 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner.java @@ -49,67 +49,67 @@ /** * NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner { public static final String SERIALIZED_NAME_MONDAY = "monday"; @SerializedName(SERIALIZED_NAME_MONDAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean monday = false; public static final String SERIALIZED_NAME_TUESDAY = "tuesday"; @SerializedName(SERIALIZED_NAME_TUESDAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean tuesday = false; public static final String SERIALIZED_NAME_WEDNESDAY = "wednesday"; @SerializedName(SERIALIZED_NAME_WEDNESDAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean wednesday = false; public static final String SERIALIZED_NAME_THURSDAY = "thursday"; @SerializedName(SERIALIZED_NAME_THURSDAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean thursday = false; public static final String SERIALIZED_NAME_FRIDAY = "friday"; @SerializedName(SERIALIZED_NAME_FRIDAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean friday = false; public static final String SERIALIZED_NAME_SATURDAY = "saturday"; @SerializedName(SERIALIZED_NAME_SATURDAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean saturday = false; public static final String SERIALIZED_NAME_SUNDAY = "sunday"; @SerializedName(SERIALIZED_NAME_SUNDAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean sunday = false; public static final String SERIALIZED_NAME_START_TIME = "start_time"; @SerializedName(SERIALIZED_NAME_START_TIME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String startTime; public static final String SERIALIZED_NAME_END_TIME = "end_time"; @SerializedName(SERIALIZED_NAME_END_TIME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String endTime; public static final String SERIALIZED_NAME_ALL_DAY = "all_day"; @SerializedName(SERIALIZED_NAME_ALL_DAY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean allDay = false; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner() { } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner monday(@javax.annotation.Nullable Boolean monday) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner monday(@jakarta.annotation.Nullable Boolean monday) { this.monday = monday; return this; } @@ -118,17 +118,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner mond * Get monday * @return monday */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getMonday() { return monday; } - public void setMonday(@javax.annotation.Nullable Boolean monday) { + public void setMonday(@jakarta.annotation.Nullable Boolean monday) { this.monday = monday; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner tuesday(@javax.annotation.Nullable Boolean tuesday) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner tuesday(@jakarta.annotation.Nullable Boolean tuesday) { this.tuesday = tuesday; return this; } @@ -137,17 +137,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner tues * Get tuesday * @return tuesday */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getTuesday() { return tuesday; } - public void setTuesday(@javax.annotation.Nullable Boolean tuesday) { + public void setTuesday(@jakarta.annotation.Nullable Boolean tuesday) { this.tuesday = tuesday; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner wednesday(@javax.annotation.Nullable Boolean wednesday) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner wednesday(@jakarta.annotation.Nullable Boolean wednesday) { this.wednesday = wednesday; return this; } @@ -156,17 +156,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner wedn * Get wednesday * @return wednesday */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getWednesday() { return wednesday; } - public void setWednesday(@javax.annotation.Nullable Boolean wednesday) { + public void setWednesday(@jakarta.annotation.Nullable Boolean wednesday) { this.wednesday = wednesday; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner thursday(@javax.annotation.Nullable Boolean thursday) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner thursday(@jakarta.annotation.Nullable Boolean thursday) { this.thursday = thursday; return this; } @@ -175,17 +175,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner thur * Get thursday * @return thursday */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getThursday() { return thursday; } - public void setThursday(@javax.annotation.Nullable Boolean thursday) { + public void setThursday(@jakarta.annotation.Nullable Boolean thursday) { this.thursday = thursday; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner friday(@javax.annotation.Nullable Boolean friday) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner friday(@jakarta.annotation.Nullable Boolean friday) { this.friday = friday; return this; } @@ -194,17 +194,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner frid * Get friday * @return friday */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getFriday() { return friday; } - public void setFriday(@javax.annotation.Nullable Boolean friday) { + public void setFriday(@jakarta.annotation.Nullable Boolean friday) { this.friday = friday; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner saturday(@javax.annotation.Nullable Boolean saturday) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner saturday(@jakarta.annotation.Nullable Boolean saturday) { this.saturday = saturday; return this; } @@ -213,17 +213,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner satu * Get saturday * @return saturday */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getSaturday() { return saturday; } - public void setSaturday(@javax.annotation.Nullable Boolean saturday) { + public void setSaturday(@jakarta.annotation.Nullable Boolean saturday) { this.saturday = saturday; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner sunday(@javax.annotation.Nullable Boolean sunday) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner sunday(@jakarta.annotation.Nullable Boolean sunday) { this.sunday = sunday; return this; } @@ -232,17 +232,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner sund * Get sunday * @return sunday */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getSunday() { return sunday; } - public void setSunday(@javax.annotation.Nullable Boolean sunday) { + public void setSunday(@jakarta.annotation.Nullable Boolean sunday) { this.sunday = sunday; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner startTime(@javax.annotation.Nullable String startTime) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner startTime(@jakarta.annotation.Nullable String startTime) { this.startTime = startTime; return this; } @@ -251,17 +251,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner star * Formatted as HH:MM * @return startTime */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getStartTime() { return startTime; } - public void setStartTime(@javax.annotation.Nullable String startTime) { + public void setStartTime(@jakarta.annotation.Nullable String startTime) { this.startTime = startTime; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner endTime(@javax.annotation.Nullable String endTime) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner endTime(@jakarta.annotation.Nullable String endTime) { this.endTime = endTime; return this; } @@ -270,17 +270,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner endT * Formatted as HH:MM * @return endTime */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getEndTime() { return endTime; } - public void setEndTime(@javax.annotation.Nullable String endTime) { + public void setEndTime(@jakarta.annotation.Nullable String endTime) { this.endTime = endTime; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner allDay(@javax.annotation.Nullable Boolean allDay) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner allDay(@jakarta.annotation.Nullable Boolean allDay) { this.allDay = allDay; return this; } @@ -289,17 +289,17 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner allD * Get allDay * @return allDay */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getAllDay() { return allDay; } - public void setAllDay(@javax.annotation.Nullable Boolean allDay) { + public void setAllDay(@jakarta.annotation.Nullable Boolean allDay) { this.allDay = allDay; } - public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner position(@javax.annotation.Nullable Integer position) { + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -308,12 +308,12 @@ public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner posi * Get position * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.java new file mode 100644 index 00000000..1df2a068 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.java @@ -0,0 +1,399 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 { + /** + * The type of the escalation path rule + */ + @JsonAdapter(RuleTypeEnum.Adapter.class) + public enum RuleTypeEnum { + SOURCE("source"); + + private String value; + + RuleTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RuleTypeEnum fromValue(String value) { + for (RuleTypeEnum b : RuleTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RuleTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RuleTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RuleTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RuleTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; + @SerializedName(SERIALIZED_NAME_RULE_TYPE) + @jakarta.annotation.Nonnull + private RuleTypeEnum ruleType; + + /** + * How the alert source should be matched + */ + @JsonAdapter(OperatorEnum.Adapter.class) + public enum OperatorEnum { + IS("is"), + + IS_NOT("is_not"), + + IS_ONE_OF("is_one_of"), + + IS_NOT_ONE_OF("is_not_one_of"); + + private String value; + + OperatorEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static OperatorEnum fromValue(String value) { + for (OperatorEnum b : OperatorEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final OperatorEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public OperatorEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return OperatorEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + OperatorEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @jakarta.annotation.Nonnull + private OperatorEnum operator; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @jakarta.annotation.Nonnull + private List values = new ArrayList<>(); + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6() { + } + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { + this.ruleType = ruleType; + return this; + } + + /** + * The type of the escalation path rule + * @return ruleType + */ + @jakarta.annotation.Nonnull + public RuleTypeEnum getRuleType() { + return ruleType; + } + + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { + this.ruleType = ruleType; + } + + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 operator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + return this; + } + + /** + * How the alert source should be matched + * @return operator + */ + @jakarta.annotation.Nonnull + public OperatorEnum getOperator() { + return operator; + } + + public void setOperator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + } + + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 values(@jakarta.annotation.Nonnull List values) { + this.values = values; + return this; + } + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 addValuesItem(String valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); + } + this.values.add(valuesItem); + return this; + } + + /** + * Alert source values to match against (e.g., manual, datadog) + * @return values + */ + @jakarta.annotation.Nonnull + public List getValues() { + return values; + } + + public void setValues(@jakarta.annotation.Nonnull List values) { + this.values = values; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 newEscalationPolicyPathDataAttributesRulesInnerOneOf6 = (NewEscalationPolicyPathDataAttributesRulesInnerOneOf6) o; + return Objects.equals(this.ruleType, newEscalationPolicyPathDataAttributesRulesInnerOneOf6.ruleType) && + Objects.equals(this.operator, newEscalationPolicyPathDataAttributesRulesInnerOneOf6.operator) && + Objects.equals(this.values, newEscalationPolicyPathDataAttributesRulesInnerOneOf6.values); + } + + @Override + public int hashCode() { + return Objects.hash(ruleType, operator, values); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 {\n"); + sb.append(" ruleType: ").append(toIndentedString(ruleType)).append("\n"); + sb.append(" operator: ").append(toIndentedString(operator)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("rule_type"); + openapiFields.add("operator"); + openapiFields.add("values"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("rule_type"); + openapiRequiredFields.add("operator"); + openapiRequiredFields.add("values"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 is not found in the empty JSON string", NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("rule_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `rule_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("rule_type").toString())); + } + // validate the required field `rule_type` + RuleTypeEnum.validateJsonElement(jsonObj.get("rule_type")); + if (!jsonObj.get("operator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `operator` to be a primitive type in the JSON string but got `%s`", jsonObj.get("operator").toString())); + } + // validate the required field `operator` + OperatorEnum.validateJsonElement(jsonObj.get("operator")); + // ensure the required json array is present + if (jsonObj.get("values") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `values` to be an array in the JSON string but got `%s`", jsonObj.get("values").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf6' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + * @throws IOException if the JSON string is invalid with respect to NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + */ + public static NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.class); + } + + /** + * Convert an instance of NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.java new file mode 100644 index 00000000..bdcc974e --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.java @@ -0,0 +1,351 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 { + /** + * The type of the escalation path rule + */ + @JsonAdapter(RuleTypeEnum.Adapter.class) + public enum RuleTypeEnum { + RELATED_INCIDENTS("related_incidents"); + + private String value; + + RuleTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RuleTypeEnum fromValue(String value) { + for (RuleTypeEnum b : RuleTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RuleTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RuleTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RuleTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RuleTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_RULE_TYPE = "rule_type"; + @SerializedName(SERIALIZED_NAME_RULE_TYPE) + @jakarta.annotation.Nonnull + private RuleTypeEnum ruleType; + + /** + * Whether the alert must (or must not) have related incidents + */ + @JsonAdapter(OperatorEnum.Adapter.class) + public enum OperatorEnum { + IS_SET("is_set"), + + IS_NOT_SET("is_not_set"); + + private String value; + + OperatorEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static OperatorEnum fromValue(String value) { + for (OperatorEnum b : OperatorEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final OperatorEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public OperatorEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return OperatorEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + OperatorEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @jakarta.annotation.Nonnull + private OperatorEnum operator; + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf7() { + } + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 ruleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { + this.ruleType = ruleType; + return this; + } + + /** + * The type of the escalation path rule + * @return ruleType + */ + @jakarta.annotation.Nonnull + public RuleTypeEnum getRuleType() { + return ruleType; + } + + public void setRuleType(@jakarta.annotation.Nonnull RuleTypeEnum ruleType) { + this.ruleType = ruleType; + } + + + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 operator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + return this; + } + + /** + * Whether the alert must (or must not) have related incidents + * @return operator + */ + @jakarta.annotation.Nonnull + public OperatorEnum getOperator() { + return operator; + } + + public void setOperator(@jakarta.annotation.Nonnull OperatorEnum operator) { + this.operator = operator; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 newEscalationPolicyPathDataAttributesRulesInnerOneOf7 = (NewEscalationPolicyPathDataAttributesRulesInnerOneOf7) o; + return Objects.equals(this.ruleType, newEscalationPolicyPathDataAttributesRulesInnerOneOf7.ruleType) && + Objects.equals(this.operator, newEscalationPolicyPathDataAttributesRulesInnerOneOf7.operator); + } + + @Override + public int hashCode() { + return Objects.hash(ruleType, operator); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 {\n"); + sb.append(" ruleType: ").append(toIndentedString(ruleType)).append("\n"); + sb.append(" operator: ").append(toIndentedString(operator)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("rule_type"); + openapiFields.add("operator"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("rule_type"); + openapiRequiredFields.add("operator"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 is not found in the empty JSON string", NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("rule_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `rule_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("rule_type").toString())); + } + // validate the required field `rule_type` + RuleTypeEnum.validateJsonElement(jsonObj.get("rule_type")); + if (!jsonObj.get("operator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `operator` to be a primitive type in the JSON string but got `%s`", jsonObj.get("operator").toString())); + } + // validate the required field `operator` + OperatorEnum.validateJsonElement(jsonObj.get("operator")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf7' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + * @throws IOException if the JSON string is invalid with respect to NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + */ + public static NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.class); + } + + /** + * Convert an instance of NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.java b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.java index 9d939df1..6d67bcf4 100644 --- a/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.java +++ b/src/main/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTimeRestrictionsInner.java @@ -48,7 +48,7 @@ /** * NewEscalationPolicyPathDataAttributesTimeRestrictionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewEscalationPolicyPathDataAttributesTimeRestrictionsInner { /** * Gets or Sets startDay diff --git a/src/main/java/com/rootly/client/model/NewFormField.java b/src/main/java/com/rootly/client/model/NewFormField.java index 86226ce3..d007022d 100644 --- a/src/main/java/com/rootly/client/model/NewFormField.java +++ b/src/main/java/com/rootly/client/model/NewFormField.java @@ -49,7 +49,7 @@ /** * NewFormField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFormFieldData.java b/src/main/java/com/rootly/client/model/NewFormFieldData.java index a7b85481..d911e958 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldData.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldData.java @@ -49,7 +49,7 @@ /** * NewFormFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFormFieldDataAttributes.java b/src/main/java/com/rootly/client/model/NewFormFieldDataAttributes.java index a5254dd2..883221ed 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldDataAttributes.java @@ -51,8 +51,14 @@ /** * NewFormFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + /** * The kind of the form field */ @@ -82,6 +88,8 @@ public enum KindEnum { TEAMS("teams"), + STATUS("status"), + VISIBILITY("visibility"), MARK_AS_TEST("mark_as_test"), @@ -254,7 +262,13 @@ public enum ValueKindEnum { USER("user"), - CATALOG_ENTITY("catalog_entity"); + CATALOG_ENTITY("catalog_entity"), + + ENVIRONMENT("environment"), + + CAUSE("cause"), + + INCIDENT_TYPE("incident_type"); private String value; @@ -344,9 +358,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List defaultValues = new ArrayList<>(); + public static final String SERIALIZED_NAME_AUTO_SET_BY_CATALOG_PROPERTY_ID = "auto_set_by_catalog_property_id"; + @SerializedName(SERIALIZED_NAME_AUTO_SET_BY_CATALOG_PROPERTY_ID) + @jakarta.annotation.Nullable + private String autoSetByCatalogPropertyId; + public NewFormFieldDataAttributes() { } + @Deprecated + public NewFormFieldDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewFormFieldDataAttributes kind(@jakarta.annotation.Nonnull KindEnum kind) { this.kind = kind; return this; @@ -580,6 +622,25 @@ public void setDefaultValues(@jakarta.annotation.Nullable List defaultVa } + public NewFormFieldDataAttributes autoSetByCatalogPropertyId(@jakarta.annotation.Nullable String autoSetByCatalogPropertyId) { + this.autoSetByCatalogPropertyId = autoSetByCatalogPropertyId; + return this; + } + + /** + * Catalog property ID to auto-set this form field. Only reference-kind catalog properties are supported. + * @return autoSetByCatalogPropertyId + */ + @jakarta.annotation.Nullable + public String getAutoSetByCatalogPropertyId() { + return autoSetByCatalogPropertyId; + } + + public void setAutoSetByCatalogPropertyId(@jakarta.annotation.Nullable String autoSetByCatalogPropertyId) { + this.autoSetByCatalogPropertyId = autoSetByCatalogPropertyId; + } + + @Override public boolean equals(Object o) { @@ -590,7 +651,8 @@ public boolean equals(Object o) { return false; } NewFormFieldDataAttributes newFormFieldDataAttributes = (NewFormFieldDataAttributes) o; - return Objects.equals(this.kind, newFormFieldDataAttributes.kind) && + return Objects.equals(this.slug, newFormFieldDataAttributes.slug) && + Objects.equals(this.kind, newFormFieldDataAttributes.kind) && Objects.equals(this.inputKind, newFormFieldDataAttributes.inputKind) && Objects.equals(this.valueKind, newFormFieldDataAttributes.valueKind) && Objects.equals(this.valueKindCatalogId, newFormFieldDataAttributes.valueKindCatalogId) && @@ -600,7 +662,8 @@ public boolean equals(Object o) { Objects.equals(this.required, newFormFieldDataAttributes.required) && Objects.equals(this.showOnIncidentDetails, newFormFieldDataAttributes.showOnIncidentDetails) && Objects.equals(this.enabled, newFormFieldDataAttributes.enabled) && - Objects.equals(this.defaultValues, newFormFieldDataAttributes.defaultValues); + Objects.equals(this.defaultValues, newFormFieldDataAttributes.defaultValues) && + Objects.equals(this.autoSetByCatalogPropertyId, newFormFieldDataAttributes.autoSetByCatalogPropertyId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -609,7 +672,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(kind, inputKind, valueKind, valueKindCatalogId, name, description, shown, required, showOnIncidentDetails, enabled, defaultValues); + return Objects.hash(slug, kind, inputKind, valueKind, valueKindCatalogId, name, description, shown, required, showOnIncidentDetails, enabled, defaultValues, autoSetByCatalogPropertyId); } private static int hashCodeNullable(JsonNullable a) { @@ -623,6 +686,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewFormFieldDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" inputKind: ").append(toIndentedString(inputKind)).append("\n"); sb.append(" valueKind: ").append(toIndentedString(valueKind)).append("\n"); @@ -634,6 +698,7 @@ public String toString() { sb.append(" showOnIncidentDetails: ").append(toIndentedString(showOnIncidentDetails)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" defaultValues: ").append(toIndentedString(defaultValues)).append("\n"); + sb.append(" autoSetByCatalogPropertyId: ").append(toIndentedString(autoSetByCatalogPropertyId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -656,6 +721,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("kind"); openapiFields.add("input_kind"); openapiFields.add("value_kind"); @@ -667,6 +733,7 @@ private String toIndentedString(Object o) { openapiFields.add("show_on_incident_details"); openapiFields.add("enabled"); openapiFields.add("default_values"); + openapiFields.add("auto_set_by_catalog_property_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -702,6 +769,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("kind").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); } @@ -742,6 +812,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("default_values") != null && !jsonObj.get("default_values").isJsonNull() && !jsonObj.get("default_values").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `default_values` to be an array in the JSON string but got `%s`", jsonObj.get("default_values").toString())); } + if ((jsonObj.get("auto_set_by_catalog_property_id") != null && !jsonObj.get("auto_set_by_catalog_property_id").isJsonNull()) && !jsonObj.get("auto_set_by_catalog_property_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `auto_set_by_catalog_property_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("auto_set_by_catalog_property_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewFormFieldOption.java b/src/main/java/com/rootly/client/model/NewFormFieldOption.java index 1e99ac1a..fdbf1df3 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldOption.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldOption.java @@ -49,7 +49,7 @@ /** * NewFormFieldOption */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldOption { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFormFieldOptionData.java b/src/main/java/com/rootly/client/model/NewFormFieldOptionData.java index 955e152f..ebb86133 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldOptionData.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldOptionData.java @@ -49,7 +49,7 @@ /** * NewFormFieldOptionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldOptionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFormFieldOptionDataAttributes.java b/src/main/java/com/rootly/client/model/NewFormFieldOptionDataAttributes.java index 6570d556..9a3b852c 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldOptionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldOptionDataAttributes.java @@ -48,7 +48,7 @@ /** * NewFormFieldOptionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldOptionDataAttributes { public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPlacement.java b/src/main/java/com/rootly/client/model/NewFormFieldPlacement.java index c56259fb..8776fbf4 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPlacement.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPlacement.java @@ -49,7 +49,7 @@ /** * NewFormFieldPlacement */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPlacement { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPlacementCondition.java b/src/main/java/com/rootly/client/model/NewFormFieldPlacementCondition.java index 6c8bec7a..6f099ceb 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPlacementCondition.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPlacementCondition.java @@ -49,7 +49,7 @@ /** * NewFormFieldPlacementCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPlacementCondition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionData.java b/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionData.java index 7c3da885..b57b2f67 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionData.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionData.java @@ -49,7 +49,7 @@ /** * NewFormFieldPlacementConditionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPlacementConditionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionDataAttributes.java b/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionDataAttributes.java index 77bf61e7..4687ae82 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPlacementConditionDataAttributes.java @@ -50,7 +50,7 @@ /** * NewFormFieldPlacementConditionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPlacementConditionDataAttributes { /** * The resource or attribute the condition applies. diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPlacementData.java b/src/main/java/com/rootly/client/model/NewFormFieldPlacementData.java index 749563bc..58422f88 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPlacementData.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPlacementData.java @@ -49,7 +49,7 @@ /** * NewFormFieldPlacementData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPlacementData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPlacementDataAttributes.java b/src/main/java/com/rootly/client/model/NewFormFieldPlacementDataAttributes.java index 6fa70b23..eba65b60 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPlacementDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPlacementDataAttributes.java @@ -48,7 +48,7 @@ /** * NewFormFieldPlacementDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPlacementDataAttributes { public static final String SERIALIZED_NAME_FORM_SET_ID = "form_set_id"; @SerializedName(SERIALIZED_NAME_FORM_SET_ID) @@ -198,7 +198,7 @@ public NewFormFieldPlacementDataAttributes formSetId(@jakarta.annotation.Nonnull } /** - * The form set this field is placed in. + * The form set this field is placed in. The form set must have the same `resource_type` as the form field, otherwise the request is rejected with 422. * @return formSetId */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPosition.java b/src/main/java/com/rootly/client/model/NewFormFieldPosition.java index 57c628a2..ebde1896 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPosition.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPosition.java @@ -49,7 +49,7 @@ /** * NewFormFieldPosition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPosition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPositionData.java b/src/main/java/com/rootly/client/model/NewFormFieldPositionData.java index 8d8cb206..df83df77 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPositionData.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPositionData.java @@ -49,7 +49,7 @@ /** * NewFormFieldPositionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPositionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFormFieldPositionDataAttributes.java b/src/main/java/com/rootly/client/model/NewFormFieldPositionDataAttributes.java index 9bc574bf..2ddafdcd 100644 --- a/src/main/java/com/rootly/client/model/NewFormFieldPositionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFormFieldPositionDataAttributes.java @@ -48,7 +48,7 @@ /** * NewFormFieldPositionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormFieldPositionDataAttributes { public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) @@ -92,7 +92,15 @@ public enum FormEnum { SLACK_SCHEDULED_INCIDENT_FORM("slack_scheduled_incident_form"), - SLACK_UPDATE_SCHEDULED_INCIDENT_FORM("slack_update_scheduled_incident_form"); + SLACK_UPDATE_SCHEDULED_INCIDENT_FORM("slack_update_scheduled_incident_form"), + + WEB_ACTION_ITEM_FORM("web_action_item_form"), + + SLACK_ACTION_ITEM_FORM("slack_action_item_form"), + + WEB_TASK_FORM("web_task_form"), + + SLACK_TASK_FORM("slack_task_form"); private String value; diff --git a/src/main/java/com/rootly/client/model/NewFormSet.java b/src/main/java/com/rootly/client/model/NewFormSet.java index 02310598..bc933dfb 100644 --- a/src/main/java/com/rootly/client/model/NewFormSet.java +++ b/src/main/java/com/rootly/client/model/NewFormSet.java @@ -49,7 +49,7 @@ /** * NewFormSet */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormSet { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFormSetCondition.java b/src/main/java/com/rootly/client/model/NewFormSetCondition.java index b9de2f2f..56f76e53 100644 --- a/src/main/java/com/rootly/client/model/NewFormSetCondition.java +++ b/src/main/java/com/rootly/client/model/NewFormSetCondition.java @@ -49,7 +49,7 @@ /** * NewFormSetCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormSetCondition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFormSetConditionData.java b/src/main/java/com/rootly/client/model/NewFormSetConditionData.java index 09372ab0..50738fdf 100644 --- a/src/main/java/com/rootly/client/model/NewFormSetConditionData.java +++ b/src/main/java/com/rootly/client/model/NewFormSetConditionData.java @@ -49,7 +49,7 @@ /** * NewFormSetConditionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormSetConditionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFormSetConditionDataAttributes.java b/src/main/java/com/rootly/client/model/NewFormSetConditionDataAttributes.java index 43568630..f08bc5f8 100644 --- a/src/main/java/com/rootly/client/model/NewFormSetConditionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFormSetConditionDataAttributes.java @@ -50,7 +50,7 @@ /** * NewFormSetConditionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormSetConditionDataAttributes { public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/NewFormSetData.java b/src/main/java/com/rootly/client/model/NewFormSetData.java index 2cfee151..6863ec6d 100644 --- a/src/main/java/com/rootly/client/model/NewFormSetData.java +++ b/src/main/java/com/rootly/client/model/NewFormSetData.java @@ -49,7 +49,7 @@ /** * NewFormSetData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormSetData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFormSetDataAttributes.java b/src/main/java/com/rootly/client/model/NewFormSetDataAttributes.java index bcaa5584..32911a66 100644 --- a/src/main/java/com/rootly/client/model/NewFormSetDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFormSetDataAttributes.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,8 +51,14 @@ /** * NewFormSetDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFormSetDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -65,6 +72,29 @@ public class NewFormSetDataAttributes { public NewFormSetDataAttributes() { } + @Deprecated + public NewFormSetDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewFormSetDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -98,7 +128,7 @@ public NewFormSetDataAttributes addFormsItem(String formsItem) { } /** - * The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form` + * The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`, `google_chat_update_incident_form`, `microsoft_teams_new_incident_form` * @return forms */ @jakarta.annotation.Nonnull @@ -121,19 +151,32 @@ public boolean equals(Object o) { return false; } NewFormSetDataAttributes newFormSetDataAttributes = (NewFormSetDataAttributes) o; - return Objects.equals(this.name, newFormSetDataAttributes.name) && + return Objects.equals(this.slug, newFormSetDataAttributes.slug) && + Objects.equals(this.name, newFormSetDataAttributes.name) && Objects.equals(this.forms, newFormSetDataAttributes.forms); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(name, forms); + return Objects.hash(slug, name, forms); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewFormSetDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" forms: ").append(toIndentedString(forms)).append("\n"); sb.append("}"); @@ -158,6 +201,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("forms"); @@ -195,6 +239,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewFunctionality.java b/src/main/java/com/rootly/client/model/NewFunctionality.java index a81098a9..f8c9cc5c 100644 --- a/src/main/java/com/rootly/client/model/NewFunctionality.java +++ b/src/main/java/com/rootly/client/model/NewFunctionality.java @@ -49,7 +49,7 @@ /** * NewFunctionality */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFunctionality { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewFunctionalityData.java b/src/main/java/com/rootly/client/model/NewFunctionalityData.java index 6d6ea45a..638c6d02 100644 --- a/src/main/java/com/rootly/client/model/NewFunctionalityData.java +++ b/src/main/java/com/rootly/client/model/NewFunctionalityData.java @@ -49,7 +49,7 @@ /** * NewFunctionalityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFunctionalityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewFunctionalityDataAttributes.java b/src/main/java/com/rootly/client/model/NewFunctionalityDataAttributes.java index d2d7954b..1dc665fd 100644 --- a/src/main/java/com/rootly/client/model/NewFunctionalityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewFunctionalityDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,8 +54,14 @@ /** * NewFunctionalityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewFunctionalityDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -204,6 +211,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List ownerUserIds; + public static final String SERIALIZED_NAME_ESCALATION_POLICY_ID = "escalation_policy_id"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_ID) + @jakarta.annotation.Nullable + private String escalationPolicyId; + public static final String SERIALIZED_NAME_SLACK_CHANNELS = "slack_channels"; @SerializedName(SERIALIZED_NAME_SLACK_CHANNELS) @jakarta.annotation.Nullable @@ -214,9 +226,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public NewFunctionalityDataAttributes() { } + @Deprecated + public NewFunctionalityDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewFunctionalityDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -261,7 +301,7 @@ public NewFunctionalityDataAttributes publicDescription(@jakarta.annotation.Null } /** - * The public description of the functionality + * The status page description of the functionality * @return publicDescription */ @jakarta.annotation.Nullable @@ -618,6 +658,25 @@ public void setOwnerUserIds(@jakarta.annotation.Nullable List ownerUser } + public NewFunctionalityDataAttributes escalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + return this; + } + + /** + * The escalation policy id of the functionality + * @return escalationPolicyId + */ + @jakarta.annotation.Nullable + public String getEscalationPolicyId() { + return escalationPolicyId; + } + + public void setEscalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + } + + public NewFunctionalityDataAttributes slackChannels(@jakarta.annotation.Nullable List slackChannels) { this.slackChannels = slackChannels; return this; @@ -672,6 +731,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public NewFunctionalityDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this functionality. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -682,7 +768,8 @@ public boolean equals(Object o) { return false; } NewFunctionalityDataAttributes newFunctionalityDataAttributes = (NewFunctionalityDataAttributes) o; - return Objects.equals(this.name, newFunctionalityDataAttributes.name) && + return Objects.equals(this.slug, newFunctionalityDataAttributes.slug) && + Objects.equals(this.name, newFunctionalityDataAttributes.name) && Objects.equals(this.description, newFunctionalityDataAttributes.description) && Objects.equals(this.publicDescription, newFunctionalityDataAttributes.publicDescription) && Objects.equals(this.notifyEmails, newFunctionalityDataAttributes.notifyEmails) && @@ -701,8 +788,10 @@ public boolean equals(Object o) { Objects.equals(this.serviceIds, newFunctionalityDataAttributes.serviceIds) && Objects.equals(this.ownerGroupIds, newFunctionalityDataAttributes.ownerGroupIds) && Objects.equals(this.ownerUserIds, newFunctionalityDataAttributes.ownerUserIds) && + Objects.equals(this.escalationPolicyId, newFunctionalityDataAttributes.escalationPolicyId) && Objects.equals(this.slackChannels, newFunctionalityDataAttributes.slackChannels) && - Objects.equals(this.slackAliases, newFunctionalityDataAttributes.slackAliases); + Objects.equals(this.slackAliases, newFunctionalityDataAttributes.slackAliases) && + Objects.equals(this.properties, newFunctionalityDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -711,7 +800,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, showUptime, showUptimeLastDays, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, slackChannels, slackAliases); + return Objects.hash(slug, name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, showUptime, showUptimeLastDays, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, escalationPolicyId, slackChannels, slackAliases, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -725,6 +814,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewFunctionalityDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); @@ -744,8 +834,10 @@ public String toString() { sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" ownerUserIds: ").append(toIndentedString(ownerUserIds)).append("\n"); + sb.append(" escalationPolicyId: ").append(toIndentedString(escalationPolicyId)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -768,6 +860,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("public_description"); @@ -787,8 +880,10 @@ private String toIndentedString(Object o) { openapiFields.add("service_ids"); openapiFields.add("owner_group_ids"); openapiFields.add("owner_user_ids"); + openapiFields.add("escalation_policy_id"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -823,6 +918,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -880,6 +978,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("owner_user_ids") != null && !jsonObj.get("owner_user_ids").isJsonNull() && !jsonObj.get("owner_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `owner_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_user_ids").toString())); } + if ((jsonObj.get("escalation_policy_id") != null && !jsonObj.get("escalation_policy_id").isJsonNull()) && !jsonObj.get("escalation_policy_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_id").toString())); + } if (jsonObj.get("slack_channels") != null && !jsonObj.get("slack_channels").isJsonNull()) { JsonArray jsonArrayslackChannels = jsonObj.getAsJsonArray("slack_channels"); if (jsonArrayslackChannels != null) { @@ -908,6 +1009,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewHeartbeat.java b/src/main/java/com/rootly/client/model/NewHeartbeat.java index e8159d41..ee2ffffd 100644 --- a/src/main/java/com/rootly/client/model/NewHeartbeat.java +++ b/src/main/java/com/rootly/client/model/NewHeartbeat.java @@ -49,7 +49,7 @@ /** * NewHeartbeat */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewHeartbeat { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewHeartbeatData.java b/src/main/java/com/rootly/client/model/NewHeartbeatData.java index bc101125..11196c17 100644 --- a/src/main/java/com/rootly/client/model/NewHeartbeatData.java +++ b/src/main/java/com/rootly/client/model/NewHeartbeatData.java @@ -49,7 +49,7 @@ /** * NewHeartbeatData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewHeartbeatData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewHeartbeatDataAttributes.java b/src/main/java/com/rootly/client/model/NewHeartbeatDataAttributes.java index 69498d7d..60604fea 100644 --- a/src/main/java/com/rootly/client/model/NewHeartbeatDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewHeartbeatDataAttributes.java @@ -20,7 +20,9 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,7 +51,7 @@ /** * NewHeartbeatDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewHeartbeatDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -146,7 +148,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti private String notificationTargetId; /** - * Gets or Sets notificationTargetType + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(NotificationTargetTypeEnum.Adapter.class) public enum NotificationTargetTypeEnum { @@ -156,7 +158,9 @@ public enum NotificationTargetTypeEnum { SERVICE("Service"), - ESCALATION_POLICY("EscalationPolicy"); + ESCALATION_POLICY("EscalationPolicy"), + + FUNCTIONALITY("Functionality"); private String value; @@ -206,6 +210,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private NotificationTargetTypeEnum notificationTargetType; + public static final String SERIALIZED_NAME_OWNER_GROUP_IDS = "owner_group_ids"; + @SerializedName(SERIALIZED_NAME_OWNER_GROUP_IDS) + @jakarta.annotation.Nullable + private List ownerGroupIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_ENABLED = "enabled"; @SerializedName(SERIALIZED_NAME_ENABLED) @jakarta.annotation.Nullable @@ -372,7 +381,7 @@ public NewHeartbeatDataAttributes notificationTargetType(@jakarta.annotation.Non } /** - * Get notificationTargetType + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. * @return notificationTargetType */ @jakarta.annotation.Nonnull @@ -385,6 +394,33 @@ public void setNotificationTargetType(@jakarta.annotation.Nonnull NotificationTa } + public NewHeartbeatDataAttributes ownerGroupIds(@jakarta.annotation.Nullable List ownerGroupIds) { + this.ownerGroupIds = ownerGroupIds; + return this; + } + + public NewHeartbeatDataAttributes addOwnerGroupIdsItem(String ownerGroupIdsItem) { + if (this.ownerGroupIds == null) { + this.ownerGroupIds = new ArrayList<>(); + } + this.ownerGroupIds.add(ownerGroupIdsItem); + return this; + } + + /** + * List of team IDs that own this heartbeat + * @return ownerGroupIds + */ + @jakarta.annotation.Nullable + public List getOwnerGroupIds() { + return ownerGroupIds; + } + + public void setOwnerGroupIds(@jakarta.annotation.Nullable List ownerGroupIds) { + this.ownerGroupIds = ownerGroupIds; + } + + public NewHeartbeatDataAttributes enabled(@jakarta.annotation.Nullable Boolean enabled) { this.enabled = enabled; return this; @@ -423,6 +459,7 @@ public boolean equals(Object o) { Objects.equals(this.intervalUnit, newHeartbeatDataAttributes.intervalUnit) && Objects.equals(this.notificationTargetId, newHeartbeatDataAttributes.notificationTargetId) && Objects.equals(this.notificationTargetType, newHeartbeatDataAttributes.notificationTargetType) && + Objects.equals(this.ownerGroupIds, newHeartbeatDataAttributes.ownerGroupIds) && Objects.equals(this.enabled, newHeartbeatDataAttributes.enabled); } @@ -432,7 +469,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, alertSummary, alertDescription, alertUrgencyId, interval, intervalUnit, notificationTargetId, notificationTargetType, enabled); + return Objects.hash(name, description, alertSummary, alertDescription, alertUrgencyId, interval, intervalUnit, notificationTargetId, notificationTargetType, ownerGroupIds, enabled); } private static int hashCodeNullable(JsonNullable a) { @@ -455,6 +492,7 @@ public String toString() { sb.append(" intervalUnit: ").append(toIndentedString(intervalUnit)).append("\n"); sb.append(" notificationTargetId: ").append(toIndentedString(notificationTargetId)).append("\n"); sb.append(" notificationTargetType: ").append(toIndentedString(notificationTargetType)).append("\n"); + sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append("}"); return sb.toString(); @@ -487,6 +525,7 @@ private String toIndentedString(Object o) { openapiFields.add("interval_unit"); openapiFields.add("notification_target_id"); openapiFields.add("notification_target_type"); + openapiFields.add("owner_group_ids"); openapiFields.add("enabled"); // a set of required properties/fields (JSON key names) @@ -555,6 +594,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the required field `notification_target_type` NotificationTargetTypeEnum.validateJsonElement(jsonObj.get("notification_target_type")); + // ensure the optional json data is an array if present + if (jsonObj.get("owner_group_ids") != null && !jsonObj.get("owner_group_ids").isJsonNull() && !jsonObj.get("owner_group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `owner_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_group_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewIncident.java b/src/main/java/com/rootly/client/model/NewIncident.java index 24617e1f..02386640 100644 --- a/src/main/java/com/rootly/client/model/NewIncident.java +++ b/src/main/java/com/rootly/client/model/NewIncident.java @@ -49,7 +49,7 @@ /** * NewIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentActionItem.java b/src/main/java/com/rootly/client/model/NewIncidentActionItem.java index 616e422c..af7015ac 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentActionItem.java +++ b/src/main/java/com/rootly/client/model/NewIncidentActionItem.java @@ -49,7 +49,7 @@ /** * NewIncidentActionItem */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentActionItem { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentActionItemData.java b/src/main/java/com/rootly/client/model/NewIncidentActionItemData.java index d436dbcf..f344e694 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentActionItemData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentActionItemData.java @@ -49,7 +49,7 @@ /** * NewIncidentActionItemData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentActionItemData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributes.java index 4512ecd4..ca122a18 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -51,7 +52,7 @@ /** * NewIncidentActionItemDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentActionItemDataAttributes { public static final String SERIALIZED_NAME_SUMMARY = "summary"; @SerializedName(SERIALIZED_NAME_SUMMARY) @@ -270,6 +271,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String jiraIssueUrl; + public static final String SERIALIZED_NAME_FORM_FIELD_SELECTIONS = "form_field_selections"; + @SerializedName(SERIALIZED_NAME_FORM_FIELD_SELECTIONS) + @jakarta.annotation.Nullable + private List formFieldSelections; + public NewIncidentActionItemDataAttributes() { } @@ -490,6 +496,33 @@ public void setJiraIssueUrl(@jakarta.annotation.Nullable String jiraIssueUrl) { } + public NewIncidentActionItemDataAttributes formFieldSelections(@jakarta.annotation.Nullable List formFieldSelections) { + this.formFieldSelections = formFieldSelections; + return this; + } + + public NewIncidentActionItemDataAttributes addFormFieldSelectionsItem(NewIncidentActionItemDataAttributesFormFieldSelectionsInner formFieldSelectionsItem) { + if (this.formFieldSelections == null) { + this.formFieldSelections = new ArrayList<>(); + } + this.formFieldSelections.add(formFieldSelectionsItem); + return this; + } + + /** + * Custom field values to set on the action item. Ignored unless custom fields for action items are enabled for the organization. + * @return formFieldSelections + */ + @jakarta.annotation.Nullable + public List getFormFieldSelections() { + return formFieldSelections; + } + + public void setFormFieldSelections(@jakarta.annotation.Nullable List formFieldSelections) { + this.formFieldSelections = formFieldSelections; + } + + @Override public boolean equals(Object o) { @@ -510,7 +543,8 @@ public boolean equals(Object o) { Objects.equals(this.dueDate, newIncidentActionItemDataAttributes.dueDate) && Objects.equals(this.jiraIssueId, newIncidentActionItemDataAttributes.jiraIssueId) && Objects.equals(this.jiraIssueKey, newIncidentActionItemDataAttributes.jiraIssueKey) && - Objects.equals(this.jiraIssueUrl, newIncidentActionItemDataAttributes.jiraIssueUrl); + Objects.equals(this.jiraIssueUrl, newIncidentActionItemDataAttributes.jiraIssueUrl) && + Objects.equals(this.formFieldSelections, newIncidentActionItemDataAttributes.formFieldSelections); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -519,7 +553,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(summary, description, kind, assignedToUserId, assignedToGroupIds, priority, status, dueDate, jiraIssueId, jiraIssueKey, jiraIssueUrl); + return Objects.hash(summary, description, kind, assignedToUserId, assignedToGroupIds, priority, status, dueDate, jiraIssueId, jiraIssueKey, jiraIssueUrl, formFieldSelections); } private static int hashCodeNullable(JsonNullable a) { @@ -544,6 +578,7 @@ public String toString() { sb.append(" jiraIssueId: ").append(toIndentedString(jiraIssueId)).append("\n"); sb.append(" jiraIssueKey: ").append(toIndentedString(jiraIssueKey)).append("\n"); sb.append(" jiraIssueUrl: ").append(toIndentedString(jiraIssueUrl)).append("\n"); + sb.append(" formFieldSelections: ").append(toIndentedString(formFieldSelections)).append("\n"); sb.append("}"); return sb.toString(); } @@ -577,6 +612,7 @@ private String toIndentedString(Object o) { openapiFields.add("jira_issue_id"); openapiFields.add("jira_issue_key"); openapiFields.add("jira_issue_url"); + openapiFields.add("form_field_selections"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -654,6 +690,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("jira_issue_url") != null && !jsonObj.get("jira_issue_url").isJsonNull()) && !jsonObj.get("jira_issue_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `jira_issue_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("jira_issue_url").toString())); } + if (jsonObj.get("form_field_selections") != null && !jsonObj.get("form_field_selections").isJsonNull()) { + JsonArray jsonArrayformFieldSelections = jsonObj.getAsJsonArray("form_field_selections"); + if (jsonArrayformFieldSelections != null) { + // ensure the json data is an array + if (!jsonObj.get("form_field_selections").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `form_field_selections` to be an array in the JSON string but got `%s`", jsonObj.get("form_field_selections").toString())); + } + + // validate the optional field `form_field_selections` (array) + for (int i = 0; i < jsonArrayformFieldSelections.size(); i++) { + NewIncidentActionItemDataAttributesFormFieldSelectionsInner.validateJsonElement(jsonArrayformFieldSelections.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.java b/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.java new file mode 100644 index 00000000..84d901e2 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInner.java @@ -0,0 +1,668 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewIncidentActionItemDataAttributesFormFieldSelectionsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewIncidentActionItemDataAttributesFormFieldSelectionsInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; + @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) + @jakarta.annotation.Nonnull + private String formFieldId; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @jakarta.annotation.Nullable + private NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue value; + + public static final String SERIALIZED_NAME_SELECTED_OPTION_IDS = "selected_option_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_OPTION_IDS) + @jakarta.annotation.Nullable + private List selectedOptionIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_USER_IDS = "selected_user_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_USER_IDS) + @jakarta.annotation.Nullable + private List selectedUserIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_GROUP_IDS = "selected_group_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_GROUP_IDS) + @jakarta.annotation.Nullable + private List selectedGroupIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_SERVICE_IDS = "selected_service_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_SERVICE_IDS) + @jakarta.annotation.Nullable + private List selectedServiceIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS = "selected_functionality_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List selectedFunctionalityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS = "selected_catalog_entity_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS) + @jakarta.annotation.Nullable + private List selectedCatalogEntityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_DESTROY = "_destroy"; + @SerializedName(SERIALIZED_NAME_DESTROY) + @jakarta.annotation.Nullable + private Boolean destroy; + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner() { + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * ID of an existing selection. Required when updating or removing a field's existing value. + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner formFieldId(@jakarta.annotation.Nonnull String formFieldId) { + this.formFieldId = formFieldId; + return this; + } + + /** + * ID of the custom field + * @return formFieldId + */ + @jakarta.annotation.Nonnull + public String getFormFieldId() { + return formFieldId; + } + + public void setFormFieldId(@jakarta.annotation.Nonnull String formFieldId) { + this.formFieldId = formFieldId; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner value(@jakarta.annotation.Nullable NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + */ + @jakarta.annotation.Nullable + public NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue getValue() { + return value; + } + + public void setValue(@jakarta.annotation.Nullable NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue value) { + this.value = value; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedOptionIds(@jakarta.annotation.Nullable List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedOptionIdsItem(String selectedOptionIdsItem) { + if (this.selectedOptionIds == null) { + this.selectedOptionIds = new ArrayList<>(); + } + this.selectedOptionIds.add(selectedOptionIdsItem); + return this; + } + + /** + * IDs of the selected custom field options + * @return selectedOptionIds + */ + @jakarta.annotation.Nullable + public List getSelectedOptionIds() { + return selectedOptionIds; + } + + public void setSelectedOptionIds(@jakarta.annotation.Nullable List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedUserIds(@jakarta.annotation.Nullable List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedUserIdsItem(Integer selectedUserIdsItem) { + if (this.selectedUserIds == null) { + this.selectedUserIds = new ArrayList<>(); + } + this.selectedUserIds.add(selectedUserIdsItem); + return this; + } + + /** + * IDs of the selected users + * @return selectedUserIds + */ + @jakarta.annotation.Nullable + public List getSelectedUserIds() { + return selectedUserIds; + } + + public void setSelectedUserIds(@jakarta.annotation.Nullable List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedGroupIdsItem(String selectedGroupIdsItem) { + if (this.selectedGroupIds == null) { + this.selectedGroupIds = new ArrayList<>(); + } + this.selectedGroupIds.add(selectedGroupIdsItem); + return this; + } + + /** + * IDs of the selected teams + * @return selectedGroupIds + */ + @jakarta.annotation.Nullable + public List getSelectedGroupIds() { + return selectedGroupIds; + } + + public void setSelectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedServiceIdsItem(String selectedServiceIdsItem) { + if (this.selectedServiceIds == null) { + this.selectedServiceIds = new ArrayList<>(); + } + this.selectedServiceIds.add(selectedServiceIdsItem); + return this; + } + + /** + * IDs of the selected services + * @return selectedServiceIds + */ + @jakarta.annotation.Nullable + public List getSelectedServiceIds() { + return selectedServiceIds; + } + + public void setSelectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedFunctionalityIdsItem(String selectedFunctionalityIdsItem) { + if (this.selectedFunctionalityIds == null) { + this.selectedFunctionalityIds = new ArrayList<>(); + } + this.selectedFunctionalityIds.add(selectedFunctionalityIdsItem); + return this; + } + + /** + * IDs of the selected functionalities + * @return selectedFunctionalityIds + */ + @jakarta.annotation.Nullable + public List getSelectedFunctionalityIds() { + return selectedFunctionalityIds; + } + + public void setSelectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedCatalogEntityIds(@jakarta.annotation.Nullable List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedCatalogEntityIdsItem(String selectedCatalogEntityIdsItem) { + if (this.selectedCatalogEntityIds == null) { + this.selectedCatalogEntityIds = new ArrayList<>(); + } + this.selectedCatalogEntityIds.add(selectedCatalogEntityIdsItem); + return this; + } + + /** + * IDs of the selected catalog entities + * @return selectedCatalogEntityIds + */ + @jakarta.annotation.Nullable + public List getSelectedCatalogEntityIds() { + return selectedCatalogEntityIds; + } + + public void setSelectedCatalogEntityIds(@jakarta.annotation.Nullable List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * IDs of the selected environments + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * IDs of the selected causes + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * IDs of the selected incident types + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner destroy(@jakarta.annotation.Nullable Boolean destroy) { + this.destroy = destroy; + return this; + } + + /** + * Set to true to remove the field's value from the action item + * @return destroy + */ + @jakarta.annotation.Nullable + public Boolean getDestroy() { + return destroy; + } + + public void setDestroy(@jakarta.annotation.Nullable Boolean destroy) { + this.destroy = destroy; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewIncidentActionItemDataAttributesFormFieldSelectionsInner newIncidentActionItemDataAttributesFormFieldSelectionsInner = (NewIncidentActionItemDataAttributesFormFieldSelectionsInner) o; + return Objects.equals(this.id, newIncidentActionItemDataAttributesFormFieldSelectionsInner.id) && + Objects.equals(this.formFieldId, newIncidentActionItemDataAttributesFormFieldSelectionsInner.formFieldId) && + Objects.equals(this.value, newIncidentActionItemDataAttributesFormFieldSelectionsInner.value) && + Objects.equals(this.selectedOptionIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedOptionIds) && + Objects.equals(this.selectedUserIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedUserIds) && + Objects.equals(this.selectedGroupIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedGroupIds) && + Objects.equals(this.selectedServiceIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedServiceIds) && + Objects.equals(this.selectedFunctionalityIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedFunctionalityIds) && + Objects.equals(this.selectedCatalogEntityIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedCatalogEntityIds) && + Objects.equals(this.selectedEnvironmentIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedEnvironmentIds) && + Objects.equals(this.selectedCauseIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedCauseIds) && + Objects.equals(this.selectedIncidentTypeIds, newIncidentActionItemDataAttributesFormFieldSelectionsInner.selectedIncidentTypeIds) && + Objects.equals(this.destroy, newIncidentActionItemDataAttributesFormFieldSelectionsInner.destroy); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(id, formFieldId, value, selectedOptionIds, selectedUserIds, selectedGroupIds, selectedServiceIds, selectedFunctionalityIds, selectedCatalogEntityIds, selectedEnvironmentIds, selectedCauseIds, selectedIncidentTypeIds, destroy); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewIncidentActionItemDataAttributesFormFieldSelectionsInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" formFieldId: ").append(toIndentedString(formFieldId)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" selectedOptionIds: ").append(toIndentedString(selectedOptionIds)).append("\n"); + sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedGroupIds: ").append(toIndentedString(selectedGroupIds)).append("\n"); + sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); + sb.append(" selectedFunctionalityIds: ").append(toIndentedString(selectedFunctionalityIds)).append("\n"); + sb.append(" selectedCatalogEntityIds: ").append(toIndentedString(selectedCatalogEntityIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); + sb.append(" destroy: ").append(toIndentedString(destroy)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("form_field_id"); + openapiFields.add("value"); + openapiFields.add("selected_option_ids"); + openapiFields.add("selected_user_ids"); + openapiFields.add("selected_group_ids"); + openapiFields.add("selected_service_ids"); + openapiFields.add("selected_functionality_ids"); + openapiFields.add("selected_catalog_entity_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_incident_type_ids"); + openapiFields.add("_destroy"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("form_field_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewIncidentActionItemDataAttributesFormFieldSelectionsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewIncidentActionItemDataAttributesFormFieldSelectionsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewIncidentActionItemDataAttributesFormFieldSelectionsInner is not found in the empty JSON string", NewIncidentActionItemDataAttributesFormFieldSelectionsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewIncidentActionItemDataAttributesFormFieldSelectionsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewIncidentActionItemDataAttributesFormFieldSelectionsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewIncidentActionItemDataAttributesFormFieldSelectionsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("form_field_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `form_field_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("form_field_id").toString())); + } + // validate the optional field `value` + if (jsonObj.get("value") != null && !jsonObj.get("value").isJsonNull()) { + NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.validateJsonElement(jsonObj.get("value")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_option_ids") != null && !jsonObj.get("selected_option_ids").isJsonNull() && !jsonObj.get("selected_option_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_option_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_option_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_group_ids") != null && !jsonObj.get("selected_group_ids").isJsonNull() && !jsonObj.get("selected_group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_group_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_service_ids") != null && !jsonObj.get("selected_service_ids").isJsonNull() && !jsonObj.get("selected_service_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_service_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_functionality_ids") != null && !jsonObj.get("selected_functionality_ids").isJsonNull() && !jsonObj.get("selected_functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_functionality_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_catalog_entity_ids") != null && !jsonObj.get("selected_catalog_entity_ids").isJsonNull() && !jsonObj.get("selected_catalog_entity_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_catalog_entity_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_catalog_entity_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewIncidentActionItemDataAttributesFormFieldSelectionsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewIncidentActionItemDataAttributesFormFieldSelectionsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewIncidentActionItemDataAttributesFormFieldSelectionsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewIncidentActionItemDataAttributesFormFieldSelectionsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewIncidentActionItemDataAttributesFormFieldSelectionsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewIncidentActionItemDataAttributesFormFieldSelectionsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewIncidentActionItemDataAttributesFormFieldSelectionsInner + * @throws IOException if the JSON string is invalid with respect to NewIncidentActionItemDataAttributesFormFieldSelectionsInner + */ + public static NewIncidentActionItemDataAttributesFormFieldSelectionsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewIncidentActionItemDataAttributesFormFieldSelectionsInner.class); + } + + /** + * Convert an instance of NewIncidentActionItemDataAttributesFormFieldSelectionsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.java b/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.java new file mode 100644 index 00000000..b75875cd --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.java @@ -0,0 +1,295 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.rootly.client.JSON; + +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterString = gson.getDelegateAdapter(this, TypeToken.get(String.class)); + + final Type typeInstanceListString = new TypeToken>(){}.getType(); + final TypeAdapter> adapterListString = (TypeAdapter>) gson.getDelegateAdapter(this, TypeToken.get(typeInstanceListString)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `String` + if (value.getActualInstance() instanceof String) { + JsonPrimitive primitive = adapterString.toJsonTree((String)value.getActualInstance()).getAsJsonPrimitive(); + elementAdapter.write(out, primitive); + return; + } + // check if the actual instance is of the type `List` + if (value.getActualInstance() instanceof List) { + JsonPrimitive primitive = adapterListString.toJsonTree((List)value.getActualInstance()).getAsJsonPrimitive(); + elementAdapter.write(out, primitive); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: List, String"); + } + + @Override + public NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize String + try { + // validate the JSON object to see if any exception is thrown + if (!jsonElement.getAsJsonPrimitive().isString()) { + throw new IllegalArgumentException(String.format("Expected json element to be of type String in the JSON string but got `%s`", jsonElement.toString())); + } + actualAdapter = adapterString; + match++; + log.log(Level.FINER, "Input data matches schema 'String'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for String failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'String'", e); + } + // deserialize List + try { + // validate the JSON object to see if any exception is thrown + if (!jsonElement.isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected json element to be a array type in the JSON string but got `%s`", jsonElement.toString())); + } + + JsonArray array = jsonElement.getAsJsonArray(); + // validate array items + for(JsonElement element : array) { + if (!element.getAsJsonPrimitive().isString()) { + throw new IllegalArgumentException(String.format("Expected array items to be of type String in the JSON string but got `%s`", jsonElement.toString())); + } + } + actualAdapter = adapterListString; + match++; + log.log(Level.FINER, "Input data matches schema 'List'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for List failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'List'", e); + } + + if (match == 1) { + NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue ret = new NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException(String.format("Failed deserialization for NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue() { + super("oneOf", Boolean.FALSE); + } + + public NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("String", String.class); + schemas.put("List", List.class); + } + + @Override + public Map> getSchemas() { + return NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * List, String + * + * It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof String) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof List) { + List list = (List) instance; + if (list.get(0) instanceof String) { + super.setActualInstance(instance); + return; + } + } + + throw new RuntimeException("Invalid instance type. Must be List, String"); + } + + /** + * Get the actual instance, which can be the following: + * List, String + * + * @return The actual instance (List, String) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `String`. If the actual instance is not `String`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `String` + * @throws ClassCastException if the instance is not `String` + */ + public String getString() throws ClassCastException { + return (String)super.getActualInstance(); + } + + /** + * Get the actual instance of `List`. If the actual instance is not `List`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `List` + * @throws ClassCastException if the instance is not `List` + */ + public List getListString() throws ClassCastException { + return (List)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with String + try { + if (!jsonElement.getAsJsonPrimitive().isString()) { + throw new IllegalArgumentException(String.format("Expected json element to be of type String in the JSON string but got `%s`", jsonElement.toString())); + } + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for String failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with List + try { + if (!jsonElement.isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected json element to be a array type in the JSON string but got `%s`", jsonElement.toString())); + } + JsonArray array = jsonElement.getAsJsonArray(); + // validate array items + for(JsonElement element : array) { + if (!element.getAsJsonPrimitive().isString()) { + throw new IllegalArgumentException(String.format("Expected array items to be of type String in the JSON string but got `%s`", jsonElement.toString())); + } + } + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for List failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue with oneOf schemas: List, String. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue + * @throws IOException if the JSON string is invalid with respect to NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue + */ + public static NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue.class); + } + + /** + * Convert an instance of NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelection.java b/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelection.java index 21649e18..f4ac5d72 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelection.java +++ b/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelection.java @@ -49,7 +49,7 @@ /** * NewIncidentCustomFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentCustomFieldSelection { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionData.java b/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionData.java index 280c9862..ebb9e39c 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionData.java @@ -49,7 +49,7 @@ /** * NewIncidentCustomFieldSelectionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentCustomFieldSelectionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionDataAttributes.java index aafc1c9e..8c3dd8c6 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentCustomFieldSelectionDataAttributes.java @@ -50,7 +50,7 @@ /** * NewIncidentCustomFieldSelectionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentCustomFieldSelectionDataAttributes { public static final String SERIALIZED_NAME_CUSTOM_FIELD_ID = "custom_field_id"; @SerializedName(SERIALIZED_NAME_CUSTOM_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/NewIncidentData.java b/src/main/java/com/rootly/client/model/NewIncidentData.java index d163301d..8f32f05e 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentData.java @@ -49,7 +49,7 @@ /** * NewIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentDataAttributes.java index 5d91c3d4..909bef50 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentDataAttributes.java @@ -51,7 +51,7 @@ /** * NewIncidentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentDataAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/NewIncidentEvent.java b/src/main/java/com/rootly/client/model/NewIncidentEvent.java index c780d4f8..96d44eb1 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEvent.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEvent.java @@ -49,7 +49,7 @@ /** * NewIncidentEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEvent { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventData.java b/src/main/java/com/rootly/client/model/NewIncidentEventData.java index bc3f917f..17e27929 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventData.java @@ -49,7 +49,7 @@ /** * NewIncidentEventData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentEventDataAttributes.java index 928458b5..67396d94 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventDataAttributes.java @@ -48,7 +48,7 @@ /** * NewIncidentEventDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventDataAttributes { public static final String SERIALIZED_NAME_EVENT = "event"; @SerializedName(SERIALIZED_NAME_EVENT) diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventFunctionality.java b/src/main/java/com/rootly/client/model/NewIncidentEventFunctionality.java index 689e5e77..06ef0692 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventFunctionality.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventFunctionality.java @@ -49,7 +49,7 @@ /** * NewIncidentEventFunctionality */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventFunctionality { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityData.java b/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityData.java index 931a54f2..a79e0823 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityData.java @@ -49,7 +49,7 @@ /** * NewIncidentEventFunctionalityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventFunctionalityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityDataAttributes.java index 831ca385..b91c9d15 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventFunctionalityDataAttributes.java @@ -48,7 +48,7 @@ /** * NewIncidentEventFunctionalityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventFunctionalityDataAttributes { public static final String SERIALIZED_NAME_INCIDENT_EVENT_ID = "incident_event_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_EVENT_ID) diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventService.java b/src/main/java/com/rootly/client/model/NewIncidentEventService.java index cb5e9410..039ffae2 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventService.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventService.java @@ -49,7 +49,7 @@ /** * NewIncidentEventService */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventService { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventServiceData.java b/src/main/java/com/rootly/client/model/NewIncidentEventServiceData.java index 888f1caf..7cc75d7e 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventServiceData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventServiceData.java @@ -49,7 +49,7 @@ /** * NewIncidentEventServiceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventServiceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentEventServiceDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentEventServiceDataAttributes.java index 0a10582f..e801d48b 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentEventServiceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentEventServiceDataAttributes.java @@ -48,7 +48,7 @@ /** * NewIncidentEventServiceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentEventServiceDataAttributes { public static final String SERIALIZED_NAME_INCIDENT_EVENT_ID = "incident_event_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_EVENT_ID) diff --git a/src/main/java/com/rootly/client/model/NewIncidentFeedback.java b/src/main/java/com/rootly/client/model/NewIncidentFeedback.java index 681a76f1..cfc40e38 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentFeedback.java +++ b/src/main/java/com/rootly/client/model/NewIncidentFeedback.java @@ -49,7 +49,7 @@ /** * NewIncidentFeedback */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentFeedback { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentFeedbackData.java b/src/main/java/com/rootly/client/model/NewIncidentFeedbackData.java index 07b0f368..bcea9d15 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentFeedbackData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentFeedbackData.java @@ -49,7 +49,7 @@ /** * NewIncidentFeedbackData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentFeedbackData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentFeedbackDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentFeedbackDataAttributes.java index af5ab4a8..5ad2f3a9 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentFeedbackDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentFeedbackDataAttributes.java @@ -48,7 +48,7 @@ /** * NewIncidentFeedbackDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentFeedbackDataAttributes { public static final String SERIALIZED_NAME_FEEDBACK = "feedback"; @SerializedName(SERIALIZED_NAME_FEEDBACK) diff --git a/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelection.java b/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelection.java index e0c0f1ef..0ef43b8a 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelection.java +++ b/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelection.java @@ -49,7 +49,7 @@ /** * NewIncidentFormFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentFormFieldSelection { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionData.java b/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionData.java index 30085d64..780b17c4 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionData.java @@ -49,7 +49,7 @@ /** * NewIncidentFormFieldSelectionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentFormFieldSelectionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributes.java index 07eb95c9..744a6d1c 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributes.java @@ -51,7 +51,7 @@ /** * NewIncidentFormFieldSelectionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentFormFieldSelectionDataAttributes { public static final String SERIALIZED_NAME_INCIDENT_ID = "incident_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_ID) @@ -98,6 +98,21 @@ public class NewIncidentFormFieldSelectionDataAttributes { @jakarta.annotation.Nullable private List selectedUserIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + public NewIncidentFormFieldSelectionDataAttributes() { } @@ -320,6 +335,87 @@ public void setSelectedUserIds(@jakarta.annotation.Nullable List select } + public NewIncidentFormFieldSelectionDataAttributes selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public NewIncidentFormFieldSelectionDataAttributes addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public NewIncidentFormFieldSelectionDataAttributes selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public NewIncidentFormFieldSelectionDataAttributes addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public NewIncidentFormFieldSelectionDataAttributes selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public NewIncidentFormFieldSelectionDataAttributes addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + @Override public boolean equals(Object o) { @@ -338,7 +434,10 @@ public boolean equals(Object o) { Objects.equals(this.selectedOptionIds, newIncidentFormFieldSelectionDataAttributes.selectedOptionIds) && Objects.equals(this.selectedServiceIds, newIncidentFormFieldSelectionDataAttributes.selectedServiceIds) && Objects.equals(this.selectedFunctionalityIds, newIncidentFormFieldSelectionDataAttributes.selectedFunctionalityIds) && - Objects.equals(this.selectedUserIds, newIncidentFormFieldSelectionDataAttributes.selectedUserIds); + Objects.equals(this.selectedUserIds, newIncidentFormFieldSelectionDataAttributes.selectedUserIds) && + Objects.equals(this.selectedEnvironmentIds, newIncidentFormFieldSelectionDataAttributes.selectedEnvironmentIds) && + Objects.equals(this.selectedCauseIds, newIncidentFormFieldSelectionDataAttributes.selectedCauseIds) && + Objects.equals(this.selectedIncidentTypeIds, newIncidentFormFieldSelectionDataAttributes.selectedIncidentTypeIds); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -347,7 +446,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(incidentId, formFieldId, value, selectedCatalogEntityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedFunctionalityIds, selectedUserIds); + return Objects.hash(incidentId, formFieldId, value, selectedCatalogEntityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedFunctionalityIds, selectedUserIds, selectedEnvironmentIds, selectedCauseIds, selectedIncidentTypeIds); } private static int hashCodeNullable(JsonNullable a) { @@ -370,6 +469,9 @@ public String toString() { sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); sb.append(" selectedFunctionalityIds: ").append(toIndentedString(selectedFunctionalityIds)).append("\n"); sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -401,6 +503,9 @@ private String toIndentedString(Object o) { openapiFields.add("selected_service_ids"); openapiFields.add("selected_functionality_ids"); openapiFields.add("selected_user_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_incident_type_ids"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -469,6 +574,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSet.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSet.java index fbbd4199..5720d5ad 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSet.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSet.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSet */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSet { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBoolean.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBoolean.java index 1f635aed..3c2d397e 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBoolean.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBoolean.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSetBoolean */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetBoolean { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanData.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanData.java index 2807e285..80c2e647 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanData.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSetBooleanData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetBooleanData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributes.java index 9a463016..8bfe48a8 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributes.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSetBooleanDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetBooleanDataAttributes { public static final String SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID = "incident_permission_set_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID) diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributesSeverityParams.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributesSeverityParams.java index 4cc56070..de346a91 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributesSeverityParams.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetBooleanDataAttributesSeverityParams.java @@ -51,7 +51,7 @@ /** * NewIncidentPermissionSetBooleanDataAttributesSeverityParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetBooleanDataAttributesSeverityParams { public static final String SERIALIZED_NAME_FULLY_ENABLED = "fully_enabled"; @SerializedName(SERIALIZED_NAME_FULLY_ENABLED) diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetData.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetData.java index 9b47e049..d4e78156 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetData.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSetData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributes.java index de732b30..2e74417c 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributes.java @@ -51,18 +51,19 @@ /** * NewIncidentPermissionSetDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -193,41 +194,45 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewIncidentPermissionSetDataAttributes() { } - public NewIncidentPermissionSetDataAttributes name(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public NewIncidentPermissionSetDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * The incident permission set name. - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ - @jakarta.annotation.Nonnull - public String getName() { - return name; + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public NewIncidentPermissionSetDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public NewIncidentPermissionSetDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; return this; } /** - * The incident permission set slug. - * @return slug + * The incident permission set name. + * @return name */ - @jakarta.annotation.Nullable - public String getSlug() { - return slug; + @jakarta.annotation.Nonnull + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; } @@ -314,8 +319,8 @@ public boolean equals(Object o) { return false; } NewIncidentPermissionSetDataAttributes newIncidentPermissionSetDataAttributes = (NewIncidentPermissionSetDataAttributes) o; - return Objects.equals(this.name, newIncidentPermissionSetDataAttributes.name) && - Objects.equals(this.slug, newIncidentPermissionSetDataAttributes.slug) && + return Objects.equals(this.slug, newIncidentPermissionSetDataAttributes.slug) && + Objects.equals(this.name, newIncidentPermissionSetDataAttributes.name) && Objects.equals(this.description, newIncidentPermissionSetDataAttributes.description) && Objects.equals(this.privateIncidentPermissions, newIncidentPermissionSetDataAttributes.privateIncidentPermissions) && Objects.equals(this.publicIncidentPermissions, newIncidentPermissionSetDataAttributes.publicIncidentPermissions); @@ -327,7 +332,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, privateIncidentPermissions, publicIncidentPermissions); + return Objects.hash(slug, name, description, privateIncidentPermissions, publicIncidentPermissions); } private static int hashCodeNullable(JsonNullable a) { @@ -341,8 +346,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewIncidentPermissionSetDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" privateIncidentPermissions: ").append(toIndentedString(privateIncidentPermissions)).append("\n"); sb.append(" publicIncidentPermissions: ").append(toIndentedString(publicIncidentPermissions)).append("\n"); @@ -368,8 +373,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("private_incident_permissions"); openapiFields.add("public_incident_permissions"); @@ -407,12 +412,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResource.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResource.java index fc9c7d83..4ed63de6 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResource.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResource.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSetResource */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetResource { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceData.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceData.java index 5e9f72d3..ded59b99 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceData.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSetResourceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetResourceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceDataAttributes.java index d26ee0af..ecf30b84 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentPermissionSetResourceDataAttributes.java @@ -49,7 +49,7 @@ /** * NewIncidentPermissionSetResourceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentPermissionSetResourceDataAttributes { public static final String SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID = "incident_permission_set_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID) diff --git a/src/main/java/com/rootly/client/model/NewIncidentRole.java b/src/main/java/com/rootly/client/model/NewIncidentRole.java index 5982313e..6d9ba7c5 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentRole.java +++ b/src/main/java/com/rootly/client/model/NewIncidentRole.java @@ -49,7 +49,7 @@ /** * NewIncidentRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentRole { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentRoleData.java b/src/main/java/com/rootly/client/model/NewIncidentRoleData.java index 96d60e6b..f08e6797 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentRoleData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentRoleData.java @@ -49,7 +49,7 @@ /** * NewIncidentRoleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentRoleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentRoleDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentRoleDataAttributes.java index d1e78ad4..27168dd5 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentRoleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentRoleDataAttributes.java @@ -49,8 +49,14 @@ /** * NewIncidentRoleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentRoleDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -89,6 +95,29 @@ public class NewIncidentRoleDataAttributes { public NewIncidentRoleDataAttributes() { } + @Deprecated + public NewIncidentRoleDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewIncidentRoleDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -232,7 +261,8 @@ public boolean equals(Object o) { return false; } NewIncidentRoleDataAttributes newIncidentRoleDataAttributes = (NewIncidentRoleDataAttributes) o; - return Objects.equals(this.name, newIncidentRoleDataAttributes.name) && + return Objects.equals(this.slug, newIncidentRoleDataAttributes.slug) && + Objects.equals(this.name, newIncidentRoleDataAttributes.name) && Objects.equals(this.summary, newIncidentRoleDataAttributes.summary) && Objects.equals(this.description, newIncidentRoleDataAttributes.description) && Objects.equals(this.position, newIncidentRoleDataAttributes.position) && @@ -247,7 +277,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, summary, description, position, optional, enabled, allowMultiUserAssignment); + return Objects.hash(slug, name, summary, description, position, optional, enabled, allowMultiUserAssignment); } private static int hashCodeNullable(JsonNullable a) { @@ -261,6 +291,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewIncidentRoleDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" summary: ").append(toIndentedString(summary)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); @@ -290,6 +321,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("summary"); openapiFields.add("description"); @@ -331,6 +363,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewIncidentRoleTask.java b/src/main/java/com/rootly/client/model/NewIncidentRoleTask.java index 66275770..b742be0d 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentRoleTask.java +++ b/src/main/java/com/rootly/client/model/NewIncidentRoleTask.java @@ -49,7 +49,7 @@ /** * NewIncidentRoleTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentRoleTask { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentRoleTaskData.java b/src/main/java/com/rootly/client/model/NewIncidentRoleTaskData.java index b36c124f..85f96feb 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentRoleTaskData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentRoleTaskData.java @@ -49,7 +49,7 @@ /** * NewIncidentRoleTaskData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentRoleTaskData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentRoleTaskDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentRoleTaskDataAttributes.java index 777f9ac2..24e8a344 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentRoleTaskDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentRoleTaskDataAttributes.java @@ -49,7 +49,7 @@ /** * NewIncidentRoleTaskDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentRoleTaskDataAttributes { public static final String SERIALIZED_NAME_INCIDENT_ROLE_ID = "incident_role_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_ROLE_ID) diff --git a/src/main/java/com/rootly/client/model/NewIncidentStatusPageEvent.java b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEvent.java index 7965adaf..8f93c01b 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentStatusPageEvent.java +++ b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEvent.java @@ -49,7 +49,7 @@ /** * NewIncidentStatusPageEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentStatusPageEvent { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventData.java b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventData.java index 2cae1dbb..d98caf61 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventData.java @@ -49,7 +49,7 @@ /** * NewIncidentStatusPageEventData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentStatusPageEventData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributes.java index 3af9a49e..abe74eed 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributes.java @@ -19,8 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner; import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,7 +53,7 @@ /** * NewIncidentStatusPageEventDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentStatusPageEventDataAttributes { public static final String SERIALIZED_NAME_EVENT = "event"; @SerializedName(SERIALIZED_NAME_EVENT) @@ -138,6 +142,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean shouldTweet = false; + public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; + @SerializedName(SERIALIZED_NAME_STARTED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime startedAt; + + public static final String SERIALIZED_NAME_STATUS_PAGE_COMPONENTS = "status_page_components"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_COMPONENTS) + @jakarta.annotation.Nullable + private List statusPageComponents; + public NewIncidentStatusPageEventDataAttributes() { } @@ -236,6 +250,52 @@ public void setShouldTweet(@jakarta.annotation.Nullable Boolean shouldTweet) { } + public NewIncidentStatusPageEventDataAttributes startedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + return this; + } + + /** + * When the event started. Defaults to the time of creation. + * @return startedAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getStartedAt() { + return startedAt; + } + + public void setStartedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + } + + + public NewIncidentStatusPageEventDataAttributes statusPageComponents(@jakarta.annotation.Nullable List statusPageComponents) { + this.statusPageComponents = statusPageComponents; + return this; + } + + public NewIncidentStatusPageEventDataAttributes addStatusPageComponentsItem(NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner statusPageComponentsItem) { + if (this.statusPageComponents == null) { + this.statusPageComponents = new ArrayList<>(); + } + this.statusPageComponents.add(statusPageComponentsItem); + return this; + } + + /** + * Affected status page components and their statuses. Requires the status-page-v3-phase-1 feature. Ignored for terminal event statuses (resolved, completed), which clear component impact. A status is required per component except for scheduled maintenance incidents. + * @return statusPageComponents + */ + @jakarta.annotation.Nullable + public List getStatusPageComponents() { + return statusPageComponents; + } + + public void setStatusPageComponents(@jakarta.annotation.Nullable List statusPageComponents) { + this.statusPageComponents = statusPageComponents; + } + + @Override public boolean equals(Object o) { @@ -250,7 +310,9 @@ public boolean equals(Object o) { Objects.equals(this.statusPageId, newIncidentStatusPageEventDataAttributes.statusPageId) && Objects.equals(this.status, newIncidentStatusPageEventDataAttributes.status) && Objects.equals(this.notifySubscribers, newIncidentStatusPageEventDataAttributes.notifySubscribers) && - Objects.equals(this.shouldTweet, newIncidentStatusPageEventDataAttributes.shouldTweet); + Objects.equals(this.shouldTweet, newIncidentStatusPageEventDataAttributes.shouldTweet) && + Objects.equals(this.startedAt, newIncidentStatusPageEventDataAttributes.startedAt) && + Objects.equals(this.statusPageComponents, newIncidentStatusPageEventDataAttributes.statusPageComponents); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -259,7 +321,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(event, statusPageId, status, notifySubscribers, shouldTweet); + return Objects.hash(event, statusPageId, status, notifySubscribers, shouldTweet, startedAt, statusPageComponents); } private static int hashCodeNullable(JsonNullable a) { @@ -278,6 +340,8 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" notifySubscribers: ").append(toIndentedString(notifySubscribers)).append("\n"); sb.append(" shouldTweet: ").append(toIndentedString(shouldTweet)).append("\n"); + sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); + sb.append(" statusPageComponents: ").append(toIndentedString(statusPageComponents)).append("\n"); sb.append("}"); return sb.toString(); } @@ -305,6 +369,8 @@ private String toIndentedString(Object o) { openapiFields.add("status"); openapiFields.add("notify_subscribers"); openapiFields.add("should_tweet"); + openapiFields.add("started_at"); + openapiFields.add("status_page_components"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -352,6 +418,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { StatusEnum.validateJsonElement(jsonObj.get("status")); } + if (jsonObj.get("status_page_components") != null && !jsonObj.get("status_page_components").isJsonNull()) { + JsonArray jsonArraystatusPageComponents = jsonObj.getAsJsonArray("status_page_components"); + if (jsonArraystatusPageComponents != null) { + // ensure the json data is an array + if (!jsonObj.get("status_page_components").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_components` to be an array in the JSON string but got `%s`", jsonObj.get("status_page_components").toString())); + } + + // validate the optional field `status_page_components` (array) + for (int i = 0; i < jsonArraystatusPageComponents.size(); i++) { + NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.validateJsonElement(jsonArraystatusPageComponents.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.java b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.java new file mode 100644 index 00000000..fbc57c84 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.java @@ -0,0 +1,316 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner { + public static final String SERIALIZED_NAME_STATUS_PAGE_COMPONENT_ID = "status_page_component_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_COMPONENT_ID) + @jakarta.annotation.Nonnull + private String statusPageComponentId; + + /** + * The status to record for the component + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + OPERATIONAL("operational"), + + DEGRADED_PERFORMANCE("degraded_performance"), + + PARTIAL_OUTAGE("partial_outage"), + + MAJOR_OUTAGE("major_outage"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nullable + private StatusEnum status; + + public NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner() { + } + + public NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner statusPageComponentId(@jakarta.annotation.Nonnull String statusPageComponentId) { + this.statusPageComponentId = statusPageComponentId; + return this; + } + + /** + * Unique ID of a component on the event's status page + * @return statusPageComponentId + */ + @jakarta.annotation.Nonnull + public String getStatusPageComponentId() { + return statusPageComponentId; + } + + public void setStatusPageComponentId(@jakarta.annotation.Nonnull String statusPageComponentId) { + this.statusPageComponentId = statusPageComponentId; + } + + + public NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner status(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + return this; + } + + /** + * The status to record for the component + * @return status + */ + @jakarta.annotation.Nullable + public StatusEnum getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner newIncidentStatusPageEventDataAttributesStatusPageComponentsInner = (NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner) o; + return Objects.equals(this.statusPageComponentId, newIncidentStatusPageEventDataAttributesStatusPageComponentsInner.statusPageComponentId) && + Objects.equals(this.status, newIncidentStatusPageEventDataAttributesStatusPageComponentsInner.status); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(statusPageComponentId, status); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner {\n"); + sb.append(" statusPageComponentId: ").append(toIndentedString(statusPageComponentId)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("status_page_component_id"); + openapiFields.add("status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("status_page_component_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner is not found in the empty JSON string", NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("status_page_component_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_component_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_component_id").toString())); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the optional field `status` + if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { + StatusEnum.validateJsonElement(jsonObj.get("status")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + * @throws IOException if the JSON string is invalid with respect to NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + */ + public static NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner.class); + } + + /** + * Convert an instance of NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewIncidentSubStatus.java b/src/main/java/com/rootly/client/model/NewIncidentSubStatus.java index 4e4314a4..4832b272 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentSubStatus.java +++ b/src/main/java/com/rootly/client/model/NewIncidentSubStatus.java @@ -49,7 +49,7 @@ /** * NewIncidentSubStatus */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentSubStatus { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentSubStatusData.java b/src/main/java/com/rootly/client/model/NewIncidentSubStatusData.java index 44274fa1..c885a223 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentSubStatusData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentSubStatusData.java @@ -49,7 +49,7 @@ /** * NewIncidentSubStatusData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentSubStatusData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentSubStatusDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentSubStatusDataAttributes.java index 75d2c972..5f62d651 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentSubStatusDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentSubStatusDataAttributes.java @@ -49,7 +49,7 @@ /** * NewIncidentSubStatusDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentSubStatusDataAttributes { public static final String SERIALIZED_NAME_SUB_STATUS_ID = "sub_status_id"; @SerializedName(SERIALIZED_NAME_SUB_STATUS_ID) diff --git a/src/main/java/com/rootly/client/model/NewIncidentType.java b/src/main/java/com/rootly/client/model/NewIncidentType.java index 1ef3f523..89ceadc2 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentType.java +++ b/src/main/java/com/rootly/client/model/NewIncidentType.java @@ -49,7 +49,7 @@ /** * NewIncidentType */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentType { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewIncidentTypeData.java b/src/main/java/com/rootly/client/model/NewIncidentTypeData.java index eae1965c..8424b408 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentTypeData.java +++ b/src/main/java/com/rootly/client/model/NewIncidentTypeData.java @@ -49,7 +49,7 @@ /** * NewIncidentTypeData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentTypeData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewIncidentTypeDataAttributes.java b/src/main/java/com/rootly/client/model/NewIncidentTypeDataAttributes.java index 4b3e7a92..90188a17 100644 --- a/src/main/java/com/rootly/client/model/NewIncidentTypeDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewIncidentTypeDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,8 +54,14 @@ /** * NewIncidentTypeDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewIncidentTypeDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -65,6 +72,11 @@ public class NewIncidentTypeDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_COLOR = "color"; @SerializedName(SERIALIZED_NAME_COLOR) @jakarta.annotation.Nullable @@ -90,9 +102,37 @@ public class NewIncidentTypeDataAttributes { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public NewIncidentTypeDataAttributes() { } + @Deprecated + public NewIncidentTypeDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewIncidentTypeDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -131,6 +171,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public NewIncidentTypeDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the incident type + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public NewIncidentTypeDataAttributes color(@jakarta.annotation.Nullable String color) { this.color = color; return this; @@ -250,6 +309,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public NewIncidentTypeDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this incident type. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -260,13 +346,16 @@ public boolean equals(Object o) { return false; } NewIncidentTypeDataAttributes newIncidentTypeDataAttributes = (NewIncidentTypeDataAttributes) o; - return Objects.equals(this.name, newIncidentTypeDataAttributes.name) && + return Objects.equals(this.slug, newIncidentTypeDataAttributes.slug) && + Objects.equals(this.name, newIncidentTypeDataAttributes.name) && Objects.equals(this.description, newIncidentTypeDataAttributes.description) && + Objects.equals(this.publicDescription, newIncidentTypeDataAttributes.publicDescription) && Objects.equals(this.color, newIncidentTypeDataAttributes.color) && Objects.equals(this.position, newIncidentTypeDataAttributes.position) && Objects.equals(this.notifyEmails, newIncidentTypeDataAttributes.notifyEmails) && Objects.equals(this.slackChannels, newIncidentTypeDataAttributes.slackChannels) && - Objects.equals(this.slackAliases, newIncidentTypeDataAttributes.slackAliases); + Objects.equals(this.slackAliases, newIncidentTypeDataAttributes.slackAliases) && + Objects.equals(this.properties, newIncidentTypeDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -275,7 +364,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, color, position, notifyEmails, slackChannels, slackAliases); + return Objects.hash(slug, name, description, publicDescription, color, position, notifyEmails, slackChannels, slackAliases, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -289,13 +378,16 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewIncidentTypeDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -318,13 +410,16 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("color"); openapiFields.add("position"); openapiFields.add("notify_emails"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -359,12 +454,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); } @@ -400,6 +501,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewLiveCallRouter.java b/src/main/java/com/rootly/client/model/NewLiveCallRouter.java index d515757a..bfa53816 100644 --- a/src/main/java/com/rootly/client/model/NewLiveCallRouter.java +++ b/src/main/java/com/rootly/client/model/NewLiveCallRouter.java @@ -49,7 +49,7 @@ /** * NewLiveCallRouter */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewLiveCallRouter { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewLiveCallRouterData.java b/src/main/java/com/rootly/client/model/NewLiveCallRouterData.java index 965698b8..a1cc89ae 100644 --- a/src/main/java/com/rootly/client/model/NewLiveCallRouterData.java +++ b/src/main/java/com/rootly/client/model/NewLiveCallRouterData.java @@ -49,7 +49,7 @@ /** * NewLiveCallRouterData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewLiveCallRouterData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributes.java b/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributes.java index 39457fe8..a3ebe63d 100644 --- a/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributes.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -52,7 +53,7 @@ /** * NewLiveCallRouterDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewLiveCallRouterDataAttributes { /** * The kind of the live_call_router @@ -136,6 +137,10 @@ public enum CountryCodeEnum { NZ("NZ"), + SE("SE"), + + CH("CH"), + GB("GB"), US("US"); @@ -262,6 +267,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String callerGreeting; + public static final String SERIALIZED_NAME_UNAVAILABLE_RESPONDER_MESSAGE = "unavailable_responder_message"; + @SerializedName(SERIALIZED_NAME_UNAVAILABLE_RESPONDER_MESSAGE) + @jakarta.annotation.Nullable + private String unavailableResponderMessage; + /** * The waiting music URL of the live_call_router */ @@ -349,11 +359,31 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean shouldAutoResolveAlertOnCallEnd; + public static final String SERIALIZED_NAME_NOTIFY_VIA_SMS = "notify_via_sms"; + @SerializedName(SERIALIZED_NAME_NOTIFY_VIA_SMS) + @jakarta.annotation.Nullable + private Boolean notifyViaSms; + + public static final String SERIALIZED_NAME_NOTIFY_VIA_PUSH_NOTIFICATION = "notify_via_push_notification"; + @SerializedName(SERIALIZED_NAME_NOTIFY_VIA_PUSH_NOTIFICATION) + @jakarta.annotation.Nullable + private Boolean notifyViaPushNotification; + + public static final String SERIALIZED_NAME_INFORMATIONAL_NOTIFICATION_MESSAGE = "informational_notification_message"; + @SerializedName(SERIALIZED_NAME_INFORMATIONAL_NOTIFICATION_MESSAGE) + @jakarta.annotation.Nullable + private String informationalNotificationMessage; + public static final String SERIALIZED_NAME_ALERT_URGENCY_ID = "alert_urgency_id"; @SerializedName(SERIALIZED_NAME_ALERT_URGENCY_ID) @jakarta.annotation.Nullable private String alertUrgencyId; + public static final String SERIALIZED_NAME_CALLING_TREE_ENABLED = "calling_tree_enabled"; + @SerializedName(SERIALIZED_NAME_CALLING_TREE_ENABLED) + @jakarta.annotation.Nullable + private Boolean callingTreeEnabled; + public static final String SERIALIZED_NAME_CALLING_TREE_PROMPT = "calling_tree_prompt"; @SerializedName(SERIALIZED_NAME_CALLING_TREE_PROMPT) @jakarta.annotation.Nullable @@ -524,6 +554,25 @@ public void setCallerGreeting(@jakarta.annotation.Nullable String callerGreeting } + public NewLiveCallRouterDataAttributes unavailableResponderMessage(@jakarta.annotation.Nullable String unavailableResponderMessage) { + this.unavailableResponderMessage = unavailableResponderMessage; + return this; + } + + /** + * The message played to the caller when a responder doesn't answer and the call moves on to the next person in the escalation. Leave blank to use the default message. + * @return unavailableResponderMessage + */ + @jakarta.annotation.Nullable + public String getUnavailableResponderMessage() { + return unavailableResponderMessage; + } + + public void setUnavailableResponderMessage(@jakarta.annotation.Nullable String unavailableResponderMessage) { + this.unavailableResponderMessage = unavailableResponderMessage; + } + + public NewLiveCallRouterDataAttributes waitingMusicUrl(@jakarta.annotation.Nullable WaitingMusicUrlEnum waitingMusicUrl) { this.waitingMusicUrl = waitingMusicUrl; return this; @@ -619,6 +668,63 @@ public void setShouldAutoResolveAlertOnCallEnd(@jakarta.annotation.Nullable Bool } + public NewLiveCallRouterDataAttributes notifyViaSms(@jakarta.annotation.Nullable Boolean notifyViaSms) { + this.notifyViaSms = notifyViaSms; + return this; + } + + /** + * Whether responders are also notified via SMS when this router pages them + * @return notifyViaSms + */ + @jakarta.annotation.Nullable + public Boolean getNotifyViaSms() { + return notifyViaSms; + } + + public void setNotifyViaSms(@jakarta.annotation.Nullable Boolean notifyViaSms) { + this.notifyViaSms = notifyViaSms; + } + + + public NewLiveCallRouterDataAttributes notifyViaPushNotification(@jakarta.annotation.Nullable Boolean notifyViaPushNotification) { + this.notifyViaPushNotification = notifyViaPushNotification; + return this; + } + + /** + * Whether responders are also notified via push notification when this router pages them + * @return notifyViaPushNotification + */ + @jakarta.annotation.Nullable + public Boolean getNotifyViaPushNotification() { + return notifyViaPushNotification; + } + + public void setNotifyViaPushNotification(@jakarta.annotation.Nullable Boolean notifyViaPushNotification) { + this.notifyViaPushNotification = notifyViaPushNotification; + } + + + public NewLiveCallRouterDataAttributes informationalNotificationMessage(@jakarta.annotation.Nullable String informationalNotificationMessage) { + this.informationalNotificationMessage = informationalNotificationMessage; + return this; + } + + /** + * Optional message included in the SMS/push notification. Supports variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name }}. + * @return informationalNotificationMessage + */ + @jakarta.annotation.Nullable + public String getInformationalNotificationMessage() { + return informationalNotificationMessage; + } + + public void setInformationalNotificationMessage(@jakarta.annotation.Nullable String informationalNotificationMessage) { + this.informationalNotificationMessage = informationalNotificationMessage; + } + + public NewLiveCallRouterDataAttributes alertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId) { this.alertUrgencyId = alertUrgencyId; return this; @@ -638,6 +744,25 @@ public void setAlertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId } + public NewLiveCallRouterDataAttributes callingTreeEnabled(@jakarta.annotation.Nullable Boolean callingTreeEnabled) { + this.callingTreeEnabled = callingTreeEnabled; + return this; + } + + /** + * Whether the live call router is configured as a phone tree, requiring callers to press a key before being connected + * @return callingTreeEnabled + */ + @jakarta.annotation.Nullable + public Boolean getCallingTreeEnabled() { + return callingTreeEnabled; + } + + public void setCallingTreeEnabled(@jakarta.annotation.Nullable Boolean callingTreeEnabled) { + this.callingTreeEnabled = callingTreeEnabled; + } + + public NewLiveCallRouterDataAttributes callingTreePrompt(@jakarta.annotation.Nullable String callingTreePrompt) { this.callingTreePrompt = callingTreePrompt; return this; @@ -721,20 +846,36 @@ public boolean equals(Object o) { Objects.equals(this.phoneNumber, newLiveCallRouterDataAttributes.phoneNumber) && Objects.equals(this.voicemailGreeting, newLiveCallRouterDataAttributes.voicemailGreeting) && Objects.equals(this.callerGreeting, newLiveCallRouterDataAttributes.callerGreeting) && + Objects.equals(this.unavailableResponderMessage, newLiveCallRouterDataAttributes.unavailableResponderMessage) && Objects.equals(this.waitingMusicUrl, newLiveCallRouterDataAttributes.waitingMusicUrl) && Objects.equals(this.sentToVoicemailDelay, newLiveCallRouterDataAttributes.sentToVoicemailDelay) && Objects.equals(this.shouldRedirectToVoicemailOnNoAnswer, newLiveCallRouterDataAttributes.shouldRedirectToVoicemailOnNoAnswer) && Objects.equals(this.escalationLevelDelayInSeconds, newLiveCallRouterDataAttributes.escalationLevelDelayInSeconds) && Objects.equals(this.shouldAutoResolveAlertOnCallEnd, newLiveCallRouterDataAttributes.shouldAutoResolveAlertOnCallEnd) && + Objects.equals(this.notifyViaSms, newLiveCallRouterDataAttributes.notifyViaSms) && + Objects.equals(this.notifyViaPushNotification, newLiveCallRouterDataAttributes.notifyViaPushNotification) && + Objects.equals(this.informationalNotificationMessage, newLiveCallRouterDataAttributes.informationalNotificationMessage) && Objects.equals(this.alertUrgencyId, newLiveCallRouterDataAttributes.alertUrgencyId) && + Objects.equals(this.callingTreeEnabled, newLiveCallRouterDataAttributes.callingTreeEnabled) && Objects.equals(this.callingTreePrompt, newLiveCallRouterDataAttributes.callingTreePrompt) && Objects.equals(this.pagingTargets, newLiveCallRouterDataAttributes.pagingTargets) && Objects.equals(this.escalationPolicyTriggerParams, newLiveCallRouterDataAttributes.escalationPolicyTriggerParams); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(kind, enabled, name, countryCode, phoneType, phoneNumber, voicemailGreeting, callerGreeting, waitingMusicUrl, sentToVoicemailDelay, shouldRedirectToVoicemailOnNoAnswer, escalationLevelDelayInSeconds, shouldAutoResolveAlertOnCallEnd, alertUrgencyId, callingTreePrompt, pagingTargets, escalationPolicyTriggerParams); + return Objects.hash(kind, enabled, name, countryCode, phoneType, phoneNumber, voicemailGreeting, callerGreeting, unavailableResponderMessage, waitingMusicUrl, sentToVoicemailDelay, shouldRedirectToVoicemailOnNoAnswer, escalationLevelDelayInSeconds, shouldAutoResolveAlertOnCallEnd, notifyViaSms, notifyViaPushNotification, informationalNotificationMessage, alertUrgencyId, callingTreeEnabled, callingTreePrompt, pagingTargets, escalationPolicyTriggerParams); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -749,12 +890,17 @@ public String toString() { sb.append(" phoneNumber: ").append(toIndentedString(phoneNumber)).append("\n"); sb.append(" voicemailGreeting: ").append(toIndentedString(voicemailGreeting)).append("\n"); sb.append(" callerGreeting: ").append(toIndentedString(callerGreeting)).append("\n"); + sb.append(" unavailableResponderMessage: ").append(toIndentedString(unavailableResponderMessage)).append("\n"); sb.append(" waitingMusicUrl: ").append(toIndentedString(waitingMusicUrl)).append("\n"); sb.append(" sentToVoicemailDelay: ").append(toIndentedString(sentToVoicemailDelay)).append("\n"); sb.append(" shouldRedirectToVoicemailOnNoAnswer: ").append(toIndentedString(shouldRedirectToVoicemailOnNoAnswer)).append("\n"); sb.append(" escalationLevelDelayInSeconds: ").append(toIndentedString(escalationLevelDelayInSeconds)).append("\n"); sb.append(" shouldAutoResolveAlertOnCallEnd: ").append(toIndentedString(shouldAutoResolveAlertOnCallEnd)).append("\n"); + sb.append(" notifyViaSms: ").append(toIndentedString(notifyViaSms)).append("\n"); + sb.append(" notifyViaPushNotification: ").append(toIndentedString(notifyViaPushNotification)).append("\n"); + sb.append(" informationalNotificationMessage: ").append(toIndentedString(informationalNotificationMessage)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); + sb.append(" callingTreeEnabled: ").append(toIndentedString(callingTreeEnabled)).append("\n"); sb.append(" callingTreePrompt: ").append(toIndentedString(callingTreePrompt)).append("\n"); sb.append(" pagingTargets: ").append(toIndentedString(pagingTargets)).append("\n"); sb.append(" escalationPolicyTriggerParams: ").append(toIndentedString(escalationPolicyTriggerParams)).append("\n"); @@ -788,12 +934,17 @@ private String toIndentedString(Object o) { openapiFields.add("phone_number"); openapiFields.add("voicemail_greeting"); openapiFields.add("caller_greeting"); + openapiFields.add("unavailable_responder_message"); openapiFields.add("waiting_music_url"); openapiFields.add("sent_to_voicemail_delay"); openapiFields.add("should_redirect_to_voicemail_on_no_answer"); openapiFields.add("escalation_level_delay_in_seconds"); openapiFields.add("should_auto_resolve_alert_on_call_end"); + openapiFields.add("notify_via_sms"); + openapiFields.add("notify_via_push_notification"); + openapiFields.add("informational_notification_message"); openapiFields.add("alert_urgency_id"); + openapiFields.add("calling_tree_enabled"); openapiFields.add("calling_tree_prompt"); openapiFields.add("paging_targets"); openapiFields.add("escalation_policy_trigger_params"); @@ -864,6 +1015,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("caller_greeting") != null && !jsonObj.get("caller_greeting").isJsonNull()) && !jsonObj.get("caller_greeting").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `caller_greeting` to be a primitive type in the JSON string but got `%s`", jsonObj.get("caller_greeting").toString())); } + if ((jsonObj.get("unavailable_responder_message") != null && !jsonObj.get("unavailable_responder_message").isJsonNull()) && !jsonObj.get("unavailable_responder_message").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `unavailable_responder_message` to be a primitive type in the JSON string but got `%s`", jsonObj.get("unavailable_responder_message").toString())); + } if ((jsonObj.get("waiting_music_url") != null && !jsonObj.get("waiting_music_url").isJsonNull()) && !jsonObj.get("waiting_music_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `waiting_music_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("waiting_music_url").toString())); } @@ -871,6 +1025,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("waiting_music_url") != null && !jsonObj.get("waiting_music_url").isJsonNull()) { WaitingMusicUrlEnum.validateJsonElement(jsonObj.get("waiting_music_url")); } + if ((jsonObj.get("informational_notification_message") != null && !jsonObj.get("informational_notification_message").isJsonNull()) && !jsonObj.get("informational_notification_message").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `informational_notification_message` to be a primitive type in the JSON string but got `%s`", jsonObj.get("informational_notification_message").toString())); + } if ((jsonObj.get("alert_urgency_id") != null && !jsonObj.get("alert_urgency_id").isJsonNull()) && !jsonObj.get("alert_urgency_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `alert_urgency_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_urgency_id").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java b/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java index db898c3b..ac74d8d4 100644 --- a/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java +++ b/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java @@ -48,7 +48,7 @@ /** * NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -56,7 +56,7 @@ public class NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams { private String id; /** - * The type of the notification target + * The type of the notification target. Please contact support if you encounter issues using `functionality` as a target type. */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { @@ -64,7 +64,9 @@ public enum TypeEnum { GROUP("group"), - ESCALATION_POLICY("escalation_policy"); + ESCALATION_POLICY("escalation_policy"), + + FUNCTIONALITY("functionality"); private String value; @@ -142,7 +144,7 @@ public NewLiveCallRouterDataAttributesEscalationPolicyTriggerParams type(@jakart } /** - * The type of the notification target + * The type of the notification target. Please contact support if you encounter issues using `functionality` as a target type. * @return type */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesPagingTargetsInner.java b/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesPagingTargetsInner.java index 01c9f822..81d74f96 100644 --- a/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesPagingTargetsInner.java +++ b/src/main/java/com/rootly/client/model/NewLiveCallRouterDataAttributesPagingTargetsInner.java @@ -48,7 +48,7 @@ /** * NewLiveCallRouterDataAttributesPagingTargetsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewLiveCallRouterDataAttributesPagingTargetsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -56,7 +56,7 @@ public class NewLiveCallRouterDataAttributesPagingTargetsInner { private String id; /** - * The type of the paging target + * The type of the paging target. Please contact support if you encounter issues using `functionality` as a target type. */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { @@ -64,7 +64,9 @@ public enum TypeEnum { TEAM("team"), - ESCALATION_POLICY("escalation_policy"); + ESCALATION_POLICY("escalation_policy"), + + FUNCTIONALITY("functionality"); private String value; @@ -147,7 +149,7 @@ public NewLiveCallRouterDataAttributesPagingTargetsInner type(@jakarta.annotatio } /** - * The type of the paging target + * The type of the paging target. Please contact support if you encounter issues using `functionality` as a target type. * @return type */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/NewOnCallPayReport.java b/src/main/java/com/rootly/client/model/NewOnCallPayReport.java index 8fb4dd0a..82f5998c 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallPayReport.java +++ b/src/main/java/com/rootly/client/model/NewOnCallPayReport.java @@ -49,17 +49,17 @@ /** * NewOnCallPayReport */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallPayReport { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewOnCallPayReportData data; public NewOnCallPayReport() { } - public NewOnCallPayReport data(@javax.annotation.Nonnull NewOnCallPayReportData data) { + public NewOnCallPayReport data(@jakarta.annotation.Nonnull NewOnCallPayReportData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public NewOnCallPayReport data(@javax.annotation.Nonnull NewOnCallPayReportData * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewOnCallPayReportData getData() { return data; } - public void setData(@javax.annotation.Nonnull NewOnCallPayReportData data) { + public void setData(@jakarta.annotation.Nonnull NewOnCallPayReportData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/NewOnCallPayReportData.java b/src/main/java/com/rootly/client/model/NewOnCallPayReportData.java index 58bd8164..05cb7f26 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallPayReportData.java +++ b/src/main/java/com/rootly/client/model/NewOnCallPayReportData.java @@ -49,7 +49,7 @@ /** * NewOnCallPayReportData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallPayReportData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewOnCallPayReportDataAttributes attributes; public NewOnCallPayReportData() { } - public NewOnCallPayReportData type(@javax.annotation.Nonnull TypeEnum type) { + public NewOnCallPayReportData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public NewOnCallPayReportData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public NewOnCallPayReportData attributes(@javax.annotation.Nonnull NewOnCallPayReportDataAttributes attributes) { + public NewOnCallPayReportData attributes(@jakarta.annotation.Nonnull NewOnCallPayReportDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public NewOnCallPayReportData attributes(@javax.annotation.Nonnull NewOnCallPayR * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewOnCallPayReportDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull NewOnCallPayReportDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull NewOnCallPayReportDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/NewOnCallPayReportDataAttributes.java b/src/main/java/com/rootly/client/model/NewOnCallPayReportDataAttributes.java index 4f617ad3..4cd69374 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallPayReportDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewOnCallPayReportDataAttributes.java @@ -51,27 +51,37 @@ /** * NewOnCallPayReportDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallPayReportDataAttributes { public static final String SERIALIZED_NAME_START_DATE = "start_date"; @SerializedName(SERIALIZED_NAME_START_DATE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private LocalDate startDate; public static final String SERIALIZED_NAME_END_DATE = "end_date"; @SerializedName(SERIALIZED_NAME_END_DATE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private LocalDate endDate; public static final String SERIALIZED_NAME_SCHEDULE_IDS = "schedule_ids"; @SerializedName(SERIALIZED_NAME_SCHEDULE_IDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List scheduleIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_TIME_ZONE = "time_zone"; + @SerializedName(SERIALIZED_NAME_TIME_ZONE) + @jakarta.annotation.Nullable + private String timeZone; + + public static final String SERIALIZED_NAME_USE_RESPONDERS_TIME_ZONE = "use_responders_time_zone"; + @SerializedName(SERIALIZED_NAME_USE_RESPONDERS_TIME_ZONE) + @jakarta.annotation.Nullable + private Boolean useRespondersTimeZone; + public NewOnCallPayReportDataAttributes() { } - public NewOnCallPayReportDataAttributes startDate(@javax.annotation.Nonnull LocalDate startDate) { + public NewOnCallPayReportDataAttributes startDate(@jakarta.annotation.Nonnull LocalDate startDate) { this.startDate = startDate; return this; } @@ -80,17 +90,17 @@ public NewOnCallPayReportDataAttributes startDate(@javax.annotation.Nonnull Loca * The start date for the report period. * @return startDate */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public LocalDate getStartDate() { return startDate; } - public void setStartDate(@javax.annotation.Nonnull LocalDate startDate) { + public void setStartDate(@jakarta.annotation.Nonnull LocalDate startDate) { this.startDate = startDate; } - public NewOnCallPayReportDataAttributes endDate(@javax.annotation.Nonnull LocalDate endDate) { + public NewOnCallPayReportDataAttributes endDate(@jakarta.annotation.Nonnull LocalDate endDate) { this.endDate = endDate; return this; } @@ -99,17 +109,17 @@ public NewOnCallPayReportDataAttributes endDate(@javax.annotation.Nonnull LocalD * The end date for the report period. * @return endDate */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public LocalDate getEndDate() { return endDate; } - public void setEndDate(@javax.annotation.Nonnull LocalDate endDate) { + public void setEndDate(@jakarta.annotation.Nonnull LocalDate endDate) { this.endDate = endDate; } - public NewOnCallPayReportDataAttributes scheduleIds(@javax.annotation.Nullable List scheduleIds) { + public NewOnCallPayReportDataAttributes scheduleIds(@jakarta.annotation.Nullable List scheduleIds) { this.scheduleIds = scheduleIds; return this; } @@ -126,16 +136,54 @@ public NewOnCallPayReportDataAttributes addScheduleIdsItem(String scheduleIdsIte * List of schedule UUIDs to scope the report. * @return scheduleIds */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getScheduleIds() { return scheduleIds; } - public void setScheduleIds(@javax.annotation.Nullable List scheduleIds) { + public void setScheduleIds(@jakarta.annotation.Nullable List scheduleIds) { this.scheduleIds = scheduleIds; } + public NewOnCallPayReportDataAttributes timeZone(@jakarta.annotation.Nullable String timeZone) { + this.timeZone = timeZone; + return this; + } + + /** + * IANA timezone used to compute day and weekend boundaries. Defaults to the team's timezone. + * @return timeZone + */ + @jakarta.annotation.Nullable + public String getTimeZone() { + return timeZone; + } + + public void setTimeZone(@jakarta.annotation.Nullable String timeZone) { + this.timeZone = timeZone; + } + + + public NewOnCallPayReportDataAttributes useRespondersTimeZone(@jakarta.annotation.Nullable Boolean useRespondersTimeZone) { + this.useRespondersTimeZone = useRespondersTimeZone; + return this; + } + + /** + * When true, day and weekend boundaries are computed in each responder's personal timezone instead of the report-wide timezone. + * @return useRespondersTimeZone + */ + @jakarta.annotation.Nullable + public Boolean getUseRespondersTimeZone() { + return useRespondersTimeZone; + } + + public void setUseRespondersTimeZone(@jakarta.annotation.Nullable Boolean useRespondersTimeZone) { + this.useRespondersTimeZone = useRespondersTimeZone; + } + + @Override public boolean equals(Object o) { @@ -148,12 +196,14 @@ public boolean equals(Object o) { NewOnCallPayReportDataAttributes newOnCallPayReportDataAttributes = (NewOnCallPayReportDataAttributes) o; return Objects.equals(this.startDate, newOnCallPayReportDataAttributes.startDate) && Objects.equals(this.endDate, newOnCallPayReportDataAttributes.endDate) && - Objects.equals(this.scheduleIds, newOnCallPayReportDataAttributes.scheduleIds); + Objects.equals(this.scheduleIds, newOnCallPayReportDataAttributes.scheduleIds) && + Objects.equals(this.timeZone, newOnCallPayReportDataAttributes.timeZone) && + Objects.equals(this.useRespondersTimeZone, newOnCallPayReportDataAttributes.useRespondersTimeZone); } @Override public int hashCode() { - return Objects.hash(startDate, endDate, scheduleIds); + return Objects.hash(startDate, endDate, scheduleIds, timeZone, useRespondersTimeZone); } @Override @@ -163,6 +213,8 @@ public String toString() { sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); sb.append(" scheduleIds: ").append(toIndentedString(scheduleIds)).append("\n"); + sb.append(" timeZone: ").append(toIndentedString(timeZone)).append("\n"); + sb.append(" useRespondersTimeZone: ").append(toIndentedString(useRespondersTimeZone)).append("\n"); sb.append("}"); return sb.toString(); } @@ -188,6 +240,8 @@ private String toIndentedString(Object o) { openapiFields.add("start_date"); openapiFields.add("end_date"); openapiFields.add("schedule_ids"); + openapiFields.add("time_zone"); + openapiFields.add("use_responders_time_zone"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -227,6 +281,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("schedule_ids") != null && !jsonObj.get("schedule_ids").isJsonNull() && !jsonObj.get("schedule_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `schedule_ids` to be an array in the JSON string but got `%s`", jsonObj.get("schedule_ids").toString())); } + if ((jsonObj.get("time_zone") != null && !jsonObj.get("time_zone").isJsonNull()) && !jsonObj.get("time_zone").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `time_zone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("time_zone").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewOnCallRole.java b/src/main/java/com/rootly/client/model/NewOnCallRole.java index 4f1c457e..071f8529 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallRole.java +++ b/src/main/java/com/rootly/client/model/NewOnCallRole.java @@ -49,7 +49,7 @@ /** * NewOnCallRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallRole { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewOnCallRoleData.java b/src/main/java/com/rootly/client/model/NewOnCallRoleData.java index 5be0bf52..8023f759 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallRoleData.java +++ b/src/main/java/com/rootly/client/model/NewOnCallRoleData.java @@ -49,7 +49,7 @@ /** * NewOnCallRoleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallRoleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewOnCallRoleDataAttributes.java b/src/main/java/com/rootly/client/model/NewOnCallRoleDataAttributes.java index ce673629..babb03f1 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallRoleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewOnCallRoleDataAttributes.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,18 +51,19 @@ /** * NewOnCallRoleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallRoleDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + /** * Gets or Sets systemRole */ @@ -555,7 +557,9 @@ public enum AlertsPermissionsEnum { UPDATE("update"), - READ("read"); + READ("read"), + + DELETE("delete"); private String value; @@ -1327,6 +1331,67 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List servicesPermissions = new ArrayList<>(); + /** + * Gets or Sets functionalitiesPermissions + */ + @JsonAdapter(FunctionalitiesPermissionsEnum.Adapter.class) + public enum FunctionalitiesPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + FunctionalitiesPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static FunctionalitiesPermissionsEnum fromValue(String value) { + for (FunctionalitiesPermissionsEnum b : FunctionalitiesPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final FunctionalitiesPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public FunctionalitiesPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return FunctionalitiesPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + FunctionalitiesPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_FUNCTIONALITIES_PERMISSIONS = "functionalities_permissions"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITIES_PERMISSIONS) + @jakarta.annotation.Nullable + private List functionalitiesPermissions = new ArrayList<>(); + /** * Gets or Sets webhooksPermissions */ @@ -1449,47 +1514,112 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List workflowsPermissions = new ArrayList<>(); - public NewOnCallRoleDataAttributes() { - } - - public NewOnCallRoleDataAttributes name(@jakarta.annotation.Nonnull String name) { - this.name = name; - return this; - } - /** - * The role name. - * @return name + * Gets or Sets catalogsPermissions */ - @jakarta.annotation.Nonnull - public String getName() { - return name; - } + @JsonAdapter(CatalogsPermissionsEnum.Adapter.class) + public enum CatalogsPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); - public void setName(@jakarta.annotation.Nonnull String name) { - this.name = name; + private String value; + + CatalogsPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogsPermissionsEnum fromValue(String value) { + for (CatalogsPermissionsEnum b : CatalogsPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogsPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogsPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogsPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogsPermissionsEnum.fromValue(value); + } } + public static final String SERIALIZED_NAME_CATALOGS_PERMISSIONS = "catalogs_permissions"; + @SerializedName(SERIALIZED_NAME_CATALOGS_PERMISSIONS) + @jakarta.annotation.Nullable + private List catalogsPermissions = new ArrayList<>(); + public NewOnCallRoleDataAttributes() { + } + + @Deprecated public NewOnCallRoleDataAttributes slug(@jakarta.annotation.Nullable String slug) { this.slug = slug; return this; } /** - * The role slug. + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable public String getSlug() { return slug; } + @Deprecated public void setSlug(@jakarta.annotation.Nullable String slug) { this.slug = slug; } + public NewOnCallRoleDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * The role name. + * @return name + */ + @jakarta.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + public NewOnCallRoleDataAttributes systemRole(@jakarta.annotation.Nullable List systemRole) { this.systemRole = systemRole; return this; @@ -2057,6 +2187,33 @@ public void setServicesPermissions(@jakarta.annotation.Nullable List functionalitiesPermissions) { + this.functionalitiesPermissions = functionalitiesPermissions; + return this; + } + + public NewOnCallRoleDataAttributes addFunctionalitiesPermissionsItem(FunctionalitiesPermissionsEnum functionalitiesPermissionsItem) { + if (this.functionalitiesPermissions == null) { + this.functionalitiesPermissions = new ArrayList<>(); + } + this.functionalitiesPermissions.add(functionalitiesPermissionsItem); + return this; + } + + /** + * Get functionalitiesPermissions + * @return functionalitiesPermissions + */ + @jakarta.annotation.Nullable + public List getFunctionalitiesPermissions() { + return functionalitiesPermissions; + } + + public void setFunctionalitiesPermissions(@jakarta.annotation.Nullable List functionalitiesPermissions) { + this.functionalitiesPermissions = functionalitiesPermissions; + } + + public NewOnCallRoleDataAttributes webhooksPermissions(@jakarta.annotation.Nullable List webhooksPermissions) { this.webhooksPermissions = webhooksPermissions; return this; @@ -2111,6 +2268,33 @@ public void setWorkflowsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + return this; + } + + public NewOnCallRoleDataAttributes addCatalogsPermissionsItem(CatalogsPermissionsEnum catalogsPermissionsItem) { + if (this.catalogsPermissions == null) { + this.catalogsPermissions = new ArrayList<>(); + } + this.catalogsPermissions.add(catalogsPermissionsItem); + return this; + } + + /** + * Get catalogsPermissions + * @return catalogsPermissions + */ + @jakarta.annotation.Nullable + public List getCatalogsPermissions() { + return catalogsPermissions; + } + + public void setCatalogsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + } + + @Override public boolean equals(Object o) { @@ -2121,8 +2305,8 @@ public boolean equals(Object o) { return false; } NewOnCallRoleDataAttributes newOnCallRoleDataAttributes = (NewOnCallRoleDataAttributes) o; - return Objects.equals(this.name, newOnCallRoleDataAttributes.name) && - Objects.equals(this.slug, newOnCallRoleDataAttributes.slug) && + return Objects.equals(this.slug, newOnCallRoleDataAttributes.slug) && + Objects.equals(this.name, newOnCallRoleDataAttributes.name) && Objects.equals(this.systemRole, newOnCallRoleDataAttributes.systemRole) && Objects.equals(this.alertFieldsPermissions, newOnCallRoleDataAttributes.alertFieldsPermissions) && Objects.equals(this.alertGroupsPermissions, newOnCallRoleDataAttributes.alertGroupsPermissions) && @@ -2144,21 +2328,34 @@ public boolean equals(Object o) { Objects.equals(this.scheduleOverridePermissions, newOnCallRoleDataAttributes.scheduleOverridePermissions) && Objects.equals(this.schedulesPermissions, newOnCallRoleDataAttributes.schedulesPermissions) && Objects.equals(this.servicesPermissions, newOnCallRoleDataAttributes.servicesPermissions) && + Objects.equals(this.functionalitiesPermissions, newOnCallRoleDataAttributes.functionalitiesPermissions) && Objects.equals(this.webhooksPermissions, newOnCallRoleDataAttributes.webhooksPermissions) && - Objects.equals(this.workflowsPermissions, newOnCallRoleDataAttributes.workflowsPermissions); + Objects.equals(this.workflowsPermissions, newOnCallRoleDataAttributes.workflowsPermissions) && + Objects.equals(this.catalogsPermissions, newOnCallRoleDataAttributes.catalogsPermissions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(name, slug, systemRole, alertFieldsPermissions, alertGroupsPermissions, alertRoutingRulesPermissions, onCallReadinessReportPermissions, onCallRolesPermissions, alertSourcesPermissions, alertUrgencyPermissions, alertsPermissions, apiKeysPermissions, auditsPermissions, contactsPermissions, escalationPoliciesPermissions, groupsPermissions, heartbeatsPermissions, integrationsPermissions, invitationsPermissions, liveCallRoutingPermissions, scheduleOverridePermissions, schedulesPermissions, servicesPermissions, webhooksPermissions, workflowsPermissions); + return Objects.hash(slug, name, systemRole, alertFieldsPermissions, alertGroupsPermissions, alertRoutingRulesPermissions, onCallReadinessReportPermissions, onCallRolesPermissions, alertSourcesPermissions, alertUrgencyPermissions, alertsPermissions, apiKeysPermissions, auditsPermissions, contactsPermissions, escalationPoliciesPermissions, groupsPermissions, heartbeatsPermissions, integrationsPermissions, invitationsPermissions, liveCallRoutingPermissions, scheduleOverridePermissions, schedulesPermissions, servicesPermissions, functionalitiesPermissions, webhooksPermissions, workflowsPermissions, catalogsPermissions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewOnCallRoleDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" systemRole: ").append(toIndentedString(systemRole)).append("\n"); sb.append(" alertFieldsPermissions: ").append(toIndentedString(alertFieldsPermissions)).append("\n"); sb.append(" alertGroupsPermissions: ").append(toIndentedString(alertGroupsPermissions)).append("\n"); @@ -2180,8 +2377,10 @@ public String toString() { sb.append(" scheduleOverridePermissions: ").append(toIndentedString(scheduleOverridePermissions)).append("\n"); sb.append(" schedulesPermissions: ").append(toIndentedString(schedulesPermissions)).append("\n"); sb.append(" servicesPermissions: ").append(toIndentedString(servicesPermissions)).append("\n"); + sb.append(" functionalitiesPermissions: ").append(toIndentedString(functionalitiesPermissions)).append("\n"); sb.append(" webhooksPermissions: ").append(toIndentedString(webhooksPermissions)).append("\n"); sb.append(" workflowsPermissions: ").append(toIndentedString(workflowsPermissions)).append("\n"); + sb.append(" catalogsPermissions: ").append(toIndentedString(catalogsPermissions)).append("\n"); sb.append("}"); return sb.toString(); } @@ -2204,8 +2403,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("system_role"); openapiFields.add("alert_fields_permissions"); openapiFields.add("alert_groups_permissions"); @@ -2227,8 +2426,10 @@ private String toIndentedString(Object o) { openapiFields.add("schedule_override_permissions"); openapiFields.add("schedules_permissions"); openapiFields.add("services_permissions"); + openapiFields.add("functionalities_permissions"); openapiFields.add("webhooks_permissions"); openapiFields.add("workflows_permissions"); + openapiFields.add("catalogs_permissions"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -2263,12 +2464,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("system_role") != null && !jsonObj.get("system_role").isJsonNull() && !jsonObj.get("system_role").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `system_role` to be an array in the JSON string but got `%s`", jsonObj.get("system_role").toString())); @@ -2354,6 +2555,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti throw new IllegalArgumentException(String.format("Expected the field `services_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("services_permissions").toString())); } // ensure the optional json data is an array if present + if (jsonObj.get("functionalities_permissions") != null && !jsonObj.get("functionalities_permissions").isJsonNull() && !jsonObj.get("functionalities_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionalities_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("functionalities_permissions").toString())); + } + // ensure the optional json data is an array if present if (jsonObj.get("webhooks_permissions") != null && !jsonObj.get("webhooks_permissions").isJsonNull() && !jsonObj.get("webhooks_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `webhooks_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("webhooks_permissions").toString())); } @@ -2361,6 +2566,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("workflows_permissions") != null && !jsonObj.get("workflows_permissions").isJsonNull() && !jsonObj.get("workflows_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `workflows_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("workflows_permissions").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("catalogs_permissions") != null && !jsonObj.get("catalogs_permissions").isJsonNull() && !jsonObj.get("catalogs_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `catalogs_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("catalogs_permissions").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewOnCallShadow.java b/src/main/java/com/rootly/client/model/NewOnCallShadow.java index 53c84153..92e5ec5f 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallShadow.java +++ b/src/main/java/com/rootly/client/model/NewOnCallShadow.java @@ -49,7 +49,7 @@ /** * NewOnCallShadow */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallShadow { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewOnCallShadowData.java b/src/main/java/com/rootly/client/model/NewOnCallShadowData.java index 50e9e952..11b78862 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallShadowData.java +++ b/src/main/java/com/rootly/client/model/NewOnCallShadowData.java @@ -49,7 +49,7 @@ /** * NewOnCallShadowData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallShadowData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewOnCallShadowDataAttributes.java b/src/main/java/com/rootly/client/model/NewOnCallShadowDataAttributes.java index cd68ecce..ae40420b 100644 --- a/src/main/java/com/rootly/client/model/NewOnCallShadowDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewOnCallShadowDataAttributes.java @@ -49,7 +49,7 @@ /** * NewOnCallShadowDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOnCallShadowDataAttributes { /** * Gets or Sets shadowableType diff --git a/src/main/java/com/rootly/client/model/NewOverrideShift.java b/src/main/java/com/rootly/client/model/NewOverrideShift.java index 6b3665b6..2c42ee40 100644 --- a/src/main/java/com/rootly/client/model/NewOverrideShift.java +++ b/src/main/java/com/rootly/client/model/NewOverrideShift.java @@ -49,7 +49,7 @@ /** * NewOverrideShift */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOverrideShift { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewOverrideShiftData.java b/src/main/java/com/rootly/client/model/NewOverrideShiftData.java index 6734f5b3..f010900e 100644 --- a/src/main/java/com/rootly/client/model/NewOverrideShiftData.java +++ b/src/main/java/com/rootly/client/model/NewOverrideShiftData.java @@ -49,7 +49,7 @@ /** * NewOverrideShiftData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOverrideShiftData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewOverrideShiftDataAttributes.java b/src/main/java/com/rootly/client/model/NewOverrideShiftDataAttributes.java index 5b629215..86816e6e 100644 --- a/src/main/java/com/rootly/client/model/NewOverrideShiftDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewOverrideShiftDataAttributes.java @@ -49,7 +49,7 @@ /** * NewOverrideShiftDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewOverrideShiftDataAttributes { public static final String SERIALIZED_NAME_STARTS_AT = "starts_at"; @SerializedName(SERIALIZED_NAME_STARTS_AT) diff --git a/src/main/java/com/rootly/client/model/NewPlaybook.java b/src/main/java/com/rootly/client/model/NewPlaybook.java index 2d35417b..1a820cfd 100644 --- a/src/main/java/com/rootly/client/model/NewPlaybook.java +++ b/src/main/java/com/rootly/client/model/NewPlaybook.java @@ -49,7 +49,7 @@ /** * NewPlaybook */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPlaybook { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewPlaybookData.java b/src/main/java/com/rootly/client/model/NewPlaybookData.java index dc3c151b..39c15122 100644 --- a/src/main/java/com/rootly/client/model/NewPlaybookData.java +++ b/src/main/java/com/rootly/client/model/NewPlaybookData.java @@ -49,7 +49,7 @@ /** * NewPlaybookData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPlaybookData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewPlaybookDataAttributes.java b/src/main/java/com/rootly/client/model/NewPlaybookDataAttributes.java index 08e2b7cb..426505a3 100644 --- a/src/main/java/com/rootly/client/model/NewPlaybookDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewPlaybookDataAttributes.java @@ -51,7 +51,7 @@ /** * NewPlaybookDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPlaybookDataAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/NewPlaybookTask.java b/src/main/java/com/rootly/client/model/NewPlaybookTask.java index c9ff6070..2fc5eef8 100644 --- a/src/main/java/com/rootly/client/model/NewPlaybookTask.java +++ b/src/main/java/com/rootly/client/model/NewPlaybookTask.java @@ -49,7 +49,7 @@ /** * NewPlaybookTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPlaybookTask { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewPlaybookTaskData.java b/src/main/java/com/rootly/client/model/NewPlaybookTaskData.java index 5228d9a8..cb1c476f 100644 --- a/src/main/java/com/rootly/client/model/NewPlaybookTaskData.java +++ b/src/main/java/com/rootly/client/model/NewPlaybookTaskData.java @@ -49,7 +49,7 @@ /** * NewPlaybookTaskData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPlaybookTaskData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewPlaybookTaskDataAttributes.java b/src/main/java/com/rootly/client/model/NewPlaybookTaskDataAttributes.java index 39f481ce..39615b45 100644 --- a/src/main/java/com/rootly/client/model/NewPlaybookTaskDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewPlaybookTaskDataAttributes.java @@ -49,7 +49,7 @@ /** * NewPlaybookTaskDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPlaybookTaskDataAttributes { public static final String SERIALIZED_NAME_TASK = "task"; @SerializedName(SERIALIZED_NAME_TASK) diff --git a/src/main/java/com/rootly/client/model/NewPostMortemTemplate.java b/src/main/java/com/rootly/client/model/NewPostMortemTemplate.java index de57eefd..3f85c377 100644 --- a/src/main/java/com/rootly/client/model/NewPostMortemTemplate.java +++ b/src/main/java/com/rootly/client/model/NewPostMortemTemplate.java @@ -49,7 +49,7 @@ /** * NewPostMortemTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPostMortemTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewPostMortemTemplateData.java b/src/main/java/com/rootly/client/model/NewPostMortemTemplateData.java index f8929882..d022aad0 100644 --- a/src/main/java/com/rootly/client/model/NewPostMortemTemplateData.java +++ b/src/main/java/com/rootly/client/model/NewPostMortemTemplateData.java @@ -49,7 +49,7 @@ /** * NewPostMortemTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPostMortemTemplateData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewPostMortemTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/NewPostMortemTemplateDataAttributes.java index 8d9b9651..7e7b527c 100644 --- a/src/main/java/com/rootly/client/model/NewPostMortemTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewPostMortemTemplateDataAttributes.java @@ -49,8 +49,14 @@ /** * NewPostMortemTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPostMortemTemplateDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -126,6 +132,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewPostMortemTemplateDataAttributes() { } + @Deprecated + public NewPostMortemTemplateDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewPostMortemTemplateDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -212,7 +241,8 @@ public boolean equals(Object o) { return false; } NewPostMortemTemplateDataAttributes newPostMortemTemplateDataAttributes = (NewPostMortemTemplateDataAttributes) o; - return Objects.equals(this.name, newPostMortemTemplateDataAttributes.name) && + return Objects.equals(this.slug, newPostMortemTemplateDataAttributes.slug) && + Objects.equals(this.name, newPostMortemTemplateDataAttributes.name) && Objects.equals(this._default, newPostMortemTemplateDataAttributes._default) && Objects.equals(this.content, newPostMortemTemplateDataAttributes.content) && Objects.equals(this.format, newPostMortemTemplateDataAttributes.format); @@ -224,7 +254,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, _default, content, format); + return Objects.hash(slug, name, _default, content, format); } private static int hashCodeNullable(JsonNullable a) { @@ -238,6 +268,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewPostMortemTemplateDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" _default: ").append(toIndentedString(_default)).append("\n"); sb.append(" content: ").append(toIndentedString(content)).append("\n"); @@ -264,6 +295,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("default"); openapiFields.add("content"); @@ -302,6 +334,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewPulse.java b/src/main/java/com/rootly/client/model/NewPulse.java index fb4a3e05..0d433d67 100644 --- a/src/main/java/com/rootly/client/model/NewPulse.java +++ b/src/main/java/com/rootly/client/model/NewPulse.java @@ -49,7 +49,7 @@ /** * NewPulse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPulse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewPulseData.java b/src/main/java/com/rootly/client/model/NewPulseData.java index a72d0bd6..b8056aa2 100644 --- a/src/main/java/com/rootly/client/model/NewPulseData.java +++ b/src/main/java/com/rootly/client/model/NewPulseData.java @@ -49,7 +49,7 @@ /** * NewPulseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPulseData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewPulseDataAttributes.java b/src/main/java/com/rootly/client/model/NewPulseDataAttributes.java index 181b3418..bfb928ed 100644 --- a/src/main/java/com/rootly/client/model/NewPulseDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewPulseDataAttributes.java @@ -54,7 +54,7 @@ /** * NewPulseDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPulseDataAttributes { public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) diff --git a/src/main/java/com/rootly/client/model/NewPulseDataAttributesLabelsInner.java b/src/main/java/com/rootly/client/model/NewPulseDataAttributesLabelsInner.java index d56bcf8d..eea6aca2 100644 --- a/src/main/java/com/rootly/client/model/NewPulseDataAttributesLabelsInner.java +++ b/src/main/java/com/rootly/client/model/NewPulseDataAttributesLabelsInner.java @@ -48,7 +48,7 @@ /** * NewPulseDataAttributesLabelsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPulseDataAttributesLabelsInner { public static final String SERIALIZED_NAME_KEY = "key"; @SerializedName(SERIALIZED_NAME_KEY) diff --git a/src/main/java/com/rootly/client/model/NewPulseDataAttributesRefsInner.java b/src/main/java/com/rootly/client/model/NewPulseDataAttributesRefsInner.java index 396fbb69..c48158f2 100644 --- a/src/main/java/com/rootly/client/model/NewPulseDataAttributesRefsInner.java +++ b/src/main/java/com/rootly/client/model/NewPulseDataAttributesRefsInner.java @@ -48,7 +48,7 @@ /** * NewPulseDataAttributesRefsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewPulseDataAttributesRefsInner { public static final String SERIALIZED_NAME_KEY = "key"; @SerializedName(SERIALIZED_NAME_KEY) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcess.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcess.java index 26fcf8f0..fb84753a 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcess.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcess.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveProcess */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcess { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessData.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessData.java index 6ff0c3df..450509d6 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessData.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessData.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveProcessData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributes.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributes.java index 306e0e6e..43aeaca3 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributes.java @@ -50,7 +50,7 @@ /** * NewRetrospectiveProcessDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteria.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteria.java index 2bed590b..b711cdfa 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteria.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteria.java @@ -62,7 +62,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteria extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteria.class.getName()); diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf.java index bff2153c..7ac1b6df 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf.java @@ -50,7 +50,7 @@ /** * NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf { public static final String SERIALIZED_NAME_SEVERITY_IDS = "severity_ids"; @SerializedName(SERIALIZED_NAME_SEVERITY_IDS) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf1.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf1.java index 087a14cf..91773a24 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf1.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf1.java @@ -50,7 +50,7 @@ /** * NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf1 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf1 { public static final String SERIALIZED_NAME_GROUP_IDS = "group_ids"; @SerializedName(SERIALIZED_NAME_GROUP_IDS) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf2.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf2.java index 393a94ab..47201571 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf2.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf2.java @@ -50,7 +50,7 @@ /** * NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf2 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessDataAttributesRetrospectiveProcessMatchingCriteriaOneOf2 { public static final String SERIALIZED_NAME_INCIDENT_TYPE_IDS = "incident_type_ids"; @SerializedName(SERIALIZED_NAME_INCIDENT_TYPE_IDS) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroup.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroup.java index 42113aaf..806dc02d 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroup.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroup.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveProcessGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupData.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupData.java index 4a34dd02..1e85c5c7 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupData.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupData.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveProcessGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupDataAttributes.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupDataAttributes.java index 0ccfa700..8092f6d8 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupDataAttributes.java @@ -48,7 +48,7 @@ /** * NewRetrospectiveProcessGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessGroupDataAttributes { public static final String SERIALIZED_NAME_SUB_STATUS_ID = "sub_status_id"; @SerializedName(SERIALIZED_NAME_SUB_STATUS_ID) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStep.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStep.java index c2a359ce..abe46af8 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStep.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStep.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveProcessGroupStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessGroupStep { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepData.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepData.java index b991fb01..c0c2216b 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepData.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepData.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveProcessGroupStepData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessGroupStepData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepDataAttributes.java b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepDataAttributes.java index 118fb507..4268494c 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveProcessGroupStepDataAttributes.java @@ -48,7 +48,7 @@ /** * NewRetrospectiveProcessGroupStepDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveProcessGroupStepDataAttributes { public static final String SERIALIZED_NAME_RETROSPECTIVE_STEP_ID = "retrospective_step_id"; @SerializedName(SERIALIZED_NAME_RETROSPECTIVE_STEP_ID) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveStep.java b/src/main/java/com/rootly/client/model/NewRetrospectiveStep.java index 8295c8b7..2f08cc12 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveStep.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveStep.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveStep { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveStepData.java b/src/main/java/com/rootly/client/model/NewRetrospectiveStepData.java index 5ce186b2..5ba69cf2 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveStepData.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveStepData.java @@ -49,7 +49,7 @@ /** * NewRetrospectiveStepData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveStepData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewRetrospectiveStepDataAttributes.java b/src/main/java/com/rootly/client/model/NewRetrospectiveStepDataAttributes.java index fde47f5a..646b8625 100644 --- a/src/main/java/com/rootly/client/model/NewRetrospectiveStepDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewRetrospectiveStepDataAttributes.java @@ -49,8 +49,14 @@ /** * NewRetrospectiveStepDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRetrospectiveStepDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) @jakarta.annotation.Nonnull @@ -84,6 +90,29 @@ public class NewRetrospectiveStepDataAttributes { public NewRetrospectiveStepDataAttributes() { } + @Deprecated + public NewRetrospectiveStepDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewRetrospectiveStepDataAttributes title(@jakarta.annotation.Nonnull String title) { this.title = title; return this; @@ -208,7 +237,8 @@ public boolean equals(Object o) { return false; } NewRetrospectiveStepDataAttributes newRetrospectiveStepDataAttributes = (NewRetrospectiveStepDataAttributes) o; - return Objects.equals(this.title, newRetrospectiveStepDataAttributes.title) && + return Objects.equals(this.slug, newRetrospectiveStepDataAttributes.slug) && + Objects.equals(this.title, newRetrospectiveStepDataAttributes.title) && Objects.equals(this.description, newRetrospectiveStepDataAttributes.description) && Objects.equals(this.dueAfterDays, newRetrospectiveStepDataAttributes.dueAfterDays) && Objects.equals(this.incidentRoleId, newRetrospectiveStepDataAttributes.incidentRoleId) && @@ -222,7 +252,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(title, description, dueAfterDays, incidentRoleId, position, skippable); + return Objects.hash(slug, title, description, dueAfterDays, incidentRoleId, position, skippable); } private static int hashCodeNullable(JsonNullable a) { @@ -236,6 +266,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewRetrospectiveStepDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" dueAfterDays: ").append(toIndentedString(dueAfterDays)).append("\n"); @@ -264,6 +295,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("title"); openapiFields.add("description"); openapiFields.add("due_after_days"); @@ -304,6 +336,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewRole.java b/src/main/java/com/rootly/client/model/NewRole.java index 19c6262b..93d01478 100644 --- a/src/main/java/com/rootly/client/model/NewRole.java +++ b/src/main/java/com/rootly/client/model/NewRole.java @@ -49,7 +49,7 @@ /** * NewRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRole { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewRoleData.java b/src/main/java/com/rootly/client/model/NewRoleData.java index e93a73d8..472904e9 100644 --- a/src/main/java/com/rootly/client/model/NewRoleData.java +++ b/src/main/java/com/rootly/client/model/NewRoleData.java @@ -49,7 +49,7 @@ /** * NewRoleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRoleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewRoleDataAttributes.java b/src/main/java/com/rootly/client/model/NewRoleDataAttributes.java index 603b19f9..5f9a665b 100644 --- a/src/main/java/com/rootly/client/model/NewRoleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewRoleDataAttributes.java @@ -51,18 +51,19 @@ /** * NewRoleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewRoleDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + public static final String SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID = "incident_permission_set_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID) @jakarta.annotation.Nullable @@ -1648,47 +1649,480 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List workflowsPermissions = new ArrayList<>(); - public NewRoleDataAttributes() { + /** + * Gets or Sets catalogsPermissions + */ + @JsonAdapter(CatalogsPermissionsEnum.Adapter.class) + public enum CatalogsPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + CatalogsPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogsPermissionsEnum fromValue(String value) { + for (CatalogsPermissionsEnum b : CatalogsPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogsPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogsPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogsPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogsPermissionsEnum.fromValue(value); + } } - public NewRoleDataAttributes name(@jakarta.annotation.Nonnull String name) { - this.name = name; - return this; + public static final String SERIALIZED_NAME_CATALOGS_PERMISSIONS = "catalogs_permissions"; + @SerializedName(SERIALIZED_NAME_CATALOGS_PERMISSIONS) + @jakarta.annotation.Nullable + private List catalogsPermissions = new ArrayList<>(); + + /** + * Gets or Sets subStatusesPermissions + */ + @JsonAdapter(SubStatusesPermissionsEnum.Adapter.class) + public enum SubStatusesPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + SubStatusesPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SubStatusesPermissionsEnum fromValue(String value) { + for (SubStatusesPermissionsEnum b : SubStatusesPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SubStatusesPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SubStatusesPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SubStatusesPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SubStatusesPermissionsEnum.fromValue(value); + } } + public static final String SERIALIZED_NAME_SUB_STATUSES_PERMISSIONS = "sub_statuses_permissions"; + @SerializedName(SERIALIZED_NAME_SUB_STATUSES_PERMISSIONS) + @jakarta.annotation.Nullable + private List subStatusesPermissions = new ArrayList<>(); + /** - * The role name. - * @return name + * Gets or Sets edgeConnectorPermissions */ - @jakarta.annotation.Nonnull - public String getName() { - return name; + @JsonAdapter(EdgeConnectorPermissionsEnum.Adapter.class) + public enum EdgeConnectorPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + EdgeConnectorPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EdgeConnectorPermissionsEnum fromValue(String value) { + for (EdgeConnectorPermissionsEnum b : EdgeConnectorPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EdgeConnectorPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EdgeConnectorPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EdgeConnectorPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EdgeConnectorPermissionsEnum.fromValue(value); + } } - public void setName(@jakarta.annotation.Nonnull String name) { - this.name = name; + public static final String SERIALIZED_NAME_EDGE_CONNECTOR_PERMISSIONS = "edge_connector_permissions"; + @SerializedName(SERIALIZED_NAME_EDGE_CONNECTOR_PERMISSIONS) + @jakarta.annotation.Nullable + private List edgeConnectorPermissions = new ArrayList<>(); + + /** + * Gets or Sets slasPermissions + */ + @JsonAdapter(SlasPermissionsEnum.Adapter.class) + public enum SlasPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + SlasPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SlasPermissionsEnum fromValue(String value) { + for (SlasPermissionsEnum b : SlasPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SlasPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SlasPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SlasPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SlasPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SLAS_PERMISSIONS = "slas_permissions"; + @SerializedName(SERIALIZED_NAME_SLAS_PERMISSIONS) + @jakarta.annotation.Nullable + private List slasPermissions = new ArrayList<>(); + + /** + * Gets or Sets pagingPermissions + */ + @JsonAdapter(PagingPermissionsEnum.Adapter.class) + public enum PagingPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + PagingPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingPermissionsEnum fromValue(String value) { + for (PagingPermissionsEnum b : PagingPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_PERMISSIONS = "paging_permissions"; + @SerializedName(SERIALIZED_NAME_PAGING_PERMISSIONS) + @jakarta.annotation.Nullable + private List pagingPermissions = new ArrayList<>(); + + /** + * Gets or Sets incidentCommunicationPermissions + */ + @JsonAdapter(IncidentCommunicationPermissionsEnum.Adapter.class) + public enum IncidentCommunicationPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"), + + SEND("send"); + + private String value; + + IncidentCommunicationPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IncidentCommunicationPermissionsEnum fromValue(String value) { + for (IncidentCommunicationPermissionsEnum b : IncidentCommunicationPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IncidentCommunicationPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IncidentCommunicationPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IncidentCommunicationPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IncidentCommunicationPermissionsEnum.fromValue(value); + } } + public static final String SERIALIZED_NAME_INCIDENT_COMMUNICATION_PERMISSIONS = "incident_communication_permissions"; + @SerializedName(SERIALIZED_NAME_INCIDENT_COMMUNICATION_PERMISSIONS) + @jakarta.annotation.Nullable + private List incidentCommunicationPermissions = new ArrayList<>(); + + /** + * Gets or Sets communicationPermissions + */ + @JsonAdapter(CommunicationPermissionsEnum.Adapter.class) + public enum CommunicationPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + CommunicationPermissionsEnum(String value) { + this.value = value; + } + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CommunicationPermissionsEnum fromValue(String value) { + for (CommunicationPermissionsEnum b : CommunicationPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CommunicationPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CommunicationPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CommunicationPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CommunicationPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_COMMUNICATION_PERMISSIONS = "communication_permissions"; + @SerializedName(SERIALIZED_NAME_COMMUNICATION_PERMISSIONS) + @jakarta.annotation.Nullable + private List communicationPermissions = new ArrayList<>(); + + public NewRoleDataAttributes() { + } + + @Deprecated public NewRoleDataAttributes slug(@jakarta.annotation.Nullable String slug) { this.slug = slug; return this; } /** - * The role slug. + * Deprecated. Custom role slugs remain accepted temporarily. Stop setting `slug`; it will become read-only and be derived from `name` when this property is removed from the request schema in a future version. * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable public String getSlug() { return slug; } + @Deprecated public void setSlug(@jakarta.annotation.Nullable String slug) { this.slug = slug; } + public NewRoleDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * The role name. + * @return name + */ + @jakarta.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + public NewRoleDataAttributes incidentPermissionSetId(@jakarta.annotation.Nullable String incidentPermissionSetId) { this.incidentPermissionSetId = incidentPermissionSetId; return this; @@ -2410,6 +2844,195 @@ public void setWorkflowsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + return this; + } + + public NewRoleDataAttributes addCatalogsPermissionsItem(CatalogsPermissionsEnum catalogsPermissionsItem) { + if (this.catalogsPermissions == null) { + this.catalogsPermissions = new ArrayList<>(); + } + this.catalogsPermissions.add(catalogsPermissionsItem); + return this; + } + + /** + * Get catalogsPermissions + * @return catalogsPermissions + */ + @jakarta.annotation.Nullable + public List getCatalogsPermissions() { + return catalogsPermissions; + } + + public void setCatalogsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + } + + + public NewRoleDataAttributes subStatusesPermissions(@jakarta.annotation.Nullable List subStatusesPermissions) { + this.subStatusesPermissions = subStatusesPermissions; + return this; + } + + public NewRoleDataAttributes addSubStatusesPermissionsItem(SubStatusesPermissionsEnum subStatusesPermissionsItem) { + if (this.subStatusesPermissions == null) { + this.subStatusesPermissions = new ArrayList<>(); + } + this.subStatusesPermissions.add(subStatusesPermissionsItem); + return this; + } + + /** + * Get subStatusesPermissions + * @return subStatusesPermissions + */ + @jakarta.annotation.Nullable + public List getSubStatusesPermissions() { + return subStatusesPermissions; + } + + public void setSubStatusesPermissions(@jakarta.annotation.Nullable List subStatusesPermissions) { + this.subStatusesPermissions = subStatusesPermissions; + } + + + public NewRoleDataAttributes edgeConnectorPermissions(@jakarta.annotation.Nullable List edgeConnectorPermissions) { + this.edgeConnectorPermissions = edgeConnectorPermissions; + return this; + } + + public NewRoleDataAttributes addEdgeConnectorPermissionsItem(EdgeConnectorPermissionsEnum edgeConnectorPermissionsItem) { + if (this.edgeConnectorPermissions == null) { + this.edgeConnectorPermissions = new ArrayList<>(); + } + this.edgeConnectorPermissions.add(edgeConnectorPermissionsItem); + return this; + } + + /** + * Get edgeConnectorPermissions + * @return edgeConnectorPermissions + */ + @jakarta.annotation.Nullable + public List getEdgeConnectorPermissions() { + return edgeConnectorPermissions; + } + + public void setEdgeConnectorPermissions(@jakarta.annotation.Nullable List edgeConnectorPermissions) { + this.edgeConnectorPermissions = edgeConnectorPermissions; + } + + + public NewRoleDataAttributes slasPermissions(@jakarta.annotation.Nullable List slasPermissions) { + this.slasPermissions = slasPermissions; + return this; + } + + public NewRoleDataAttributes addSlasPermissionsItem(SlasPermissionsEnum slasPermissionsItem) { + if (this.slasPermissions == null) { + this.slasPermissions = new ArrayList<>(); + } + this.slasPermissions.add(slasPermissionsItem); + return this; + } + + /** + * Get slasPermissions + * @return slasPermissions + */ + @jakarta.annotation.Nullable + public List getSlasPermissions() { + return slasPermissions; + } + + public void setSlasPermissions(@jakarta.annotation.Nullable List slasPermissions) { + this.slasPermissions = slasPermissions; + } + + + public NewRoleDataAttributes pagingPermissions(@jakarta.annotation.Nullable List pagingPermissions) { + this.pagingPermissions = pagingPermissions; + return this; + } + + public NewRoleDataAttributes addPagingPermissionsItem(PagingPermissionsEnum pagingPermissionsItem) { + if (this.pagingPermissions == null) { + this.pagingPermissions = new ArrayList<>(); + } + this.pagingPermissions.add(pagingPermissionsItem); + return this; + } + + /** + * Get pagingPermissions + * @return pagingPermissions + */ + @jakarta.annotation.Nullable + public List getPagingPermissions() { + return pagingPermissions; + } + + public void setPagingPermissions(@jakarta.annotation.Nullable List pagingPermissions) { + this.pagingPermissions = pagingPermissions; + } + + + public NewRoleDataAttributes incidentCommunicationPermissions(@jakarta.annotation.Nullable List incidentCommunicationPermissions) { + this.incidentCommunicationPermissions = incidentCommunicationPermissions; + return this; + } + + public NewRoleDataAttributes addIncidentCommunicationPermissionsItem(IncidentCommunicationPermissionsEnum incidentCommunicationPermissionsItem) { + if (this.incidentCommunicationPermissions == null) { + this.incidentCommunicationPermissions = new ArrayList<>(); + } + this.incidentCommunicationPermissions.add(incidentCommunicationPermissionsItem); + return this; + } + + /** + * Get incidentCommunicationPermissions + * @return incidentCommunicationPermissions + */ + @jakarta.annotation.Nullable + public List getIncidentCommunicationPermissions() { + return incidentCommunicationPermissions; + } + + public void setIncidentCommunicationPermissions(@jakarta.annotation.Nullable List incidentCommunicationPermissions) { + this.incidentCommunicationPermissions = incidentCommunicationPermissions; + } + + + public NewRoleDataAttributes communicationPermissions(@jakarta.annotation.Nullable List communicationPermissions) { + this.communicationPermissions = communicationPermissions; + return this; + } + + public NewRoleDataAttributes addCommunicationPermissionsItem(CommunicationPermissionsEnum communicationPermissionsItem) { + if (this.communicationPermissions == null) { + this.communicationPermissions = new ArrayList<>(); + } + this.communicationPermissions.add(communicationPermissionsItem); + return this; + } + + /** + * Get communicationPermissions + * @return communicationPermissions + */ + @jakarta.annotation.Nullable + public List getCommunicationPermissions() { + return communicationPermissions; + } + + public void setCommunicationPermissions(@jakarta.annotation.Nullable List communicationPermissions) { + this.communicationPermissions = communicationPermissions; + } + + @Override public boolean equals(Object o) { @@ -2420,8 +3043,8 @@ public boolean equals(Object o) { return false; } NewRoleDataAttributes newRoleDataAttributes = (NewRoleDataAttributes) o; - return Objects.equals(this.name, newRoleDataAttributes.name) && - Objects.equals(this.slug, newRoleDataAttributes.slug) && + return Objects.equals(this.slug, newRoleDataAttributes.slug) && + Objects.equals(this.name, newRoleDataAttributes.name) && Objects.equals(this.incidentPermissionSetId, newRoleDataAttributes.incidentPermissionSetId) && Objects.equals(this.alertsPermissions, newRoleDataAttributes.alertsPermissions) && Objects.equals(this.apiKeysPermissions, newRoleDataAttributes.apiKeysPermissions) && @@ -2448,7 +3071,14 @@ public boolean equals(Object o) { Objects.equals(this.severitiesPermissions, newRoleDataAttributes.severitiesPermissions) && Objects.equals(this.statusPagesPermissions, newRoleDataAttributes.statusPagesPermissions) && Objects.equals(this.webhooksPermissions, newRoleDataAttributes.webhooksPermissions) && - Objects.equals(this.workflowsPermissions, newRoleDataAttributes.workflowsPermissions); + Objects.equals(this.workflowsPermissions, newRoleDataAttributes.workflowsPermissions) && + Objects.equals(this.catalogsPermissions, newRoleDataAttributes.catalogsPermissions) && + Objects.equals(this.subStatusesPermissions, newRoleDataAttributes.subStatusesPermissions) && + Objects.equals(this.edgeConnectorPermissions, newRoleDataAttributes.edgeConnectorPermissions) && + Objects.equals(this.slasPermissions, newRoleDataAttributes.slasPermissions) && + Objects.equals(this.pagingPermissions, newRoleDataAttributes.pagingPermissions) && + Objects.equals(this.incidentCommunicationPermissions, newRoleDataAttributes.incidentCommunicationPermissions) && + Objects.equals(this.communicationPermissions, newRoleDataAttributes.communicationPermissions); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -2457,7 +3087,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, incidentPermissionSetId, alertsPermissions, apiKeysPermissions, auditsPermissions, billingPermissions, environmentsPermissions, formFieldsPermissions, functionalitiesPermissions, groupsPermissions, incidentCausesPermissions, incidentFeedbacksPermissions, incidentRolesPermissions, incidentTypesPermissions, incidentsPermissions, integrationsPermissions, invitationsPermissions, playbooksPermissions, privateIncidentsPermissions, pulsesPermissions, retrospectivePermissions, rolesPermissions, secretsPermissions, servicesPermissions, severitiesPermissions, statusPagesPermissions, webhooksPermissions, workflowsPermissions); + return Objects.hash(slug, name, incidentPermissionSetId, alertsPermissions, apiKeysPermissions, auditsPermissions, billingPermissions, environmentsPermissions, formFieldsPermissions, functionalitiesPermissions, groupsPermissions, incidentCausesPermissions, incidentFeedbacksPermissions, incidentRolesPermissions, incidentTypesPermissions, incidentsPermissions, integrationsPermissions, invitationsPermissions, playbooksPermissions, privateIncidentsPermissions, pulsesPermissions, retrospectivePermissions, rolesPermissions, secretsPermissions, servicesPermissions, severitiesPermissions, statusPagesPermissions, webhooksPermissions, workflowsPermissions, catalogsPermissions, subStatusesPermissions, edgeConnectorPermissions, slasPermissions, pagingPermissions, incidentCommunicationPermissions, communicationPermissions); } private static int hashCodeNullable(JsonNullable a) { @@ -2471,8 +3101,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewRoleDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" incidentPermissionSetId: ").append(toIndentedString(incidentPermissionSetId)).append("\n"); sb.append(" alertsPermissions: ").append(toIndentedString(alertsPermissions)).append("\n"); sb.append(" apiKeysPermissions: ").append(toIndentedString(apiKeysPermissions)).append("\n"); @@ -2500,6 +3130,13 @@ public String toString() { sb.append(" statusPagesPermissions: ").append(toIndentedString(statusPagesPermissions)).append("\n"); sb.append(" webhooksPermissions: ").append(toIndentedString(webhooksPermissions)).append("\n"); sb.append(" workflowsPermissions: ").append(toIndentedString(workflowsPermissions)).append("\n"); + sb.append(" catalogsPermissions: ").append(toIndentedString(catalogsPermissions)).append("\n"); + sb.append(" subStatusesPermissions: ").append(toIndentedString(subStatusesPermissions)).append("\n"); + sb.append(" edgeConnectorPermissions: ").append(toIndentedString(edgeConnectorPermissions)).append("\n"); + sb.append(" slasPermissions: ").append(toIndentedString(slasPermissions)).append("\n"); + sb.append(" pagingPermissions: ").append(toIndentedString(pagingPermissions)).append("\n"); + sb.append(" incidentCommunicationPermissions: ").append(toIndentedString(incidentCommunicationPermissions)).append("\n"); + sb.append(" communicationPermissions: ").append(toIndentedString(communicationPermissions)).append("\n"); sb.append("}"); return sb.toString(); } @@ -2522,8 +3159,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("incident_permission_set_id"); openapiFields.add("alerts_permissions"); openapiFields.add("api_keys_permissions"); @@ -2551,6 +3188,13 @@ private String toIndentedString(Object o) { openapiFields.add("status_pages_permissions"); openapiFields.add("webhooks_permissions"); openapiFields.add("workflows_permissions"); + openapiFields.add("catalogs_permissions"); + openapiFields.add("sub_statuses_permissions"); + openapiFields.add("edge_connector_permissions"); + openapiFields.add("slas_permissions"); + openapiFields.add("paging_permissions"); + openapiFields.add("incident_communication_permissions"); + openapiFields.add("communication_permissions"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -2585,12 +3229,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("incident_permission_set_id") != null && !jsonObj.get("incident_permission_set_id").isJsonNull()) && !jsonObj.get("incident_permission_set_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `incident_permission_set_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_permission_set_id").toString())); } @@ -2698,6 +3342,34 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("workflows_permissions") != null && !jsonObj.get("workflows_permissions").isJsonNull() && !jsonObj.get("workflows_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `workflows_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("workflows_permissions").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("catalogs_permissions") != null && !jsonObj.get("catalogs_permissions").isJsonNull() && !jsonObj.get("catalogs_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `catalogs_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("catalogs_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("sub_statuses_permissions") != null && !jsonObj.get("sub_statuses_permissions").isJsonNull() && !jsonObj.get("sub_statuses_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `sub_statuses_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("sub_statuses_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("edge_connector_permissions") != null && !jsonObj.get("edge_connector_permissions").isJsonNull() && !jsonObj.get("edge_connector_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `edge_connector_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("edge_connector_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("slas_permissions") != null && !jsonObj.get("slas_permissions").isJsonNull() && !jsonObj.get("slas_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `slas_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("slas_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("paging_permissions") != null && !jsonObj.get("paging_permissions").isJsonNull() && !jsonObj.get("paging_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("paging_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("incident_communication_permissions") != null && !jsonObj.get("incident_communication_permissions").isJsonNull() && !jsonObj.get("incident_communication_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_communication_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("incident_communication_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("communication_permissions") != null && !jsonObj.get("communication_permissions").isJsonNull() && !jsonObj.get("communication_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `communication_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("communication_permissions").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewSchedule.java b/src/main/java/com/rootly/client/model/NewSchedule.java index 9c6f9aff..37b2303c 100644 --- a/src/main/java/com/rootly/client/model/NewSchedule.java +++ b/src/main/java/com/rootly/client/model/NewSchedule.java @@ -49,7 +49,7 @@ /** * NewSchedule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSchedule { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewScheduleData.java b/src/main/java/com/rootly/client/model/NewScheduleData.java index 8e07719a..9c09a595 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleData.java +++ b/src/main/java/com/rootly/client/model/NewScheduleData.java @@ -49,7 +49,7 @@ /** * NewScheduleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewScheduleDataAttributes.java b/src/main/java/com/rootly/client/model/NewScheduleDataAttributes.java index 49ee822c..b08b0cf3 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewScheduleDataAttributes.java @@ -53,7 +53,7 @@ /** * NewScheduleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -90,6 +90,108 @@ public class NewScheduleDataAttributes { @jakarta.annotation.Nonnull private Integer ownerUserId; + public static final String SERIALIZED_NAME_SYNC_LINEAR_ENABLED = "sync_linear_enabled"; + @SerializedName(SERIALIZED_NAME_SYNC_LINEAR_ENABLED) + @jakarta.annotation.Nullable + private Boolean syncLinearEnabled; + + public static final String SERIALIZED_NAME_INCLUDE_SHADOWS_IN_SLACK_NOTIFICATIONS = "include_shadows_in_slack_notifications"; + @SerializedName(SERIALIZED_NAME_INCLUDE_SHADOWS_IN_SLACK_NOTIFICATIONS) + @jakarta.annotation.Nullable + private Boolean includeShadowsInSlackNotifications; + + public static final String SERIALIZED_NAME_SHIFT_START_NOTIFICATIONS_ENABLED = "shift_start_notifications_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_START_NOTIFICATIONS_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftStartNotificationsEnabled; + + public static final String SERIALIZED_NAME_SHIFT_UPDATE_NOTIFICATIONS_ENABLED = "shift_update_notifications_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_UPDATE_NOTIFICATIONS_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftUpdateNotificationsEnabled; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_ENABLED = "shift_report_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftReportEnabled; + + /** + * Day of week the weekly shift summary is sent + */ + @JsonAdapter(ShiftReportDayOfWeekEnum.Adapter.class) + public enum ShiftReportDayOfWeekEnum { + MONDAY("monday"), + + TUESDAY("tuesday"), + + WEDNESDAY("wednesday"), + + THURSDAY("thursday"), + + FRIDAY("friday"), + + SATURDAY("saturday"), + + SUNDAY("sunday"); + + private String value; + + ShiftReportDayOfWeekEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ShiftReportDayOfWeekEnum fromValue(String value) { + for (ShiftReportDayOfWeekEnum b : ShiftReportDayOfWeekEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ShiftReportDayOfWeekEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ShiftReportDayOfWeekEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ShiftReportDayOfWeekEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ShiftReportDayOfWeekEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SHIFT_REPORT_DAY_OF_WEEK = "shift_report_day_of_week"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_DAY_OF_WEEK) + @jakarta.annotation.Nullable + private ShiftReportDayOfWeekEnum shiftReportDayOfWeek; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_TIME_OF_DAY = "shift_report_time_of_day"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_TIME_OF_DAY) + @jakarta.annotation.Nullable + private String shiftReportTimeOfDay; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_TIME_ZONE = "shift_report_time_zone"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_TIME_ZONE) + @jakarta.annotation.Nullable + private String shiftReportTimeZone; + public NewScheduleDataAttributes() { } @@ -234,6 +336,158 @@ public void setOwnerUserId(@jakarta.annotation.Nonnull Integer ownerUserId) { } + public NewScheduleDataAttributes syncLinearEnabled(@jakarta.annotation.Nullable Boolean syncLinearEnabled) { + this.syncLinearEnabled = syncLinearEnabled; + return this; + } + + /** + * Whether the schedule is synced with Linear + * @return syncLinearEnabled + */ + @jakarta.annotation.Nullable + public Boolean getSyncLinearEnabled() { + return syncLinearEnabled; + } + + public void setSyncLinearEnabled(@jakarta.annotation.Nullable Boolean syncLinearEnabled) { + this.syncLinearEnabled = syncLinearEnabled; + } + + + public NewScheduleDataAttributes includeShadowsInSlackNotifications(@jakarta.annotation.Nullable Boolean includeShadowsInSlackNotifications) { + this.includeShadowsInSlackNotifications = includeShadowsInSlackNotifications; + return this; + } + + /** + * Whether shadow users are included in Slack notifications and user group syncing. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return includeShadowsInSlackNotifications + */ + @jakarta.annotation.Nullable + public Boolean getIncludeShadowsInSlackNotifications() { + return includeShadowsInSlackNotifications; + } + + public void setIncludeShadowsInSlackNotifications(@jakarta.annotation.Nullable Boolean includeShadowsInSlackNotifications) { + this.includeShadowsInSlackNotifications = includeShadowsInSlackNotifications; + } + + + public NewScheduleDataAttributes shiftStartNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftStartNotificationsEnabled) { + this.shiftStartNotificationsEnabled = shiftStartNotificationsEnabled; + return this; + } + + /** + * Whether shift-start notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftStartNotificationsEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftStartNotificationsEnabled() { + return shiftStartNotificationsEnabled; + } + + public void setShiftStartNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftStartNotificationsEnabled) { + this.shiftStartNotificationsEnabled = shiftStartNotificationsEnabled; + } + + + public NewScheduleDataAttributes shiftUpdateNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftUpdateNotificationsEnabled) { + this.shiftUpdateNotificationsEnabled = shiftUpdateNotificationsEnabled; + return this; + } + + /** + * Whether shift-update notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftUpdateNotificationsEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftUpdateNotificationsEnabled() { + return shiftUpdateNotificationsEnabled; + } + + public void setShiftUpdateNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftUpdateNotificationsEnabled) { + this.shiftUpdateNotificationsEnabled = shiftUpdateNotificationsEnabled; + } + + + public NewScheduleDataAttributes shiftReportEnabled(@jakarta.annotation.Nullable Boolean shiftReportEnabled) { + this.shiftReportEnabled = shiftReportEnabled; + return this; + } + + /** + * Whether the weekly shift summary report is enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftReportEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftReportEnabled() { + return shiftReportEnabled; + } + + public void setShiftReportEnabled(@jakarta.annotation.Nullable Boolean shiftReportEnabled) { + this.shiftReportEnabled = shiftReportEnabled; + } + + + public NewScheduleDataAttributes shiftReportDayOfWeek(@jakarta.annotation.Nullable ShiftReportDayOfWeekEnum shiftReportDayOfWeek) { + this.shiftReportDayOfWeek = shiftReportDayOfWeek; + return this; + } + + /** + * Day of week the weekly shift summary is sent + * @return shiftReportDayOfWeek + */ + @jakarta.annotation.Nullable + public ShiftReportDayOfWeekEnum getShiftReportDayOfWeek() { + return shiftReportDayOfWeek; + } + + public void setShiftReportDayOfWeek(@jakarta.annotation.Nullable ShiftReportDayOfWeekEnum shiftReportDayOfWeek) { + this.shiftReportDayOfWeek = shiftReportDayOfWeek; + } + + + public NewScheduleDataAttributes shiftReportTimeOfDay(@jakarta.annotation.Nullable String shiftReportTimeOfDay) { + this.shiftReportTimeOfDay = shiftReportTimeOfDay; + return this; + } + + /** + * Time of day the weekly shift summary is sent, in HH:MM 24-hour format + * @return shiftReportTimeOfDay + */ + @jakarta.annotation.Nullable + public String getShiftReportTimeOfDay() { + return shiftReportTimeOfDay; + } + + public void setShiftReportTimeOfDay(@jakarta.annotation.Nullable String shiftReportTimeOfDay) { + this.shiftReportTimeOfDay = shiftReportTimeOfDay; + } + + + public NewScheduleDataAttributes shiftReportTimeZone(@jakarta.annotation.Nullable String shiftReportTimeZone) { + this.shiftReportTimeZone = shiftReportTimeZone; + return this; + } + + /** + * IANA time zone used for the weekly shift summary + * @return shiftReportTimeZone + */ + @jakarta.annotation.Nullable + public String getShiftReportTimeZone() { + return shiftReportTimeZone; + } + + public void setShiftReportTimeZone(@jakarta.annotation.Nullable String shiftReportTimeZone) { + this.shiftReportTimeZone = shiftReportTimeZone; + } + + @Override public boolean equals(Object o) { @@ -250,7 +504,15 @@ public boolean equals(Object o) { Objects.equals(this.slackUserGroup, newScheduleDataAttributes.slackUserGroup) && Objects.equals(this.slackChannel, newScheduleDataAttributes.slackChannel) && Objects.equals(this.ownerGroupIds, newScheduleDataAttributes.ownerGroupIds) && - Objects.equals(this.ownerUserId, newScheduleDataAttributes.ownerUserId); + Objects.equals(this.ownerUserId, newScheduleDataAttributes.ownerUserId) && + Objects.equals(this.syncLinearEnabled, newScheduleDataAttributes.syncLinearEnabled) && + Objects.equals(this.includeShadowsInSlackNotifications, newScheduleDataAttributes.includeShadowsInSlackNotifications) && + Objects.equals(this.shiftStartNotificationsEnabled, newScheduleDataAttributes.shiftStartNotificationsEnabled) && + Objects.equals(this.shiftUpdateNotificationsEnabled, newScheduleDataAttributes.shiftUpdateNotificationsEnabled) && + Objects.equals(this.shiftReportEnabled, newScheduleDataAttributes.shiftReportEnabled) && + Objects.equals(this.shiftReportDayOfWeek, newScheduleDataAttributes.shiftReportDayOfWeek) && + Objects.equals(this.shiftReportTimeOfDay, newScheduleDataAttributes.shiftReportTimeOfDay) && + Objects.equals(this.shiftReportTimeZone, newScheduleDataAttributes.shiftReportTimeZone); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -259,7 +521,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, allTimeCoverage, slackUserGroup, slackChannel, ownerGroupIds, ownerUserId); + return Objects.hash(name, description, allTimeCoverage, slackUserGroup, slackChannel, ownerGroupIds, ownerUserId, syncLinearEnabled, includeShadowsInSlackNotifications, shiftStartNotificationsEnabled, shiftUpdateNotificationsEnabled, shiftReportEnabled, shiftReportDayOfWeek, shiftReportTimeOfDay, shiftReportTimeZone); } private static int hashCodeNullable(JsonNullable a) { @@ -280,6 +542,14 @@ public String toString() { sb.append(" slackChannel: ").append(toIndentedString(slackChannel)).append("\n"); sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" ownerUserId: ").append(toIndentedString(ownerUserId)).append("\n"); + sb.append(" syncLinearEnabled: ").append(toIndentedString(syncLinearEnabled)).append("\n"); + sb.append(" includeShadowsInSlackNotifications: ").append(toIndentedString(includeShadowsInSlackNotifications)).append("\n"); + sb.append(" shiftStartNotificationsEnabled: ").append(toIndentedString(shiftStartNotificationsEnabled)).append("\n"); + sb.append(" shiftUpdateNotificationsEnabled: ").append(toIndentedString(shiftUpdateNotificationsEnabled)).append("\n"); + sb.append(" shiftReportEnabled: ").append(toIndentedString(shiftReportEnabled)).append("\n"); + sb.append(" shiftReportDayOfWeek: ").append(toIndentedString(shiftReportDayOfWeek)).append("\n"); + sb.append(" shiftReportTimeOfDay: ").append(toIndentedString(shiftReportTimeOfDay)).append("\n"); + sb.append(" shiftReportTimeZone: ").append(toIndentedString(shiftReportTimeZone)).append("\n"); sb.append("}"); return sb.toString(); } @@ -309,6 +579,14 @@ private String toIndentedString(Object o) { openapiFields.add("slack_channel"); openapiFields.add("owner_group_ids"); openapiFields.add("owner_user_id"); + openapiFields.add("sync_linear_enabled"); + openapiFields.add("include_shadows_in_slack_notifications"); + openapiFields.add("shift_start_notifications_enabled"); + openapiFields.add("shift_update_notifications_enabled"); + openapiFields.add("shift_report_enabled"); + openapiFields.add("shift_report_day_of_week"); + openapiFields.add("shift_report_time_of_day"); + openapiFields.add("shift_report_time_zone"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -362,6 +640,19 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("owner_group_ids") != null && !jsonObj.get("owner_group_ids").isJsonNull() && !jsonObj.get("owner_group_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `owner_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_group_ids").toString())); } + if ((jsonObj.get("shift_report_day_of_week") != null && !jsonObj.get("shift_report_day_of_week").isJsonNull()) && !jsonObj.get("shift_report_day_of_week").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_day_of_week` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_day_of_week").toString())); + } + // validate the optional field `shift_report_day_of_week` + if (jsonObj.get("shift_report_day_of_week") != null && !jsonObj.get("shift_report_day_of_week").isJsonNull()) { + ShiftReportDayOfWeekEnum.validateJsonElement(jsonObj.get("shift_report_day_of_week")); + } + if ((jsonObj.get("shift_report_time_of_day") != null && !jsonObj.get("shift_report_time_of_day").isJsonNull()) && !jsonObj.get("shift_report_time_of_day").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_time_of_day` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_time_of_day").toString())); + } + if ((jsonObj.get("shift_report_time_zone") != null && !jsonObj.get("shift_report_time_zone").isJsonNull()) && !jsonObj.get("shift_report_time_zone").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_time_zone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_time_zone").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackChannel.java b/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackChannel.java index 1c8a990d..9d6205b5 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackChannel.java +++ b/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackChannel.java @@ -48,7 +48,7 @@ /** * NewScheduleDataAttributesSlackChannel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleDataAttributesSlackChannel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackUserGroup.java b/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackUserGroup.java index 7edf7484..0bc4ea9a 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackUserGroup.java +++ b/src/main/java/com/rootly/client/model/NewScheduleDataAttributesSlackUserGroup.java @@ -48,7 +48,7 @@ /** * NewScheduleDataAttributesSlackUserGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleDataAttributesSlackUserGroup { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotation.java b/src/main/java/com/rootly/client/model/NewScheduleRotation.java index 67780883..e7139a65 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotation.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotation.java @@ -49,7 +49,7 @@ /** * NewScheduleRotation */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotation { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDay.java b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDay.java index 62243f01..1cfb4f74 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDay.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDay.java @@ -49,7 +49,7 @@ /** * NewScheduleRotationActiveDay */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationActiveDay { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayData.java b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayData.java index c33b40f6..a2e1fffd 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayData.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayData.java @@ -49,7 +49,7 @@ /** * NewScheduleRotationActiveDayData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationActiveDayData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributes.java b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributes.java index 83bd70a2..f50c2966 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributes.java @@ -51,7 +51,7 @@ /** * NewScheduleRotationActiveDayDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationActiveDayDataAttributes { /** * Schedule rotation day name for which active times to be created diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributesActiveTimeAttributesInner.java b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributesActiveTimeAttributesInner.java index 9b99bf7d..0ae0a725 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributesActiveTimeAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationActiveDayDataAttributesActiveTimeAttributesInner.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationActiveDayDataAttributesActiveTimeAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationActiveDayDataAttributesActiveTimeAttributesInner { public static final String SERIALIZED_NAME_START_TIME = "start_time"; @SerializedName(SERIALIZED_NAME_START_TIME) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationData.java b/src/main/java/com/rootly/client/model/NewScheduleRotationData.java index 51dd8618..83c2be9a 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationData.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationData.java @@ -49,7 +49,7 @@ /** * NewScheduleRotationData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributes.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributes.java index 82e9ef82..f978991e 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributes.java @@ -23,7 +23,7 @@ import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationMembersInner; import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationableAttributes; import java.io.IOException; -import java.time.LocalDate; +import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -55,7 +55,7 @@ /** * NewScheduleRotationDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -279,12 +279,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_START_TIME = "start_time"; @SerializedName(SERIALIZED_NAME_START_TIME) @jakarta.annotation.Nullable - private LocalDate startTime; + private OffsetDateTime startTime; public static final String SERIALIZED_NAME_END_TIME = "end_time"; @SerializedName(SERIALIZED_NAME_END_TIME) @jakarta.annotation.Nullable - private LocalDate endTime; + private OffsetDateTime endTime; public static final String SERIALIZED_NAME_SCHEDULE_ROTATION_MEMBERS = "schedule_rotation_members"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ROTATION_MEMBERS) @@ -489,40 +489,40 @@ public void setScheduleRotationableAttributes(@jakarta.annotation.Nonnull NewSch } - public NewScheduleRotationDataAttributes startTime(@jakarta.annotation.Nullable LocalDate startTime) { + public NewScheduleRotationDataAttributes startTime(@jakarta.annotation.Nullable OffsetDateTime startTime) { this.startTime = startTime; return this; } /** - * ISO8601 date and time when rotation starts. Shifts will only be created after this time. + * RFC3339 date-time when rotation starts. Shifts will only be created after this time. * @return startTime */ @jakarta.annotation.Nullable - public LocalDate getStartTime() { + public OffsetDateTime getStartTime() { return startTime; } - public void setStartTime(@jakarta.annotation.Nullable LocalDate startTime) { + public void setStartTime(@jakarta.annotation.Nullable OffsetDateTime startTime) { this.startTime = startTime; } - public NewScheduleRotationDataAttributes endTime(@jakarta.annotation.Nullable LocalDate endTime) { + public NewScheduleRotationDataAttributes endTime(@jakarta.annotation.Nullable OffsetDateTime endTime) { this.endTime = endTime; return this; } /** - * ISO8601 date and time when rotation ends. Shifts will only be created before this time. + * RFC3339 date-time when rotation ends. Shifts will only be created before this time. * @return endTime */ @jakarta.annotation.Nullable - public LocalDate getEndTime() { + public OffsetDateTime getEndTime() { return endTime; } - public void setEndTime(@jakarta.annotation.Nullable LocalDate endTime) { + public void setEndTime(@jakarta.annotation.Nullable OffsetDateTime endTime) { this.endTime = endTime; } diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesActiveTimeAttributesInner.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesActiveTimeAttributesInner.java index d30385d2..3fb46ce4 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesActiveTimeAttributesInner.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesActiveTimeAttributesInner.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationDataAttributesActiveTimeAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributesActiveTimeAttributesInner { public static final String SERIALIZED_NAME_START_TIME = "start_time"; @SerializedName(SERIALIZED_NAME_START_TIME) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationMembersInner.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationMembersInner.java index 493652ab..23940115 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationMembersInner.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationMembersInner.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationDataAttributesScheduleRotationMembersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributesScheduleRotationMembersInner { /** * Type of member diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributes.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributes.java index b9f6946f..6787a911 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributes.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributes.java @@ -61,7 +61,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributesScheduleRotationableAttributes extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewScheduleRotationDataAttributesScheduleRotationableAttributes.class.getName()); diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf.java index 47a7119e..c3a5c1cd 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf { public static final String SERIALIZED_NAME_HANDOFF_TIME = "handoff_time"; @SerializedName(SERIALIZED_NAME_HANDOFF_TIME) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf1.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf1.java index 1622edfb..6bcff2a2 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf1.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf1.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf1 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf1 { public static final String SERIALIZED_NAME_HANDOFF_TIME = "handoff_time"; @SerializedName(SERIALIZED_NAME_HANDOFF_TIME) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf2.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf2.java index 2d42d70b..9cc1b5fc 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf2.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf2.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf2 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf2 { public static final String SERIALIZED_NAME_HANDOFF_TIME = "handoff_time"; @SerializedName(SERIALIZED_NAME_HANDOFF_TIME) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf3.java b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf3.java index eb9349b5..e3a9e5c1 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf3.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf3.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf3 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationDataAttributesScheduleRotationableAttributesOneOf3 { public static final String SERIALIZED_NAME_SHIFT_LENGTH = "shift_length"; @SerializedName(SERIALIZED_NAME_SHIFT_LENGTH) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationUser.java b/src/main/java/com/rootly/client/model/NewScheduleRotationUser.java index 019d1624..f6745816 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationUser.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationUser.java @@ -49,7 +49,7 @@ /** * NewScheduleRotationUser */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationUser { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationUserData.java b/src/main/java/com/rootly/client/model/NewScheduleRotationUserData.java index 1afcb854..fedf40ea 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationUserData.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationUserData.java @@ -49,7 +49,7 @@ /** * NewScheduleRotationUserData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationUserData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewScheduleRotationUserDataAttributes.java b/src/main/java/com/rootly/client/model/NewScheduleRotationUserDataAttributes.java index 23423a43..469044f6 100644 --- a/src/main/java/com/rootly/client/model/NewScheduleRotationUserDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewScheduleRotationUserDataAttributes.java @@ -48,7 +48,7 @@ /** * NewScheduleRotationUserDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewScheduleRotationUserDataAttributes { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/NewSecret.java b/src/main/java/com/rootly/client/model/NewSecret.java index d1f29487..f1718469 100644 --- a/src/main/java/com/rootly/client/model/NewSecret.java +++ b/src/main/java/com/rootly/client/model/NewSecret.java @@ -49,7 +49,7 @@ /** * NewSecret */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSecret { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewSecretData.java b/src/main/java/com/rootly/client/model/NewSecretData.java index ba5bffc8..57b77b7c 100644 --- a/src/main/java/com/rootly/client/model/NewSecretData.java +++ b/src/main/java/com/rootly/client/model/NewSecretData.java @@ -49,7 +49,7 @@ /** * NewSecretData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSecretData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewSecretDataAttributes.java b/src/main/java/com/rootly/client/model/NewSecretDataAttributes.java index c2f02a4e..2afd9ede 100644 --- a/src/main/java/com/rootly/client/model/NewSecretDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewSecretDataAttributes.java @@ -49,7 +49,7 @@ /** * NewSecretDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSecretDataAttributes { /** * The kind of the secret diff --git a/src/main/java/com/rootly/client/model/NewService.java b/src/main/java/com/rootly/client/model/NewService.java index 7a2428af..dd845811 100644 --- a/src/main/java/com/rootly/client/model/NewService.java +++ b/src/main/java/com/rootly/client/model/NewService.java @@ -49,7 +49,7 @@ /** * NewService */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewService { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewServiceData.java b/src/main/java/com/rootly/client/model/NewServiceData.java index d0e71211..44b76c52 100644 --- a/src/main/java/com/rootly/client/model/NewServiceData.java +++ b/src/main/java/com/rootly/client/model/NewServiceData.java @@ -49,7 +49,7 @@ /** * NewServiceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewServiceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewServiceDataAttributes.java b/src/main/java/com/rootly/client/model/NewServiceDataAttributes.java index 92094060..8869b171 100644 --- a/src/main/java/com/rootly/client/model/NewServiceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewServiceDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -55,8 +56,14 @@ /** * NewServiceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewServiceDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -276,9 +283,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private NewServiceDataAttributesIncidentBroadcastChannel incidentBroadcastChannel; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public NewServiceDataAttributes() { } + @Deprecated + public NewServiceDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewServiceDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -323,7 +358,7 @@ public NewServiceDataAttributes publicDescription(@jakarta.annotation.Nullable S } /** - * The public description of the service + * The status page description of the service * @return publicDescription */ @jakarta.annotation.Nullable @@ -962,6 +997,33 @@ public void setIncidentBroadcastChannel(@jakarta.annotation.Nullable NewServiceD } + public NewServiceDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public NewServiceDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this service. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -972,7 +1034,8 @@ public boolean equals(Object o) { return false; } NewServiceDataAttributes newServiceDataAttributes = (NewServiceDataAttributes) o; - return Objects.equals(this.name, newServiceDataAttributes.name) && + return Objects.equals(this.slug, newServiceDataAttributes.slug) && + Objects.equals(this.name, newServiceDataAttributes.name) && Objects.equals(this.description, newServiceDataAttributes.description) && Objects.equals(this.publicDescription, newServiceDataAttributes.publicDescription) && Objects.equals(this.notifyEmails, newServiceDataAttributes.notifyEmails) && @@ -1004,7 +1067,8 @@ public boolean equals(Object o) { Objects.equals(this.alertBroadcastEnabled, newServiceDataAttributes.alertBroadcastEnabled) && Objects.equals(this.alertBroadcastChannel, newServiceDataAttributes.alertBroadcastChannel) && Objects.equals(this.incidentBroadcastEnabled, newServiceDataAttributes.incidentBroadcastEnabled) && - Objects.equals(this.incidentBroadcastChannel, newServiceDataAttributes.incidentBroadcastChannel); + Objects.equals(this.incidentBroadcastChannel, newServiceDataAttributes.incidentBroadcastChannel) && + Objects.equals(this.properties, newServiceDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -1013,7 +1077,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, publicDescription, notifyEmails, color, position, showUptime, showUptimeLastDays, backstageId, pagerdutyId, externalId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, githubRepositoryName, githubRepositoryBranch, gitlabRepositoryName, gitlabRepositoryBranch, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, kubernetesDeploymentName, alertsEmailEnabled, alertUrgencyId, escalationPolicyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel); + return Objects.hash(slug, name, description, publicDescription, notifyEmails, color, position, showUptime, showUptimeLastDays, backstageId, pagerdutyId, externalId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, githubRepositoryName, githubRepositoryBranch, gitlabRepositoryName, gitlabRepositoryBranch, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, kubernetesDeploymentName, alertsEmailEnabled, alertUrgencyId, escalationPolicyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -1027,6 +1091,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewServiceDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); @@ -1060,6 +1125,7 @@ public String toString() { sb.append(" alertBroadcastChannel: ").append(toIndentedString(alertBroadcastChannel)).append("\n"); sb.append(" incidentBroadcastEnabled: ").append(toIndentedString(incidentBroadcastEnabled)).append("\n"); sb.append(" incidentBroadcastChannel: ").append(toIndentedString(incidentBroadcastChannel)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -1082,6 +1148,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("public_description"); @@ -1115,6 +1182,7 @@ private String toIndentedString(Object o) { openapiFields.add("alert_broadcast_channel"); openapiFields.add("incident_broadcast_enabled"); openapiFields.add("incident_broadcast_channel"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -1149,6 +1217,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -1263,6 +1334,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_broadcast_channel") != null && !jsonObj.get("incident_broadcast_channel").isJsonNull()) { NewServiceDataAttributesIncidentBroadcastChannel.validateJsonElement(jsonObj.get("incident_broadcast_channel")); } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewServiceDataAttributesAlertBroadcastChannel.java b/src/main/java/com/rootly/client/model/NewServiceDataAttributesAlertBroadcastChannel.java index bf39924d..7f6fd90c 100644 --- a/src/main/java/com/rootly/client/model/NewServiceDataAttributesAlertBroadcastChannel.java +++ b/src/main/java/com/rootly/client/model/NewServiceDataAttributesAlertBroadcastChannel.java @@ -48,7 +48,7 @@ /** * Slack channel to broadcast alerts to */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewServiceDataAttributesAlertBroadcastChannel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -57,7 +57,7 @@ public class NewServiceDataAttributesAlertBroadcastChannel { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String name; public NewServiceDataAttributesAlertBroadcastChannel() { @@ -82,7 +82,7 @@ public void setId(@jakarta.annotation.Nonnull String id) { } - public NewServiceDataAttributesAlertBroadcastChannel name(@jakarta.annotation.Nonnull String name) { + public NewServiceDataAttributesAlertBroadcastChannel name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -91,12 +91,12 @@ public NewServiceDataAttributesAlertBroadcastChannel name(@jakarta.annotation.No * Slack channel name * @return name */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@jakarta.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } @@ -154,7 +154,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("id"); - openapiRequiredFields.add("name"); } /** @@ -188,7 +187,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); } - if (!jsonObj.get("name").isJsonPrimitive()) { + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } } diff --git a/src/main/java/com/rootly/client/model/NewServiceDataAttributesIncidentBroadcastChannel.java b/src/main/java/com/rootly/client/model/NewServiceDataAttributesIncidentBroadcastChannel.java index 999c0680..79eeefaf 100644 --- a/src/main/java/com/rootly/client/model/NewServiceDataAttributesIncidentBroadcastChannel.java +++ b/src/main/java/com/rootly/client/model/NewServiceDataAttributesIncidentBroadcastChannel.java @@ -48,7 +48,7 @@ /** * Slack channel to broadcast incidents to */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewServiceDataAttributesIncidentBroadcastChannel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -57,7 +57,7 @@ public class NewServiceDataAttributesIncidentBroadcastChannel { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String name; public NewServiceDataAttributesIncidentBroadcastChannel() { @@ -82,7 +82,7 @@ public void setId(@jakarta.annotation.Nonnull String id) { } - public NewServiceDataAttributesIncidentBroadcastChannel name(@jakarta.annotation.Nonnull String name) { + public NewServiceDataAttributesIncidentBroadcastChannel name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -91,12 +91,12 @@ public NewServiceDataAttributesIncidentBroadcastChannel name(@jakarta.annotation * Slack channel name * @return name */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@jakarta.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } @@ -154,7 +154,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("id"); - openapiRequiredFields.add("name"); } /** @@ -188,7 +187,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); } - if (!jsonObj.get("name").isJsonPrimitive()) { + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } } diff --git a/src/main/java/com/rootly/client/model/NewSeverity.java b/src/main/java/com/rootly/client/model/NewSeverity.java index ede96d6e..0da46fdb 100644 --- a/src/main/java/com/rootly/client/model/NewSeverity.java +++ b/src/main/java/com/rootly/client/model/NewSeverity.java @@ -49,7 +49,7 @@ /** * NewSeverity */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSeverity { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewSeverityData.java b/src/main/java/com/rootly/client/model/NewSeverityData.java index 528a6419..ab4a54a0 100644 --- a/src/main/java/com/rootly/client/model/NewSeverityData.java +++ b/src/main/java/com/rootly/client/model/NewSeverityData.java @@ -49,7 +49,7 @@ /** * NewSeverityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSeverityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewSeverityDataAttributes.java b/src/main/java/com/rootly/client/model/NewSeverityDataAttributes.java index fa5d3615..c77070fb 100644 --- a/src/main/java/com/rootly/client/model/NewSeverityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewSeverityDataAttributes.java @@ -53,8 +53,14 @@ /** * NewSeverityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSeverityDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -154,6 +160,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewSeverityDataAttributes() { } + @Deprecated + public NewSeverityDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewSeverityDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -340,7 +369,8 @@ public boolean equals(Object o) { return false; } NewSeverityDataAttributes newSeverityDataAttributes = (NewSeverityDataAttributes) o; - return Objects.equals(this.name, newSeverityDataAttributes.name) && + return Objects.equals(this.slug, newSeverityDataAttributes.slug) && + Objects.equals(this.name, newSeverityDataAttributes.name) && Objects.equals(this.description, newSeverityDataAttributes.description) && Objects.equals(this.severity, newSeverityDataAttributes.severity) && Objects.equals(this.color, newSeverityDataAttributes.color) && @@ -356,7 +386,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, severity, color, position, notifyEmails, slackChannels, slackAliases); + return Objects.hash(slug, name, description, severity, color, position, notifyEmails, slackChannels, slackAliases); } private static int hashCodeNullable(JsonNullable a) { @@ -370,6 +400,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewSeverityDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" severity: ").append(toIndentedString(severity)).append("\n"); @@ -400,6 +431,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("severity"); @@ -442,6 +474,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewShiftCoverageRequest.java b/src/main/java/com/rootly/client/model/NewShiftCoverageRequest.java new file mode 100644 index 00000000..95f843a6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewShiftCoverageRequest.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewShiftCoverageRequestData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewShiftCoverageRequest + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewShiftCoverageRequest { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private NewShiftCoverageRequestData data; + + public NewShiftCoverageRequest() { + } + + public NewShiftCoverageRequest data(@jakarta.annotation.Nonnull NewShiftCoverageRequestData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public NewShiftCoverageRequestData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull NewShiftCoverageRequestData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewShiftCoverageRequest newShiftCoverageRequest = (NewShiftCoverageRequest) o; + return Objects.equals(this.data, newShiftCoverageRequest.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewShiftCoverageRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewShiftCoverageRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewShiftCoverageRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewShiftCoverageRequest is not found in the empty JSON string", NewShiftCoverageRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewShiftCoverageRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewShiftCoverageRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewShiftCoverageRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + NewShiftCoverageRequestData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewShiftCoverageRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewShiftCoverageRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewShiftCoverageRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewShiftCoverageRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewShiftCoverageRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewShiftCoverageRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewShiftCoverageRequest + * @throws IOException if the JSON string is invalid with respect to NewShiftCoverageRequest + */ + public static NewShiftCoverageRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewShiftCoverageRequest.class); + } + + /** + * Convert an instance of NewShiftCoverageRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewShiftCoverageRequestData.java b/src/main/java/com/rootly/client/model/NewShiftCoverageRequestData.java new file mode 100644 index 00000000..5d69898b --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewShiftCoverageRequestData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewShiftCoverageRequestDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewShiftCoverageRequestData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewShiftCoverageRequestData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + SHIFT_COVERAGE_REQUESTS("shift_coverage_requests"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private NewShiftCoverageRequestDataAttributes attributes; + + public NewShiftCoverageRequestData() { + } + + public NewShiftCoverageRequestData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewShiftCoverageRequestData attributes(@jakarta.annotation.Nonnull NewShiftCoverageRequestDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public NewShiftCoverageRequestDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull NewShiftCoverageRequestDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewShiftCoverageRequestData newShiftCoverageRequestData = (NewShiftCoverageRequestData) o; + return Objects.equals(this.type, newShiftCoverageRequestData.type) && + Objects.equals(this.attributes, newShiftCoverageRequestData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewShiftCoverageRequestData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewShiftCoverageRequestData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewShiftCoverageRequestData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewShiftCoverageRequestData is not found in the empty JSON string", NewShiftCoverageRequestData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewShiftCoverageRequestData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewShiftCoverageRequestData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewShiftCoverageRequestData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + NewShiftCoverageRequestDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewShiftCoverageRequestData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewShiftCoverageRequestData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewShiftCoverageRequestData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewShiftCoverageRequestData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewShiftCoverageRequestData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewShiftCoverageRequestData given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewShiftCoverageRequestData + * @throws IOException if the JSON string is invalid with respect to NewShiftCoverageRequestData + */ + public static NewShiftCoverageRequestData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewShiftCoverageRequestData.class); + } + + /** + * Convert an instance of NewShiftCoverageRequestData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributes.java b/src/main/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributes.java new file mode 100644 index 00000000..6abe5461 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributes.java @@ -0,0 +1,267 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewShiftCoverageRequestDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewShiftCoverageRequestDataAttributes { + public static final String SERIALIZED_NAME_STARTS_AT = "starts_at"; + @SerializedName(SERIALIZED_NAME_STARTS_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime startsAt; + + public static final String SERIALIZED_NAME_ENDS_AT = "ends_at"; + @SerializedName(SERIALIZED_NAME_ENDS_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime endsAt; + + public static final String SERIALIZED_NAME_USER_ID = "user_id"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @jakarta.annotation.Nullable + private Integer userId; + + public NewShiftCoverageRequestDataAttributes() { + } + + public NewShiftCoverageRequestDataAttributes startsAt(@jakarta.annotation.Nonnull OffsetDateTime startsAt) { + this.startsAt = startsAt; + return this; + } + + /** + * Start datetime of the time range to request coverage for + * @return startsAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getStartsAt() { + return startsAt; + } + + public void setStartsAt(@jakarta.annotation.Nonnull OffsetDateTime startsAt) { + this.startsAt = startsAt; + } + + + public NewShiftCoverageRequestDataAttributes endsAt(@jakarta.annotation.Nonnull OffsetDateTime endsAt) { + this.endsAt = endsAt; + return this; + } + + /** + * End datetime of the time range to request coverage for + * @return endsAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getEndsAt() { + return endsAt; + } + + public void setEndsAt(@jakarta.annotation.Nonnull OffsetDateTime endsAt) { + this.endsAt = endsAt; + } + + + public NewShiftCoverageRequestDataAttributes userId(@jakarta.annotation.Nullable Integer userId) { + this.userId = userId; + return this; + } + + /** + * Optional. Restrict coverage to shifts assigned to this user. When omitted, every shift overlapping the time range is covered. + * @return userId + */ + @jakarta.annotation.Nullable + public Integer getUserId() { + return userId; + } + + public void setUserId(@jakarta.annotation.Nullable Integer userId) { + this.userId = userId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewShiftCoverageRequestDataAttributes newShiftCoverageRequestDataAttributes = (NewShiftCoverageRequestDataAttributes) o; + return Objects.equals(this.startsAt, newShiftCoverageRequestDataAttributes.startsAt) && + Objects.equals(this.endsAt, newShiftCoverageRequestDataAttributes.endsAt) && + Objects.equals(this.userId, newShiftCoverageRequestDataAttributes.userId); + } + + @Override + public int hashCode() { + return Objects.hash(startsAt, endsAt, userId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewShiftCoverageRequestDataAttributes {\n"); + sb.append(" startsAt: ").append(toIndentedString(startsAt)).append("\n"); + sb.append(" endsAt: ").append(toIndentedString(endsAt)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("starts_at"); + openapiFields.add("ends_at"); + openapiFields.add("user_id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("starts_at"); + openapiRequiredFields.add("ends_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewShiftCoverageRequestDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewShiftCoverageRequestDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewShiftCoverageRequestDataAttributes is not found in the empty JSON string", NewShiftCoverageRequestDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewShiftCoverageRequestDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewShiftCoverageRequestDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewShiftCoverageRequestDataAttributes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewShiftCoverageRequestDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewShiftCoverageRequestDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewShiftCoverageRequestDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewShiftCoverageRequestDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewShiftCoverageRequestDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewShiftCoverageRequestDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewShiftCoverageRequestDataAttributes + * @throws IOException if the JSON string is invalid with respect to NewShiftCoverageRequestDataAttributes + */ + public static NewShiftCoverageRequestDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewShiftCoverageRequestDataAttributes.class); + } + + /** + * Convert an instance of NewShiftCoverageRequestDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewSla.java b/src/main/java/com/rootly/client/model/NewSla.java index 5ff3839e..b80f0d13 100644 --- a/src/main/java/com/rootly/client/model/NewSla.java +++ b/src/main/java/com/rootly/client/model/NewSla.java @@ -49,17 +49,17 @@ /** * NewSla */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSla { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewSlaData data; public NewSla() { } - public NewSla data(@javax.annotation.Nonnull NewSlaData data) { + public NewSla data(@jakarta.annotation.Nonnull NewSlaData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public NewSla data(@javax.annotation.Nonnull NewSlaData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewSlaData getData() { return data; } - public void setData(@javax.annotation.Nonnull NewSlaData data) { + public void setData(@jakarta.annotation.Nonnull NewSlaData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/NewSlaData.java b/src/main/java/com/rootly/client/model/NewSlaData.java index 05e84d91..51de6cea 100644 --- a/src/main/java/com/rootly/client/model/NewSlaData.java +++ b/src/main/java/com/rootly/client/model/NewSlaData.java @@ -49,7 +49,7 @@ /** * NewSlaData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSlaData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private NewSlaDataAttributes attributes; public NewSlaData() { } - public NewSlaData type(@javax.annotation.Nonnull TypeEnum type) { + public NewSlaData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public NewSlaData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public NewSlaData attributes(@javax.annotation.Nonnull NewSlaDataAttributes attributes) { + public NewSlaData attributes(@jakarta.annotation.Nonnull NewSlaDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public NewSlaData attributes(@javax.annotation.Nonnull NewSlaDataAttributes attr * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public NewSlaDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull NewSlaDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull NewSlaDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/NewSlaDataAttributes.java b/src/main/java/com/rootly/client/model/NewSlaDataAttributes.java index 61636a6a..bcd209b1 100644 --- a/src/main/java/com/rootly/client/model/NewSlaDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewSlaDataAttributes.java @@ -54,21 +54,27 @@ /** * NewSlaDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSlaDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; /** @@ -125,17 +131,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CONDITION_MATCH_TYPE = "condition_match_type"; @SerializedName(SERIALIZED_NAME_CONDITION_MATCH_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private ConditionMatchTypeEnum conditionMatchType; public static final String SERIALIZED_NAME_MANAGER_ROLE_ID = "manager_role_id"; @SerializedName(SERIALIZED_NAME_MANAGER_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID managerRoleId; public static final String SERIALIZED_NAME_MANAGER_USER_ID = "manager_user_id"; @SerializedName(SERIALIZED_NAME_MANAGER_USER_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer managerUserId; /** @@ -208,7 +214,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_DAYS = "assignment_deadline_days"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_DAYS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private AssignmentDeadlineDaysEnum assignmentDeadlineDays; /** @@ -273,17 +279,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_PARENT_STATUS = "assignment_deadline_parent_status"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_PARENT_STATUS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus; public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_SUB_STATUS_ID = "assignment_deadline_sub_status_id"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_SUB_STATUS_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID assignmentDeadlineSubStatusId; public static final String SERIALIZED_NAME_ASSIGNMENT_SKIP_WEEKENDS = "assignment_skip_weekends"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_SKIP_WEEKENDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean assignmentSkipWeekends; /** @@ -356,7 +362,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_DAYS = "completion_deadline_days"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_DAYS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CompletionDeadlineDaysEnum completionDeadlineDays; /** @@ -421,33 +427,56 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_PARENT_STATUS = "completion_deadline_parent_status"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_PARENT_STATUS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private CompletionDeadlineParentStatusEnum completionDeadlineParentStatus; public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_SUB_STATUS_ID = "completion_deadline_sub_status_id"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_SUB_STATUS_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID completionDeadlineSubStatusId; public static final String SERIALIZED_NAME_COMPLETION_SKIP_WEEKENDS = "completion_skip_weekends"; @SerializedName(SERIALIZED_NAME_COMPLETION_SKIP_WEEKENDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean completionSkipWeekends; public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; @SerializedName(SERIALIZED_NAME_CONDITIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List conditions = new ArrayList<>(); public static final String SERIALIZED_NAME_NOTIFICATION_CONFIGURATIONS = "notification_configurations"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_CONFIGURATIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List notificationConfigurations = new ArrayList<>(); public NewSlaDataAttributes() { } - public NewSlaDataAttributes name(@javax.annotation.Nonnull String name) { + @Deprecated + public NewSlaDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public NewSlaDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -456,17 +485,17 @@ public NewSlaDataAttributes name(@javax.annotation.Nonnull String name) { * The name of the SLA * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public NewSlaDataAttributes description(@javax.annotation.Nullable String description) { + public NewSlaDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -475,17 +504,17 @@ public NewSlaDataAttributes description(@javax.annotation.Nullable String descri * A description of the SLA * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public NewSlaDataAttributes position(@javax.annotation.Nullable Integer position) { + public NewSlaDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -494,17 +523,17 @@ public NewSlaDataAttributes position(@javax.annotation.Nullable Integer position * Position of the SLA for ordering * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public NewSlaDataAttributes conditionMatchType(@javax.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { + public NewSlaDataAttributes conditionMatchType(@jakarta.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { this.conditionMatchType = conditionMatchType; return this; } @@ -513,17 +542,17 @@ public NewSlaDataAttributes conditionMatchType(@javax.annotation.Nullable Condit * Whether all or any conditions must match * @return conditionMatchType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public ConditionMatchTypeEnum getConditionMatchType() { return conditionMatchType; } - public void setConditionMatchType(@javax.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { + public void setConditionMatchType(@jakarta.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { this.conditionMatchType = conditionMatchType; } - public NewSlaDataAttributes managerRoleId(@javax.annotation.Nullable UUID managerRoleId) { + public NewSlaDataAttributes managerRoleId(@jakarta.annotation.Nullable UUID managerRoleId) { this.managerRoleId = managerRoleId; return this; } @@ -532,17 +561,17 @@ public NewSlaDataAttributes managerRoleId(@javax.annotation.Nullable UUID manage * The ID of the incident role responsible for this SLA. Must provide either manager_role_id or manager_user_id. * @return managerRoleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getManagerRoleId() { return managerRoleId; } - public void setManagerRoleId(@javax.annotation.Nullable UUID managerRoleId) { + public void setManagerRoleId(@jakarta.annotation.Nullable UUID managerRoleId) { this.managerRoleId = managerRoleId; } - public NewSlaDataAttributes managerUserId(@javax.annotation.Nullable Integer managerUserId) { + public NewSlaDataAttributes managerUserId(@jakarta.annotation.Nullable Integer managerUserId) { this.managerUserId = managerUserId; return this; } @@ -551,17 +580,17 @@ public NewSlaDataAttributes managerUserId(@javax.annotation.Nullable Integer man * The ID of the user responsible for this SLA. Must provide either manager_role_id or manager_user_id. * @return managerUserId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getManagerUserId() { return managerUserId; } - public void setManagerUserId(@javax.annotation.Nullable Integer managerUserId) { + public void setManagerUserId(@jakarta.annotation.Nullable Integer managerUserId) { this.managerUserId = managerUserId; } - public NewSlaDataAttributes assignmentDeadlineDays(@javax.annotation.Nonnull AssignmentDeadlineDaysEnum assignmentDeadlineDays) { + public NewSlaDataAttributes assignmentDeadlineDays(@jakarta.annotation.Nonnull AssignmentDeadlineDaysEnum assignmentDeadlineDays) { this.assignmentDeadlineDays = assignmentDeadlineDays; return this; } @@ -570,17 +599,17 @@ public NewSlaDataAttributes assignmentDeadlineDays(@javax.annotation.Nonnull Ass * Number of days for the assignment deadline * @return assignmentDeadlineDays */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public AssignmentDeadlineDaysEnum getAssignmentDeadlineDays() { return assignmentDeadlineDays; } - public void setAssignmentDeadlineDays(@javax.annotation.Nonnull AssignmentDeadlineDaysEnum assignmentDeadlineDays) { + public void setAssignmentDeadlineDays(@jakarta.annotation.Nonnull AssignmentDeadlineDaysEnum assignmentDeadlineDays) { this.assignmentDeadlineDays = assignmentDeadlineDays; } - public NewSlaDataAttributes assignmentDeadlineParentStatus(@javax.annotation.Nonnull AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { + public NewSlaDataAttributes assignmentDeadlineParentStatus(@jakarta.annotation.Nonnull AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { this.assignmentDeadlineParentStatus = assignmentDeadlineParentStatus; return this; } @@ -589,17 +618,17 @@ public NewSlaDataAttributes assignmentDeadlineParentStatus(@javax.annotation.Non * The incident parent status that triggers the assignment deadline * @return assignmentDeadlineParentStatus */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public AssignmentDeadlineParentStatusEnum getAssignmentDeadlineParentStatus() { return assignmentDeadlineParentStatus; } - public void setAssignmentDeadlineParentStatus(@javax.annotation.Nonnull AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { + public void setAssignmentDeadlineParentStatus(@jakarta.annotation.Nonnull AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { this.assignmentDeadlineParentStatus = assignmentDeadlineParentStatus; } - public NewSlaDataAttributes assignmentDeadlineSubStatusId(@javax.annotation.Nullable UUID assignmentDeadlineSubStatusId) { + public NewSlaDataAttributes assignmentDeadlineSubStatusId(@jakarta.annotation.Nullable UUID assignmentDeadlineSubStatusId) { this.assignmentDeadlineSubStatusId = assignmentDeadlineSubStatusId; return this; } @@ -608,17 +637,17 @@ public NewSlaDataAttributes assignmentDeadlineSubStatusId(@javax.annotation.Null * Sub-status for the assignment deadline. Required when custom lifecycle statuses are enabled on the team. * @return assignmentDeadlineSubStatusId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getAssignmentDeadlineSubStatusId() { return assignmentDeadlineSubStatusId; } - public void setAssignmentDeadlineSubStatusId(@javax.annotation.Nullable UUID assignmentDeadlineSubStatusId) { + public void setAssignmentDeadlineSubStatusId(@jakarta.annotation.Nullable UUID assignmentDeadlineSubStatusId) { this.assignmentDeadlineSubStatusId = assignmentDeadlineSubStatusId; } - public NewSlaDataAttributes assignmentSkipWeekends(@javax.annotation.Nullable Boolean assignmentSkipWeekends) { + public NewSlaDataAttributes assignmentSkipWeekends(@jakarta.annotation.Nullable Boolean assignmentSkipWeekends) { this.assignmentSkipWeekends = assignmentSkipWeekends; return this; } @@ -627,17 +656,17 @@ public NewSlaDataAttributes assignmentSkipWeekends(@javax.annotation.Nullable Bo * Whether to skip weekends when calculating the assignment deadline * @return assignmentSkipWeekends */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getAssignmentSkipWeekends() { return assignmentSkipWeekends; } - public void setAssignmentSkipWeekends(@javax.annotation.Nullable Boolean assignmentSkipWeekends) { + public void setAssignmentSkipWeekends(@jakarta.annotation.Nullable Boolean assignmentSkipWeekends) { this.assignmentSkipWeekends = assignmentSkipWeekends; } - public NewSlaDataAttributes completionDeadlineDays(@javax.annotation.Nonnull CompletionDeadlineDaysEnum completionDeadlineDays) { + public NewSlaDataAttributes completionDeadlineDays(@jakarta.annotation.Nonnull CompletionDeadlineDaysEnum completionDeadlineDays) { this.completionDeadlineDays = completionDeadlineDays; return this; } @@ -646,17 +675,17 @@ public NewSlaDataAttributes completionDeadlineDays(@javax.annotation.Nonnull Com * Number of days for the completion deadline * @return completionDeadlineDays */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CompletionDeadlineDaysEnum getCompletionDeadlineDays() { return completionDeadlineDays; } - public void setCompletionDeadlineDays(@javax.annotation.Nonnull CompletionDeadlineDaysEnum completionDeadlineDays) { + public void setCompletionDeadlineDays(@jakarta.annotation.Nonnull CompletionDeadlineDaysEnum completionDeadlineDays) { this.completionDeadlineDays = completionDeadlineDays; } - public NewSlaDataAttributes completionDeadlineParentStatus(@javax.annotation.Nonnull CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { + public NewSlaDataAttributes completionDeadlineParentStatus(@jakarta.annotation.Nonnull CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { this.completionDeadlineParentStatus = completionDeadlineParentStatus; return this; } @@ -665,17 +694,17 @@ public NewSlaDataAttributes completionDeadlineParentStatus(@javax.annotation.Non * The incident parent status that triggers the completion deadline * @return completionDeadlineParentStatus */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public CompletionDeadlineParentStatusEnum getCompletionDeadlineParentStatus() { return completionDeadlineParentStatus; } - public void setCompletionDeadlineParentStatus(@javax.annotation.Nonnull CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { + public void setCompletionDeadlineParentStatus(@jakarta.annotation.Nonnull CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { this.completionDeadlineParentStatus = completionDeadlineParentStatus; } - public NewSlaDataAttributes completionDeadlineSubStatusId(@javax.annotation.Nullable UUID completionDeadlineSubStatusId) { + public NewSlaDataAttributes completionDeadlineSubStatusId(@jakarta.annotation.Nullable UUID completionDeadlineSubStatusId) { this.completionDeadlineSubStatusId = completionDeadlineSubStatusId; return this; } @@ -684,17 +713,17 @@ public NewSlaDataAttributes completionDeadlineSubStatusId(@javax.annotation.Null * Sub-status for the completion deadline. Required when custom lifecycle statuses are enabled on the team. * @return completionDeadlineSubStatusId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getCompletionDeadlineSubStatusId() { return completionDeadlineSubStatusId; } - public void setCompletionDeadlineSubStatusId(@javax.annotation.Nullable UUID completionDeadlineSubStatusId) { + public void setCompletionDeadlineSubStatusId(@jakarta.annotation.Nullable UUID completionDeadlineSubStatusId) { this.completionDeadlineSubStatusId = completionDeadlineSubStatusId; } - public NewSlaDataAttributes completionSkipWeekends(@javax.annotation.Nullable Boolean completionSkipWeekends) { + public NewSlaDataAttributes completionSkipWeekends(@jakarta.annotation.Nullable Boolean completionSkipWeekends) { this.completionSkipWeekends = completionSkipWeekends; return this; } @@ -703,17 +732,17 @@ public NewSlaDataAttributes completionSkipWeekends(@javax.annotation.Nullable Bo * Whether to skip weekends when calculating the completion deadline * @return completionSkipWeekends */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getCompletionSkipWeekends() { return completionSkipWeekends; } - public void setCompletionSkipWeekends(@javax.annotation.Nullable Boolean completionSkipWeekends) { + public void setCompletionSkipWeekends(@jakarta.annotation.Nullable Boolean completionSkipWeekends) { this.completionSkipWeekends = completionSkipWeekends; } - public NewSlaDataAttributes conditions(@javax.annotation.Nullable List conditions) { + public NewSlaDataAttributes conditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; return this; } @@ -730,17 +759,17 @@ public NewSlaDataAttributes addConditionsItem(NewSlaDataAttributesConditionsInne * Conditions that determine which incidents this SLA applies to. Maximum 20. * @return conditions */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getConditions() { return conditions; } - public void setConditions(@javax.annotation.Nullable List conditions) { + public void setConditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; } - public NewSlaDataAttributes notificationConfigurations(@javax.annotation.Nullable List notificationConfigurations) { + public NewSlaDataAttributes notificationConfigurations(@jakarta.annotation.Nullable List notificationConfigurations) { this.notificationConfigurations = notificationConfigurations; return this; } @@ -757,12 +786,12 @@ public NewSlaDataAttributes addNotificationConfigurationsItem(NewSlaDataAttribut * Notification timing configurations. Maximum 20. * @return notificationConfigurations */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getNotificationConfigurations() { return notificationConfigurations; } - public void setNotificationConfigurations(@javax.annotation.Nullable List notificationConfigurations) { + public void setNotificationConfigurations(@jakarta.annotation.Nullable List notificationConfigurations) { this.notificationConfigurations = notificationConfigurations; } @@ -777,7 +806,8 @@ public boolean equals(Object o) { return false; } NewSlaDataAttributes newSlaDataAttributes = (NewSlaDataAttributes) o; - return Objects.equals(this.name, newSlaDataAttributes.name) && + return Objects.equals(this.slug, newSlaDataAttributes.slug) && + Objects.equals(this.name, newSlaDataAttributes.name) && Objects.equals(this.description, newSlaDataAttributes.description) && Objects.equals(this.position, newSlaDataAttributes.position) && Objects.equals(this.conditionMatchType, newSlaDataAttributes.conditionMatchType) && @@ -801,7 +831,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position, conditionMatchType, managerRoleId, managerUserId, assignmentDeadlineDays, assignmentDeadlineParentStatus, assignmentDeadlineSubStatusId, assignmentSkipWeekends, completionDeadlineDays, completionDeadlineParentStatus, completionDeadlineSubStatusId, completionSkipWeekends, conditions, notificationConfigurations); + return Objects.hash(slug, name, description, position, conditionMatchType, managerRoleId, managerUserId, assignmentDeadlineDays, assignmentDeadlineParentStatus, assignmentDeadlineSubStatusId, assignmentSkipWeekends, completionDeadlineDays, completionDeadlineParentStatus, completionDeadlineSubStatusId, completionSkipWeekends, conditions, notificationConfigurations); } private static int hashCodeNullable(JsonNullable a) { @@ -815,6 +845,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewSlaDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -853,6 +884,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); @@ -907,6 +939,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewSlaDataAttributesConditionsInner.java b/src/main/java/com/rootly/client/model/NewSlaDataAttributesConditionsInner.java index bcec1e03..a6cc0f54 100644 --- a/src/main/java/com/rootly/client/model/NewSlaDataAttributesConditionsInner.java +++ b/src/main/java/com/rootly/client/model/NewSlaDataAttributesConditionsInner.java @@ -52,7 +52,7 @@ /** * NewSlaDataAttributesConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSlaDataAttributesConditionsInner { /** * The type of condition @@ -108,7 +108,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CONDITIONABLE_TYPE = "conditionable_type"; @SerializedName(SERIALIZED_NAME_CONDITIONABLE_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ConditionableTypeEnum conditionableType; /** @@ -197,33 +197,33 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PROPERTY = "property"; @SerializedName(SERIALIZED_NAME_PROPERTY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private PropertyEnum property; public static final String SERIALIZED_NAME_OPERATOR = "operator"; @SerializedName(SERIALIZED_NAME_OPERATOR) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String operator; public static final String SERIALIZED_NAME_VALUES = "values"; @SerializedName(SERIALIZED_NAME_VALUES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List values; public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID formFieldId; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; public NewSlaDataAttributesConditionsInner() { } - public NewSlaDataAttributesConditionsInner conditionableType(@javax.annotation.Nonnull ConditionableTypeEnum conditionableType) { + public NewSlaDataAttributesConditionsInner conditionableType(@jakarta.annotation.Nonnull ConditionableTypeEnum conditionableType) { this.conditionableType = conditionableType; return this; } @@ -232,17 +232,17 @@ public NewSlaDataAttributesConditionsInner conditionableType(@javax.annotation.N * The type of condition * @return conditionableType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ConditionableTypeEnum getConditionableType() { return conditionableType; } - public void setConditionableType(@javax.annotation.Nonnull ConditionableTypeEnum conditionableType) { + public void setConditionableType(@jakarta.annotation.Nonnull ConditionableTypeEnum conditionableType) { this.conditionableType = conditionableType; } - public NewSlaDataAttributesConditionsInner property(@javax.annotation.Nullable PropertyEnum property) { + public NewSlaDataAttributesConditionsInner property(@jakarta.annotation.Nullable PropertyEnum property) { this.property = property; return this; } @@ -251,17 +251,17 @@ public NewSlaDataAttributesConditionsInner property(@javax.annotation.Nullable P * The property to evaluate (for built-in field conditions). When the team has custom lifecycle statuses enabled, use 'sub_status' (with sub-status IDs as values); otherwise use 'status' (with parent status names). Sending the wrong one will return a validation error. * @return property */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public PropertyEnum getProperty() { return property; } - public void setProperty(@javax.annotation.Nullable PropertyEnum property) { + public void setProperty(@jakarta.annotation.Nullable PropertyEnum property) { this.property = property; } - public NewSlaDataAttributesConditionsInner operator(@javax.annotation.Nonnull String operator) { + public NewSlaDataAttributesConditionsInner operator(@jakarta.annotation.Nonnull String operator) { this.operator = operator; return this; } @@ -270,17 +270,17 @@ public NewSlaDataAttributesConditionsInner operator(@javax.annotation.Nonnull St * The comparison operator * @return operator */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getOperator() { return operator; } - public void setOperator(@javax.annotation.Nonnull String operator) { + public void setOperator(@jakarta.annotation.Nonnull String operator) { this.operator = operator; } - public NewSlaDataAttributesConditionsInner values(@javax.annotation.Nullable List values) { + public NewSlaDataAttributesConditionsInner values(@jakarta.annotation.Nullable List values) { this.values = values; return this; } @@ -297,17 +297,17 @@ public NewSlaDataAttributesConditionsInner addValuesItem(String valuesItem) { * The values to compare against * @return values */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getValues() { return values; } - public void setValues(@javax.annotation.Nullable List values) { + public void setValues(@jakarta.annotation.Nullable List values) { this.values = values; } - public NewSlaDataAttributesConditionsInner formFieldId(@javax.annotation.Nullable UUID formFieldId) { + public NewSlaDataAttributesConditionsInner formFieldId(@jakarta.annotation.Nullable UUID formFieldId) { this.formFieldId = formFieldId; return this; } @@ -316,17 +316,17 @@ public NewSlaDataAttributesConditionsInner formFieldId(@javax.annotation.Nullabl * The ID of the form field (for custom field conditions) * @return formFieldId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getFormFieldId() { return formFieldId; } - public void setFormFieldId(@javax.annotation.Nullable UUID formFieldId) { + public void setFormFieldId(@jakarta.annotation.Nullable UUID formFieldId) { this.formFieldId = formFieldId; } - public NewSlaDataAttributesConditionsInner position(@javax.annotation.Nullable Integer position) { + public NewSlaDataAttributesConditionsInner position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -335,12 +335,12 @@ public NewSlaDataAttributesConditionsInner position(@javax.annotation.Nullable I * The position of the condition for ordering * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } diff --git a/src/main/java/com/rootly/client/model/NewSlaDataAttributesNotificationConfigurationsInner.java b/src/main/java/com/rootly/client/model/NewSlaDataAttributesNotificationConfigurationsInner.java index 06955d97..8049cdac 100644 --- a/src/main/java/com/rootly/client/model/NewSlaDataAttributesNotificationConfigurationsInner.java +++ b/src/main/java/com/rootly/client/model/NewSlaDataAttributesNotificationConfigurationsInner.java @@ -48,7 +48,7 @@ /** * NewSlaDataAttributesNotificationConfigurationsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSlaDataAttributesNotificationConfigurationsInner { /** * When to send the notification relative to the deadline @@ -106,18 +106,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_OFFSET_TYPE = "offset_type"; @SerializedName(SERIALIZED_NAME_OFFSET_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OffsetTypeEnum offsetType; public static final String SERIALIZED_NAME_OFFSET_DAYS = "offset_days"; @SerializedName(SERIALIZED_NAME_OFFSET_DAYS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Integer offsetDays; public NewSlaDataAttributesNotificationConfigurationsInner() { } - public NewSlaDataAttributesNotificationConfigurationsInner offsetType(@javax.annotation.Nonnull OffsetTypeEnum offsetType) { + public NewSlaDataAttributesNotificationConfigurationsInner offsetType(@jakarta.annotation.Nonnull OffsetTypeEnum offsetType) { this.offsetType = offsetType; return this; } @@ -126,17 +126,17 @@ public NewSlaDataAttributesNotificationConfigurationsInner offsetType(@javax.ann * When to send the notification relative to the deadline * @return offsetType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OffsetTypeEnum getOffsetType() { return offsetType; } - public void setOffsetType(@javax.annotation.Nonnull OffsetTypeEnum offsetType) { + public void setOffsetType(@jakarta.annotation.Nonnull OffsetTypeEnum offsetType) { this.offsetType = offsetType; } - public NewSlaDataAttributesNotificationConfigurationsInner offsetDays(@javax.annotation.Nonnull Integer offsetDays) { + public NewSlaDataAttributesNotificationConfigurationsInner offsetDays(@jakarta.annotation.Nonnull Integer offsetDays) { this.offsetDays = offsetDays; return this; } @@ -145,12 +145,12 @@ public NewSlaDataAttributesNotificationConfigurationsInner offsetDays(@javax.ann * Number of days before or after the deadline. Must be 0 for when_due. * @return offsetDays */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Integer getOffsetDays() { return offsetDays; } - public void setOffsetDays(@javax.annotation.Nonnull Integer offsetDays) { + public void setOffsetDays(@jakarta.annotation.Nonnull Integer offsetDays) { this.offsetDays = offsetDays; } diff --git a/src/main/java/com/rootly/client/model/NewStatusPage.java b/src/main/java/com/rootly/client/model/NewStatusPage.java index 11301833..d4b260fb 100644 --- a/src/main/java/com/rootly/client/model/NewStatusPage.java +++ b/src/main/java/com/rootly/client/model/NewStatusPage.java @@ -49,7 +49,7 @@ /** * NewStatusPage */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewStatusPage { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewStatusPageAnnouncement.java b/src/main/java/com/rootly/client/model/NewStatusPageAnnouncement.java new file mode 100644 index 00000000..a18938d2 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageAnnouncement.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageAnnouncementData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageAnnouncement + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageAnnouncement { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private NewStatusPageAnnouncementData data; + + public NewStatusPageAnnouncement() { + } + + public NewStatusPageAnnouncement data(@jakarta.annotation.Nonnull NewStatusPageAnnouncementData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public NewStatusPageAnnouncementData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull NewStatusPageAnnouncementData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageAnnouncement newStatusPageAnnouncement = (NewStatusPageAnnouncement) o; + return Objects.equals(this.data, newStatusPageAnnouncement.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageAnnouncement {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageAnnouncement + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageAnnouncement.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageAnnouncement is not found in the empty JSON string", NewStatusPageAnnouncement.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageAnnouncement.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageAnnouncement` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageAnnouncement.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + NewStatusPageAnnouncementData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageAnnouncement.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageAnnouncement' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageAnnouncement.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageAnnouncement value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageAnnouncement read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageAnnouncement given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageAnnouncement + * @throws IOException if the JSON string is invalid with respect to NewStatusPageAnnouncement + */ + public static NewStatusPageAnnouncement fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageAnnouncement.class); + } + + /** + * Convert an instance of NewStatusPageAnnouncement to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageAnnouncementData.java b/src/main/java/com/rootly/client/model/NewStatusPageAnnouncementData.java new file mode 100644 index 00000000..d1613366 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageAnnouncementData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageAnnouncementDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageAnnouncementData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageAnnouncementData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_ANNOUNCEMENTS("status_page_announcements"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private NewStatusPageAnnouncementDataAttributes attributes; + + public NewStatusPageAnnouncementData() { + } + + public NewStatusPageAnnouncementData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewStatusPageAnnouncementData attributes(@jakarta.annotation.Nonnull NewStatusPageAnnouncementDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public NewStatusPageAnnouncementDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull NewStatusPageAnnouncementDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageAnnouncementData newStatusPageAnnouncementData = (NewStatusPageAnnouncementData) o; + return Objects.equals(this.type, newStatusPageAnnouncementData.type) && + Objects.equals(this.attributes, newStatusPageAnnouncementData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageAnnouncementData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageAnnouncementData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageAnnouncementData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageAnnouncementData is not found in the empty JSON string", NewStatusPageAnnouncementData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageAnnouncementData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageAnnouncementData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageAnnouncementData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + NewStatusPageAnnouncementDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageAnnouncementData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageAnnouncementData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageAnnouncementData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageAnnouncementData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageAnnouncementData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageAnnouncementData given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageAnnouncementData + * @throws IOException if the JSON string is invalid with respect to NewStatusPageAnnouncementData + */ + public static NewStatusPageAnnouncementData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageAnnouncementData.class); + } + + /** + * Convert an instance of NewStatusPageAnnouncementData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributes.java b/src/main/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributes.java new file mode 100644 index 00000000..d86ca87d --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributes.java @@ -0,0 +1,272 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageAnnouncementDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageAnnouncementDataAttributes { + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nonnull + private String title; + + public static final String SERIALIZED_NAME_BODY = "body"; + @SerializedName(SERIALIZED_NAME_BODY) + @jakarta.annotation.Nonnull + private String body; + + public static final String SERIALIZED_NAME_NOTIFY_SUBSCRIBERS = "notify_subscribers"; + @SerializedName(SERIALIZED_NAME_NOTIFY_SUBSCRIBERS) + @jakarta.annotation.Nullable + private Boolean notifySubscribers; + + public NewStatusPageAnnouncementDataAttributes() { + } + + public NewStatusPageAnnouncementDataAttributes title(@jakarta.annotation.Nonnull String title) { + this.title = title; + return this; + } + + /** + * Title of the announcement + * @return title + */ + @jakarta.annotation.Nonnull + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nonnull String title) { + this.title = title; + } + + + public NewStatusPageAnnouncementDataAttributes body(@jakarta.annotation.Nonnull String body) { + this.body = body; + return this; + } + + /** + * Body of the announcement + * @return body + */ + @jakarta.annotation.Nonnull + public String getBody() { + return body; + } + + public void setBody(@jakarta.annotation.Nonnull String body) { + this.body = body; + } + + + public NewStatusPageAnnouncementDataAttributes notifySubscribers(@jakarta.annotation.Nullable Boolean notifySubscribers) { + this.notifySubscribers = notifySubscribers; + return this; + } + + /** + * Controls if status page subscribers should be notified. Defaults to true + * @return notifySubscribers + */ + @jakarta.annotation.Nullable + public Boolean getNotifySubscribers() { + return notifySubscribers; + } + + public void setNotifySubscribers(@jakarta.annotation.Nullable Boolean notifySubscribers) { + this.notifySubscribers = notifySubscribers; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageAnnouncementDataAttributes newStatusPageAnnouncementDataAttributes = (NewStatusPageAnnouncementDataAttributes) o; + return Objects.equals(this.title, newStatusPageAnnouncementDataAttributes.title) && + Objects.equals(this.body, newStatusPageAnnouncementDataAttributes.body) && + Objects.equals(this.notifySubscribers, newStatusPageAnnouncementDataAttributes.notifySubscribers); + } + + @Override + public int hashCode() { + return Objects.hash(title, body, notifySubscribers); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageAnnouncementDataAttributes {\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" body: ").append(toIndentedString(body)).append("\n"); + sb.append(" notifySubscribers: ").append(toIndentedString(notifySubscribers)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("title"); + openapiFields.add("body"); + openapiFields.add("notify_subscribers"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("title"); + openapiRequiredFields.add("body"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageAnnouncementDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageAnnouncementDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageAnnouncementDataAttributes is not found in the empty JSON string", NewStatusPageAnnouncementDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageAnnouncementDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageAnnouncementDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageAnnouncementDataAttributes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if (!jsonObj.get("body").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("body").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageAnnouncementDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageAnnouncementDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageAnnouncementDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageAnnouncementDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageAnnouncementDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageAnnouncementDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageAnnouncementDataAttributes + * @throws IOException if the JSON string is invalid with respect to NewStatusPageAnnouncementDataAttributes + */ + public static NewStatusPageAnnouncementDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageAnnouncementDataAttributes.class); + } + + /** + * Convert an instance of NewStatusPageAnnouncementDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageComponent.java b/src/main/java/com/rootly/client/model/NewStatusPageComponent.java new file mode 100644 index 00000000..74974dd0 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageComponent.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageComponent + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageComponent { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private NewStatusPageComponentData data; + + public NewStatusPageComponent() { + } + + public NewStatusPageComponent data(@jakarta.annotation.Nonnull NewStatusPageComponentData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public NewStatusPageComponentData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull NewStatusPageComponentData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageComponent newStatusPageComponent = (NewStatusPageComponent) o; + return Objects.equals(this.data, newStatusPageComponent.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageComponent {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageComponent + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageComponent.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageComponent is not found in the empty JSON string", NewStatusPageComponent.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageComponent.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageComponent` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageComponent.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + NewStatusPageComponentData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageComponent.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageComponent' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageComponent.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageComponent value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageComponent read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageComponent given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageComponent + * @throws IOException if the JSON string is invalid with respect to NewStatusPageComponent + */ + public static NewStatusPageComponent fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageComponent.class); + } + + /** + * Convert an instance of NewStatusPageComponent to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageComponentData.java b/src/main/java/com/rootly/client/model/NewStatusPageComponentData.java new file mode 100644 index 00000000..2c8d1146 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageComponentData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageComponentData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageComponentData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_COMPONENTS("status_page_components"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private NewStatusPageComponentDataAttributes attributes; + + public NewStatusPageComponentData() { + } + + public NewStatusPageComponentData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewStatusPageComponentData attributes(@jakarta.annotation.Nonnull NewStatusPageComponentDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public NewStatusPageComponentDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull NewStatusPageComponentDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageComponentData newStatusPageComponentData = (NewStatusPageComponentData) o; + return Objects.equals(this.type, newStatusPageComponentData.type) && + Objects.equals(this.attributes, newStatusPageComponentData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageComponentData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageComponentData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageComponentData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageComponentData is not found in the empty JSON string", NewStatusPageComponentData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageComponentData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageComponentData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageComponentData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + NewStatusPageComponentDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageComponentData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageComponentData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageComponentData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageComponentData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageComponentData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageComponentData given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageComponentData + * @throws IOException if the JSON string is invalid with respect to NewStatusPageComponentData + */ + public static NewStatusPageComponentData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageComponentData.class); + } + + /** + * Convert an instance of NewStatusPageComponentData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageComponentDataAttributes.java b/src/main/java/com/rootly/client/model/NewStatusPageComponentDataAttributes.java new file mode 100644 index 00000000..21bd2986 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageComponentDataAttributes.java @@ -0,0 +1,422 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageComponentDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageComponentDataAttributes { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_STATUS_PAGE_COMPONENT_GROUP_ID = "status_page_component_group_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_COMPONENT_GROUP_ID) + @jakarta.annotation.Nullable + private String statusPageComponentGroupId; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + /** + * Catalog source type backing the component + */ + @JsonAdapter(SourceTypeEnum.Adapter.class) + public enum SourceTypeEnum { + SERVICE("Service"), + + FUNCTIONALITY("Functionality"); + + private String value; + + SourceTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SourceTypeEnum fromValue(String value) { + for (SourceTypeEnum b : SourceTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SourceTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SourceTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SourceTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SourceTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SOURCE_TYPE = "source_type"; + @SerializedName(SERIALIZED_NAME_SOURCE_TYPE) + @jakarta.annotation.Nullable + private SourceTypeEnum sourceType; + + public static final String SERIALIZED_NAME_SOURCE_ID = "source_id"; + @SerializedName(SERIALIZED_NAME_SOURCE_ID) + @jakarta.annotation.Nullable + private String sourceId; + + public NewStatusPageComponentDataAttributes() { + } + + public NewStatusPageComponentDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Name of the component (required for ad-hoc components; derived from the source for catalog-backed ones) + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public NewStatusPageComponentDataAttributes description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Description of the component (ad-hoc components only) + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public NewStatusPageComponentDataAttributes statusPageComponentGroupId(@jakarta.annotation.Nullable String statusPageComponentGroupId) { + this.statusPageComponentGroupId = statusPageComponentGroupId; + return this; + } + + /** + * ID of the component group on the same status page + * @return statusPageComponentGroupId + */ + @jakarta.annotation.Nullable + public String getStatusPageComponentGroupId() { + return statusPageComponentGroupId; + } + + public void setStatusPageComponentGroupId(@jakarta.annotation.Nullable String statusPageComponentGroupId) { + this.statusPageComponentGroupId = statusPageComponentGroupId; + } + + + public NewStatusPageComponentDataAttributes position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Position of the component (within its group, or on the page's top-level list when ungrouped) + * minimum: 1 + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public NewStatusPageComponentDataAttributes sourceType(@jakarta.annotation.Nullable SourceTypeEnum sourceType) { + this.sourceType = sourceType; + return this; + } + + /** + * Catalog source type backing the component + * @return sourceType + */ + @jakarta.annotation.Nullable + public SourceTypeEnum getSourceType() { + return sourceType; + } + + public void setSourceType(@jakarta.annotation.Nullable SourceTypeEnum sourceType) { + this.sourceType = sourceType; + } + + + public NewStatusPageComponentDataAttributes sourceId(@jakarta.annotation.Nullable String sourceId) { + this.sourceId = sourceId; + return this; + } + + /** + * ID of the catalog source backing the component + * @return sourceId + */ + @jakarta.annotation.Nullable + public String getSourceId() { + return sourceId; + } + + public void setSourceId(@jakarta.annotation.Nullable String sourceId) { + this.sourceId = sourceId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageComponentDataAttributes newStatusPageComponentDataAttributes = (NewStatusPageComponentDataAttributes) o; + return Objects.equals(this.name, newStatusPageComponentDataAttributes.name) && + Objects.equals(this.description, newStatusPageComponentDataAttributes.description) && + Objects.equals(this.statusPageComponentGroupId, newStatusPageComponentDataAttributes.statusPageComponentGroupId) && + Objects.equals(this.position, newStatusPageComponentDataAttributes.position) && + Objects.equals(this.sourceType, newStatusPageComponentDataAttributes.sourceType) && + Objects.equals(this.sourceId, newStatusPageComponentDataAttributes.sourceId); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, statusPageComponentGroupId, position, sourceType, sourceId); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageComponentDataAttributes {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" statusPageComponentGroupId: ").append(toIndentedString(statusPageComponentGroupId)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" sourceType: ").append(toIndentedString(sourceType)).append("\n"); + sb.append(" sourceId: ").append(toIndentedString(sourceId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("status_page_component_group_id"); + openapiFields.add("position"); + openapiFields.add("source_type"); + openapiFields.add("source_id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageComponentDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageComponentDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageComponentDataAttributes is not found in the empty JSON string", NewStatusPageComponentDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageComponentDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageComponentDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("status_page_component_group_id") != null && !jsonObj.get("status_page_component_group_id").isJsonNull()) && !jsonObj.get("status_page_component_group_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_component_group_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_component_group_id").toString())); + } + if ((jsonObj.get("source_type") != null && !jsonObj.get("source_type").isJsonNull()) && !jsonObj.get("source_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `source_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source_type").toString())); + } + // validate the optional field `source_type` + if (jsonObj.get("source_type") != null && !jsonObj.get("source_type").isJsonNull()) { + SourceTypeEnum.validateJsonElement(jsonObj.get("source_type")); + } + if ((jsonObj.get("source_id") != null && !jsonObj.get("source_id").isJsonNull()) && !jsonObj.get("source_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `source_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source_id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageComponentDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageComponentDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageComponentDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageComponentDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageComponentDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageComponentDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageComponentDataAttributes + * @throws IOException if the JSON string is invalid with respect to NewStatusPageComponentDataAttributes + */ + public static NewStatusPageComponentDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageComponentDataAttributes.class); + } + + /** + * Convert an instance of NewStatusPageComponentDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageComponentGroup.java b/src/main/java/com/rootly/client/model/NewStatusPageComponentGroup.java new file mode 100644 index 00000000..5798daeb --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageComponentGroup.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentGroupData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageComponentGroup + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageComponentGroup { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private NewStatusPageComponentGroupData data; + + public NewStatusPageComponentGroup() { + } + + public NewStatusPageComponentGroup data(@jakarta.annotation.Nonnull NewStatusPageComponentGroupData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public NewStatusPageComponentGroupData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull NewStatusPageComponentGroupData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageComponentGroup newStatusPageComponentGroup = (NewStatusPageComponentGroup) o; + return Objects.equals(this.data, newStatusPageComponentGroup.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageComponentGroup {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageComponentGroup + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageComponentGroup.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageComponentGroup is not found in the empty JSON string", NewStatusPageComponentGroup.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageComponentGroup.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageComponentGroup` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageComponentGroup.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + NewStatusPageComponentGroupData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageComponentGroup.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageComponentGroup' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageComponentGroup.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageComponentGroup value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageComponentGroup read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageComponentGroup given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageComponentGroup + * @throws IOException if the JSON string is invalid with respect to NewStatusPageComponentGroup + */ + public static NewStatusPageComponentGroup fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageComponentGroup.class); + } + + /** + * Convert an instance of NewStatusPageComponentGroup to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageComponentGroupData.java b/src/main/java/com/rootly/client/model/NewStatusPageComponentGroupData.java new file mode 100644 index 00000000..9cc19940 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageComponentGroupData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentGroupDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageComponentGroupData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageComponentGroupData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_COMPONENT_GROUPS("status_page_component_groups"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private NewStatusPageComponentGroupDataAttributes attributes; + + public NewStatusPageComponentGroupData() { + } + + public NewStatusPageComponentGroupData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewStatusPageComponentGroupData attributes(@jakarta.annotation.Nonnull NewStatusPageComponentGroupDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public NewStatusPageComponentGroupDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull NewStatusPageComponentGroupDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageComponentGroupData newStatusPageComponentGroupData = (NewStatusPageComponentGroupData) o; + return Objects.equals(this.type, newStatusPageComponentGroupData.type) && + Objects.equals(this.attributes, newStatusPageComponentGroupData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageComponentGroupData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageComponentGroupData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageComponentGroupData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageComponentGroupData is not found in the empty JSON string", NewStatusPageComponentGroupData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageComponentGroupData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageComponentGroupData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageComponentGroupData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + NewStatusPageComponentGroupDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageComponentGroupData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageComponentGroupData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageComponentGroupData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageComponentGroupData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageComponentGroupData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageComponentGroupData given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageComponentGroupData + * @throws IOException if the JSON string is invalid with respect to NewStatusPageComponentGroupData + */ + public static NewStatusPageComponentGroupData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageComponentGroupData.class); + } + + /** + * Convert an instance of NewStatusPageComponentGroupData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributes.java b/src/main/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributes.java new file mode 100644 index 00000000..952a251a --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributes.java @@ -0,0 +1,311 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewStatusPageComponentGroupDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewStatusPageComponentGroupDataAttributes { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_COLLAPSED_BY_DEFAULT = "collapsed_by_default"; + @SerializedName(SERIALIZED_NAME_COLLAPSED_BY_DEFAULT) + @jakarta.annotation.Nullable + private Boolean collapsedByDefault; + + public NewStatusPageComponentGroupDataAttributes() { + } + + public NewStatusPageComponentGroupDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Name of the component group + * @return name + */ + @jakarta.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + + public NewStatusPageComponentGroupDataAttributes description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Description of the component group + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public NewStatusPageComponentGroupDataAttributes position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Position of the group on the status page's top-level list (shared with ungrouped components) + * minimum: 1 + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public NewStatusPageComponentGroupDataAttributes collapsedByDefault(@jakarta.annotation.Nullable Boolean collapsedByDefault) { + this.collapsedByDefault = collapsedByDefault; + return this; + } + + /** + * Whether the group renders collapsed on the public page + * @return collapsedByDefault + */ + @jakarta.annotation.Nullable + public Boolean getCollapsedByDefault() { + return collapsedByDefault; + } + + public void setCollapsedByDefault(@jakarta.annotation.Nullable Boolean collapsedByDefault) { + this.collapsedByDefault = collapsedByDefault; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewStatusPageComponentGroupDataAttributes newStatusPageComponentGroupDataAttributes = (NewStatusPageComponentGroupDataAttributes) o; + return Objects.equals(this.name, newStatusPageComponentGroupDataAttributes.name) && + Objects.equals(this.description, newStatusPageComponentGroupDataAttributes.description) && + Objects.equals(this.position, newStatusPageComponentGroupDataAttributes.position) && + Objects.equals(this.collapsedByDefault, newStatusPageComponentGroupDataAttributes.collapsedByDefault); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, position, collapsedByDefault); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewStatusPageComponentGroupDataAttributes {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" collapsedByDefault: ").append(toIndentedString(collapsedByDefault)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("position"); + openapiFields.add("collapsed_by_default"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("name"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewStatusPageComponentGroupDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewStatusPageComponentGroupDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewStatusPageComponentGroupDataAttributes is not found in the empty JSON string", NewStatusPageComponentGroupDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewStatusPageComponentGroupDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewStatusPageComponentGroupDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewStatusPageComponentGroupDataAttributes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewStatusPageComponentGroupDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewStatusPageComponentGroupDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewStatusPageComponentGroupDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewStatusPageComponentGroupDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewStatusPageComponentGroupDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewStatusPageComponentGroupDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewStatusPageComponentGroupDataAttributes + * @throws IOException if the JSON string is invalid with respect to NewStatusPageComponentGroupDataAttributes + */ + public static NewStatusPageComponentGroupDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewStatusPageComponentGroupDataAttributes.class); + } + + /** + * Convert an instance of NewStatusPageComponentGroupDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewStatusPageData.java b/src/main/java/com/rootly/client/model/NewStatusPageData.java index b82b75c3..76f8c9ce 100644 --- a/src/main/java/com/rootly/client/model/NewStatusPageData.java +++ b/src/main/java/com/rootly/client/model/NewStatusPageData.java @@ -49,7 +49,7 @@ /** * NewStatusPageData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewStatusPageData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewStatusPageDataAttributes.java b/src/main/java/com/rootly/client/model/NewStatusPageDataAttributes.java index 0a6124c0..e8042985 100644 --- a/src/main/java/com/rootly/client/model/NewStatusPageDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewStatusPageDataAttributes.java @@ -51,8 +51,14 @@ /** * NewStatusPageDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewStatusPageDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) @jakarta.annotation.Nonnull @@ -308,6 +314,70 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private SamlNameIdentifierFormatEnum samlNameIdentifierFormat; + /** + * Gets or Sets sectionOrder + */ + @JsonAdapter(SectionOrderEnum.Adapter.class) + public enum SectionOrderEnum { + MAINTENANCE("maintenance"), + + SYSTEM_STATUS("system_status"), + + INCIDENTS("incidents"); + + private String value; + + SectionOrderEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SectionOrderEnum fromValue(String value) { + for (SectionOrderEnum b : SectionOrderEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SectionOrderEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SectionOrderEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SectionOrderEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SectionOrderEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SECTION_ORDER = "section_order"; + @SerializedName(SERIALIZED_NAME_SECTION_ORDER) + @jakarta.annotation.Nullable + private List sectionOrder = new ArrayList<>(Arrays.asList(SectionOrderEnum.MAINTENANCE, SectionOrderEnum.SYSTEM_STATUS, SectionOrderEnum.INCIDENTS)); + + public static final String SERIALIZED_NAME_EXTERNAL_DOMAIN_NAMES = "external_domain_names"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_DOMAIN_NAMES) + @jakarta.annotation.Nullable + private List externalDomainNames; + public static final String SERIALIZED_NAME_WEBSITE_URL = "website_url"; @SerializedName(SERIALIZED_NAME_WEBSITE_URL) @jakarta.annotation.Nullable @@ -356,6 +426,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewStatusPageDataAttributes() { } + @Deprecated + public NewStatusPageDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewStatusPageDataAttributes title(@jakarta.annotation.Nonnull String title) { this.title = title; return this; @@ -702,6 +795,60 @@ public void setSamlNameIdentifierFormat(@jakarta.annotation.Nullable SamlNameIde } + public NewStatusPageDataAttributes sectionOrder(@jakarta.annotation.Nullable List sectionOrder) { + this.sectionOrder = sectionOrder; + return this; + } + + public NewStatusPageDataAttributes addSectionOrderItem(SectionOrderEnum sectionOrderItem) { + if (this.sectionOrder == null) { + this.sectionOrder = new ArrayList<>(Arrays.asList(SectionOrderEnum.MAINTENANCE, SectionOrderEnum.SYSTEM_STATUS, SectionOrderEnum.INCIDENTS)); + } + this.sectionOrder.add(sectionOrderItem); + return this; + } + + /** + * Order of sections on the status page + * @return sectionOrder + */ + @jakarta.annotation.Nullable + public List getSectionOrder() { + return sectionOrder; + } + + public void setSectionOrder(@jakarta.annotation.Nullable List sectionOrder) { + this.sectionOrder = sectionOrder; + } + + + public NewStatusPageDataAttributes externalDomainNames(@jakarta.annotation.Nullable List externalDomainNames) { + this.externalDomainNames = externalDomainNames; + return this; + } + + public NewStatusPageDataAttributes addExternalDomainNamesItem(String externalDomainNamesItem) { + if (this.externalDomainNames == null) { + this.externalDomainNames = new ArrayList<>(); + } + this.externalDomainNames.add(externalDomainNamesItem); + return this; + } + + /** + * External domain names attached to the status page + * @return externalDomainNames + */ + @jakarta.annotation.Nullable + public List getExternalDomainNames() { + return externalDomainNames; + } + + public void setExternalDomainNames(@jakarta.annotation.Nullable List externalDomainNames) { + this.externalDomainNames = externalDomainNames; + } + + public NewStatusPageDataAttributes websiteUrl(@jakarta.annotation.Nullable String websiteUrl) { this.websiteUrl = websiteUrl; return this; @@ -899,7 +1046,8 @@ public boolean equals(Object o) { return false; } NewStatusPageDataAttributes newStatusPageDataAttributes = (NewStatusPageDataAttributes) o; - return Objects.equals(this.title, newStatusPageDataAttributes.title) && + return Objects.equals(this.slug, newStatusPageDataAttributes.slug) && + Objects.equals(this.title, newStatusPageDataAttributes.title) && Objects.equals(this.publicTitle, newStatusPageDataAttributes.publicTitle) && Objects.equals(this.description, newStatusPageDataAttributes.description) && Objects.equals(this.publicDescription, newStatusPageDataAttributes.publicDescription) && @@ -917,6 +1065,8 @@ public boolean equals(Object o) { Objects.equals(this.samlIdpSloServiceUrl, newStatusPageDataAttributes.samlIdpSloServiceUrl) && Objects.equals(this.samlIdpCert, newStatusPageDataAttributes.samlIdpCert) && Objects.equals(this.samlNameIdentifierFormat, newStatusPageDataAttributes.samlNameIdentifierFormat) && + Objects.equals(this.sectionOrder, newStatusPageDataAttributes.sectionOrder) && + Objects.equals(this.externalDomainNames, newStatusPageDataAttributes.externalDomainNames) && Objects.equals(this.websiteUrl, newStatusPageDataAttributes.websiteUrl) && Objects.equals(this.websitePrivacyUrl, newStatusPageDataAttributes.websitePrivacyUrl) && Objects.equals(this.websiteSupportUrl, newStatusPageDataAttributes.websiteSupportUrl) && @@ -934,7 +1084,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(title, publicTitle, description, publicDescription, headerColor, footerColor, allowSearchEngineIndex, showUptime, showUptimeLastDays, successMessage, failureMessage, authenticationMethod, authenticationEnabled, authenticationPassword, samlIdpSsoServiceUrl, samlIdpSloServiceUrl, samlIdpCert, samlNameIdentifierFormat, websiteUrl, websitePrivacyUrl, websiteSupportUrl, gaTrackingId, timeZone, _public, serviceIds, functionalityIds, enabled); + return Objects.hash(slug, title, publicTitle, description, publicDescription, headerColor, footerColor, allowSearchEngineIndex, showUptime, showUptimeLastDays, successMessage, failureMessage, authenticationMethod, authenticationEnabled, authenticationPassword, samlIdpSsoServiceUrl, samlIdpSloServiceUrl, samlIdpCert, samlNameIdentifierFormat, sectionOrder, externalDomainNames, websiteUrl, websitePrivacyUrl, websiteSupportUrl, gaTrackingId, timeZone, _public, serviceIds, functionalityIds, enabled); } private static int hashCodeNullable(JsonNullable a) { @@ -948,6 +1098,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewStatusPageDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" publicTitle: ").append(toIndentedString(publicTitle)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); @@ -966,6 +1117,8 @@ public String toString() { sb.append(" samlIdpSloServiceUrl: ").append(toIndentedString(samlIdpSloServiceUrl)).append("\n"); sb.append(" samlIdpCert: ").append(toIndentedString(samlIdpCert)).append("\n"); sb.append(" samlNameIdentifierFormat: ").append(toIndentedString(samlNameIdentifierFormat)).append("\n"); + sb.append(" sectionOrder: ").append(toIndentedString(sectionOrder)).append("\n"); + sb.append(" externalDomainNames: ").append(toIndentedString(externalDomainNames)).append("\n"); sb.append(" websiteUrl: ").append(toIndentedString(websiteUrl)).append("\n"); sb.append(" websitePrivacyUrl: ").append(toIndentedString(websitePrivacyUrl)).append("\n"); sb.append(" websiteSupportUrl: ").append(toIndentedString(websiteSupportUrl)).append("\n"); @@ -997,6 +1150,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("title"); openapiFields.add("public_title"); openapiFields.add("description"); @@ -1015,6 +1169,8 @@ private String toIndentedString(Object o) { openapiFields.add("saml_idp_slo_service_url"); openapiFields.add("saml_idp_cert"); openapiFields.add("saml_name_identifier_format"); + openapiFields.add("section_order"); + openapiFields.add("external_domain_names"); openapiFields.add("website_url"); openapiFields.add("website_privacy_url"); openapiFields.add("website_support_url"); @@ -1058,6 +1214,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } @@ -1112,6 +1271,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("saml_name_identifier_format") != null && !jsonObj.get("saml_name_identifier_format").isJsonNull()) { SamlNameIdentifierFormatEnum.validateJsonElement(jsonObj.get("saml_name_identifier_format")); } + // ensure the optional json data is an array if present + if (jsonObj.get("section_order") != null && !jsonObj.get("section_order").isJsonNull() && !jsonObj.get("section_order").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `section_order` to be an array in the JSON string but got `%s`", jsonObj.get("section_order").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("external_domain_names") != null && !jsonObj.get("external_domain_names").isJsonNull() && !jsonObj.get("external_domain_names").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `external_domain_names` to be an array in the JSON string but got `%s`", jsonObj.get("external_domain_names").toString())); + } if ((jsonObj.get("website_url") != null && !jsonObj.get("website_url").isJsonNull()) && !jsonObj.get("website_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `website_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("website_url").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewStatusPageTemplate.java b/src/main/java/com/rootly/client/model/NewStatusPageTemplate.java index f2948ce0..ae3d87c1 100644 --- a/src/main/java/com/rootly/client/model/NewStatusPageTemplate.java +++ b/src/main/java/com/rootly/client/model/NewStatusPageTemplate.java @@ -49,7 +49,7 @@ /** * NewStatusPageTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewStatusPageTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewStatusPageTemplateData.java b/src/main/java/com/rootly/client/model/NewStatusPageTemplateData.java index 03fcdad6..a6be8e05 100644 --- a/src/main/java/com/rootly/client/model/NewStatusPageTemplateData.java +++ b/src/main/java/com/rootly/client/model/NewStatusPageTemplateData.java @@ -49,7 +49,7 @@ /** * NewStatusPageTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewStatusPageTemplateData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewStatusPageTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/NewStatusPageTemplateDataAttributes.java index bd5b07f1..bd81f8aa 100644 --- a/src/main/java/com/rootly/client/model/NewStatusPageTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewStatusPageTemplateDataAttributes.java @@ -49,7 +49,7 @@ /** * NewStatusPageTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewStatusPageTemplateDataAttributes { public static final String SERIALIZED_NAME_STATUS_PAGE_ID = "status_page_id"; @SerializedName(SERIALIZED_NAME_STATUS_PAGE_ID) @@ -61,6 +61,11 @@ public class NewStatusPageTemplateDataAttributes { @jakarta.annotation.Nonnull private String title; + public static final String SERIALIZED_NAME_UPDATE_TITLE = "update_title"; + @SerializedName(SERIALIZED_NAME_UPDATE_TITLE) + @jakarta.annotation.Nullable + private String updateTitle; + public static final String SERIALIZED_NAME_BODY = "body"; @SerializedName(SERIALIZED_NAME_BODY) @jakarta.annotation.Nonnull @@ -246,6 +251,25 @@ public void setTitle(@jakarta.annotation.Nonnull String title) { } + public NewStatusPageTemplateDataAttributes updateTitle(@jakarta.annotation.Nullable String updateTitle) { + this.updateTitle = updateTitle; + return this; + } + + /** + * Title that will be used for the status page update + * @return updateTitle + */ + @jakarta.annotation.Nullable + public String getUpdateTitle() { + return updateTitle; + } + + public void setUpdateTitle(@jakarta.annotation.Nullable String updateTitle) { + this.updateTitle = updateTitle; + } + + public NewStatusPageTemplateDataAttributes body(@jakarta.annotation.Nonnull String body) { this.body = body; return this; @@ -372,6 +396,7 @@ public boolean equals(Object o) { NewStatusPageTemplateDataAttributes newStatusPageTemplateDataAttributes = (NewStatusPageTemplateDataAttributes) o; return Objects.equals(this.statusPageId, newStatusPageTemplateDataAttributes.statusPageId) && Objects.equals(this.title, newStatusPageTemplateDataAttributes.title) && + Objects.equals(this.updateTitle, newStatusPageTemplateDataAttributes.updateTitle) && Objects.equals(this.body, newStatusPageTemplateDataAttributes.body) && Objects.equals(this.updateStatus, newStatusPageTemplateDataAttributes.updateStatus) && Objects.equals(this.kind, newStatusPageTemplateDataAttributes.kind) && @@ -386,7 +411,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(statusPageId, title, body, updateStatus, kind, shouldNotifySubscribers, position, enabled); + return Objects.hash(statusPageId, title, updateTitle, body, updateStatus, kind, shouldNotifySubscribers, position, enabled); } private static int hashCodeNullable(JsonNullable a) { @@ -402,6 +427,7 @@ public String toString() { sb.append("class NewStatusPageTemplateDataAttributes {\n"); sb.append(" statusPageId: ").append(toIndentedString(statusPageId)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" updateTitle: ").append(toIndentedString(updateTitle)).append("\n"); sb.append(" body: ").append(toIndentedString(body)).append("\n"); sb.append(" updateStatus: ").append(toIndentedString(updateStatus)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); @@ -432,6 +458,7 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("status_page_id"); openapiFields.add("title"); + openapiFields.add("update_title"); openapiFields.add("body"); openapiFields.add("update_status"); openapiFields.add("kind"); @@ -479,6 +506,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } + if ((jsonObj.get("update_title") != null && !jsonObj.get("update_title").isJsonNull()) && !jsonObj.get("update_title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `update_title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("update_title").toString())); + } if (!jsonObj.get("body").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("body").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewSubStatus.java b/src/main/java/com/rootly/client/model/NewSubStatus.java index 55baf21d..0ece739d 100644 --- a/src/main/java/com/rootly/client/model/NewSubStatus.java +++ b/src/main/java/com/rootly/client/model/NewSubStatus.java @@ -49,7 +49,7 @@ /** * NewSubStatus */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSubStatus { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewSubStatusData.java b/src/main/java/com/rootly/client/model/NewSubStatusData.java index 1d8b8b81..be64ae6b 100644 --- a/src/main/java/com/rootly/client/model/NewSubStatusData.java +++ b/src/main/java/com/rootly/client/model/NewSubStatusData.java @@ -49,7 +49,7 @@ /** * NewSubStatusData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSubStatusData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewSubStatusDataAttributes.java b/src/main/java/com/rootly/client/model/NewSubStatusDataAttributes.java index 77fbbb67..2dbb243f 100644 --- a/src/main/java/com/rootly/client/model/NewSubStatusDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewSubStatusDataAttributes.java @@ -49,18 +49,19 @@ /** * NewSubStatusDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewSubStatusDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -131,41 +132,45 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewSubStatusDataAttributes() { } - public NewSubStatusDataAttributes name(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public NewSubStatusDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * Get name - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ - @jakarta.annotation.Nonnull - public String getName() { - return name; + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public NewSubStatusDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public NewSubStatusDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; return this; } /** - * Get slug - * @return slug + * Get name + * @return name */ - @jakarta.annotation.Nullable - public String getSlug() { - return slug; + @jakarta.annotation.Nonnull + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; } @@ -236,8 +241,8 @@ public boolean equals(Object o) { return false; } NewSubStatusDataAttributes newSubStatusDataAttributes = (NewSubStatusDataAttributes) o; - return Objects.equals(this.name, newSubStatusDataAttributes.name) && - Objects.equals(this.slug, newSubStatusDataAttributes.slug) && + return Objects.equals(this.slug, newSubStatusDataAttributes.slug) && + Objects.equals(this.name, newSubStatusDataAttributes.name) && Objects.equals(this.description, newSubStatusDataAttributes.description) && Objects.equals(this.parentStatus, newSubStatusDataAttributes.parentStatus) && Objects.equals(this.position, newSubStatusDataAttributes.position); @@ -249,7 +254,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, parentStatus, position); + return Objects.hash(slug, name, description, parentStatus, position); } private static int hashCodeNullable(JsonNullable a) { @@ -263,8 +268,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewSubStatusDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" parentStatus: ").append(toIndentedString(parentStatus)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -290,8 +295,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("parent_status"); openapiFields.add("position"); @@ -330,12 +335,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewTeam.java b/src/main/java/com/rootly/client/model/NewTeam.java index 1f0cf6e4..e685b3f0 100644 --- a/src/main/java/com/rootly/client/model/NewTeam.java +++ b/src/main/java/com/rootly/client/model/NewTeam.java @@ -49,7 +49,7 @@ /** * NewTeam */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewTeam { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewTeamData.java b/src/main/java/com/rootly/client/model/NewTeamData.java index 1016b669..b3410813 100644 --- a/src/main/java/com/rootly/client/model/NewTeamData.java +++ b/src/main/java/com/rootly/client/model/NewTeamData.java @@ -49,7 +49,7 @@ /** * NewTeamData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewTeamData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewTeamDataAttributes.java b/src/main/java/com/rootly/client/model/NewTeamDataAttributes.java index 6e16c657..cf22ebf1 100644 --- a/src/main/java/com/rootly/client/model/NewTeamDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewTeamDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -55,8 +56,14 @@ /** * NewTeamDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewTeamDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -67,6 +74,11 @@ public class NewTeamDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) @jakarta.annotation.Nullable @@ -187,9 +199,98 @@ public class NewTeamDataAttributes { @jakarta.annotation.Nullable private Boolean autoAddMembersWhenAttached; + /** + * Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. + */ + @JsonAdapter(AutoAddMembersScopeEnum.Adapter.class) + public enum AutoAddMembersScopeEnum { + OFF("off"), + + PUBLIC_ONLY("public_only"), + + PUBLIC_AND_TEST("public_and_test"), + + ALL("all"); + + private String value; + + AutoAddMembersScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AutoAddMembersScopeEnum fromValue(String value) { + for (AutoAddMembersScopeEnum b : AutoAddMembersScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AutoAddMembersScopeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AutoAddMembersScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AutoAddMembersScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AutoAddMembersScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_AUTO_ADD_MEMBERS_SCOPE = "auto_add_members_scope"; + @SerializedName(SERIALIZED_NAME_AUTO_ADD_MEMBERS_SCOPE) + @jakarta.annotation.Nullable + private AutoAddMembersScopeEnum autoAddMembersScope; + + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public NewTeamDataAttributes() { } + @Deprecated + public NewTeamDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewTeamDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -228,6 +329,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public NewTeamDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the team + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public NewTeamDataAttributes notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { this.notifyEmails = notifyEmails; return this; @@ -724,6 +844,52 @@ public void setAutoAddMembersWhenAttached(@jakarta.annotation.Nullable Boolean a } + public NewTeamDataAttributes autoAddMembersScope(@jakarta.annotation.Nullable AutoAddMembersScopeEnum autoAddMembersScope) { + this.autoAddMembersScope = autoAddMembersScope; + return this; + } + + /** + * Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. + * @return autoAddMembersScope + */ + @jakarta.annotation.Nullable + public AutoAddMembersScopeEnum getAutoAddMembersScope() { + return autoAddMembersScope; + } + + public void setAutoAddMembersScope(@jakarta.annotation.Nullable AutoAddMembersScopeEnum autoAddMembersScope) { + this.autoAddMembersScope = autoAddMembersScope; + } + + + public NewTeamDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public NewTeamDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this team. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -734,8 +900,10 @@ public boolean equals(Object o) { return false; } NewTeamDataAttributes newTeamDataAttributes = (NewTeamDataAttributes) o; - return Objects.equals(this.name, newTeamDataAttributes.name) && + return Objects.equals(this.slug, newTeamDataAttributes.slug) && + Objects.equals(this.name, newTeamDataAttributes.name) && Objects.equals(this.description, newTeamDataAttributes.description) && + Objects.equals(this.publicDescription, newTeamDataAttributes.publicDescription) && Objects.equals(this.notifyEmails, newTeamDataAttributes.notifyEmails) && Objects.equals(this.color, newTeamDataAttributes.color) && Objects.equals(this.position, newTeamDataAttributes.position) && @@ -759,7 +927,9 @@ public boolean equals(Object o) { Objects.equals(this.alertBroadcastChannel, newTeamDataAttributes.alertBroadcastChannel) && Objects.equals(this.incidentBroadcastEnabled, newTeamDataAttributes.incidentBroadcastEnabled) && Objects.equals(this.incidentBroadcastChannel, newTeamDataAttributes.incidentBroadcastChannel) && - Objects.equals(this.autoAddMembersWhenAttached, newTeamDataAttributes.autoAddMembersWhenAttached); + Objects.equals(this.autoAddMembersWhenAttached, newTeamDataAttributes.autoAddMembersWhenAttached) && + Objects.equals(this.autoAddMembersScope, newTeamDataAttributes.autoAddMembersScope) && + Objects.equals(this.properties, newTeamDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -768,7 +938,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, notifyEmails, color, position, backstageId, externalId, pagerdutyId, pagerdutyServiceId, opsgenieId, opsgenieTeamId, victorOpsId, pagertreeId, cortexId, serviceNowCiSysId, userIds, adminIds, alertsEmailEnabled, alertUrgencyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, autoAddMembersWhenAttached); + return Objects.hash(slug, name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, pagerdutyServiceId, opsgenieId, opsgenieTeamId, victorOpsId, pagertreeId, cortexId, serviceNowCiSysId, userIds, adminIds, alertsEmailEnabled, alertUrgencyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, autoAddMembersWhenAttached, autoAddMembersScope, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -782,8 +952,10 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewTeamDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -808,6 +980,8 @@ public String toString() { sb.append(" incidentBroadcastEnabled: ").append(toIndentedString(incidentBroadcastEnabled)).append("\n"); sb.append(" incidentBroadcastChannel: ").append(toIndentedString(incidentBroadcastChannel)).append("\n"); sb.append(" autoAddMembersWhenAttached: ").append(toIndentedString(autoAddMembersWhenAttached)).append("\n"); + sb.append(" autoAddMembersScope: ").append(toIndentedString(autoAddMembersScope)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -830,8 +1004,10 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("notify_emails"); openapiFields.add("color"); openapiFields.add("position"); @@ -856,6 +1032,8 @@ private String toIndentedString(Object o) { openapiFields.add("incident_broadcast_enabled"); openapiFields.add("incident_broadcast_channel"); openapiFields.add("auto_add_members_when_attached"); + openapiFields.add("auto_add_members_scope"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -890,12 +1068,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); @@ -980,6 +1164,27 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_broadcast_channel") != null && !jsonObj.get("incident_broadcast_channel").isJsonNull()) { NewServiceDataAttributesIncidentBroadcastChannel.validateJsonElement(jsonObj.get("incident_broadcast_channel")); } + if ((jsonObj.get("auto_add_members_scope") != null && !jsonObj.get("auto_add_members_scope").isJsonNull()) && !jsonObj.get("auto_add_members_scope").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `auto_add_members_scope` to be a primitive type in the JSON string but got `%s`", jsonObj.get("auto_add_members_scope").toString())); + } + // validate the optional field `auto_add_members_scope` + if (jsonObj.get("auto_add_members_scope") != null && !jsonObj.get("auto_add_members_scope").isJsonNull()) { + AutoAddMembersScopeEnum.validateJsonElement(jsonObj.get("auto_add_members_scope")); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewUserEmailAddress.java b/src/main/java/com/rootly/client/model/NewUserEmailAddress.java index 6842ff22..fa61b0c8 100644 --- a/src/main/java/com/rootly/client/model/NewUserEmailAddress.java +++ b/src/main/java/com/rootly/client/model/NewUserEmailAddress.java @@ -49,7 +49,7 @@ /** * NewUserEmailAddress */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserEmailAddress { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewUserEmailAddressData.java b/src/main/java/com/rootly/client/model/NewUserEmailAddressData.java index 5ba9d113..56b87299 100644 --- a/src/main/java/com/rootly/client/model/NewUserEmailAddressData.java +++ b/src/main/java/com/rootly/client/model/NewUserEmailAddressData.java @@ -49,7 +49,7 @@ /** * NewUserEmailAddressData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserEmailAddressData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewUserEmailAddressDataAttributes.java b/src/main/java/com/rootly/client/model/NewUserEmailAddressDataAttributes.java index d1a7819f..af530aa4 100644 --- a/src/main/java/com/rootly/client/model/NewUserEmailAddressDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewUserEmailAddressDataAttributes.java @@ -48,7 +48,7 @@ /** * NewUserEmailAddressDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserEmailAddressDataAttributes { public static final String SERIALIZED_NAME_EMAIL = "email"; @SerializedName(SERIALIZED_NAME_EMAIL) diff --git a/src/main/java/com/rootly/client/model/NewUserNotificationRule.java b/src/main/java/com/rootly/client/model/NewUserNotificationRule.java index e2a0313d..625c6a1a 100644 --- a/src/main/java/com/rootly/client/model/NewUserNotificationRule.java +++ b/src/main/java/com/rootly/client/model/NewUserNotificationRule.java @@ -49,7 +49,7 @@ /** * NewUserNotificationRule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserNotificationRule { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewUserNotificationRuleData.java b/src/main/java/com/rootly/client/model/NewUserNotificationRuleData.java index 2c2002e0..0e39a00f 100644 --- a/src/main/java/com/rootly/client/model/NewUserNotificationRuleData.java +++ b/src/main/java/com/rootly/client/model/NewUserNotificationRuleData.java @@ -49,7 +49,7 @@ /** * NewUserNotificationRuleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserNotificationRuleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewUserNotificationRuleDataAttributes.java b/src/main/java/com/rootly/client/model/NewUserNotificationRuleDataAttributes.java index 5c6b29d1..f06d5648 100644 --- a/src/main/java/com/rootly/client/model/NewUserNotificationRuleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewUserNotificationRuleDataAttributes.java @@ -51,7 +51,7 @@ /** * NewUserNotificationRuleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserNotificationRuleDataAttributes { public static final String SERIALIZED_NAME_DELAY = "delay"; @SerializedName(SERIALIZED_NAME_DELAY) @@ -98,7 +98,11 @@ public enum EnabledContactTypesEnum { NON_CRITICAL_DEVICE("non_critical_device"), - SLACK("slack"); + SLACK("slack"), + + GOOGLE_CHAT("google_chat"), + + MICROSOFT_TEAMS("microsoft_teams"); private String value; diff --git a/src/main/java/com/rootly/client/model/NewUserPhoneNumber.java b/src/main/java/com/rootly/client/model/NewUserPhoneNumber.java index a9fd246f..1747913c 100644 --- a/src/main/java/com/rootly/client/model/NewUserPhoneNumber.java +++ b/src/main/java/com/rootly/client/model/NewUserPhoneNumber.java @@ -49,7 +49,7 @@ /** * NewUserPhoneNumber */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserPhoneNumber { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewUserPhoneNumberData.java b/src/main/java/com/rootly/client/model/NewUserPhoneNumberData.java index 9dd8ed0b..03969888 100644 --- a/src/main/java/com/rootly/client/model/NewUserPhoneNumberData.java +++ b/src/main/java/com/rootly/client/model/NewUserPhoneNumberData.java @@ -49,7 +49,7 @@ /** * NewUserPhoneNumberData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserPhoneNumberData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewUserPhoneNumberDataAttributes.java b/src/main/java/com/rootly/client/model/NewUserPhoneNumberDataAttributes.java index 70e0384d..2269ed31 100644 --- a/src/main/java/com/rootly/client/model/NewUserPhoneNumberDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewUserPhoneNumberDataAttributes.java @@ -48,7 +48,7 @@ /** * NewUserPhoneNumberDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewUserPhoneNumberDataAttributes { public static final String SERIALIZED_NAME_PHONE = "phone"; @SerializedName(SERIALIZED_NAME_PHONE) diff --git a/src/main/java/com/rootly/client/model/NewVerifiedDomain.java b/src/main/java/com/rootly/client/model/NewVerifiedDomain.java new file mode 100644 index 00000000..b79581ca --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewVerifiedDomain.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewVerifiedDomainData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewVerifiedDomain + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewVerifiedDomain { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private NewVerifiedDomainData data; + + public NewVerifiedDomain() { + } + + public NewVerifiedDomain data(@jakarta.annotation.Nonnull NewVerifiedDomainData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public NewVerifiedDomainData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull NewVerifiedDomainData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewVerifiedDomain newVerifiedDomain = (NewVerifiedDomain) o; + return Objects.equals(this.data, newVerifiedDomain.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewVerifiedDomain {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewVerifiedDomain + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewVerifiedDomain.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewVerifiedDomain is not found in the empty JSON string", NewVerifiedDomain.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewVerifiedDomain.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewVerifiedDomain` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewVerifiedDomain.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + NewVerifiedDomainData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewVerifiedDomain.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewVerifiedDomain' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewVerifiedDomain.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewVerifiedDomain value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewVerifiedDomain read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewVerifiedDomain given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewVerifiedDomain + * @throws IOException if the JSON string is invalid with respect to NewVerifiedDomain + */ + public static NewVerifiedDomain fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewVerifiedDomain.class); + } + + /** + * Convert an instance of NewVerifiedDomain to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewVerifiedDomainData.java b/src/main/java/com/rootly/client/model/NewVerifiedDomainData.java new file mode 100644 index 00000000..b45d8744 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewVerifiedDomainData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewVerifiedDomainDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewVerifiedDomainData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewVerifiedDomainData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + VERIFIED_DOMAINS("verified_domains"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private NewVerifiedDomainDataAttributes attributes; + + public NewVerifiedDomainData() { + } + + public NewVerifiedDomainData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewVerifiedDomainData attributes(@jakarta.annotation.Nonnull NewVerifiedDomainDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public NewVerifiedDomainDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull NewVerifiedDomainDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewVerifiedDomainData newVerifiedDomainData = (NewVerifiedDomainData) o; + return Objects.equals(this.type, newVerifiedDomainData.type) && + Objects.equals(this.attributes, newVerifiedDomainData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewVerifiedDomainData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewVerifiedDomainData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewVerifiedDomainData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewVerifiedDomainData is not found in the empty JSON string", NewVerifiedDomainData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewVerifiedDomainData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewVerifiedDomainData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewVerifiedDomainData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + NewVerifiedDomainDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewVerifiedDomainData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewVerifiedDomainData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewVerifiedDomainData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewVerifiedDomainData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewVerifiedDomainData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewVerifiedDomainData given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewVerifiedDomainData + * @throws IOException if the JSON string is invalid with respect to NewVerifiedDomainData + */ + public static NewVerifiedDomainData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewVerifiedDomainData.class); + } + + /** + * Convert an instance of NewVerifiedDomainData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewVerifiedDomainDataAttributes.java b/src/main/java/com/rootly/client/model/NewVerifiedDomainDataAttributes.java new file mode 100644 index 00000000..b692b287 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewVerifiedDomainDataAttributes.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewVerifiedDomainDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewVerifiedDomainDataAttributes { + public static final String SERIALIZED_NAME_DOMAIN = "domain"; + @SerializedName(SERIALIZED_NAME_DOMAIN) + @jakarta.annotation.Nonnull + private String domain; + + public NewVerifiedDomainDataAttributes() { + } + + public NewVerifiedDomainDataAttributes domain(@jakarta.annotation.Nonnull String domain) { + this.domain = domain; + return this; + } + + /** + * The domain to verify (e.g. acme.com) + * @return domain + */ + @jakarta.annotation.Nonnull + public String getDomain() { + return domain; + } + + public void setDomain(@jakarta.annotation.Nonnull String domain) { + this.domain = domain; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewVerifiedDomainDataAttributes newVerifiedDomainDataAttributes = (NewVerifiedDomainDataAttributes) o; + return Objects.equals(this.domain, newVerifiedDomainDataAttributes.domain); + } + + @Override + public int hashCode() { + return Objects.hash(domain); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewVerifiedDomainDataAttributes {\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("domain"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("domain"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewVerifiedDomainDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewVerifiedDomainDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewVerifiedDomainDataAttributes is not found in the empty JSON string", NewVerifiedDomainDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewVerifiedDomainDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewVerifiedDomainDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewVerifiedDomainDataAttributes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("domain").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `domain` to be a primitive type in the JSON string but got `%s`", jsonObj.get("domain").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewVerifiedDomainDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewVerifiedDomainDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewVerifiedDomainDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewVerifiedDomainDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewVerifiedDomainDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewVerifiedDomainDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewVerifiedDomainDataAttributes + * @throws IOException if the JSON string is invalid with respect to NewVerifiedDomainDataAttributes + */ + public static NewVerifiedDomainDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewVerifiedDomainDataAttributes.class); + } + + /** + * Convert an instance of NewVerifiedDomainDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewWebhooksEndpoint.java b/src/main/java/com/rootly/client/model/NewWebhooksEndpoint.java index c24732ee..938a6a34 100644 --- a/src/main/java/com/rootly/client/model/NewWebhooksEndpoint.java +++ b/src/main/java/com/rootly/client/model/NewWebhooksEndpoint.java @@ -49,7 +49,7 @@ /** * NewWebhooksEndpoint */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWebhooksEndpoint { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewWebhooksEndpointData.java b/src/main/java/com/rootly/client/model/NewWebhooksEndpointData.java index 08d3996c..f51f9559 100644 --- a/src/main/java/com/rootly/client/model/NewWebhooksEndpointData.java +++ b/src/main/java/com/rootly/client/model/NewWebhooksEndpointData.java @@ -49,7 +49,7 @@ /** * NewWebhooksEndpointData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWebhooksEndpointData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributes.java b/src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributes.java index f37fd732..d1d2493f 100644 --- a/src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributes.java @@ -19,10 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWebhooksEndpointDataAttributesCustomHeadersInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,8 +52,14 @@ /** * NewWebhooksEndpointDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWebhooksEndpointDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nonnull @@ -118,8 +126,12 @@ public enum EventTypesEnum { ALERT_CREATED("alert.created"), + ALERT_UPDATED("alert.updated"), + PULSE_CREATED("pulse.created"), + SHIFT_STARTED("shift.started"), + GENIUS_WORKFLOW_RUN_QUEUED("genius_workflow_run.queued"), GENIUS_WORKFLOW_RUN_STARTED("genius_workflow_run.started"), @@ -128,7 +140,9 @@ public enum EventTypesEnum { GENIUS_WORKFLOW_RUN_FAILED("genius_workflow_run.failed"), - GENIUS_WORKFLOW_RUN_CANCELED("genius_workflow_run.canceled"); + GENIUS_WORKFLOW_RUN_CANCELED("genius_workflow_run.canceled"), + + AUDIT_LOG_CREATED("audit_log.created"); private String value; @@ -183,9 +197,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean enabled; + public static final String SERIALIZED_NAME_CUSTOM_HEADERS = "custom_headers"; + @SerializedName(SERIALIZED_NAME_CUSTOM_HEADERS) + @jakarta.annotation.Nullable + private List customHeaders = new ArrayList<>(); + public NewWebhooksEndpointDataAttributes() { } + @Deprecated + public NewWebhooksEndpointDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewWebhooksEndpointDataAttributes name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -289,6 +331,33 @@ public void setEnabled(@jakarta.annotation.Nullable Boolean enabled) { } + public NewWebhooksEndpointDataAttributes customHeaders(@jakarta.annotation.Nullable List customHeaders) { + this.customHeaders = customHeaders; + return this; + } + + public NewWebhooksEndpointDataAttributes addCustomHeadersItem(NewWebhooksEndpointDataAttributesCustomHeadersInner customHeadersItem) { + if (this.customHeaders == null) { + this.customHeaders = new ArrayList<>(); + } + this.customHeaders.add(customHeadersItem); + return this; + } + + /** + * Custom HTTP headers sent with each delivery. Max 10. Reserved names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected. + * @return customHeaders + */ + @jakarta.annotation.Nullable + public List getCustomHeaders() { + return customHeaders; + } + + public void setCustomHeaders(@jakarta.annotation.Nullable List customHeaders) { + this.customHeaders = customHeaders; + } + + @Override public boolean equals(Object o) { @@ -299,27 +368,42 @@ public boolean equals(Object o) { return false; } NewWebhooksEndpointDataAttributes newWebhooksEndpointDataAttributes = (NewWebhooksEndpointDataAttributes) o; - return Objects.equals(this.name, newWebhooksEndpointDataAttributes.name) && + return Objects.equals(this.slug, newWebhooksEndpointDataAttributes.slug) && + Objects.equals(this.name, newWebhooksEndpointDataAttributes.name) && Objects.equals(this.url, newWebhooksEndpointDataAttributes.url) && Objects.equals(this.secret, newWebhooksEndpointDataAttributes.secret) && Objects.equals(this.eventTypes, newWebhooksEndpointDataAttributes.eventTypes) && - Objects.equals(this.enabled, newWebhooksEndpointDataAttributes.enabled); + Objects.equals(this.enabled, newWebhooksEndpointDataAttributes.enabled) && + Objects.equals(this.customHeaders, newWebhooksEndpointDataAttributes.customHeaders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(name, url, secret, eventTypes, enabled); + return Objects.hash(slug, name, url, secret, eventTypes, enabled, customHeaders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewWebhooksEndpointDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" url: ").append(toIndentedString(url)).append("\n"); sb.append(" secret: ").append(toIndentedString(secret)).append("\n"); sb.append(" eventTypes: ").append(toIndentedString(eventTypes)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" customHeaders: ").append(toIndentedString(customHeaders)).append("\n"); sb.append("}"); return sb.toString(); } @@ -342,11 +426,13 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("url"); openapiFields.add("secret"); openapiFields.add("event_types"); openapiFields.add("enabled"); + openapiFields.add("custom_headers"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -382,6 +468,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -395,6 +484,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("event_types") != null && !jsonObj.get("event_types").isJsonNull() && !jsonObj.get("event_types").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `event_types` to be an array in the JSON string but got `%s`", jsonObj.get("event_types").toString())); } + if (jsonObj.get("custom_headers") != null && !jsonObj.get("custom_headers").isJsonNull()) { + JsonArray jsonArraycustomHeaders = jsonObj.getAsJsonArray("custom_headers"); + if (jsonArraycustomHeaders != null) { + // ensure the json data is an array + if (!jsonObj.get("custom_headers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_headers` to be an array in the JSON string but got `%s`", jsonObj.get("custom_headers").toString())); + } + + // validate the optional field `custom_headers` (array) + for (int i = 0; i < jsonArraycustomHeaders.size(); i++) { + NewWebhooksEndpointDataAttributesCustomHeadersInner.validateJsonElement(jsonArraycustomHeaders.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInner.java b/src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInner.java new file mode 100644 index 00000000..ff81a6e8 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInner.java @@ -0,0 +1,245 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewWebhooksEndpointDataAttributesCustomHeadersInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewWebhooksEndpointDataAttributesCustomHeadersInner { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @jakarta.annotation.Nonnull + private String value; + + public NewWebhooksEndpointDataAttributesCustomHeadersInner() { + } + + public NewWebhooksEndpointDataAttributesCustomHeadersInner name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + + public NewWebhooksEndpointDataAttributesCustomHeadersInner value(@jakarta.annotation.Nonnull String value) { + this.value = value; + return this; + } + + /** + * Get value + * @return value + */ + @jakarta.annotation.Nonnull + public String getValue() { + return value; + } + + public void setValue(@jakarta.annotation.Nonnull String value) { + this.value = value; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewWebhooksEndpointDataAttributesCustomHeadersInner newWebhooksEndpointDataAttributesCustomHeadersInner = (NewWebhooksEndpointDataAttributesCustomHeadersInner) o; + return Objects.equals(this.name, newWebhooksEndpointDataAttributesCustomHeadersInner.name) && + Objects.equals(this.value, newWebhooksEndpointDataAttributesCustomHeadersInner.value); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewWebhooksEndpointDataAttributesCustomHeadersInner {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("name"); + openapiRequiredFields.add("value"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewWebhooksEndpointDataAttributesCustomHeadersInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewWebhooksEndpointDataAttributesCustomHeadersInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewWebhooksEndpointDataAttributesCustomHeadersInner is not found in the empty JSON string", NewWebhooksEndpointDataAttributesCustomHeadersInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewWebhooksEndpointDataAttributesCustomHeadersInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewWebhooksEndpointDataAttributesCustomHeadersInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewWebhooksEndpointDataAttributesCustomHeadersInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if (!jsonObj.get("value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("value").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewWebhooksEndpointDataAttributesCustomHeadersInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewWebhooksEndpointDataAttributesCustomHeadersInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewWebhooksEndpointDataAttributesCustomHeadersInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewWebhooksEndpointDataAttributesCustomHeadersInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewWebhooksEndpointDataAttributesCustomHeadersInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewWebhooksEndpointDataAttributesCustomHeadersInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewWebhooksEndpointDataAttributesCustomHeadersInner + * @throws IOException if the JSON string is invalid with respect to NewWebhooksEndpointDataAttributesCustomHeadersInner + */ + public static NewWebhooksEndpointDataAttributesCustomHeadersInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewWebhooksEndpointDataAttributesCustomHeadersInner.class); + } + + /** + * Convert an instance of NewWebhooksEndpointDataAttributesCustomHeadersInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewWorkflow.java b/src/main/java/com/rootly/client/model/NewWorkflow.java index ab3c0f0f..b11454b3 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflow.java +++ b/src/main/java/com/rootly/client/model/NewWorkflow.java @@ -49,7 +49,7 @@ /** * NewWorkflow */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflow { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldCondition.java b/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldCondition.java new file mode 100644 index 00000000..b548bb1b --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldCondition.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWorkflowActionItemFormFieldConditionData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewWorkflowActionItemFormFieldCondition + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewWorkflowActionItemFormFieldCondition { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private NewWorkflowActionItemFormFieldConditionData data; + + public NewWorkflowActionItemFormFieldCondition() { + } + + public NewWorkflowActionItemFormFieldCondition data(@jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldConditionData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public NewWorkflowActionItemFormFieldConditionData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldConditionData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition = (NewWorkflowActionItemFormFieldCondition) o; + return Objects.equals(this.data, newWorkflowActionItemFormFieldCondition.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewWorkflowActionItemFormFieldCondition {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewWorkflowActionItemFormFieldCondition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewWorkflowActionItemFormFieldCondition.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewWorkflowActionItemFormFieldCondition is not found in the empty JSON string", NewWorkflowActionItemFormFieldCondition.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewWorkflowActionItemFormFieldCondition.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewWorkflowActionItemFormFieldCondition` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewWorkflowActionItemFormFieldCondition.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + NewWorkflowActionItemFormFieldConditionData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewWorkflowActionItemFormFieldCondition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewWorkflowActionItemFormFieldCondition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewWorkflowActionItemFormFieldCondition.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewWorkflowActionItemFormFieldCondition value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewWorkflowActionItemFormFieldCondition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewWorkflowActionItemFormFieldCondition given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewWorkflowActionItemFormFieldCondition + * @throws IOException if the JSON string is invalid with respect to NewWorkflowActionItemFormFieldCondition + */ + public static NewWorkflowActionItemFormFieldCondition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewWorkflowActionItemFormFieldCondition.class); + } + + /** + * Convert an instance of NewWorkflowActionItemFormFieldCondition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionData.java b/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionData.java new file mode 100644 index 00000000..97a08014 --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWorkflowActionItemFormFieldConditionDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewWorkflowActionItemFormFieldConditionData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewWorkflowActionItemFormFieldConditionData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + WORKFLOW_ACTION_ITEM_FORM_FIELD_CONDITIONS("workflow_action_item_form_field_conditions"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private NewWorkflowActionItemFormFieldConditionDataAttributes attributes; + + public NewWorkflowActionItemFormFieldConditionData() { + } + + public NewWorkflowActionItemFormFieldConditionData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public NewWorkflowActionItemFormFieldConditionData attributes(@jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldConditionDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public NewWorkflowActionItemFormFieldConditionDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull NewWorkflowActionItemFormFieldConditionDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewWorkflowActionItemFormFieldConditionData newWorkflowActionItemFormFieldConditionData = (NewWorkflowActionItemFormFieldConditionData) o; + return Objects.equals(this.type, newWorkflowActionItemFormFieldConditionData.type) && + Objects.equals(this.attributes, newWorkflowActionItemFormFieldConditionData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewWorkflowActionItemFormFieldConditionData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewWorkflowActionItemFormFieldConditionData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewWorkflowActionItemFormFieldConditionData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewWorkflowActionItemFormFieldConditionData is not found in the empty JSON string", NewWorkflowActionItemFormFieldConditionData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewWorkflowActionItemFormFieldConditionData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewWorkflowActionItemFormFieldConditionData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewWorkflowActionItemFormFieldConditionData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + NewWorkflowActionItemFormFieldConditionDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewWorkflowActionItemFormFieldConditionData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewWorkflowActionItemFormFieldConditionData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewWorkflowActionItemFormFieldConditionData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewWorkflowActionItemFormFieldConditionData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewWorkflowActionItemFormFieldConditionData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewWorkflowActionItemFormFieldConditionData given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewWorkflowActionItemFormFieldConditionData + * @throws IOException if the JSON string is invalid with respect to NewWorkflowActionItemFormFieldConditionData + */ + public static NewWorkflowActionItemFormFieldConditionData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewWorkflowActionItemFormFieldConditionData.class); + } + + /** + * Convert an instance of NewWorkflowActionItemFormFieldConditionData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributes.java b/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributes.java new file mode 100644 index 00000000..7299722a --- /dev/null +++ b/src/main/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributes.java @@ -0,0 +1,705 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * NewWorkflowActionItemFormFieldConditionDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class NewWorkflowActionItemFormFieldConditionDataAttributes { + public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; + @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) + @jakarta.annotation.Nonnull + private String formFieldId; + + /** + * The trigger condition + */ + @JsonAdapter(ActionItemConditionEnum.Adapter.class) + public enum ActionItemConditionEnum { + IS("IS"), + + IS_NOT("IS NOT"), + + ANY("ANY"), + + CONTAINS("CONTAINS"), + + CONTAINS_ALL("CONTAINS_ALL"), + + CONTAINS_NONE("CONTAINS_NONE"), + + NONE("NONE"), + + SET("SET"), + + UNSET("UNSET"); + + private String value; + + ActionItemConditionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ActionItemConditionEnum fromValue(String value) { + for (ActionItemConditionEnum b : ActionItemConditionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ActionItemConditionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ActionItemConditionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ActionItemConditionEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ActionItemConditionEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_ACTION_ITEM_CONDITION = "action_item_condition"; + @SerializedName(SERIALIZED_NAME_ACTION_ITEM_CONDITION) + @jakarta.annotation.Nonnull + private ActionItemConditionEnum actionItemCondition = ActionItemConditionEnum.ANY; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @jakarta.annotation.Nullable + private List values = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS = "selected_catalog_entity_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS) + @jakarta.annotation.Nullable + private List selectedCatalogEntityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS = "selected_functionality_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List selectedFunctionalityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_GROUP_IDS = "selected_group_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_GROUP_IDS) + @jakarta.annotation.Nullable + private List selectedGroupIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_OPTION_IDS = "selected_option_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_OPTION_IDS) + @jakarta.annotation.Nullable + private List selectedOptionIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_SERVICE_IDS = "selected_service_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_SERVICE_IDS) + @jakarta.annotation.Nullable + private List selectedServiceIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_USER_IDS = "selected_user_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_USER_IDS) + @jakarta.annotation.Nullable + private List selectedUserIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + + public NewWorkflowActionItemFormFieldConditionDataAttributes() { + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes formFieldId(@jakarta.annotation.Nonnull String formFieldId) { + this.formFieldId = formFieldId; + return this; + } + + /** + * The custom field for this condition + * @return formFieldId + */ + @jakarta.annotation.Nonnull + public String getFormFieldId() { + return formFieldId; + } + + public void setFormFieldId(@jakarta.annotation.Nonnull String formFieldId) { + this.formFieldId = formFieldId; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes actionItemCondition(@jakarta.annotation.Nonnull ActionItemConditionEnum actionItemCondition) { + this.actionItemCondition = actionItemCondition; + return this; + } + + /** + * The trigger condition + * @return actionItemCondition + */ + @jakarta.annotation.Nonnull + public ActionItemConditionEnum getActionItemCondition() { + return actionItemCondition; + } + + public void setActionItemCondition(@jakarta.annotation.Nonnull ActionItemConditionEnum actionItemCondition) { + this.actionItemCondition = actionItemCondition; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes values(@jakarta.annotation.Nullable List values) { + this.values = values; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addValuesItem(String valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); + } + this.values.add(valuesItem); + return this; + } + + /** + * Get values + * @return values + */ + @jakarta.annotation.Nullable + public List getValues() { + return values; + } + + public void setValues(@jakarta.annotation.Nullable List values) { + this.values = values; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedCatalogEntityIds(@jakarta.annotation.Nullable List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedCatalogEntityIdsItem(String selectedCatalogEntityIdsItem) { + if (this.selectedCatalogEntityIds == null) { + this.selectedCatalogEntityIds = new ArrayList<>(); + } + this.selectedCatalogEntityIds.add(selectedCatalogEntityIdsItem); + return this; + } + + /** + * Get selectedCatalogEntityIds + * @return selectedCatalogEntityIds + */ + @jakarta.annotation.Nullable + public List getSelectedCatalogEntityIds() { + return selectedCatalogEntityIds; + } + + public void setSelectedCatalogEntityIds(@jakarta.annotation.Nullable List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedFunctionalityIdsItem(String selectedFunctionalityIdsItem) { + if (this.selectedFunctionalityIds == null) { + this.selectedFunctionalityIds = new ArrayList<>(); + } + this.selectedFunctionalityIds.add(selectedFunctionalityIdsItem); + return this; + } + + /** + * Get selectedFunctionalityIds + * @return selectedFunctionalityIds + */ + @jakarta.annotation.Nullable + public List getSelectedFunctionalityIds() { + return selectedFunctionalityIds; + } + + public void setSelectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedGroupIdsItem(String selectedGroupIdsItem) { + if (this.selectedGroupIds == null) { + this.selectedGroupIds = new ArrayList<>(); + } + this.selectedGroupIds.add(selectedGroupIdsItem); + return this; + } + + /** + * Get selectedGroupIds + * @return selectedGroupIds + */ + @jakarta.annotation.Nullable + public List getSelectedGroupIds() { + return selectedGroupIds; + } + + public void setSelectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedOptionIds(@jakarta.annotation.Nullable List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedOptionIdsItem(String selectedOptionIdsItem) { + if (this.selectedOptionIds == null) { + this.selectedOptionIds = new ArrayList<>(); + } + this.selectedOptionIds.add(selectedOptionIdsItem); + return this; + } + + /** + * Get selectedOptionIds + * @return selectedOptionIds + */ + @jakarta.annotation.Nullable + public List getSelectedOptionIds() { + return selectedOptionIds; + } + + public void setSelectedOptionIds(@jakarta.annotation.Nullable List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedServiceIdsItem(String selectedServiceIdsItem) { + if (this.selectedServiceIds == null) { + this.selectedServiceIds = new ArrayList<>(); + } + this.selectedServiceIds.add(selectedServiceIdsItem); + return this; + } + + /** + * Get selectedServiceIds + * @return selectedServiceIds + */ + @jakarta.annotation.Nullable + public List getSelectedServiceIds() { + return selectedServiceIds; + } + + public void setSelectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedUserIds(@jakarta.annotation.Nullable List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedUserIdsItem(Integer selectedUserIdsItem) { + if (this.selectedUserIds == null) { + this.selectedUserIds = new ArrayList<>(); + } + this.selectedUserIds.add(selectedUserIdsItem); + return this; + } + + /** + * Get selectedUserIds + * @return selectedUserIds + */ + @jakarta.annotation.Nullable + public List getSelectedUserIds() { + return selectedUserIds; + } + + public void setSelectedUserIds(@jakarta.annotation.Nullable List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public NewWorkflowActionItemFormFieldConditionDataAttributes selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public NewWorkflowActionItemFormFieldConditionDataAttributes addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewWorkflowActionItemFormFieldConditionDataAttributes newWorkflowActionItemFormFieldConditionDataAttributes = (NewWorkflowActionItemFormFieldConditionDataAttributes) o; + return Objects.equals(this.formFieldId, newWorkflowActionItemFormFieldConditionDataAttributes.formFieldId) && + Objects.equals(this.actionItemCondition, newWorkflowActionItemFormFieldConditionDataAttributes.actionItemCondition) && + Objects.equals(this.values, newWorkflowActionItemFormFieldConditionDataAttributes.values) && + Objects.equals(this.selectedCatalogEntityIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedCatalogEntityIds) && + Objects.equals(this.selectedFunctionalityIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedFunctionalityIds) && + Objects.equals(this.selectedGroupIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedGroupIds) && + Objects.equals(this.selectedOptionIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedOptionIds) && + Objects.equals(this.selectedServiceIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedServiceIds) && + Objects.equals(this.selectedUserIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedUserIds) && + Objects.equals(this.selectedCauseIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedCauseIds) && + Objects.equals(this.selectedEnvironmentIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedEnvironmentIds) && + Objects.equals(this.selectedIncidentTypeIds, newWorkflowActionItemFormFieldConditionDataAttributes.selectedIncidentTypeIds); + } + + @Override + public int hashCode() { + return Objects.hash(formFieldId, actionItemCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds, selectedCauseIds, selectedEnvironmentIds, selectedIncidentTypeIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewWorkflowActionItemFormFieldConditionDataAttributes {\n"); + sb.append(" formFieldId: ").append(toIndentedString(formFieldId)).append("\n"); + sb.append(" actionItemCondition: ").append(toIndentedString(actionItemCondition)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); + sb.append(" selectedCatalogEntityIds: ").append(toIndentedString(selectedCatalogEntityIds)).append("\n"); + sb.append(" selectedFunctionalityIds: ").append(toIndentedString(selectedFunctionalityIds)).append("\n"); + sb.append(" selectedGroupIds: ").append(toIndentedString(selectedGroupIds)).append("\n"); + sb.append(" selectedOptionIds: ").append(toIndentedString(selectedOptionIds)).append("\n"); + sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); + sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("form_field_id"); + openapiFields.add("action_item_condition"); + openapiFields.add("values"); + openapiFields.add("selected_catalog_entity_ids"); + openapiFields.add("selected_functionality_ids"); + openapiFields.add("selected_group_ids"); + openapiFields.add("selected_option_ids"); + openapiFields.add("selected_service_ids"); + openapiFields.add("selected_user_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_incident_type_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("form_field_id"); + openapiRequiredFields.add("action_item_condition"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NewWorkflowActionItemFormFieldConditionDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NewWorkflowActionItemFormFieldConditionDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewWorkflowActionItemFormFieldConditionDataAttributes is not found in the empty JSON string", NewWorkflowActionItemFormFieldConditionDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NewWorkflowActionItemFormFieldConditionDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewWorkflowActionItemFormFieldConditionDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewWorkflowActionItemFormFieldConditionDataAttributes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("form_field_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `form_field_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("form_field_id").toString())); + } + if (!jsonObj.get("action_item_condition").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `action_item_condition` to be a primitive type in the JSON string but got `%s`", jsonObj.get("action_item_condition").toString())); + } + // validate the required field `action_item_condition` + ActionItemConditionEnum.validateJsonElement(jsonObj.get("action_item_condition")); + // ensure the optional json data is an array if present + if (jsonObj.get("values") != null && !jsonObj.get("values").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `values` to be an array in the JSON string but got `%s`", jsonObj.get("values").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_catalog_entity_ids") != null && !jsonObj.get("selected_catalog_entity_ids").isJsonNull() && !jsonObj.get("selected_catalog_entity_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_catalog_entity_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_catalog_entity_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_functionality_ids") != null && !jsonObj.get("selected_functionality_ids").isJsonNull() && !jsonObj.get("selected_functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_functionality_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_group_ids") != null && !jsonObj.get("selected_group_ids").isJsonNull() && !jsonObj.get("selected_group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_group_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_option_ids") != null && !jsonObj.get("selected_option_ids").isJsonNull() && !jsonObj.get("selected_option_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_option_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_option_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_service_ids") != null && !jsonObj.get("selected_service_ids").isJsonNull() && !jsonObj.get("selected_service_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_service_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NewWorkflowActionItemFormFieldConditionDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewWorkflowActionItemFormFieldConditionDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewWorkflowActionItemFormFieldConditionDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, NewWorkflowActionItemFormFieldConditionDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewWorkflowActionItemFormFieldConditionDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewWorkflowActionItemFormFieldConditionDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewWorkflowActionItemFormFieldConditionDataAttributes + * @throws IOException if the JSON string is invalid with respect to NewWorkflowActionItemFormFieldConditionDataAttributes + */ + public static NewWorkflowActionItemFormFieldConditionDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewWorkflowActionItemFormFieldConditionDataAttributes.class); + } + + /** + * Convert an instance of NewWorkflowActionItemFormFieldConditionDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelection.java b/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelection.java index acec9a66..ab1f18ba 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelection.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelection.java @@ -49,7 +49,7 @@ /** * NewWorkflowCustomFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowCustomFieldSelection { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionData.java b/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionData.java index bd5010ea..dd8c01fe 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionData.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionData.java @@ -49,7 +49,7 @@ /** * NewWorkflowCustomFieldSelectionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowCustomFieldSelectionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionDataAttributes.java b/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionDataAttributes.java index b56cc21f..0d798278 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowCustomFieldSelectionDataAttributes.java @@ -50,7 +50,7 @@ /** * NewWorkflowCustomFieldSelectionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowCustomFieldSelectionDataAttributes { public static final String SERIALIZED_NAME_WORKFLOW_ID = "workflow_id"; @SerializedName(SERIALIZED_NAME_WORKFLOW_ID) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowData.java b/src/main/java/com/rootly/client/model/NewWorkflowData.java index 813bdf65..de934554 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowData.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowData.java @@ -49,7 +49,7 @@ /** * NewWorkflowData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewWorkflowDataAttributes.java b/src/main/java/com/rootly/client/model/NewWorkflowDataAttributes.java index eff9307f..5eeca48c 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowDataAttributes.java @@ -52,18 +52,19 @@ /** * NewWorkflowDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nonnull - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -303,41 +304,45 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewWorkflowDataAttributes() { } - public NewWorkflowDataAttributes name(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public NewWorkflowDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * The title of the workflow - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ - @jakarta.annotation.Nonnull - public String getName() { - return name; + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nonnull String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public NewWorkflowDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public NewWorkflowDataAttributes name(@jakarta.annotation.Nonnull String name) { + this.name = name; return this; } /** - * The slug of the workflow - * @return slug + * The title of the workflow + * @return name */ - @jakarta.annotation.Nullable - public String getSlug() { - return slug; + @jakarta.annotation.Nonnull + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; } @@ -887,8 +892,8 @@ public boolean equals(Object o) { return false; } NewWorkflowDataAttributes newWorkflowDataAttributes = (NewWorkflowDataAttributes) o; - return Objects.equals(this.name, newWorkflowDataAttributes.name) && - Objects.equals(this.slug, newWorkflowDataAttributes.slug) && + return Objects.equals(this.slug, newWorkflowDataAttributes.slug) && + Objects.equals(this.name, newWorkflowDataAttributes.name) && Objects.equals(this.description, newWorkflowDataAttributes.description) && Objects.equals(this.command, newWorkflowDataAttributes.command) && Objects.equals(this.commandFeedbackEnabled, newWorkflowDataAttributes.commandFeedbackEnabled) && @@ -921,7 +926,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, command, commandFeedbackEnabled, wait, priority, repeatEveryDuration, repeatConditionDurationSinceFirstRun, repeatConditionNumberOfRepeats, continuouslyRepeat, repeatOn, enabled, locked, position, workflowGroupId, triggerParams, environmentIds, severityIds, incidentTypeIds, incidentRoleIds, serviceIds, functionalityIds, groupIds, causeIds, subStatusIds); + return Objects.hash(slug, name, description, command, commandFeedbackEnabled, wait, priority, repeatEveryDuration, repeatConditionDurationSinceFirstRun, repeatConditionNumberOfRepeats, continuouslyRepeat, repeatOn, enabled, locked, position, workflowGroupId, triggerParams, environmentIds, severityIds, incidentTypeIds, incidentRoleIds, serviceIds, functionalityIds, groupIds, causeIds, subStatusIds); } private static int hashCodeNullable(JsonNullable a) { @@ -935,8 +940,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewWorkflowDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" command: ").append(toIndentedString(command)).append("\n"); sb.append(" commandFeedbackEnabled: ").append(toIndentedString(commandFeedbackEnabled)).append("\n"); @@ -983,8 +988,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("command"); openapiFields.add("command_feedback_enabled"); @@ -1043,12 +1048,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParams.java b/src/main/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParams.java index 559abecf..295f92a7 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParams.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParams.java @@ -22,6 +22,7 @@ import com.rootly.client.model.ActionItemTriggerParams; import com.rootly.client.model.AlertTriggerParams; import com.rootly.client.model.AlertTriggerParamsAlertFieldConditionsInner; +import com.rootly.client.model.AlertTriggerParamsAlertPayloadConditions; import com.rootly.client.model.IncidentTriggerParams; import com.rootly.client.model.PulseTriggerParams; import com.rootly.client.model.SimpleTriggerParams; @@ -29,6 +30,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.UUID; import org.openapitools.jackson.nullable.JsonNullable; @@ -66,7 +68,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowDataAttributesTriggerParams extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewWorkflowDataAttributesTriggerParams.class.getName()); diff --git a/src/main/java/com/rootly/client/model/NewWorkflowFormFieldCondition.java b/src/main/java/com/rootly/client/model/NewWorkflowFormFieldCondition.java index d2a8c1ac..d74bcd69 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowFormFieldCondition.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowFormFieldCondition.java @@ -49,7 +49,7 @@ /** * NewWorkflowFormFieldCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowFormFieldCondition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionData.java b/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionData.java index c73bf715..3b268844 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionData.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionData.java @@ -49,7 +49,7 @@ /** * NewWorkflowFormFieldConditionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowFormFieldConditionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributes.java b/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributes.java index 07039f44..8b9fe4cc 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributes.java @@ -50,7 +50,7 @@ /** * NewWorkflowFormFieldConditionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowFormFieldConditionDataAttributes { public static final String SERIALIZED_NAME_WORKFLOW_ID = "workflow_id"; @SerializedName(SERIALIZED_NAME_WORKFLOW_ID) @@ -168,6 +168,21 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List selectedUserIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + public NewWorkflowFormFieldConditionDataAttributes() { } @@ -417,6 +432,87 @@ public void setSelectedUserIds(@jakarta.annotation.Nullable List select } + public NewWorkflowFormFieldConditionDataAttributes selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public NewWorkflowFormFieldConditionDataAttributes addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public NewWorkflowFormFieldConditionDataAttributes selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public NewWorkflowFormFieldConditionDataAttributes addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public NewWorkflowFormFieldConditionDataAttributes selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public NewWorkflowFormFieldConditionDataAttributes addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + @Override public boolean equals(Object o) { @@ -436,12 +532,15 @@ public boolean equals(Object o) { Objects.equals(this.selectedGroupIds, newWorkflowFormFieldConditionDataAttributes.selectedGroupIds) && Objects.equals(this.selectedOptionIds, newWorkflowFormFieldConditionDataAttributes.selectedOptionIds) && Objects.equals(this.selectedServiceIds, newWorkflowFormFieldConditionDataAttributes.selectedServiceIds) && - Objects.equals(this.selectedUserIds, newWorkflowFormFieldConditionDataAttributes.selectedUserIds); + Objects.equals(this.selectedUserIds, newWorkflowFormFieldConditionDataAttributes.selectedUserIds) && + Objects.equals(this.selectedCauseIds, newWorkflowFormFieldConditionDataAttributes.selectedCauseIds) && + Objects.equals(this.selectedEnvironmentIds, newWorkflowFormFieldConditionDataAttributes.selectedEnvironmentIds) && + Objects.equals(this.selectedIncidentTypeIds, newWorkflowFormFieldConditionDataAttributes.selectedIncidentTypeIds); } @Override public int hashCode() { - return Objects.hash(workflowId, formFieldId, incidentCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds); + return Objects.hash(workflowId, formFieldId, incidentCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds, selectedCauseIds, selectedEnvironmentIds, selectedIncidentTypeIds); } @Override @@ -458,6 +557,9 @@ public String toString() { sb.append(" selectedOptionIds: ").append(toIndentedString(selectedOptionIds)).append("\n"); sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -490,6 +592,9 @@ private String toIndentedString(Object o) { openapiFields.add("selected_option_ids"); openapiFields.add("selected_service_ids"); openapiFields.add("selected_user_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_incident_type_ids"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -564,6 +669,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/NewWorkflowGroup.java b/src/main/java/com/rootly/client/model/NewWorkflowGroup.java index 49470344..711e0271 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowGroup.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowGroup.java @@ -49,7 +49,7 @@ /** * NewWorkflowGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowGroupData.java b/src/main/java/com/rootly/client/model/NewWorkflowGroupData.java index 8e718185..5c5f7a40 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowGroupData.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowGroupData.java @@ -49,7 +49,7 @@ /** * NewWorkflowGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewWorkflowGroupDataAttributes.java b/src/main/java/com/rootly/client/model/NewWorkflowGroupDataAttributes.java index fbf11d52..5ec2c910 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowGroupDataAttributes.java @@ -49,8 +49,14 @@ /** * NewWorkflowGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowGroupDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + /** * The kind of the workflow group */ @@ -144,6 +150,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public NewWorkflowGroupDataAttributes() { } + @Deprecated + public NewWorkflowGroupDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name` and `kind`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public NewWorkflowGroupDataAttributes kind(@jakarta.annotation.Nullable KindEnum kind) { this.kind = kind; return this; @@ -268,7 +297,8 @@ public boolean equals(Object o) { return false; } NewWorkflowGroupDataAttributes newWorkflowGroupDataAttributes = (NewWorkflowGroupDataAttributes) o; - return Objects.equals(this.kind, newWorkflowGroupDataAttributes.kind) && + return Objects.equals(this.slug, newWorkflowGroupDataAttributes.slug) && + Objects.equals(this.kind, newWorkflowGroupDataAttributes.kind) && Objects.equals(this.name, newWorkflowGroupDataAttributes.name) && Objects.equals(this.description, newWorkflowGroupDataAttributes.description) && Objects.equals(this.icon, newWorkflowGroupDataAttributes.icon) && @@ -282,7 +312,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(kind, name, description, icon, expanded, position); + return Objects.hash(slug, kind, name, description, icon, expanded, position); } private static int hashCodeNullable(JsonNullable a) { @@ -296,6 +326,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewWorkflowGroupDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); @@ -324,6 +355,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("kind"); openapiFields.add("name"); openapiFields.add("description"); @@ -364,6 +396,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("kind") != null && !jsonObj.get("kind").isJsonNull()) && !jsonObj.get("kind").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); } diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRun.java b/src/main/java/com/rootly/client/model/NewWorkflowRun.java index 57a68206..04476e03 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRun.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRun.java @@ -49,7 +49,7 @@ /** * NewWorkflowRun */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRun { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunData.java b/src/main/java/com/rootly/client/model/NewWorkflowRunData.java index 3cb35855..21ca0e21 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunData.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunData.java @@ -49,7 +49,7 @@ /** * NewWorkflowRunData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributes.java b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributes.java index 5b1d385f..98512ed6 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributes.java @@ -66,7 +66,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunDataAttributes extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewWorkflowRunDataAttributes.class.getName()); diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf.java b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf.java index 170da663..ad174ea6 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf.java @@ -51,7 +51,7 @@ /** * NewWorkflowRunDataAttributesAnyOf */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunDataAttributesAnyOf { public static final String SERIALIZED_NAME_IMMEDIATE = "immediate"; @SerializedName(SERIALIZED_NAME_IMMEDIATE) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf1.java b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf1.java index 5c850888..986f9e13 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf1.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf1.java @@ -51,7 +51,7 @@ /** * NewWorkflowRunDataAttributesAnyOf1 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunDataAttributesAnyOf1 { public static final String SERIALIZED_NAME_INCIDENT_ID = "incident_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_ID) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf2.java b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf2.java index 76120589..06753602 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf2.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf2.java @@ -51,7 +51,7 @@ /** * NewWorkflowRunDataAttributesAnyOf2 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunDataAttributesAnyOf2 { public static final String SERIALIZED_NAME_POST_MORTEM_ID = "post_mortem_id"; @SerializedName(SERIALIZED_NAME_POST_MORTEM_ID) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf3.java b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf3.java index 416ebcb5..c35287ea 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf3.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf3.java @@ -51,7 +51,7 @@ /** * NewWorkflowRunDataAttributesAnyOf3 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunDataAttributesAnyOf3 { public static final String SERIALIZED_NAME_ACTION_ITEM_ID = "action_item_id"; @SerializedName(SERIALIZED_NAME_ACTION_ITEM_ID) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf4.java b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf4.java index fe70bb94..3f8ac629 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf4.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf4.java @@ -51,7 +51,7 @@ /** * NewWorkflowRunDataAttributesAnyOf4 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunDataAttributesAnyOf4 { public static final String SERIALIZED_NAME_ALERT_ID = "alert_id"; @SerializedName(SERIALIZED_NAME_ALERT_ID) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf5.java b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf5.java index fcbecd09..f7557115 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf5.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowRunDataAttributesAnyOf5.java @@ -51,7 +51,7 @@ /** * NewWorkflowRunDataAttributesAnyOf5 */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowRunDataAttributesAnyOf5 { public static final String SERIALIZED_NAME_PULSE_ID = "pulse_id"; @SerializedName(SERIALIZED_NAME_PULSE_ID) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowTask.java b/src/main/java/com/rootly/client/model/NewWorkflowTask.java index adf909a2..9015821f 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowTask.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowTask.java @@ -49,7 +49,7 @@ /** * NewWorkflowTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowTask { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowTaskData.java b/src/main/java/com/rootly/client/model/NewWorkflowTaskData.java index ad8a49d1..42fde720 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowTaskData.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowTaskData.java @@ -49,7 +49,7 @@ /** * NewWorkflowTaskData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowTaskData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributes.java b/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributes.java index c415b43a..436346e2 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributes.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributes.java @@ -49,7 +49,7 @@ /** * NewWorkflowTaskDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowTaskDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParams.java b/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParams.java index 4928b2d2..2752fd2d 100644 --- a/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParams.java +++ b/src/main/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParams.java @@ -21,20 +21,25 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParams; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AddMicrosoftTeamsChatTabTaskParams; import com.rootly.client.model.AddMicrosoftTeamsTabTaskParams; import com.rootly.client.model.AddRoleTaskParams; import com.rootly.client.model.AddRoleTaskParamsAssignedToUser; import com.rootly.client.model.AddSlackBookmarkTaskParams; import com.rootly.client.model.AddTeamTaskParams; import com.rootly.client.model.AddToTimelineTaskParams; +import com.rootly.client.model.ArchiveGoogleChatSpacesTaskParams; import com.rootly.client.model.ArchiveMicrosoftTeamsChannelsTaskParams; import com.rootly.client.model.ArchiveSlackChannelsTaskParams; import com.rootly.client.model.AttachDatadogDashboardsTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToFreshserviceTicketTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToJiraIssueTaskParams; import com.rootly.client.model.AutoAssignRoleOpsgenieTaskParams; import com.rootly.client.model.AutoAssignRolePagerdutyTaskParams; import com.rootly.client.model.AutoAssignRoleRootlyTaskParams; import com.rootly.client.model.AutoAssignRoleVictorOpsTaskParams; import com.rootly.client.model.CallPeopleTaskParams; +import com.rootly.client.model.ChangeGoogleChatSpacePrivacyTaskParams; import com.rootly.client.model.ChangeSlackChannelPrivacyTaskParams; import com.rootly.client.model.CreateAirtableTableRecordTaskParams; import com.rootly.client.model.CreateAnthropicChatCompletionTaskParams; @@ -51,6 +56,7 @@ import com.rootly.client.model.CreateGitlabIssueTaskParams; import com.rootly.client.model.CreateGoToMeetingTaskParams; import com.rootly.client.model.CreateGoogleCalendarEventTaskParams; +import com.rootly.client.model.CreateGoogleChatSpaceTaskParams; import com.rootly.client.model.CreateGoogleDocsPageTaskParams; import com.rootly.client.model.CreateGoogleDocsPermissionsTaskParams; import com.rootly.client.model.CreateGoogleGeminiChatCompletionTaskParams; @@ -62,6 +68,7 @@ import com.rootly.client.model.CreateJiraIssueTaskParamsIssueType; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import com.rootly.client.model.CreateJiraSubtaskTaskParams; +import com.rootly.client.model.CreateJsmopsAlertTaskParams; import com.rootly.client.model.CreateLinearIssueCommentTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParamsProject; @@ -101,12 +108,15 @@ import com.rootly.client.model.GetGitlabCommitsTaskParams; import com.rootly.client.model.GetPulsesTaskParams; import com.rootly.client.model.HttpClientTaskParams; +import com.rootly.client.model.InviteToGoogleChatSpaceTaskParams; +import com.rootly.client.model.InviteToMicrosoftTeamsChannelRootlyTaskParams; import com.rootly.client.model.InviteToMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelOpsgenieTaskParams; import com.rootly.client.model.InviteToSlackChannelPagerdutyTaskParams; import com.rootly.client.model.InviteToSlackChannelRootlyTaskParams; import com.rootly.client.model.InviteToSlackChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelVictorOpsTaskParams; +import com.rootly.client.model.PageJsmopsOnCallRespondersTaskParams; import com.rootly.client.model.PageOpsgenieOnCallRespondersTaskParams; import com.rootly.client.model.PagePagerdutyOnCallRespondersTaskParams; import com.rootly.client.model.PageRootlyOnCallRespondersTaskParams; @@ -115,12 +125,16 @@ import com.rootly.client.model.PublishIncidentTaskParams; import com.rootly.client.model.RedisClientTaskParams; import com.rootly.client.model.RemoveGoogleDocsPermissionsTaskParams; +import com.rootly.client.model.RenameGoogleChatSpaceTaskParams; import com.rootly.client.model.RenameMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.RenameSlackChannelTaskParams; import com.rootly.client.model.RunCommandHerokuTaskParams; import com.rootly.client.model.SendDashboardReportTaskParams; import com.rootly.client.model.SendEmailTaskParams; +import com.rootly.client.model.SendGoogleChatAttachmentsTaskParams; +import com.rootly.client.model.SendGoogleChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsBlocksTaskParams; +import com.rootly.client.model.SendMicrosoftTeamsChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsMessageTaskParams; import com.rootly.client.model.SendSlackBlocksTaskParams; import com.rootly.client.model.SendSlackMessageTaskParams; @@ -143,8 +157,10 @@ import com.rootly.client.model.UpdateDatadogNotebookTaskParamsTemplate; import com.rootly.client.model.UpdateDropboxPaperPageTaskParams; import com.rootly.client.model.UpdateGithubIssueTaskParams; +import com.rootly.client.model.UpdateGithubIssueTaskParamsRepository; import com.rootly.client.model.UpdateGitlabIssueTaskParams; import com.rootly.client.model.UpdateGoogleCalendarEventTaskParams; +import com.rootly.client.model.UpdateGoogleChatSpaceDescriptionTaskParams; import com.rootly.client.model.UpdateGoogleDocsPageTaskParams; import com.rootly.client.model.UpdateIncidentPostmortemTaskParams; import com.rootly.client.model.UpdateIncidentStatusTimestampTaskParams; @@ -210,7 +226,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class NewWorkflowTaskDataAttributesTaskParams extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(NewWorkflowTaskDataAttributesTaskParams.class.getName()); @@ -265,6 +281,8 @@ public TypeAdapter create(Gson gson, TypeToken type) { final TypeAdapter adapterCreateIncidentPostmortemTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateIncidentPostmortemTaskParams.class)); final TypeAdapter adapterCreateJiraIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateJiraIssueTaskParams.class)); final TypeAdapter adapterCreateJiraSubtaskTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateJiraSubtaskTaskParams.class)); + final TypeAdapter adapterAttachRetrospectivePdfToJiraIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AttachRetrospectivePdfToJiraIssueTaskParams.class)); + final TypeAdapter adapterAttachRetrospectivePdfToFreshserviceTicketTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AttachRetrospectivePdfToFreshserviceTicketTaskParams.class)); final TypeAdapter adapterCreateLinearIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateLinearIssueTaskParams.class)); final TypeAdapter adapterCreateLinearSubtaskIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateLinearSubtaskIssueTaskParams.class)); final TypeAdapter adapterCreateLinearIssueCommentTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateLinearIssueCommentTaskParams.class)); @@ -272,11 +290,21 @@ public TypeAdapter create(Gson gson, TypeToken type) { final TypeAdapter adapterCreateMicrosoftTeamsChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateMicrosoftTeamsChannelTaskParams.class)); final TypeAdapter adapterCreateMicrosoftTeamsChatTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateMicrosoftTeamsChatTaskParams.class)); final TypeAdapter adapterAddMicrosoftTeamsTabTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AddMicrosoftTeamsTabTaskParams.class)); + final TypeAdapter adapterAddMicrosoftTeamsChatTabTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AddMicrosoftTeamsChatTabTaskParams.class)); + final TypeAdapter adapterCreateGoogleChatSpaceTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateGoogleChatSpaceTaskParams.class)); + final TypeAdapter adapterSendGoogleChatMessageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendGoogleChatMessageTaskParams.class)); + final TypeAdapter adapterSendGoogleChatAttachmentsTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendGoogleChatAttachmentsTaskParams.class)); + final TypeAdapter adapterInviteToGoogleChatSpaceTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToGoogleChatSpaceTaskParams.class)); + final TypeAdapter adapterArchiveGoogleChatSpacesTaskParams = gson.getDelegateAdapter(this, TypeToken.get(ArchiveGoogleChatSpacesTaskParams.class)); + final TypeAdapter adapterRenameGoogleChatSpaceTaskParams = gson.getDelegateAdapter(this, TypeToken.get(RenameGoogleChatSpaceTaskParams.class)); + final TypeAdapter adapterUpdateGoogleChatSpaceDescriptionTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateGoogleChatSpaceDescriptionTaskParams.class)); + final TypeAdapter adapterChangeGoogleChatSpacePrivacyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(ChangeGoogleChatSpacePrivacyTaskParams.class)); final TypeAdapter adapterArchiveMicrosoftTeamsChannelsTaskParams = gson.getDelegateAdapter(this, TypeToken.get(ArchiveMicrosoftTeamsChannelsTaskParams.class)); final TypeAdapter adapterRenameMicrosoftTeamsChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(RenameMicrosoftTeamsChannelTaskParams.class)); final TypeAdapter adapterInviteToMicrosoftTeamsChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToMicrosoftTeamsChannelTaskParams.class)); final TypeAdapter adapterCreateNotionPageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateNotionPageTaskParams.class)); final TypeAdapter adapterSendMicrosoftTeamsMessageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendMicrosoftTeamsMessageTaskParams.class)); + final TypeAdapter adapterSendMicrosoftTeamsChatMessageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendMicrosoftTeamsChatMessageTaskParams.class)); final TypeAdapter adapterSendMicrosoftTeamsBlocksTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendMicrosoftTeamsBlocksTaskParams.class)); final TypeAdapter adapterUpdateNotionPageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateNotionPageTaskParams.class)); final TypeAdapter adapterUpdateQuipPageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateQuipPageTaskParams.class)); @@ -301,11 +329,14 @@ public TypeAdapter create(Gson gson, TypeToken type) { final TypeAdapter adapterHttpClientTaskParams = gson.getDelegateAdapter(this, TypeToken.get(HttpClientTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelOpsgenieTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelOpsgenieTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelRootlyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelRootlyTaskParams.class)); + final TypeAdapter adapterInviteToMicrosoftTeamsChannelRootlyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToMicrosoftTeamsChannelRootlyTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelPagerdutyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelPagerdutyTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelVictorOpsTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelVictorOpsTaskParams.class)); final TypeAdapter adapterPageOpsgenieOnCallRespondersTaskParams = gson.getDelegateAdapter(this, TypeToken.get(PageOpsgenieOnCallRespondersTaskParams.class)); final TypeAdapter adapterCreateOpsgenieAlertTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateOpsgenieAlertTaskParams.class)); + final TypeAdapter adapterCreateJsmopsAlertTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateJsmopsAlertTaskParams.class)); + final TypeAdapter adapterPageJsmopsOnCallRespondersTaskParams = gson.getDelegateAdapter(this, TypeToken.get(PageJsmopsOnCallRespondersTaskParams.class)); final TypeAdapter adapterUpdateOpsgenieAlertTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateOpsgenieAlertTaskParams.class)); final TypeAdapter adapterUpdateOpsgenieIncidentTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateOpsgenieIncidentTaskParams.class)); final TypeAdapter adapterPageRootlyOnCallRespondersTaskParams = gson.getDelegateAdapter(this, TypeToken.get(PageRootlyOnCallRespondersTaskParams.class)); @@ -622,6 +653,18 @@ public void write(JsonWriter out, NewWorkflowTaskDataAttributesTaskParams value) elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `AttachRetrospectivePdfToJiraIssueTaskParams` + if (value.getActualInstance() instanceof AttachRetrospectivePdfToJiraIssueTaskParams) { + JsonElement element = adapterAttachRetrospectivePdfToJiraIssueTaskParams.toJsonTree((AttachRetrospectivePdfToJiraIssueTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AttachRetrospectivePdfToFreshserviceTicketTaskParams` + if (value.getActualInstance() instanceof AttachRetrospectivePdfToFreshserviceTicketTaskParams) { + JsonElement element = adapterAttachRetrospectivePdfToFreshserviceTicketTaskParams.toJsonTree((AttachRetrospectivePdfToFreshserviceTicketTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `CreateLinearIssueTaskParams` if (value.getActualInstance() instanceof CreateLinearIssueTaskParams) { JsonElement element = adapterCreateLinearIssueTaskParams.toJsonTree((CreateLinearIssueTaskParams)value.getActualInstance()); @@ -664,6 +707,60 @@ public void write(JsonWriter out, NewWorkflowTaskDataAttributesTaskParams value) elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `AddMicrosoftTeamsChatTabTaskParams` + if (value.getActualInstance() instanceof AddMicrosoftTeamsChatTabTaskParams) { + JsonElement element = adapterAddMicrosoftTeamsChatTabTaskParams.toJsonTree((AddMicrosoftTeamsChatTabTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CreateGoogleChatSpaceTaskParams` + if (value.getActualInstance() instanceof CreateGoogleChatSpaceTaskParams) { + JsonElement element = adapterCreateGoogleChatSpaceTaskParams.toJsonTree((CreateGoogleChatSpaceTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SendGoogleChatMessageTaskParams` + if (value.getActualInstance() instanceof SendGoogleChatMessageTaskParams) { + JsonElement element = adapterSendGoogleChatMessageTaskParams.toJsonTree((SendGoogleChatMessageTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SendGoogleChatAttachmentsTaskParams` + if (value.getActualInstance() instanceof SendGoogleChatAttachmentsTaskParams) { + JsonElement element = adapterSendGoogleChatAttachmentsTaskParams.toJsonTree((SendGoogleChatAttachmentsTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToGoogleChatSpaceTaskParams` + if (value.getActualInstance() instanceof InviteToGoogleChatSpaceTaskParams) { + JsonElement element = adapterInviteToGoogleChatSpaceTaskParams.toJsonTree((InviteToGoogleChatSpaceTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ArchiveGoogleChatSpacesTaskParams` + if (value.getActualInstance() instanceof ArchiveGoogleChatSpacesTaskParams) { + JsonElement element = adapterArchiveGoogleChatSpacesTaskParams.toJsonTree((ArchiveGoogleChatSpacesTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RenameGoogleChatSpaceTaskParams` + if (value.getActualInstance() instanceof RenameGoogleChatSpaceTaskParams) { + JsonElement element = adapterRenameGoogleChatSpaceTaskParams.toJsonTree((RenameGoogleChatSpaceTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `UpdateGoogleChatSpaceDescriptionTaskParams` + if (value.getActualInstance() instanceof UpdateGoogleChatSpaceDescriptionTaskParams) { + JsonElement element = adapterUpdateGoogleChatSpaceDescriptionTaskParams.toJsonTree((UpdateGoogleChatSpaceDescriptionTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ChangeGoogleChatSpacePrivacyTaskParams` + if (value.getActualInstance() instanceof ChangeGoogleChatSpacePrivacyTaskParams) { + JsonElement element = adapterChangeGoogleChatSpacePrivacyTaskParams.toJsonTree((ChangeGoogleChatSpacePrivacyTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `ArchiveMicrosoftTeamsChannelsTaskParams` if (value.getActualInstance() instanceof ArchiveMicrosoftTeamsChannelsTaskParams) { JsonElement element = adapterArchiveMicrosoftTeamsChannelsTaskParams.toJsonTree((ArchiveMicrosoftTeamsChannelsTaskParams)value.getActualInstance()); @@ -694,6 +791,12 @@ public void write(JsonWriter out, NewWorkflowTaskDataAttributesTaskParams value) elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `SendMicrosoftTeamsChatMessageTaskParams` + if (value.getActualInstance() instanceof SendMicrosoftTeamsChatMessageTaskParams) { + JsonElement element = adapterSendMicrosoftTeamsChatMessageTaskParams.toJsonTree((SendMicrosoftTeamsChatMessageTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `SendMicrosoftTeamsBlocksTaskParams` if (value.getActualInstance() instanceof SendMicrosoftTeamsBlocksTaskParams) { JsonElement element = adapterSendMicrosoftTeamsBlocksTaskParams.toJsonTree((SendMicrosoftTeamsBlocksTaskParams)value.getActualInstance()); @@ -838,6 +941,12 @@ public void write(JsonWriter out, NewWorkflowTaskDataAttributesTaskParams value) elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `InviteToMicrosoftTeamsChannelRootlyTaskParams` + if (value.getActualInstance() instanceof InviteToMicrosoftTeamsChannelRootlyTaskParams) { + JsonElement element = adapterInviteToMicrosoftTeamsChannelRootlyTaskParams.toJsonTree((InviteToMicrosoftTeamsChannelRootlyTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `InviteToSlackChannelPagerdutyTaskParams` if (value.getActualInstance() instanceof InviteToSlackChannelPagerdutyTaskParams) { JsonElement element = adapterInviteToSlackChannelPagerdutyTaskParams.toJsonTree((InviteToSlackChannelPagerdutyTaskParams)value.getActualInstance()); @@ -868,6 +977,18 @@ public void write(JsonWriter out, NewWorkflowTaskDataAttributesTaskParams value) elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `CreateJsmopsAlertTaskParams` + if (value.getActualInstance() instanceof CreateJsmopsAlertTaskParams) { + JsonElement element = adapterCreateJsmopsAlertTaskParams.toJsonTree((CreateJsmopsAlertTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PageJsmopsOnCallRespondersTaskParams` + if (value.getActualInstance() instanceof PageJsmopsOnCallRespondersTaskParams) { + JsonElement element = adapterPageJsmopsOnCallRespondersTaskParams.toJsonTree((PageJsmopsOnCallRespondersTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `UpdateOpsgenieAlertTaskParams` if (value.getActualInstance() instanceof UpdateOpsgenieAlertTaskParams) { JsonElement element = adapterUpdateOpsgenieAlertTaskParams.toJsonTree((UpdateOpsgenieAlertTaskParams)value.getActualInstance()); @@ -1162,7 +1283,7 @@ public void write(JsonWriter out, NewWorkflowTaskDataAttributesTaskParams value) elementAdapter.write(out, element); return; } - throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); } @Override @@ -1690,6 +1811,30 @@ public NewWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOExce errorMessages.add(String.format("Deserialization for CreateJiraSubtaskTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'CreateJiraSubtaskTaskParams'", e); } + // deserialize AttachRetrospectivePdfToJiraIssueTaskParams + try { + // validate the JSON object to see if any exception is thrown + AttachRetrospectivePdfToJiraIssueTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterAttachRetrospectivePdfToJiraIssueTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'AttachRetrospectivePdfToJiraIssueTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToJiraIssueTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AttachRetrospectivePdfToJiraIssueTaskParams'", e); + } + // deserialize AttachRetrospectivePdfToFreshserviceTicketTaskParams + try { + // validate the JSON object to see if any exception is thrown + AttachRetrospectivePdfToFreshserviceTicketTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterAttachRetrospectivePdfToFreshserviceTicketTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'AttachRetrospectivePdfToFreshserviceTicketTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToFreshserviceTicketTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AttachRetrospectivePdfToFreshserviceTicketTaskParams'", e); + } // deserialize CreateLinearIssueTaskParams try { // validate the JSON object to see if any exception is thrown @@ -1774,6 +1919,114 @@ public NewWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOExce errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsTabTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'AddMicrosoftTeamsTabTaskParams'", e); } + // deserialize AddMicrosoftTeamsChatTabTaskParams + try { + // validate the JSON object to see if any exception is thrown + AddMicrosoftTeamsChatTabTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterAddMicrosoftTeamsChatTabTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'AddMicrosoftTeamsChatTabTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsChatTabTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AddMicrosoftTeamsChatTabTaskParams'", e); + } + // deserialize CreateGoogleChatSpaceTaskParams + try { + // validate the JSON object to see if any exception is thrown + CreateGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterCreateGoogleChatSpaceTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'CreateGoogleChatSpaceTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for CreateGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CreateGoogleChatSpaceTaskParams'", e); + } + // deserialize SendGoogleChatMessageTaskParams + try { + // validate the JSON object to see if any exception is thrown + SendGoogleChatMessageTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterSendGoogleChatMessageTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'SendGoogleChatMessageTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendGoogleChatMessageTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendGoogleChatMessageTaskParams'", e); + } + // deserialize SendGoogleChatAttachmentsTaskParams + try { + // validate the JSON object to see if any exception is thrown + SendGoogleChatAttachmentsTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterSendGoogleChatAttachmentsTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'SendGoogleChatAttachmentsTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendGoogleChatAttachmentsTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendGoogleChatAttachmentsTaskParams'", e); + } + // deserialize InviteToGoogleChatSpaceTaskParams + try { + // validate the JSON object to see if any exception is thrown + InviteToGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToGoogleChatSpaceTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'InviteToGoogleChatSpaceTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToGoogleChatSpaceTaskParams'", e); + } + // deserialize ArchiveGoogleChatSpacesTaskParams + try { + // validate the JSON object to see if any exception is thrown + ArchiveGoogleChatSpacesTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterArchiveGoogleChatSpacesTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'ArchiveGoogleChatSpacesTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ArchiveGoogleChatSpacesTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ArchiveGoogleChatSpacesTaskParams'", e); + } + // deserialize RenameGoogleChatSpaceTaskParams + try { + // validate the JSON object to see if any exception is thrown + RenameGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterRenameGoogleChatSpaceTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'RenameGoogleChatSpaceTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for RenameGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RenameGoogleChatSpaceTaskParams'", e); + } + // deserialize UpdateGoogleChatSpaceDescriptionTaskParams + try { + // validate the JSON object to see if any exception is thrown + UpdateGoogleChatSpaceDescriptionTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterUpdateGoogleChatSpaceDescriptionTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'UpdateGoogleChatSpaceDescriptionTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for UpdateGoogleChatSpaceDescriptionTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'UpdateGoogleChatSpaceDescriptionTaskParams'", e); + } + // deserialize ChangeGoogleChatSpacePrivacyTaskParams + try { + // validate the JSON object to see if any exception is thrown + ChangeGoogleChatSpacePrivacyTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterChangeGoogleChatSpacePrivacyTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'ChangeGoogleChatSpacePrivacyTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ChangeGoogleChatSpacePrivacyTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ChangeGoogleChatSpacePrivacyTaskParams'", e); + } // deserialize ArchiveMicrosoftTeamsChannelsTaskParams try { // validate the JSON object to see if any exception is thrown @@ -1834,6 +2087,18 @@ public NewWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOExce errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsMessageTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'SendMicrosoftTeamsMessageTaskParams'", e); } + // deserialize SendMicrosoftTeamsChatMessageTaskParams + try { + // validate the JSON object to see if any exception is thrown + SendMicrosoftTeamsChatMessageTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterSendMicrosoftTeamsChatMessageTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'SendMicrosoftTeamsChatMessageTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsChatMessageTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendMicrosoftTeamsChatMessageTaskParams'", e); + } // deserialize SendMicrosoftTeamsBlocksTaskParams try { // validate the JSON object to see if any exception is thrown @@ -2122,6 +2387,18 @@ public NewWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOExce errorMessages.add(String.format("Deserialization for InviteToSlackChannelRootlyTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelRootlyTaskParams'", e); } + // deserialize InviteToMicrosoftTeamsChannelRootlyTaskParams + try { + // validate the JSON object to see if any exception is thrown + InviteToMicrosoftTeamsChannelRootlyTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToMicrosoftTeamsChannelRootlyTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'InviteToMicrosoftTeamsChannelRootlyTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToMicrosoftTeamsChannelRootlyTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToMicrosoftTeamsChannelRootlyTaskParams'", e); + } // deserialize InviteToSlackChannelPagerdutyTaskParams try { // validate the JSON object to see if any exception is thrown @@ -2182,6 +2459,30 @@ public NewWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOExce errorMessages.add(String.format("Deserialization for CreateOpsgenieAlertTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'CreateOpsgenieAlertTaskParams'", e); } + // deserialize CreateJsmopsAlertTaskParams + try { + // validate the JSON object to see if any exception is thrown + CreateJsmopsAlertTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterCreateJsmopsAlertTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'CreateJsmopsAlertTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for CreateJsmopsAlertTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CreateJsmopsAlertTaskParams'", e); + } + // deserialize PageJsmopsOnCallRespondersTaskParams + try { + // validate the JSON object to see if any exception is thrown + PageJsmopsOnCallRespondersTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterPageJsmopsOnCallRespondersTaskParams; + match++; + log.log(Level.FINER, "Input data matches schema 'PageJsmopsOnCallRespondersTaskParams'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PageJsmopsOnCallRespondersTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PageJsmopsOnCallRespondersTaskParams'", e); + } // deserialize UpdateOpsgenieAlertTaskParams try { // validate the JSON object to see if any exception is thrown @@ -2839,6 +3140,8 @@ public NewWorkflowTaskDataAttributesTaskParams(Object o) { schemas.put("CreateIncidentPostmortemTaskParams", CreateIncidentPostmortemTaskParams.class); schemas.put("CreateJiraIssueTaskParams", CreateJiraIssueTaskParams.class); schemas.put("CreateJiraSubtaskTaskParams", CreateJiraSubtaskTaskParams.class); + schemas.put("AttachRetrospectivePdfToJiraIssueTaskParams", AttachRetrospectivePdfToJiraIssueTaskParams.class); + schemas.put("AttachRetrospectivePdfToFreshserviceTicketTaskParams", AttachRetrospectivePdfToFreshserviceTicketTaskParams.class); schemas.put("CreateLinearIssueTaskParams", CreateLinearIssueTaskParams.class); schemas.put("CreateLinearSubtaskIssueTaskParams", CreateLinearSubtaskIssueTaskParams.class); schemas.put("CreateLinearIssueCommentTaskParams", CreateLinearIssueCommentTaskParams.class); @@ -2846,11 +3149,21 @@ public NewWorkflowTaskDataAttributesTaskParams(Object o) { schemas.put("CreateMicrosoftTeamsChannelTaskParams", CreateMicrosoftTeamsChannelTaskParams.class); schemas.put("CreateMicrosoftTeamsChatTaskParams", CreateMicrosoftTeamsChatTaskParams.class); schemas.put("AddMicrosoftTeamsTabTaskParams", AddMicrosoftTeamsTabTaskParams.class); + schemas.put("AddMicrosoftTeamsChatTabTaskParams", AddMicrosoftTeamsChatTabTaskParams.class); + schemas.put("CreateGoogleChatSpaceTaskParams", CreateGoogleChatSpaceTaskParams.class); + schemas.put("SendGoogleChatMessageTaskParams", SendGoogleChatMessageTaskParams.class); + schemas.put("SendGoogleChatAttachmentsTaskParams", SendGoogleChatAttachmentsTaskParams.class); + schemas.put("InviteToGoogleChatSpaceTaskParams", InviteToGoogleChatSpaceTaskParams.class); + schemas.put("ArchiveGoogleChatSpacesTaskParams", ArchiveGoogleChatSpacesTaskParams.class); + schemas.put("RenameGoogleChatSpaceTaskParams", RenameGoogleChatSpaceTaskParams.class); + schemas.put("UpdateGoogleChatSpaceDescriptionTaskParams", UpdateGoogleChatSpaceDescriptionTaskParams.class); + schemas.put("ChangeGoogleChatSpacePrivacyTaskParams", ChangeGoogleChatSpacePrivacyTaskParams.class); schemas.put("ArchiveMicrosoftTeamsChannelsTaskParams", ArchiveMicrosoftTeamsChannelsTaskParams.class); schemas.put("RenameMicrosoftTeamsChannelTaskParams", RenameMicrosoftTeamsChannelTaskParams.class); schemas.put("InviteToMicrosoftTeamsChannelTaskParams", InviteToMicrosoftTeamsChannelTaskParams.class); schemas.put("CreateNotionPageTaskParams", CreateNotionPageTaskParams.class); schemas.put("SendMicrosoftTeamsMessageTaskParams", SendMicrosoftTeamsMessageTaskParams.class); + schemas.put("SendMicrosoftTeamsChatMessageTaskParams", SendMicrosoftTeamsChatMessageTaskParams.class); schemas.put("SendMicrosoftTeamsBlocksTaskParams", SendMicrosoftTeamsBlocksTaskParams.class); schemas.put("UpdateNotionPageTaskParams", UpdateNotionPageTaskParams.class); schemas.put("UpdateQuipPageTaskParams", UpdateQuipPageTaskParams.class); @@ -2875,11 +3188,14 @@ public NewWorkflowTaskDataAttributesTaskParams(Object o) { schemas.put("HttpClientTaskParams", HttpClientTaskParams.class); schemas.put("InviteToSlackChannelOpsgenieTaskParams", InviteToSlackChannelOpsgenieTaskParams.class); schemas.put("InviteToSlackChannelRootlyTaskParams", InviteToSlackChannelRootlyTaskParams.class); + schemas.put("InviteToMicrosoftTeamsChannelRootlyTaskParams", InviteToMicrosoftTeamsChannelRootlyTaskParams.class); schemas.put("InviteToSlackChannelPagerdutyTaskParams", InviteToSlackChannelPagerdutyTaskParams.class); schemas.put("InviteToSlackChannelTaskParams", InviteToSlackChannelTaskParams.class); schemas.put("InviteToSlackChannelVictorOpsTaskParams", InviteToSlackChannelVictorOpsTaskParams.class); schemas.put("PageOpsgenieOnCallRespondersTaskParams", PageOpsgenieOnCallRespondersTaskParams.class); schemas.put("CreateOpsgenieAlertTaskParams", CreateOpsgenieAlertTaskParams.class); + schemas.put("CreateJsmopsAlertTaskParams", CreateJsmopsAlertTaskParams.class); + schemas.put("PageJsmopsOnCallRespondersTaskParams", PageJsmopsOnCallRespondersTaskParams.class); schemas.put("UpdateOpsgenieAlertTaskParams", UpdateOpsgenieAlertTaskParams.class); schemas.put("UpdateOpsgenieIncidentTaskParams", UpdateOpsgenieIncidentTaskParams.class); schemas.put("PageRootlyOnCallRespondersTaskParams", PageRootlyOnCallRespondersTaskParams.class); @@ -2939,7 +3255,7 @@ public Map> getSchemas() { /** * Set the instance that matches the oneOf child schema, check * the instance parameter is valid against the oneOf child schemas: - * AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams + * AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams * * It could be an instance of the 'oneOf' schemas. */ @@ -3160,6 +3476,16 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof AttachRetrospectivePdfToJiraIssueTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof AttachRetrospectivePdfToFreshserviceTicketTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof CreateLinearIssueTaskParams) { super.setActualInstance(instance); return; @@ -3195,6 +3521,51 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof AddMicrosoftTeamsChatTabTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CreateGoogleChatSpaceTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SendGoogleChatMessageTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SendGoogleChatAttachmentsTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof InviteToGoogleChatSpaceTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ArchiveGoogleChatSpacesTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RenameGoogleChatSpaceTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof UpdateGoogleChatSpaceDescriptionTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ChangeGoogleChatSpacePrivacyTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof ArchiveMicrosoftTeamsChannelsTaskParams) { super.setActualInstance(instance); return; @@ -3220,6 +3591,11 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof SendMicrosoftTeamsChatMessageTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof SendMicrosoftTeamsBlocksTaskParams) { super.setActualInstance(instance); return; @@ -3340,6 +3716,11 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof InviteToMicrosoftTeamsChannelRootlyTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof InviteToSlackChannelPagerdutyTaskParams) { super.setActualInstance(instance); return; @@ -3365,6 +3746,16 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof CreateJsmopsAlertTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PageJsmopsOnCallRespondersTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof UpdateOpsgenieAlertTaskParams) { super.setActualInstance(instance); return; @@ -3610,14 +4001,14 @@ public void setActualInstance(Object instance) { return; } - throw new RuntimeException("Invalid instance type. Must be AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); + throw new RuntimeException("Invalid instance type. Must be AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); } /** * Get the actual instance, which can be the following: - * AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams + * AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams * - * @return The actual instance (AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams) + * @return The actual instance (AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams) */ @SuppressWarnings("unchecked") @Override @@ -4098,6 +4489,28 @@ public CreateJiraSubtaskTaskParams getCreateJiraSubtaskTaskParams() throws Class return (CreateJiraSubtaskTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `AttachRetrospectivePdfToJiraIssueTaskParams`. If the actual instance is not `AttachRetrospectivePdfToJiraIssueTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AttachRetrospectivePdfToJiraIssueTaskParams` + * @throws ClassCastException if the instance is not `AttachRetrospectivePdfToJiraIssueTaskParams` + */ + public AttachRetrospectivePdfToJiraIssueTaskParams getAttachRetrospectivePdfToJiraIssueTaskParams() throws ClassCastException { + return (AttachRetrospectivePdfToJiraIssueTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `AttachRetrospectivePdfToFreshserviceTicketTaskParams`. If the actual instance is not `AttachRetrospectivePdfToFreshserviceTicketTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AttachRetrospectivePdfToFreshserviceTicketTaskParams` + * @throws ClassCastException if the instance is not `AttachRetrospectivePdfToFreshserviceTicketTaskParams` + */ + public AttachRetrospectivePdfToFreshserviceTicketTaskParams getAttachRetrospectivePdfToFreshserviceTicketTaskParams() throws ClassCastException { + return (AttachRetrospectivePdfToFreshserviceTicketTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `CreateLinearIssueTaskParams`. If the actual instance is not `CreateLinearIssueTaskParams`, * the ClassCastException will be thrown. @@ -4175,6 +4588,105 @@ public AddMicrosoftTeamsTabTaskParams getAddMicrosoftTeamsTabTaskParams() throws return (AddMicrosoftTeamsTabTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `AddMicrosoftTeamsChatTabTaskParams`. If the actual instance is not `AddMicrosoftTeamsChatTabTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AddMicrosoftTeamsChatTabTaskParams` + * @throws ClassCastException if the instance is not `AddMicrosoftTeamsChatTabTaskParams` + */ + public AddMicrosoftTeamsChatTabTaskParams getAddMicrosoftTeamsChatTabTaskParams() throws ClassCastException { + return (AddMicrosoftTeamsChatTabTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `CreateGoogleChatSpaceTaskParams`. If the actual instance is not `CreateGoogleChatSpaceTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CreateGoogleChatSpaceTaskParams` + * @throws ClassCastException if the instance is not `CreateGoogleChatSpaceTaskParams` + */ + public CreateGoogleChatSpaceTaskParams getCreateGoogleChatSpaceTaskParams() throws ClassCastException { + return (CreateGoogleChatSpaceTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `SendGoogleChatMessageTaskParams`. If the actual instance is not `SendGoogleChatMessageTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendGoogleChatMessageTaskParams` + * @throws ClassCastException if the instance is not `SendGoogleChatMessageTaskParams` + */ + public SendGoogleChatMessageTaskParams getSendGoogleChatMessageTaskParams() throws ClassCastException { + return (SendGoogleChatMessageTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `SendGoogleChatAttachmentsTaskParams`. If the actual instance is not `SendGoogleChatAttachmentsTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendGoogleChatAttachmentsTaskParams` + * @throws ClassCastException if the instance is not `SendGoogleChatAttachmentsTaskParams` + */ + public SendGoogleChatAttachmentsTaskParams getSendGoogleChatAttachmentsTaskParams() throws ClassCastException { + return (SendGoogleChatAttachmentsTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `InviteToGoogleChatSpaceTaskParams`. If the actual instance is not `InviteToGoogleChatSpaceTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToGoogleChatSpaceTaskParams` + * @throws ClassCastException if the instance is not `InviteToGoogleChatSpaceTaskParams` + */ + public InviteToGoogleChatSpaceTaskParams getInviteToGoogleChatSpaceTaskParams() throws ClassCastException { + return (InviteToGoogleChatSpaceTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `ArchiveGoogleChatSpacesTaskParams`. If the actual instance is not `ArchiveGoogleChatSpacesTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ArchiveGoogleChatSpacesTaskParams` + * @throws ClassCastException if the instance is not `ArchiveGoogleChatSpacesTaskParams` + */ + public ArchiveGoogleChatSpacesTaskParams getArchiveGoogleChatSpacesTaskParams() throws ClassCastException { + return (ArchiveGoogleChatSpacesTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `RenameGoogleChatSpaceTaskParams`. If the actual instance is not `RenameGoogleChatSpaceTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RenameGoogleChatSpaceTaskParams` + * @throws ClassCastException if the instance is not `RenameGoogleChatSpaceTaskParams` + */ + public RenameGoogleChatSpaceTaskParams getRenameGoogleChatSpaceTaskParams() throws ClassCastException { + return (RenameGoogleChatSpaceTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `UpdateGoogleChatSpaceDescriptionTaskParams`. If the actual instance is not `UpdateGoogleChatSpaceDescriptionTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `UpdateGoogleChatSpaceDescriptionTaskParams` + * @throws ClassCastException if the instance is not `UpdateGoogleChatSpaceDescriptionTaskParams` + */ + public UpdateGoogleChatSpaceDescriptionTaskParams getUpdateGoogleChatSpaceDescriptionTaskParams() throws ClassCastException { + return (UpdateGoogleChatSpaceDescriptionTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `ChangeGoogleChatSpacePrivacyTaskParams`. If the actual instance is not `ChangeGoogleChatSpacePrivacyTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ChangeGoogleChatSpacePrivacyTaskParams` + * @throws ClassCastException if the instance is not `ChangeGoogleChatSpacePrivacyTaskParams` + */ + public ChangeGoogleChatSpacePrivacyTaskParams getChangeGoogleChatSpacePrivacyTaskParams() throws ClassCastException { + return (ChangeGoogleChatSpacePrivacyTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `ArchiveMicrosoftTeamsChannelsTaskParams`. If the actual instance is not `ArchiveMicrosoftTeamsChannelsTaskParams`, * the ClassCastException will be thrown. @@ -4230,6 +4742,17 @@ public SendMicrosoftTeamsMessageTaskParams getSendMicrosoftTeamsMessageTaskParam return (SendMicrosoftTeamsMessageTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `SendMicrosoftTeamsChatMessageTaskParams`. If the actual instance is not `SendMicrosoftTeamsChatMessageTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendMicrosoftTeamsChatMessageTaskParams` + * @throws ClassCastException if the instance is not `SendMicrosoftTeamsChatMessageTaskParams` + */ + public SendMicrosoftTeamsChatMessageTaskParams getSendMicrosoftTeamsChatMessageTaskParams() throws ClassCastException { + return (SendMicrosoftTeamsChatMessageTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `SendMicrosoftTeamsBlocksTaskParams`. If the actual instance is not `SendMicrosoftTeamsBlocksTaskParams`, * the ClassCastException will be thrown. @@ -4494,6 +5017,17 @@ public InviteToSlackChannelRootlyTaskParams getInviteToSlackChannelRootlyTaskPar return (InviteToSlackChannelRootlyTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `InviteToMicrosoftTeamsChannelRootlyTaskParams`. If the actual instance is not `InviteToMicrosoftTeamsChannelRootlyTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToMicrosoftTeamsChannelRootlyTaskParams` + * @throws ClassCastException if the instance is not `InviteToMicrosoftTeamsChannelRootlyTaskParams` + */ + public InviteToMicrosoftTeamsChannelRootlyTaskParams getInviteToMicrosoftTeamsChannelRootlyTaskParams() throws ClassCastException { + return (InviteToMicrosoftTeamsChannelRootlyTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `InviteToSlackChannelPagerdutyTaskParams`. If the actual instance is not `InviteToSlackChannelPagerdutyTaskParams`, * the ClassCastException will be thrown. @@ -4549,6 +5083,28 @@ public CreateOpsgenieAlertTaskParams getCreateOpsgenieAlertTaskParams() throws C return (CreateOpsgenieAlertTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `CreateJsmopsAlertTaskParams`. If the actual instance is not `CreateJsmopsAlertTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CreateJsmopsAlertTaskParams` + * @throws ClassCastException if the instance is not `CreateJsmopsAlertTaskParams` + */ + public CreateJsmopsAlertTaskParams getCreateJsmopsAlertTaskParams() throws ClassCastException { + return (CreateJsmopsAlertTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `PageJsmopsOnCallRespondersTaskParams`. If the actual instance is not `PageJsmopsOnCallRespondersTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PageJsmopsOnCallRespondersTaskParams` + * @throws ClassCastException if the instance is not `PageJsmopsOnCallRespondersTaskParams` + */ + public PageJsmopsOnCallRespondersTaskParams getPageJsmopsOnCallRespondersTaskParams() throws ClassCastException { + return (PageJsmopsOnCallRespondersTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `UpdateOpsgenieAlertTaskParams`. If the actual instance is not `UpdateOpsgenieAlertTaskParams`, * the ClassCastException will be thrown. @@ -5442,6 +5998,22 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for CreateJiraSubtaskTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with AttachRetrospectivePdfToJiraIssueTaskParams + try { + AttachRetrospectivePdfToJiraIssueTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToJiraIssueTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AttachRetrospectivePdfToFreshserviceTicketTaskParams + try { + AttachRetrospectivePdfToFreshserviceTicketTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToFreshserviceTicketTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with CreateLinearIssueTaskParams try { CreateLinearIssueTaskParams.validateJsonElement(jsonElement); @@ -5498,6 +6070,78 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsTabTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with AddMicrosoftTeamsChatTabTaskParams + try { + AddMicrosoftTeamsChatTabTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsChatTabTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CreateGoogleChatSpaceTaskParams + try { + CreateGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for CreateGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SendGoogleChatMessageTaskParams + try { + SendGoogleChatMessageTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendGoogleChatMessageTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SendGoogleChatAttachmentsTaskParams + try { + SendGoogleChatAttachmentsTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendGoogleChatAttachmentsTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with InviteToGoogleChatSpaceTaskParams + try { + InviteToGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ArchiveGoogleChatSpacesTaskParams + try { + ArchiveGoogleChatSpacesTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ArchiveGoogleChatSpacesTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RenameGoogleChatSpaceTaskParams + try { + RenameGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for RenameGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with UpdateGoogleChatSpaceDescriptionTaskParams + try { + UpdateGoogleChatSpaceDescriptionTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for UpdateGoogleChatSpaceDescriptionTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ChangeGoogleChatSpacePrivacyTaskParams + try { + ChangeGoogleChatSpacePrivacyTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ChangeGoogleChatSpacePrivacyTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with ArchiveMicrosoftTeamsChannelsTaskParams try { ArchiveMicrosoftTeamsChannelsTaskParams.validateJsonElement(jsonElement); @@ -5538,6 +6182,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsMessageTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with SendMicrosoftTeamsChatMessageTaskParams + try { + SendMicrosoftTeamsChatMessageTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsChatMessageTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with SendMicrosoftTeamsBlocksTaskParams try { SendMicrosoftTeamsBlocksTaskParams.validateJsonElement(jsonElement); @@ -5730,6 +6382,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for InviteToSlackChannelRootlyTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with InviteToMicrosoftTeamsChannelRootlyTaskParams + try { + InviteToMicrosoftTeamsChannelRootlyTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToMicrosoftTeamsChannelRootlyTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with InviteToSlackChannelPagerdutyTaskParams try { InviteToSlackChannelPagerdutyTaskParams.validateJsonElement(jsonElement); @@ -5770,6 +6430,22 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for CreateOpsgenieAlertTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with CreateJsmopsAlertTaskParams + try { + CreateJsmopsAlertTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for CreateJsmopsAlertTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PageJsmopsOnCallRespondersTaskParams + try { + PageJsmopsOnCallRespondersTaskParams.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PageJsmopsOnCallRespondersTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with UpdateOpsgenieAlertTaskParams try { UpdateOpsgenieAlertTaskParams.validateJsonElement(jsonElement); @@ -6163,7 +6839,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti // continue to the next one } if (validCount != 1) { - throw new IOException(String.format("The JSON string is invalid for NewWorkflowTaskDataAttributesTaskParams with oneOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + throw new IOException(String.format("The JSON string is invalid for NewWorkflowTaskDataAttributesTaskParams with oneOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); } } diff --git a/src/main/java/com/rootly/client/model/OnCallPayReport.java b/src/main/java/com/rootly/client/model/OnCallPayReport.java index ba11cf11..a87c5f54 100644 --- a/src/main/java/com/rootly/client/model/OnCallPayReport.java +++ b/src/main/java/com/rootly/client/model/OnCallPayReport.java @@ -52,7 +52,7 @@ /** * OnCallPayReport */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallPayReport { /** * The current status of the report. @@ -110,32 +110,32 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private StatusEnum status; public static final String SERIALIZED_NAME_START_DATE = "start_date"; @SerializedName(SERIALIZED_NAME_START_DATE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private LocalDate startDate; public static final String SERIALIZED_NAME_END_DATE = "end_date"; @SerializedName(SERIALIZED_NAME_END_DATE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private LocalDate endDate; public static final String SERIALIZED_NAME_TOTAL_DURATION = "total_duration"; @SerializedName(SERIALIZED_NAME_TOTAL_DURATION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer totalDuration; public static final String SERIALIZED_NAME_USERS_COUNT = "users_count"; @SerializedName(SERIALIZED_NAME_USERS_COUNT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer usersCount; public static final String SERIALIZED_NAME_CURRENCY = "currency"; @SerializedName(SERIALIZED_NAME_CURRENCY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String currency; /** @@ -192,78 +192,83 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PAY_TYPE = "pay_type"; @SerializedName(SERIALIZED_NAME_PAY_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private PayTypeEnum payType; public static final String SERIALIZED_NAME_HOURLY_RATE_CENTS = "hourly_rate_cents"; @SerializedName(SERIALIZED_NAME_HOURLY_RATE_CENTS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer hourlyRateCents; public static final String SERIALIZED_NAME_DAILY_RATE_CENTS = "daily_rate_cents"; @SerializedName(SERIALIZED_NAME_DAILY_RATE_CENTS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer dailyRateCents; public static final String SERIALIZED_NAME_TOTAL_PAY_CENTS = "total_pay_cents"; @SerializedName(SERIALIZED_NAME_TOTAL_PAY_CENTS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer totalPayCents; public static final String SERIALIZED_NAME_INCLUDE_SHADOW = "include_shadow"; @SerializedName(SERIALIZED_NAME_INCLUDE_SHADOW) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean includeShadow; public static final String SERIALIZED_NAME_SHOW_INDIVIDUAL_SHIFT_DATA = "show_individual_shift_data"; @SerializedName(SERIALIZED_NAME_SHOW_INDIVIDUAL_SHIFT_DATA) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean showIndividualShiftData; public static final String SERIALIZED_NAME_HAS_SINGLE_RATE = "has_single_rate"; @SerializedName(SERIALIZED_NAME_HAS_SINGLE_RATE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean hasSingleRate; public static final String SERIALIZED_NAME_ENABLED_GRANULAR_TIME_BREAKDOWN = "enabled_granular_time_breakdown"; @SerializedName(SERIALIZED_NAME_ENABLED_GRANULAR_TIME_BREAKDOWN) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean enabledGranularTimeBreakdown; public static final String SERIALIZED_NAME_LAST_GENERATED_AT = "last_generated_at"; @SerializedName(SERIALIZED_NAME_LAST_GENERATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private OffsetDateTime lastGeneratedAt; public static final String SERIALIZED_NAME_TIME_ZONE = "time_zone"; @SerializedName(SERIALIZED_NAME_TIME_ZONE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String timeZone; + public static final String SERIALIZED_NAME_USE_RESPONDERS_TIME_ZONE = "use_responders_time_zone"; + @SerializedName(SERIALIZED_NAME_USE_RESPONDERS_TIME_ZONE) + @jakarta.annotation.Nullable + private Boolean useRespondersTimeZone; + public static final String SERIALIZED_NAME_CSV_FILE_URL = "csv_file_url"; @SerializedName(SERIALIZED_NAME_CSV_FILE_URL) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private URI csvFileUrl; public static final String SERIALIZED_NAME_XLSX_FILE_URL = "xlsx_file_url"; @SerializedName(SERIALIZED_NAME_XLSX_FILE_URL) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private URI xlsxFileUrl; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OffsetDateTime createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OffsetDateTime updatedAt; public OnCallPayReport() { } - public OnCallPayReport status(@javax.annotation.Nonnull StatusEnum status) { + public OnCallPayReport status(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; return this; } @@ -272,17 +277,17 @@ public OnCallPayReport status(@javax.annotation.Nonnull StatusEnum status) { * The current status of the report. * @return status */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public StatusEnum getStatus() { return status; } - public void setStatus(@javax.annotation.Nonnull StatusEnum status) { + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { this.status = status; } - public OnCallPayReport startDate(@javax.annotation.Nonnull LocalDate startDate) { + public OnCallPayReport startDate(@jakarta.annotation.Nonnull LocalDate startDate) { this.startDate = startDate; return this; } @@ -291,17 +296,17 @@ public OnCallPayReport startDate(@javax.annotation.Nonnull LocalDate startDate) * The start date of the report period. * @return startDate */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public LocalDate getStartDate() { return startDate; } - public void setStartDate(@javax.annotation.Nonnull LocalDate startDate) { + public void setStartDate(@jakarta.annotation.Nonnull LocalDate startDate) { this.startDate = startDate; } - public OnCallPayReport endDate(@javax.annotation.Nonnull LocalDate endDate) { + public OnCallPayReport endDate(@jakarta.annotation.Nonnull LocalDate endDate) { this.endDate = endDate; return this; } @@ -310,17 +315,17 @@ public OnCallPayReport endDate(@javax.annotation.Nonnull LocalDate endDate) { * The end date of the report period. * @return endDate */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public LocalDate getEndDate() { return endDate; } - public void setEndDate(@javax.annotation.Nonnull LocalDate endDate) { + public void setEndDate(@jakarta.annotation.Nonnull LocalDate endDate) { this.endDate = endDate; } - public OnCallPayReport totalDuration(@javax.annotation.Nullable Integer totalDuration) { + public OnCallPayReport totalDuration(@jakarta.annotation.Nullable Integer totalDuration) { this.totalDuration = totalDuration; return this; } @@ -329,17 +334,17 @@ public OnCallPayReport totalDuration(@javax.annotation.Nullable Integer totalDur * Total on-call duration in seconds. * @return totalDuration */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getTotalDuration() { return totalDuration; } - public void setTotalDuration(@javax.annotation.Nullable Integer totalDuration) { + public void setTotalDuration(@jakarta.annotation.Nullable Integer totalDuration) { this.totalDuration = totalDuration; } - public OnCallPayReport usersCount(@javax.annotation.Nullable Integer usersCount) { + public OnCallPayReport usersCount(@jakarta.annotation.Nullable Integer usersCount) { this.usersCount = usersCount; return this; } @@ -348,17 +353,17 @@ public OnCallPayReport usersCount(@javax.annotation.Nullable Integer usersCount) * Number of users included in the report. * @return usersCount */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getUsersCount() { return usersCount; } - public void setUsersCount(@javax.annotation.Nullable Integer usersCount) { + public void setUsersCount(@jakarta.annotation.Nullable Integer usersCount) { this.usersCount = usersCount; } - public OnCallPayReport currency(@javax.annotation.Nullable String currency) { + public OnCallPayReport currency(@jakarta.annotation.Nullable String currency) { this.currency = currency; return this; } @@ -367,17 +372,17 @@ public OnCallPayReport currency(@javax.annotation.Nullable String currency) { * The currency code for monetary values. * @return currency */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCurrency() { return currency; } - public void setCurrency(@javax.annotation.Nullable String currency) { + public void setCurrency(@jakarta.annotation.Nullable String currency) { this.currency = currency; } - public OnCallPayReport payType(@javax.annotation.Nullable PayTypeEnum payType) { + public OnCallPayReport payType(@jakarta.annotation.Nullable PayTypeEnum payType) { this.payType = payType; return this; } @@ -386,17 +391,17 @@ public OnCallPayReport payType(@javax.annotation.Nullable PayTypeEnum payType) { * The pay calculation type. * @return payType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public PayTypeEnum getPayType() { return payType; } - public void setPayType(@javax.annotation.Nullable PayTypeEnum payType) { + public void setPayType(@jakarta.annotation.Nullable PayTypeEnum payType) { this.payType = payType; } - public OnCallPayReport hourlyRateCents(@javax.annotation.Nullable Integer hourlyRateCents) { + public OnCallPayReport hourlyRateCents(@jakarta.annotation.Nullable Integer hourlyRateCents) { this.hourlyRateCents = hourlyRateCents; return this; } @@ -405,17 +410,17 @@ public OnCallPayReport hourlyRateCents(@javax.annotation.Nullable Integer hourly * Hourly pay rate in cents. * @return hourlyRateCents */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getHourlyRateCents() { return hourlyRateCents; } - public void setHourlyRateCents(@javax.annotation.Nullable Integer hourlyRateCents) { + public void setHourlyRateCents(@jakarta.annotation.Nullable Integer hourlyRateCents) { this.hourlyRateCents = hourlyRateCents; } - public OnCallPayReport dailyRateCents(@javax.annotation.Nullable Integer dailyRateCents) { + public OnCallPayReport dailyRateCents(@jakarta.annotation.Nullable Integer dailyRateCents) { this.dailyRateCents = dailyRateCents; return this; } @@ -424,17 +429,17 @@ public OnCallPayReport dailyRateCents(@javax.annotation.Nullable Integer dailyRa * Daily pay rate in cents. * @return dailyRateCents */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getDailyRateCents() { return dailyRateCents; } - public void setDailyRateCents(@javax.annotation.Nullable Integer dailyRateCents) { + public void setDailyRateCents(@jakarta.annotation.Nullable Integer dailyRateCents) { this.dailyRateCents = dailyRateCents; } - public OnCallPayReport totalPayCents(@javax.annotation.Nullable Integer totalPayCents) { + public OnCallPayReport totalPayCents(@jakarta.annotation.Nullable Integer totalPayCents) { this.totalPayCents = totalPayCents; return this; } @@ -443,17 +448,17 @@ public OnCallPayReport totalPayCents(@javax.annotation.Nullable Integer totalPay * Total pay amount in cents. * @return totalPayCents */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getTotalPayCents() { return totalPayCents; } - public void setTotalPayCents(@javax.annotation.Nullable Integer totalPayCents) { + public void setTotalPayCents(@jakarta.annotation.Nullable Integer totalPayCents) { this.totalPayCents = totalPayCents; } - public OnCallPayReport includeShadow(@javax.annotation.Nullable Boolean includeShadow) { + public OnCallPayReport includeShadow(@jakarta.annotation.Nullable Boolean includeShadow) { this.includeShadow = includeShadow; return this; } @@ -462,17 +467,17 @@ public OnCallPayReport includeShadow(@javax.annotation.Nullable Boolean includeS * Whether shadow shifts are included. * @return includeShadow */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getIncludeShadow() { return includeShadow; } - public void setIncludeShadow(@javax.annotation.Nullable Boolean includeShadow) { + public void setIncludeShadow(@jakarta.annotation.Nullable Boolean includeShadow) { this.includeShadow = includeShadow; } - public OnCallPayReport showIndividualShiftData(@javax.annotation.Nullable Boolean showIndividualShiftData) { + public OnCallPayReport showIndividualShiftData(@jakarta.annotation.Nullable Boolean showIndividualShiftData) { this.showIndividualShiftData = showIndividualShiftData; return this; } @@ -481,17 +486,17 @@ public OnCallPayReport showIndividualShiftData(@javax.annotation.Nullable Boolea * Whether individual shift data is shown. * @return showIndividualShiftData */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getShowIndividualShiftData() { return showIndividualShiftData; } - public void setShowIndividualShiftData(@javax.annotation.Nullable Boolean showIndividualShiftData) { + public void setShowIndividualShiftData(@jakarta.annotation.Nullable Boolean showIndividualShiftData) { this.showIndividualShiftData = showIndividualShiftData; } - public OnCallPayReport hasSingleRate(@javax.annotation.Nullable Boolean hasSingleRate) { + public OnCallPayReport hasSingleRate(@jakarta.annotation.Nullable Boolean hasSingleRate) { this.hasSingleRate = hasSingleRate; return this; } @@ -500,17 +505,17 @@ public OnCallPayReport hasSingleRate(@javax.annotation.Nullable Boolean hasSingl * Whether a single rate is applied to all users. * @return hasSingleRate */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getHasSingleRate() { return hasSingleRate; } - public void setHasSingleRate(@javax.annotation.Nullable Boolean hasSingleRate) { + public void setHasSingleRate(@jakarta.annotation.Nullable Boolean hasSingleRate) { this.hasSingleRate = hasSingleRate; } - public OnCallPayReport enabledGranularTimeBreakdown(@javax.annotation.Nullable Boolean enabledGranularTimeBreakdown) { + public OnCallPayReport enabledGranularTimeBreakdown(@jakarta.annotation.Nullable Boolean enabledGranularTimeBreakdown) { this.enabledGranularTimeBreakdown = enabledGranularTimeBreakdown; return this; } @@ -519,17 +524,17 @@ public OnCallPayReport enabledGranularTimeBreakdown(@javax.annotation.Nullable B * Whether granular time breakdown is enabled. * @return enabledGranularTimeBreakdown */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getEnabledGranularTimeBreakdown() { return enabledGranularTimeBreakdown; } - public void setEnabledGranularTimeBreakdown(@javax.annotation.Nullable Boolean enabledGranularTimeBreakdown) { + public void setEnabledGranularTimeBreakdown(@jakarta.annotation.Nullable Boolean enabledGranularTimeBreakdown) { this.enabledGranularTimeBreakdown = enabledGranularTimeBreakdown; } - public OnCallPayReport lastGeneratedAt(@javax.annotation.Nullable OffsetDateTime lastGeneratedAt) { + public OnCallPayReport lastGeneratedAt(@jakarta.annotation.Nullable OffsetDateTime lastGeneratedAt) { this.lastGeneratedAt = lastGeneratedAt; return this; } @@ -538,36 +543,55 @@ public OnCallPayReport lastGeneratedAt(@javax.annotation.Nullable OffsetDateTime * When the report was last generated. * @return lastGeneratedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public OffsetDateTime getLastGeneratedAt() { return lastGeneratedAt; } - public void setLastGeneratedAt(@javax.annotation.Nullable OffsetDateTime lastGeneratedAt) { + public void setLastGeneratedAt(@jakarta.annotation.Nullable OffsetDateTime lastGeneratedAt) { this.lastGeneratedAt = lastGeneratedAt; } - public OnCallPayReport timeZone(@javax.annotation.Nullable String timeZone) { + public OnCallPayReport timeZone(@jakarta.annotation.Nullable String timeZone) { this.timeZone = timeZone; return this; } /** - * The team's IANA timezone used to interpret start_date and end_date. + * The IANA timezone used to compute day and weekend boundaries for this report. Defaults to the team's timezone. * @return timeZone */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getTimeZone() { return timeZone; } - public void setTimeZone(@javax.annotation.Nullable String timeZone) { + public void setTimeZone(@jakarta.annotation.Nullable String timeZone) { this.timeZone = timeZone; } - public OnCallPayReport csvFileUrl(@javax.annotation.Nullable URI csvFileUrl) { + public OnCallPayReport useRespondersTimeZone(@jakarta.annotation.Nullable Boolean useRespondersTimeZone) { + this.useRespondersTimeZone = useRespondersTimeZone; + return this; + } + + /** + * When true, each responder's personal timezone is used for their pay calculation; otherwise the report-wide time_zone is used. + * @return useRespondersTimeZone + */ + @jakarta.annotation.Nullable + public Boolean getUseRespondersTimeZone() { + return useRespondersTimeZone; + } + + public void setUseRespondersTimeZone(@jakarta.annotation.Nullable Boolean useRespondersTimeZone) { + this.useRespondersTimeZone = useRespondersTimeZone; + } + + + public OnCallPayReport csvFileUrl(@jakarta.annotation.Nullable URI csvFileUrl) { this.csvFileUrl = csvFileUrl; return this; } @@ -576,17 +600,17 @@ public OnCallPayReport csvFileUrl(@javax.annotation.Nullable URI csvFileUrl) { * Download URL for the generated CSV report. Null until the report is generated. * @return csvFileUrl */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public URI getCsvFileUrl() { return csvFileUrl; } - public void setCsvFileUrl(@javax.annotation.Nullable URI csvFileUrl) { + public void setCsvFileUrl(@jakarta.annotation.Nullable URI csvFileUrl) { this.csvFileUrl = csvFileUrl; } - public OnCallPayReport xlsxFileUrl(@javax.annotation.Nullable URI xlsxFileUrl) { + public OnCallPayReport xlsxFileUrl(@jakarta.annotation.Nullable URI xlsxFileUrl) { this.xlsxFileUrl = xlsxFileUrl; return this; } @@ -595,17 +619,17 @@ public OnCallPayReport xlsxFileUrl(@javax.annotation.Nullable URI xlsxFileUrl) { * Download URL for the generated XLSX report. Null until the report is generated. * @return xlsxFileUrl */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public URI getXlsxFileUrl() { return xlsxFileUrl; } - public void setXlsxFileUrl(@javax.annotation.Nullable URI xlsxFileUrl) { + public void setXlsxFileUrl(@jakarta.annotation.Nullable URI xlsxFileUrl) { this.xlsxFileUrl = xlsxFileUrl; } - public OnCallPayReport createdAt(@javax.annotation.Nonnull OffsetDateTime createdAt) { + public OnCallPayReport createdAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { this.createdAt = createdAt; return this; } @@ -614,17 +638,17 @@ public OnCallPayReport createdAt(@javax.annotation.Nonnull OffsetDateTime create * Get createdAt * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OffsetDateTime getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull OffsetDateTime createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { this.createdAt = createdAt; } - public OnCallPayReport updatedAt(@javax.annotation.Nonnull OffsetDateTime updatedAt) { + public OnCallPayReport updatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } @@ -633,12 +657,12 @@ public OnCallPayReport updatedAt(@javax.annotation.Nonnull OffsetDateTime update * Get updatedAt * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OffsetDateTime getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull OffsetDateTime updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { this.updatedAt = updatedAt; } @@ -669,6 +693,7 @@ public boolean equals(Object o) { Objects.equals(this.enabledGranularTimeBreakdown, onCallPayReport.enabledGranularTimeBreakdown) && Objects.equals(this.lastGeneratedAt, onCallPayReport.lastGeneratedAt) && Objects.equals(this.timeZone, onCallPayReport.timeZone) && + Objects.equals(this.useRespondersTimeZone, onCallPayReport.useRespondersTimeZone) && Objects.equals(this.csvFileUrl, onCallPayReport.csvFileUrl) && Objects.equals(this.xlsxFileUrl, onCallPayReport.xlsxFileUrl) && Objects.equals(this.createdAt, onCallPayReport.createdAt) && @@ -681,7 +706,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(status, startDate, endDate, totalDuration, usersCount, currency, payType, hourlyRateCents, dailyRateCents, totalPayCents, includeShadow, showIndividualShiftData, hasSingleRate, enabledGranularTimeBreakdown, lastGeneratedAt, timeZone, csvFileUrl, xlsxFileUrl, createdAt, updatedAt); + return Objects.hash(status, startDate, endDate, totalDuration, usersCount, currency, payType, hourlyRateCents, dailyRateCents, totalPayCents, includeShadow, showIndividualShiftData, hasSingleRate, enabledGranularTimeBreakdown, lastGeneratedAt, timeZone, useRespondersTimeZone, csvFileUrl, xlsxFileUrl, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -711,6 +736,7 @@ public String toString() { sb.append(" enabledGranularTimeBreakdown: ").append(toIndentedString(enabledGranularTimeBreakdown)).append("\n"); sb.append(" lastGeneratedAt: ").append(toIndentedString(lastGeneratedAt)).append("\n"); sb.append(" timeZone: ").append(toIndentedString(timeZone)).append("\n"); + sb.append(" useRespondersTimeZone: ").append(toIndentedString(useRespondersTimeZone)).append("\n"); sb.append(" csvFileUrl: ").append(toIndentedString(csvFileUrl)).append("\n"); sb.append(" xlsxFileUrl: ").append(toIndentedString(xlsxFileUrl)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); @@ -753,6 +779,7 @@ private String toIndentedString(Object o) { openapiFields.add("enabled_granular_time_breakdown"); openapiFields.add("last_generated_at"); openapiFields.add("time_zone"); + openapiFields.add("use_responders_time_zone"); openapiFields.add("csv_file_url"); openapiFields.add("xlsx_file_url"); openapiFields.add("created_at"); diff --git a/src/main/java/com/rootly/client/model/OnCallPayReportList.java b/src/main/java/com/rootly/client/model/OnCallPayReportList.java index 09cf78c2..f35c8b93 100644 --- a/src/main/java/com/rootly/client/model/OnCallPayReportList.java +++ b/src/main/java/com/rootly/client/model/OnCallPayReportList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OnCallPayReportResponseData; @@ -53,27 +54,32 @@ /** * OnCallPayReportList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallPayReportList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List data = new ArrayList<>(); public static final String SERIALIZED_NAME_LINKS = "links"; @SerializedName(SERIALIZED_NAME_LINKS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Links links; public static final String SERIALIZED_NAME_META = "meta"; @SerializedName(SERIALIZED_NAME_META) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OnCallPayReportList() { } - public OnCallPayReportList data(@javax.annotation.Nonnull List data) { + public OnCallPayReportList data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } @@ -90,17 +96,17 @@ public OnCallPayReportList addDataItem(OnCallPayReportResponseData dataItem) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getData() { return data; } - public void setData(@javax.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public OnCallPayReportList links(@javax.annotation.Nonnull Links links) { + public OnCallPayReportList links(@jakarta.annotation.Nonnull Links links) { this.links = links; return this; } @@ -109,17 +115,17 @@ public OnCallPayReportList links(@javax.annotation.Nonnull Links links) { * Get links * @return links */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Links getLinks() { return links; } - public void setLinks(@javax.annotation.Nonnull Links links) { + public void setLinks(@jakarta.annotation.Nonnull Links links) { this.links = links; } - public OnCallPayReportList meta(@javax.annotation.Nonnull Meta meta) { + public OnCallPayReportList meta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; return this; } @@ -128,16 +134,43 @@ public OnCallPayReportList meta(@javax.annotation.Nonnull Meta meta) { * Get meta * @return meta */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Meta getMeta() { return meta; } - public void setMeta(@javax.annotation.Nonnull Meta meta) { + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; } + public OnCallPayReportList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OnCallPayReportList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { OnCallPayReportList onCallPayReportList = (OnCallPayReportList) o; return Objects.equals(this.data, onCallPayReportList.data) && Objects.equals(this.links, onCallPayReportList.links) && - Objects.equals(this.meta, onCallPayReportList.meta); + Objects.equals(this.meta, onCallPayReportList.meta) && + Objects.equals(this.included, onCallPayReportList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OnCallPayReportResponse.java b/src/main/java/com/rootly/client/model/OnCallPayReportResponse.java index 2b4974c2..27f68549 100644 --- a/src/main/java/com/rootly/client/model/OnCallPayReportResponse.java +++ b/src/main/java/com/rootly/client/model/OnCallPayReportResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OnCallPayReportResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,17 +52,22 @@ /** * OnCallPayReportResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallPayReportResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OnCallPayReportResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OnCallPayReportResponse() { } - public OnCallPayReportResponse data(@javax.annotation.Nonnull OnCallPayReportResponseData data) { + public OnCallPayReportResponse data(@jakarta.annotation.Nonnull OnCallPayReportResponseData data) { this.data = data; return this; } @@ -68,16 +76,43 @@ public OnCallPayReportResponse data(@javax.annotation.Nonnull OnCallPayReportRes * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OnCallPayReportResponseData getData() { return data; } - public void setData(@javax.annotation.Nonnull OnCallPayReportResponseData data) { + public void setData(@jakarta.annotation.Nonnull OnCallPayReportResponseData data) { this.data = data; } + public OnCallPayReportResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OnCallPayReportResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } OnCallPayReportResponse onCallPayReportResponse = (OnCallPayReportResponse) o; - return Objects.equals(this.data, onCallPayReportResponse.data); + return Objects.equals(this.data, onCallPayReportResponse.data) && + Objects.equals(this.included, onCallPayReportResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class OnCallPayReportResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` OnCallPayReportResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OnCallPayReportResponseData.java b/src/main/java/com/rootly/client/model/OnCallPayReportResponseData.java index 960a3b58..09cfe9af 100644 --- a/src/main/java/com/rootly/client/model/OnCallPayReportResponseData.java +++ b/src/main/java/com/rootly/client/model/OnCallPayReportResponseData.java @@ -49,11 +49,11 @@ /** * OnCallPayReportResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallPayReportResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private OnCallPayReport attributes; public OnCallPayReportResponseData() { } - public OnCallPayReportResponseData id(@javax.annotation.Nonnull String id) { + public OnCallPayReportResponseData id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public OnCallPayReportResponseData id(@javax.annotation.Nonnull String id) { * Unique ID of the on_call_pay_report * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public OnCallPayReportResponseData type(@javax.annotation.Nonnull TypeEnum type) { + public OnCallPayReportResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public OnCallPayReportResponseData type(@javax.annotation.Nonnull TypeEnum type) * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public OnCallPayReportResponseData attributes(@javax.annotation.Nonnull OnCallPayReport attributes) { + public OnCallPayReportResponseData attributes(@jakarta.annotation.Nonnull OnCallPayReport attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public OnCallPayReportResponseData attributes(@javax.annotation.Nonnull OnCallPa * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public OnCallPayReport getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull OnCallPayReport attributes) { + public void setAttributes(@jakarta.annotation.Nonnull OnCallPayReport attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/OnCallRole.java b/src/main/java/com/rootly/client/model/OnCallRole.java index 47bdce44..66ff8a67 100644 --- a/src/main/java/com/rootly/client/model/OnCallRole.java +++ b/src/main/java/com/rootly/client/model/OnCallRole.java @@ -50,7 +50,7 @@ /** * OnCallRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallRole { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -59,7 +59,7 @@ public class OnCallRole { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; /** @@ -555,7 +555,9 @@ public enum AlertsPermissionsEnum { UPDATE("update"), - READ("read"); + READ("read"), + + DELETE("delete"); private String value; @@ -1327,6 +1329,67 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List servicesPermissions = new ArrayList<>(); + /** + * Gets or Sets functionalitiesPermissions + */ + @JsonAdapter(FunctionalitiesPermissionsEnum.Adapter.class) + public enum FunctionalitiesPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + FunctionalitiesPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static FunctionalitiesPermissionsEnum fromValue(String value) { + for (FunctionalitiesPermissionsEnum b : FunctionalitiesPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final FunctionalitiesPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public FunctionalitiesPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return FunctionalitiesPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + FunctionalitiesPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_FUNCTIONALITIES_PERMISSIONS = "functionalities_permissions"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITIES_PERMISSIONS) + @jakarta.annotation.Nullable + private List functionalitiesPermissions = new ArrayList<>(); + /** * Gets or Sets webhooksPermissions */ @@ -1449,6 +1512,67 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List workflowsPermissions = new ArrayList<>(); + /** + * Gets or Sets catalogsPermissions + */ + @JsonAdapter(CatalogsPermissionsEnum.Adapter.class) + public enum CatalogsPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + CatalogsPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogsPermissionsEnum fromValue(String value) { + for (CatalogsPermissionsEnum b : CatalogsPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogsPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogsPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogsPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogsPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_CATALOGS_PERMISSIONS = "catalogs_permissions"; + @SerializedName(SERIALIZED_NAME_CATALOGS_PERMISSIONS) + @jakarta.annotation.Nullable + private List catalogsPermissions = new ArrayList<>(); + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -1462,6 +1586,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public OnCallRole() { } + public OnCallRole( + String slug + ) { + this(); + this.slug = slug; + } + public OnCallRole name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -1481,23 +1612,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public OnCallRole slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The role slug. * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public OnCallRole systemRole(@jakarta.annotation.Nullable List systemRole) { @@ -2067,6 +2190,33 @@ public void setServicesPermissions(@jakarta.annotation.Nullable List functionalitiesPermissions) { + this.functionalitiesPermissions = functionalitiesPermissions; + return this; + } + + public OnCallRole addFunctionalitiesPermissionsItem(FunctionalitiesPermissionsEnum functionalitiesPermissionsItem) { + if (this.functionalitiesPermissions == null) { + this.functionalitiesPermissions = new ArrayList<>(); + } + this.functionalitiesPermissions.add(functionalitiesPermissionsItem); + return this; + } + + /** + * Get functionalitiesPermissions + * @return functionalitiesPermissions + */ + @jakarta.annotation.Nullable + public List getFunctionalitiesPermissions() { + return functionalitiesPermissions; + } + + public void setFunctionalitiesPermissions(@jakarta.annotation.Nullable List functionalitiesPermissions) { + this.functionalitiesPermissions = functionalitiesPermissions; + } + + public OnCallRole webhooksPermissions(@jakarta.annotation.Nullable List webhooksPermissions) { this.webhooksPermissions = webhooksPermissions; return this; @@ -2121,6 +2271,33 @@ public void setWorkflowsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + return this; + } + + public OnCallRole addCatalogsPermissionsItem(CatalogsPermissionsEnum catalogsPermissionsItem) { + if (this.catalogsPermissions == null) { + this.catalogsPermissions = new ArrayList<>(); + } + this.catalogsPermissions.add(catalogsPermissionsItem); + return this; + } + + /** + * Get catalogsPermissions + * @return catalogsPermissions + */ + @jakarta.annotation.Nullable + public List getCatalogsPermissions() { + return catalogsPermissions; + } + + public void setCatalogsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + } + + public OnCallRole createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -2192,15 +2369,17 @@ public boolean equals(Object o) { Objects.equals(this.scheduleOverridePermissions, onCallRole.scheduleOverridePermissions) && Objects.equals(this.schedulesPermissions, onCallRole.schedulesPermissions) && Objects.equals(this.servicesPermissions, onCallRole.servicesPermissions) && + Objects.equals(this.functionalitiesPermissions, onCallRole.functionalitiesPermissions) && Objects.equals(this.webhooksPermissions, onCallRole.webhooksPermissions) && Objects.equals(this.workflowsPermissions, onCallRole.workflowsPermissions) && + Objects.equals(this.catalogsPermissions, onCallRole.catalogsPermissions) && Objects.equals(this.createdAt, onCallRole.createdAt) && Objects.equals(this.updatedAt, onCallRole.updatedAt); } @Override public int hashCode() { - return Objects.hash(name, slug, systemRole, alertSourcesPermissions, alertUrgencyPermissions, alertFieldsPermissions, alertGroupsPermissions, alertRoutingRulesPermissions, onCallReadinessReportPermissions, onCallRolesPermissions, alertsPermissions, apiKeysPermissions, auditsPermissions, contactsPermissions, escalationPoliciesPermissions, groupsPermissions, heartbeatsPermissions, integrationsPermissions, invitationsPermissions, liveCallRoutingPermissions, scheduleOverridePermissions, schedulesPermissions, servicesPermissions, webhooksPermissions, workflowsPermissions, createdAt, updatedAt); + return Objects.hash(name, slug, systemRole, alertSourcesPermissions, alertUrgencyPermissions, alertFieldsPermissions, alertGroupsPermissions, alertRoutingRulesPermissions, onCallReadinessReportPermissions, onCallRolesPermissions, alertsPermissions, apiKeysPermissions, auditsPermissions, contactsPermissions, escalationPoliciesPermissions, groupsPermissions, heartbeatsPermissions, integrationsPermissions, invitationsPermissions, liveCallRoutingPermissions, scheduleOverridePermissions, schedulesPermissions, servicesPermissions, functionalitiesPermissions, webhooksPermissions, workflowsPermissions, catalogsPermissions, createdAt, updatedAt); } @Override @@ -2230,8 +2409,10 @@ public String toString() { sb.append(" scheduleOverridePermissions: ").append(toIndentedString(scheduleOverridePermissions)).append("\n"); sb.append(" schedulesPermissions: ").append(toIndentedString(schedulesPermissions)).append("\n"); sb.append(" servicesPermissions: ").append(toIndentedString(servicesPermissions)).append("\n"); + sb.append(" functionalitiesPermissions: ").append(toIndentedString(functionalitiesPermissions)).append("\n"); sb.append(" webhooksPermissions: ").append(toIndentedString(webhooksPermissions)).append("\n"); sb.append(" workflowsPermissions: ").append(toIndentedString(workflowsPermissions)).append("\n"); + sb.append(" catalogsPermissions: ").append(toIndentedString(catalogsPermissions)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -2279,15 +2460,16 @@ private String toIndentedString(Object o) { openapiFields.add("schedule_override_permissions"); openapiFields.add("schedules_permissions"); openapiFields.add("services_permissions"); + openapiFields.add("functionalities_permissions"); openapiFields.add("webhooks_permissions"); openapiFields.add("workflows_permissions"); + openapiFields.add("catalogs_permissions"); openapiFields.add("created_at"); openapiFields.add("updated_at"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("created_at"); openapiRequiredFields.add("updated_at"); } @@ -2323,7 +2505,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } // ensure the optional json data is an array if present @@ -2411,6 +2593,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti throw new IllegalArgumentException(String.format("Expected the field `services_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("services_permissions").toString())); } // ensure the optional json data is an array if present + if (jsonObj.get("functionalities_permissions") != null && !jsonObj.get("functionalities_permissions").isJsonNull() && !jsonObj.get("functionalities_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionalities_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("functionalities_permissions").toString())); + } + // ensure the optional json data is an array if present if (jsonObj.get("webhooks_permissions") != null && !jsonObj.get("webhooks_permissions").isJsonNull() && !jsonObj.get("webhooks_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `webhooks_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("webhooks_permissions").toString())); } @@ -2418,6 +2604,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("workflows_permissions") != null && !jsonObj.get("workflows_permissions").isJsonNull() && !jsonObj.get("workflows_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `workflows_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("workflows_permissions").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("catalogs_permissions") != null && !jsonObj.get("catalogs_permissions").isJsonNull() && !jsonObj.get("catalogs_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `catalogs_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("catalogs_permissions").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/OnCallRoleList.java b/src/main/java/com/rootly/client/model/OnCallRoleList.java index 4c288ff6..a7488d2c 100644 --- a/src/main/java/com/rootly/client/model/OnCallRoleList.java +++ b/src/main/java/com/rootly/client/model/OnCallRoleList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OnCallRoleResponseData; @@ -53,7 +54,7 @@ /** * OnCallRoleList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallRoleList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class OnCallRoleList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OnCallRoleList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public OnCallRoleList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OnCallRoleList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { OnCallRoleList onCallRoleList = (OnCallRoleList) o; return Objects.equals(this.data, onCallRoleList.data) && Objects.equals(this.links, onCallRoleList.links) && - Objects.equals(this.meta, onCallRoleList.meta); + Objects.equals(this.meta, onCallRoleList.meta) && + Objects.equals(this.included, onCallRoleList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OnCallRoleRelationship.java b/src/main/java/com/rootly/client/model/OnCallRoleRelationship.java index 189aaea3..b29f179b 100644 --- a/src/main/java/com/rootly/client/model/OnCallRoleRelationship.java +++ b/src/main/java/com/rootly/client/model/OnCallRoleRelationship.java @@ -50,7 +50,7 @@ /** * OnCallRoleRelationship */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallRoleRelationship { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/OnCallRoleRelationshipData.java b/src/main/java/com/rootly/client/model/OnCallRoleRelationshipData.java index aa5b12ac..8631b011 100644 --- a/src/main/java/com/rootly/client/model/OnCallRoleRelationshipData.java +++ b/src/main/java/com/rootly/client/model/OnCallRoleRelationshipData.java @@ -48,7 +48,7 @@ /** * OnCallRoleRelationshipData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallRoleRelationshipData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/OnCallRoleResponse.java b/src/main/java/com/rootly/client/model/OnCallRoleResponse.java index 413da85f..fa424f1c 100644 --- a/src/main/java/com/rootly/client/model/OnCallRoleResponse.java +++ b/src/main/java/com/rootly/client/model/OnCallRoleResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OnCallRoleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * OnCallRoleResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallRoleResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private OnCallRoleResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OnCallRoleResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull OnCallRoleResponseData data) { } + public OnCallRoleResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OnCallRoleResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } OnCallRoleResponse onCallRoleResponse = (OnCallRoleResponse) o; - return Objects.equals(this.data, onCallRoleResponse.data); + return Objects.equals(this.data, onCallRoleResponse.data) && + Objects.equals(this.included, onCallRoleResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class OnCallRoleResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` OnCallRoleResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OnCallRoleResponseData.java b/src/main/java/com/rootly/client/model/OnCallRoleResponseData.java index 578c80cc..fb2b9cf8 100644 --- a/src/main/java/com/rootly/client/model/OnCallRoleResponseData.java +++ b/src/main/java/com/rootly/client/model/OnCallRoleResponseData.java @@ -49,7 +49,7 @@ /** * OnCallRoleResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallRoleResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/OnCallShadow.java b/src/main/java/com/rootly/client/model/OnCallShadow.java index 7bf3dbe7..cbbbce57 100644 --- a/src/main/java/com/rootly/client/model/OnCallShadow.java +++ b/src/main/java/com/rootly/client/model/OnCallShadow.java @@ -49,7 +49,7 @@ /** * OnCallShadow */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallShadow { public static final String SERIALIZED_NAME_SCHEDULE_ID = "schedule_id"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ID) diff --git a/src/main/java/com/rootly/client/model/OnCallShadowResponse.java b/src/main/java/com/rootly/client/model/OnCallShadowResponse.java index 1d1fc6a1..5285b2fe 100644 --- a/src/main/java/com/rootly/client/model/OnCallShadowResponse.java +++ b/src/main/java/com/rootly/client/model/OnCallShadowResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OnCallShadowResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * OnCallShadowResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallShadowResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private OnCallShadowResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OnCallShadowResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull OnCallShadowResponseData data) { } + public OnCallShadowResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OnCallShadowResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } OnCallShadowResponse onCallShadowResponse = (OnCallShadowResponse) o; - return Objects.equals(this.data, onCallShadowResponse.data); + return Objects.equals(this.data, onCallShadowResponse.data) && + Objects.equals(this.included, onCallShadowResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class OnCallShadowResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` OnCallShadowResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OnCallShadowResponseData.java b/src/main/java/com/rootly/client/model/OnCallShadowResponseData.java index de538f9e..27070e70 100644 --- a/src/main/java/com/rootly/client/model/OnCallShadowResponseData.java +++ b/src/main/java/com/rootly/client/model/OnCallShadowResponseData.java @@ -49,7 +49,7 @@ /** * OnCallShadowResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallShadowResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/OnCallShadowsList.java b/src/main/java/com/rootly/client/model/OnCallShadowsList.java index 7f1ee257..be6d8ed6 100644 --- a/src/main/java/com/rootly/client/model/OnCallShadowsList.java +++ b/src/main/java/com/rootly/client/model/OnCallShadowsList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OnCallShadowsListDataInner; @@ -53,7 +54,7 @@ /** * OnCallShadowsList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallShadowsList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class OnCallShadowsList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OnCallShadowsList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public OnCallShadowsList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OnCallShadowsList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { OnCallShadowsList onCallShadowsList = (OnCallShadowsList) o; return Objects.equals(this.data, onCallShadowsList.data) && Objects.equals(this.links, onCallShadowsList.links) && - Objects.equals(this.meta, onCallShadowsList.meta); + Objects.equals(this.meta, onCallShadowsList.meta) && + Objects.equals(this.included, onCallShadowsList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OnCallShadowsListDataInner.java b/src/main/java/com/rootly/client/model/OnCallShadowsListDataInner.java index 32a725b9..bca47111 100644 --- a/src/main/java/com/rootly/client/model/OnCallShadowsListDataInner.java +++ b/src/main/java/com/rootly/client/model/OnCallShadowsListDataInner.java @@ -49,7 +49,7 @@ /** * OnCallShadowsListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OnCallShadowsListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Oncall.java b/src/main/java/com/rootly/client/model/Oncall.java new file mode 100644 index 00000000..d654002a --- /dev/null +++ b/src/main/java/com/rootly/client/model/Oncall.java @@ -0,0 +1,602 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * Oncall + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class Oncall { + public static final String SERIALIZED_NAME_ESCALATION_POLICY_ID = "escalation_policy_id"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_ID) + @jakarta.annotation.Nonnull + private String escalationPolicyId; + + public static final String SERIALIZED_NAME_ESCALATION_POLICY_NAME = "escalation_policy_name"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_NAME) + @jakarta.annotation.Nonnull + private String escalationPolicyName; + + public static final String SERIALIZED_NAME_ESCALATION_POLICY_PATH_ID = "escalation_policy_path_id"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_PATH_ID) + @jakarta.annotation.Nullable + private String escalationPolicyPathId; + + public static final String SERIALIZED_NAME_ESCALATION_POLICY_PATH_NAME = "escalation_policy_path_name"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_PATH_NAME) + @jakarta.annotation.Nullable + private String escalationPolicyPathName; + + /** + * Notification type of the escalation path (audible or quiet) + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + AUDIBLE("audible"), + + QUIET("quiet"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + NotificationTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "notification_type"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) + @jakarta.annotation.Nullable + private NotificationTypeEnum notificationType; + + public static final String SERIALIZED_NAME_IS_DEFAULT_PATH = "is_default_path"; + @SerializedName(SERIALIZED_NAME_IS_DEFAULT_PATH) + @jakarta.annotation.Nullable + private Boolean isDefaultPath; + + public static final String SERIALIZED_NAME_ESCALATION_LEVEL = "escalation_level"; + @SerializedName(SERIALIZED_NAME_ESCALATION_LEVEL) + @jakarta.annotation.Nullable + private Integer escalationLevel; + + public static final String SERIALIZED_NAME_SCHEDULE_ID = "schedule_id"; + @SerializedName(SERIALIZED_NAME_SCHEDULE_ID) + @jakarta.annotation.Nullable + private String scheduleId; + + public static final String SERIALIZED_NAME_SCHEDULE_NAME = "schedule_name"; + @SerializedName(SERIALIZED_NAME_SCHEDULE_NAME) + @jakarta.annotation.Nullable + private String scheduleName; + + public static final String SERIALIZED_NAME_USER_ID = "user_id"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @jakarta.annotation.Nonnull + private Integer userId; + + public static final String SERIALIZED_NAME_STARTS_AT = "starts_at"; + @SerializedName(SERIALIZED_NAME_STARTS_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime startsAt; + + public static final String SERIALIZED_NAME_ENDS_AT = "ends_at"; + @SerializedName(SERIALIZED_NAME_ENDS_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime endsAt; + + public Oncall() { + } + + public Oncall escalationPolicyId(@jakarta.annotation.Nonnull String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + return this; + } + + /** + * ID of the escalation policy + * @return escalationPolicyId + */ + @jakarta.annotation.Nonnull + public String getEscalationPolicyId() { + return escalationPolicyId; + } + + public void setEscalationPolicyId(@jakarta.annotation.Nonnull String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + } + + + public Oncall escalationPolicyName(@jakarta.annotation.Nonnull String escalationPolicyName) { + this.escalationPolicyName = escalationPolicyName; + return this; + } + + /** + * Name of the escalation policy + * @return escalationPolicyName + */ + @jakarta.annotation.Nonnull + public String getEscalationPolicyName() { + return escalationPolicyName; + } + + public void setEscalationPolicyName(@jakarta.annotation.Nonnull String escalationPolicyName) { + this.escalationPolicyName = escalationPolicyName; + } + + + public Oncall escalationPolicyPathId(@jakarta.annotation.Nullable String escalationPolicyPathId) { + this.escalationPolicyPathId = escalationPolicyPathId; + return this; + } + + /** + * ID of the escalation policy path + * @return escalationPolicyPathId + */ + @jakarta.annotation.Nullable + public String getEscalationPolicyPathId() { + return escalationPolicyPathId; + } + + public void setEscalationPolicyPathId(@jakarta.annotation.Nullable String escalationPolicyPathId) { + this.escalationPolicyPathId = escalationPolicyPathId; + } + + + public Oncall escalationPolicyPathName(@jakarta.annotation.Nullable String escalationPolicyPathName) { + this.escalationPolicyPathName = escalationPolicyPathName; + return this; + } + + /** + * Name of the escalation policy path + * @return escalationPolicyPathName + */ + @jakarta.annotation.Nullable + public String getEscalationPolicyPathName() { + return escalationPolicyPathName; + } + + public void setEscalationPolicyPathName(@jakarta.annotation.Nullable String escalationPolicyPathName) { + this.escalationPolicyPathName = escalationPolicyPathName; + } + + + public Oncall notificationType(@jakarta.annotation.Nullable NotificationTypeEnum notificationType) { + this.notificationType = notificationType; + return this; + } + + /** + * Notification type of the escalation path (audible or quiet) + * @return notificationType + */ + @jakarta.annotation.Nullable + public NotificationTypeEnum getNotificationType() { + return notificationType; + } + + public void setNotificationType(@jakarta.annotation.Nullable NotificationTypeEnum notificationType) { + this.notificationType = notificationType; + } + + + public Oncall isDefaultPath(@jakarta.annotation.Nullable Boolean isDefaultPath) { + this.isDefaultPath = isDefaultPath; + return this; + } + + /** + * Whether this is the default escalation path + * @return isDefaultPath + */ + @jakarta.annotation.Nullable + public Boolean getIsDefaultPath() { + return isDefaultPath; + } + + public void setIsDefaultPath(@jakarta.annotation.Nullable Boolean isDefaultPath) { + this.isDefaultPath = isDefaultPath; + } + + + public Oncall escalationLevel(@jakarta.annotation.Nullable Integer escalationLevel) { + this.escalationLevel = escalationLevel; + return this; + } + + /** + * Level within the escalation policy + * @return escalationLevel + */ + @jakarta.annotation.Nullable + public Integer getEscalationLevel() { + return escalationLevel; + } + + public void setEscalationLevel(@jakarta.annotation.Nullable Integer escalationLevel) { + this.escalationLevel = escalationLevel; + } + + + public Oncall scheduleId(@jakarta.annotation.Nullable String scheduleId) { + this.scheduleId = scheduleId; + return this; + } + + /** + * ID of the schedule + * @return scheduleId + */ + @jakarta.annotation.Nullable + public String getScheduleId() { + return scheduleId; + } + + public void setScheduleId(@jakarta.annotation.Nullable String scheduleId) { + this.scheduleId = scheduleId; + } + + + public Oncall scheduleName(@jakarta.annotation.Nullable String scheduleName) { + this.scheduleName = scheduleName; + return this; + } + + /** + * Name of the schedule + * @return scheduleName + */ + @jakarta.annotation.Nullable + public String getScheduleName() { + return scheduleName; + } + + public void setScheduleName(@jakarta.annotation.Nullable String scheduleName) { + this.scheduleName = scheduleName; + } + + + public Oncall userId(@jakarta.annotation.Nonnull Integer userId) { + this.userId = userId; + return this; + } + + /** + * ID of the on-call user + * @return userId + */ + @jakarta.annotation.Nonnull + public Integer getUserId() { + return userId; + } + + public void setUserId(@jakarta.annotation.Nonnull Integer userId) { + this.userId = userId; + } + + + public Oncall startsAt(@jakarta.annotation.Nonnull OffsetDateTime startsAt) { + this.startsAt = startsAt; + return this; + } + + /** + * Start datetime of the on-call shift + * @return startsAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getStartsAt() { + return startsAt; + } + + public void setStartsAt(@jakarta.annotation.Nonnull OffsetDateTime startsAt) { + this.startsAt = startsAt; + } + + + public Oncall endsAt(@jakarta.annotation.Nonnull OffsetDateTime endsAt) { + this.endsAt = endsAt; + return this; + } + + /** + * End datetime of the on-call shift + * @return endsAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getEndsAt() { + return endsAt; + } + + public void setEndsAt(@jakarta.annotation.Nonnull OffsetDateTime endsAt) { + this.endsAt = endsAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Oncall oncall = (Oncall) o; + return Objects.equals(this.escalationPolicyId, oncall.escalationPolicyId) && + Objects.equals(this.escalationPolicyName, oncall.escalationPolicyName) && + Objects.equals(this.escalationPolicyPathId, oncall.escalationPolicyPathId) && + Objects.equals(this.escalationPolicyPathName, oncall.escalationPolicyPathName) && + Objects.equals(this.notificationType, oncall.notificationType) && + Objects.equals(this.isDefaultPath, oncall.isDefaultPath) && + Objects.equals(this.escalationLevel, oncall.escalationLevel) && + Objects.equals(this.scheduleId, oncall.scheduleId) && + Objects.equals(this.scheduleName, oncall.scheduleName) && + Objects.equals(this.userId, oncall.userId) && + Objects.equals(this.startsAt, oncall.startsAt) && + Objects.equals(this.endsAt, oncall.endsAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(escalationPolicyId, escalationPolicyName, escalationPolicyPathId, escalationPolicyPathName, notificationType, isDefaultPath, escalationLevel, scheduleId, scheduleName, userId, startsAt, endsAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Oncall {\n"); + sb.append(" escalationPolicyId: ").append(toIndentedString(escalationPolicyId)).append("\n"); + sb.append(" escalationPolicyName: ").append(toIndentedString(escalationPolicyName)).append("\n"); + sb.append(" escalationPolicyPathId: ").append(toIndentedString(escalationPolicyPathId)).append("\n"); + sb.append(" escalationPolicyPathName: ").append(toIndentedString(escalationPolicyPathName)).append("\n"); + sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" isDefaultPath: ").append(toIndentedString(isDefaultPath)).append("\n"); + sb.append(" escalationLevel: ").append(toIndentedString(escalationLevel)).append("\n"); + sb.append(" scheduleId: ").append(toIndentedString(scheduleId)).append("\n"); + sb.append(" scheduleName: ").append(toIndentedString(scheduleName)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" startsAt: ").append(toIndentedString(startsAt)).append("\n"); + sb.append(" endsAt: ").append(toIndentedString(endsAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("escalation_policy_id"); + openapiFields.add("escalation_policy_name"); + openapiFields.add("escalation_policy_path_id"); + openapiFields.add("escalation_policy_path_name"); + openapiFields.add("notification_type"); + openapiFields.add("is_default_path"); + openapiFields.add("escalation_level"); + openapiFields.add("schedule_id"); + openapiFields.add("schedule_name"); + openapiFields.add("user_id"); + openapiFields.add("starts_at"); + openapiFields.add("ends_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("escalation_policy_id"); + openapiRequiredFields.add("escalation_policy_name"); + openapiRequiredFields.add("user_id"); + openapiRequiredFields.add("starts_at"); + openapiRequiredFields.add("ends_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Oncall + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Oncall.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in Oncall is not found in the empty JSON string", Oncall.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Oncall.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `Oncall` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Oncall.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("escalation_policy_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_id").toString())); + } + if (!jsonObj.get("escalation_policy_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_name").toString())); + } + if ((jsonObj.get("escalation_policy_path_id") != null && !jsonObj.get("escalation_policy_path_id").isJsonNull()) && !jsonObj.get("escalation_policy_path_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_path_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_path_id").toString())); + } + if ((jsonObj.get("escalation_policy_path_name") != null && !jsonObj.get("escalation_policy_path_name").isJsonNull()) && !jsonObj.get("escalation_policy_path_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_path_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_path_name").toString())); + } + if ((jsonObj.get("notification_type") != null && !jsonObj.get("notification_type").isJsonNull()) && !jsonObj.get("notification_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `notification_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notification_type").toString())); + } + // validate the optional field `notification_type` + if (jsonObj.get("notification_type") != null && !jsonObj.get("notification_type").isJsonNull()) { + NotificationTypeEnum.validateJsonElement(jsonObj.get("notification_type")); + } + if ((jsonObj.get("schedule_id") != null && !jsonObj.get("schedule_id").isJsonNull()) && !jsonObj.get("schedule_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `schedule_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("schedule_id").toString())); + } + if ((jsonObj.get("schedule_name") != null && !jsonObj.get("schedule_name").isJsonNull()) && !jsonObj.get("schedule_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `schedule_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("schedule_name").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Oncall.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Oncall' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(Oncall.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, Oncall value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Oncall read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of Oncall given an JSON string + * + * @param jsonString JSON string + * @return An instance of Oncall + * @throws IOException if the JSON string is invalid with respect to Oncall + */ + public static Oncall fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Oncall.class); + } + + /** + * Convert an instance of Oncall to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallList.java b/src/main/java/com/rootly/client/model/OncallList.java new file mode 100644 index 00000000..1ff73f39 --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallList.java @@ -0,0 +1,282 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.OncallListDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public OncallList() { + } + + public OncallList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public OncallList addDataItem(OncallListDataInner dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public OncallList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OncallList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallList oncallList = (OncallList) o; + return Objects.equals(this.data, oncallList.data) && + Objects.equals(this.included, oncallList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallList is not found in the empty JSON string", OncallList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : OncallList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + OncallListDataInner.validateJsonElement(jsonArraydata.get(i)); + }; + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallList given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallList + * @throws IOException if the JSON string is invalid with respect to OncallList + */ + public static OncallList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallList.class); + } + + /** + * Convert an instance of OncallList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallListDataInner.java b/src/main/java/com/rootly/client/model/OncallListDataInner.java new file mode 100644 index 00000000..6badf9bd --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallListDataInner.java @@ -0,0 +1,360 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Oncall; +import com.rootly.client.model.OncallRelationships; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallListDataInner + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallListDataInner { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + ON_CALL_RESOURCES("on_call_resources"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private Oncall attributes; + + public static final String SERIALIZED_NAME_RELATIONSHIPS = "relationships"; + @SerializedName(SERIALIZED_NAME_RELATIONSHIPS) + @jakarta.annotation.Nullable + private OncallRelationships relationships; + + public OncallListDataInner() { + } + + public OncallListDataInner id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the on-call entry + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public OncallListDataInner type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public OncallListDataInner attributes(@jakarta.annotation.Nonnull Oncall attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public Oncall getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull Oncall attributes) { + this.attributes = attributes; + } + + + public OncallListDataInner relationships(@jakarta.annotation.Nullable OncallRelationships relationships) { + this.relationships = relationships; + return this; + } + + /** + * Get relationships + * @return relationships + */ + @jakarta.annotation.Nullable + public OncallRelationships getRelationships() { + return relationships; + } + + public void setRelationships(@jakarta.annotation.Nullable OncallRelationships relationships) { + this.relationships = relationships; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallListDataInner oncallListDataInner = (OncallListDataInner) o; + return Objects.equals(this.id, oncallListDataInner.id) && + Objects.equals(this.type, oncallListDataInner.type) && + Objects.equals(this.attributes, oncallListDataInner.attributes) && + Objects.equals(this.relationships, oncallListDataInner.relationships); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes, relationships); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallListDataInner {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" relationships: ").append(toIndentedString(relationships)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + openapiFields.add("relationships"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallListDataInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallListDataInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallListDataInner is not found in the empty JSON string", OncallListDataInner.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallListDataInner.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallListDataInner` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : OncallListDataInner.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + Oncall.validateJsonElement(jsonObj.get("attributes")); + // validate the optional field `relationships` + if (jsonObj.get("relationships") != null && !jsonObj.get("relationships").isJsonNull()) { + OncallRelationships.validateJsonElement(jsonObj.get("relationships")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallListDataInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallListDataInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallListDataInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallListDataInner value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallListDataInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallListDataInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallListDataInner + * @throws IOException if the JSON string is invalid with respect to OncallListDataInner + */ + public static OncallListDataInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallListDataInner.class); + } + + /** + * Convert an instance of OncallListDataInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallRelationships.java b/src/main/java/com/rootly/client/model/OncallRelationships.java new file mode 100644 index 00000000..f2d7aaa3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallRelationships.java @@ -0,0 +1,272 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsEscalationPolicy; +import com.rootly.client.model.OncallRelationshipsSchedule; +import com.rootly.client.model.OncallRelationshipsUser; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallRelationships + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallRelationships { + public static final String SERIALIZED_NAME_USER = "user"; + @SerializedName(SERIALIZED_NAME_USER) + @jakarta.annotation.Nullable + private OncallRelationshipsUser user; + + public static final String SERIALIZED_NAME_SCHEDULE = "schedule"; + @SerializedName(SERIALIZED_NAME_SCHEDULE) + @jakarta.annotation.Nullable + private OncallRelationshipsSchedule schedule; + + public static final String SERIALIZED_NAME_ESCALATION_POLICY = "escalation_policy"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY) + @jakarta.annotation.Nullable + private OncallRelationshipsEscalationPolicy escalationPolicy; + + public OncallRelationships() { + } + + public OncallRelationships user(@jakarta.annotation.Nullable OncallRelationshipsUser user) { + this.user = user; + return this; + } + + /** + * Get user + * @return user + */ + @jakarta.annotation.Nullable + public OncallRelationshipsUser getUser() { + return user; + } + + public void setUser(@jakarta.annotation.Nullable OncallRelationshipsUser user) { + this.user = user; + } + + + public OncallRelationships schedule(@jakarta.annotation.Nullable OncallRelationshipsSchedule schedule) { + this.schedule = schedule; + return this; + } + + /** + * Get schedule + * @return schedule + */ + @jakarta.annotation.Nullable + public OncallRelationshipsSchedule getSchedule() { + return schedule; + } + + public void setSchedule(@jakarta.annotation.Nullable OncallRelationshipsSchedule schedule) { + this.schedule = schedule; + } + + + public OncallRelationships escalationPolicy(@jakarta.annotation.Nullable OncallRelationshipsEscalationPolicy escalationPolicy) { + this.escalationPolicy = escalationPolicy; + return this; + } + + /** + * Get escalationPolicy + * @return escalationPolicy + */ + @jakarta.annotation.Nullable + public OncallRelationshipsEscalationPolicy getEscalationPolicy() { + return escalationPolicy; + } + + public void setEscalationPolicy(@jakarta.annotation.Nullable OncallRelationshipsEscalationPolicy escalationPolicy) { + this.escalationPolicy = escalationPolicy; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallRelationships oncallRelationships = (OncallRelationships) o; + return Objects.equals(this.user, oncallRelationships.user) && + Objects.equals(this.schedule, oncallRelationships.schedule) && + Objects.equals(this.escalationPolicy, oncallRelationships.escalationPolicy); + } + + @Override + public int hashCode() { + return Objects.hash(user, schedule, escalationPolicy); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallRelationships {\n"); + sb.append(" user: ").append(toIndentedString(user)).append("\n"); + sb.append(" schedule: ").append(toIndentedString(schedule)).append("\n"); + sb.append(" escalationPolicy: ").append(toIndentedString(escalationPolicy)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("user"); + openapiFields.add("schedule"); + openapiFields.add("escalation_policy"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallRelationships + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallRelationships.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallRelationships is not found in the empty JSON string", OncallRelationships.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallRelationships.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallRelationships` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `user` + if (jsonObj.get("user") != null && !jsonObj.get("user").isJsonNull()) { + OncallRelationshipsUser.validateJsonElement(jsonObj.get("user")); + } + // validate the optional field `schedule` + if (jsonObj.get("schedule") != null && !jsonObj.get("schedule").isJsonNull()) { + OncallRelationshipsSchedule.validateJsonElement(jsonObj.get("schedule")); + } + // validate the optional field `escalation_policy` + if (jsonObj.get("escalation_policy") != null && !jsonObj.get("escalation_policy").isJsonNull()) { + OncallRelationshipsEscalationPolicy.validateJsonElement(jsonObj.get("escalation_policy")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallRelationships.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallRelationships' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallRelationships.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallRelationships value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallRelationships read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallRelationships given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallRelationships + * @throws IOException if the JSON string is invalid with respect to OncallRelationships + */ + public static OncallRelationships fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallRelationships.class); + } + + /** + * Convert an instance of OncallRelationships to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicy.java b/src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicy.java new file mode 100644 index 00000000..5cb27bb1 --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicy.java @@ -0,0 +1,220 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsEscalationPolicyData; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallRelationshipsEscalationPolicy + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallRelationshipsEscalationPolicy { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private OncallRelationshipsEscalationPolicyData data; + + public OncallRelationshipsEscalationPolicy() { + } + + public OncallRelationshipsEscalationPolicy data(@jakarta.annotation.Nullable OncallRelationshipsEscalationPolicyData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public OncallRelationshipsEscalationPolicyData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable OncallRelationshipsEscalationPolicyData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallRelationshipsEscalationPolicy oncallRelationshipsEscalationPolicy = (OncallRelationshipsEscalationPolicy) o; + return Objects.equals(this.data, oncallRelationshipsEscalationPolicy.data); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallRelationshipsEscalationPolicy {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallRelationshipsEscalationPolicy + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallRelationshipsEscalationPolicy.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallRelationshipsEscalationPolicy is not found in the empty JSON string", OncallRelationshipsEscalationPolicy.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallRelationshipsEscalationPolicy.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallRelationshipsEscalationPolicy` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + OncallRelationshipsEscalationPolicyData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallRelationshipsEscalationPolicy.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallRelationshipsEscalationPolicy' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallRelationshipsEscalationPolicy.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallRelationshipsEscalationPolicy value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallRelationshipsEscalationPolicy read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallRelationshipsEscalationPolicy given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallRelationshipsEscalationPolicy + * @throws IOException if the JSON string is invalid with respect to OncallRelationshipsEscalationPolicy + */ + public static OncallRelationshipsEscalationPolicy fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallRelationshipsEscalationPolicy.class); + } + + /** + * Convert an instance of OncallRelationshipsEscalationPolicy to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyData.java b/src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyData.java new file mode 100644 index 00000000..4d2b4ad2 --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyData.java @@ -0,0 +1,290 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallRelationshipsEscalationPolicyData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallRelationshipsEscalationPolicyData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + ESCALATION_POLICIES("escalation_policies"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public OncallRelationshipsEscalationPolicyData() { + } + + public OncallRelationshipsEscalationPolicyData id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public OncallRelationshipsEscalationPolicyData type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallRelationshipsEscalationPolicyData oncallRelationshipsEscalationPolicyData = (OncallRelationshipsEscalationPolicyData) o; + return Objects.equals(this.id, oncallRelationshipsEscalationPolicyData.id) && + Objects.equals(this.type, oncallRelationshipsEscalationPolicyData.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallRelationshipsEscalationPolicyData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallRelationshipsEscalationPolicyData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallRelationshipsEscalationPolicyData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallRelationshipsEscalationPolicyData is not found in the empty JSON string", OncallRelationshipsEscalationPolicyData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallRelationshipsEscalationPolicyData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallRelationshipsEscalationPolicyData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallRelationshipsEscalationPolicyData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallRelationshipsEscalationPolicyData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallRelationshipsEscalationPolicyData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallRelationshipsEscalationPolicyData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallRelationshipsEscalationPolicyData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallRelationshipsEscalationPolicyData given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallRelationshipsEscalationPolicyData + * @throws IOException if the JSON string is invalid with respect to OncallRelationshipsEscalationPolicyData + */ + public static OncallRelationshipsEscalationPolicyData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallRelationshipsEscalationPolicyData.class); + } + + /** + * Convert an instance of OncallRelationshipsEscalationPolicyData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallRelationshipsSchedule.java b/src/main/java/com/rootly/client/model/OncallRelationshipsSchedule.java new file mode 100644 index 00000000..32570b2c --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallRelationshipsSchedule.java @@ -0,0 +1,220 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsScheduleData; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallRelationshipsSchedule + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallRelationshipsSchedule { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private OncallRelationshipsScheduleData data; + + public OncallRelationshipsSchedule() { + } + + public OncallRelationshipsSchedule data(@jakarta.annotation.Nullable OncallRelationshipsScheduleData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public OncallRelationshipsScheduleData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable OncallRelationshipsScheduleData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallRelationshipsSchedule oncallRelationshipsSchedule = (OncallRelationshipsSchedule) o; + return Objects.equals(this.data, oncallRelationshipsSchedule.data); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallRelationshipsSchedule {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallRelationshipsSchedule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallRelationshipsSchedule.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallRelationshipsSchedule is not found in the empty JSON string", OncallRelationshipsSchedule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallRelationshipsSchedule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallRelationshipsSchedule` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + OncallRelationshipsScheduleData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallRelationshipsSchedule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallRelationshipsSchedule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallRelationshipsSchedule.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallRelationshipsSchedule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallRelationshipsSchedule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallRelationshipsSchedule given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallRelationshipsSchedule + * @throws IOException if the JSON string is invalid with respect to OncallRelationshipsSchedule + */ + public static OncallRelationshipsSchedule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallRelationshipsSchedule.class); + } + + /** + * Convert an instance of OncallRelationshipsSchedule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallRelationshipsScheduleData.java b/src/main/java/com/rootly/client/model/OncallRelationshipsScheduleData.java new file mode 100644 index 00000000..1b7636e8 --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallRelationshipsScheduleData.java @@ -0,0 +1,290 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallRelationshipsScheduleData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallRelationshipsScheduleData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + SCHEDULES("schedules"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public OncallRelationshipsScheduleData() { + } + + public OncallRelationshipsScheduleData id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public OncallRelationshipsScheduleData type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallRelationshipsScheduleData oncallRelationshipsScheduleData = (OncallRelationshipsScheduleData) o; + return Objects.equals(this.id, oncallRelationshipsScheduleData.id) && + Objects.equals(this.type, oncallRelationshipsScheduleData.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallRelationshipsScheduleData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallRelationshipsScheduleData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallRelationshipsScheduleData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallRelationshipsScheduleData is not found in the empty JSON string", OncallRelationshipsScheduleData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallRelationshipsScheduleData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallRelationshipsScheduleData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallRelationshipsScheduleData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallRelationshipsScheduleData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallRelationshipsScheduleData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallRelationshipsScheduleData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallRelationshipsScheduleData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallRelationshipsScheduleData given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallRelationshipsScheduleData + * @throws IOException if the JSON string is invalid with respect to OncallRelationshipsScheduleData + */ + public static OncallRelationshipsScheduleData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallRelationshipsScheduleData.class); + } + + /** + * Convert an instance of OncallRelationshipsScheduleData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallRelationshipsUser.java b/src/main/java/com/rootly/client/model/OncallRelationshipsUser.java new file mode 100644 index 00000000..1759ecb3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallRelationshipsUser.java @@ -0,0 +1,220 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsUserData; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallRelationshipsUser + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallRelationshipsUser { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private OncallRelationshipsUserData data; + + public OncallRelationshipsUser() { + } + + public OncallRelationshipsUser data(@jakarta.annotation.Nullable OncallRelationshipsUserData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public OncallRelationshipsUserData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable OncallRelationshipsUserData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallRelationshipsUser oncallRelationshipsUser = (OncallRelationshipsUser) o; + return Objects.equals(this.data, oncallRelationshipsUser.data); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallRelationshipsUser {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallRelationshipsUser + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallRelationshipsUser.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallRelationshipsUser is not found in the empty JSON string", OncallRelationshipsUser.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallRelationshipsUser.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallRelationshipsUser` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + OncallRelationshipsUserData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallRelationshipsUser.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallRelationshipsUser' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallRelationshipsUser.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallRelationshipsUser value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallRelationshipsUser read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallRelationshipsUser given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallRelationshipsUser + * @throws IOException if the JSON string is invalid with respect to OncallRelationshipsUser + */ + public static OncallRelationshipsUser fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallRelationshipsUser.class); + } + + /** + * Convert an instance of OncallRelationshipsUser to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OncallRelationshipsUserData.java b/src/main/java/com/rootly/client/model/OncallRelationshipsUserData.java new file mode 100644 index 00000000..c1a98aa1 --- /dev/null +++ b/src/main/java/com/rootly/client/model/OncallRelationshipsUserData.java @@ -0,0 +1,290 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * OncallRelationshipsUserData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class OncallRelationshipsUserData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + USERS("users"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nullable + private TypeEnum type; + + public OncallRelationshipsUserData() { + } + + public OncallRelationshipsUserData id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + + public OncallRelationshipsUserData type(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nullable + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nullable TypeEnum type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OncallRelationshipsUserData oncallRelationshipsUserData = (OncallRelationshipsUserData) o; + return Objects.equals(this.id, oncallRelationshipsUserData.id) && + Objects.equals(this.type, oncallRelationshipsUserData.type); + } + + @Override + public int hashCode() { + return Objects.hash(id, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OncallRelationshipsUserData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OncallRelationshipsUserData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OncallRelationshipsUserData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in OncallRelationshipsUserData is not found in the empty JSON string", OncallRelationshipsUserData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OncallRelationshipsUserData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `OncallRelationshipsUserData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the optional field `type` + if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { + TypeEnum.validateJsonElement(jsonObj.get("type")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OncallRelationshipsUserData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OncallRelationshipsUserData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(OncallRelationshipsUserData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, OncallRelationshipsUserData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OncallRelationshipsUserData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of OncallRelationshipsUserData given an JSON string + * + * @param jsonString JSON string + * @return An instance of OncallRelationshipsUserData + * @throws IOException if the JSON string is invalid with respect to OncallRelationshipsUserData + */ + public static OncallRelationshipsUserData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OncallRelationshipsUserData.class); + } + + /** + * Convert an instance of OncallRelationshipsUserData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/OverrideShift.java b/src/main/java/com/rootly/client/model/OverrideShift.java index 2f61843c..62ec438d 100644 --- a/src/main/java/com/rootly/client/model/OverrideShift.java +++ b/src/main/java/com/rootly/client/model/OverrideShift.java @@ -51,7 +51,7 @@ /** * OverrideShift */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OverrideShift { public static final String SERIALIZED_NAME_SCHEDULE_ID = "schedule_id"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ID) diff --git a/src/main/java/com/rootly/client/model/OverrideShiftList.java b/src/main/java/com/rootly/client/model/OverrideShiftList.java index 9fbda7fb..65619b56 100644 --- a/src/main/java/com/rootly/client/model/OverrideShiftList.java +++ b/src/main/java/com/rootly/client/model/OverrideShiftList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OverrideShiftResponseData; @@ -53,7 +54,7 @@ /** * OverrideShiftList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OverrideShiftList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class OverrideShiftList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OverrideShiftList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public OverrideShiftList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OverrideShiftList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { OverrideShiftList overrideShiftList = (OverrideShiftList) o; return Objects.equals(this.data, overrideShiftList.data) && Objects.equals(this.links, overrideShiftList.links) && - Objects.equals(this.meta, overrideShiftList.meta); + Objects.equals(this.meta, overrideShiftList.meta) && + Objects.equals(this.included, overrideShiftList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OverrideShiftResponse.java b/src/main/java/com/rootly/client/model/OverrideShiftResponse.java index f6cae84f..3dae3999 100644 --- a/src/main/java/com/rootly/client/model/OverrideShiftResponse.java +++ b/src/main/java/com/rootly/client/model/OverrideShiftResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OverrideShiftResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * OverrideShiftResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OverrideShiftResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private OverrideShiftResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public OverrideShiftResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull OverrideShiftResponseData data) } + public OverrideShiftResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public OverrideShiftResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } OverrideShiftResponse overrideShiftResponse = (OverrideShiftResponse) o; - return Objects.equals(this.data, overrideShiftResponse.data); + return Objects.equals(this.data, overrideShiftResponse.data) && + Objects.equals(this.included, overrideShiftResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class OverrideShiftResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` OverrideShiftResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/OverrideShiftResponseData.java b/src/main/java/com/rootly/client/model/OverrideShiftResponseData.java index 34d828bf..7e8aac1a 100644 --- a/src/main/java/com/rootly/client/model/OverrideShiftResponseData.java +++ b/src/main/java/com/rootly/client/model/OverrideShiftResponseData.java @@ -49,7 +49,7 @@ /** * OverrideShiftResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class OverrideShiftResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/PageJsmopsOnCallRespondersTaskParams.java b/src/main/java/com/rootly/client/model/PageJsmopsOnCallRespondersTaskParams.java index 45f5184c..47402104 100644 --- a/src/main/java/com/rootly/client/model/PageJsmopsOnCallRespondersTaskParams.java +++ b/src/main/java/com/rootly/client/model/PageJsmopsOnCallRespondersTaskParams.java @@ -52,7 +52,7 @@ /** * PageJsmopsOnCallRespondersTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PageJsmopsOnCallRespondersTaskParams { /** * Gets or Sets taskType @@ -106,32 +106,32 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TaskTypeEnum taskType; public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String title; public static final String SERIALIZED_NAME_MESSAGE = "message"; @SerializedName(SERIALIZED_NAME_MESSAGE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String message; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_TEAMS = "teams"; @SerializedName(SERIALIZED_NAME_TEAMS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List teams = new ArrayList<>(); public static final String SERIALIZED_NAME_USERS = "users"; @SerializedName(SERIALIZED_NAME_USERS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List users = new ArrayList<>(); /** @@ -145,8 +145,6 @@ public enum PriorityEnum { P2("P2"), - P32("P3"), - P4("P4"), P5("P5"), @@ -198,13 +196,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PRIORITY = "priority"; @SerializedName(SERIALIZED_NAME_PRIORITY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private PriorityEnum priority = PriorityEnum.P3; public PageJsmopsOnCallRespondersTaskParams() { } - public PageJsmopsOnCallRespondersTaskParams taskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public PageJsmopsOnCallRespondersTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; return this; } @@ -213,17 +211,17 @@ public PageJsmopsOnCallRespondersTaskParams taskType(@javax.annotation.Nullable * Get taskType * @return taskType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TaskTypeEnum getTaskType() { return taskType; } - public void setTaskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; } - public PageJsmopsOnCallRespondersTaskParams title(@javax.annotation.Nullable String title) { + public PageJsmopsOnCallRespondersTaskParams title(@jakarta.annotation.Nullable String title) { this.title = title; return this; } @@ -232,17 +230,17 @@ public PageJsmopsOnCallRespondersTaskParams title(@javax.annotation.Nullable Str * Incident title. * @return title */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getTitle() { return title; } - public void setTitle(@javax.annotation.Nullable String title) { + public void setTitle(@jakarta.annotation.Nullable String title) { this.title = title; } - public PageJsmopsOnCallRespondersTaskParams message(@javax.annotation.Nullable String message) { + public PageJsmopsOnCallRespondersTaskParams message(@jakarta.annotation.Nullable String message) { this.message = message; return this; } @@ -251,17 +249,17 @@ public PageJsmopsOnCallRespondersTaskParams message(@javax.annotation.Nullable S * Message of the incident * @return message */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getMessage() { return message; } - public void setMessage(@javax.annotation.Nullable String message) { + public void setMessage(@jakarta.annotation.Nullable String message) { this.message = message; } - public PageJsmopsOnCallRespondersTaskParams description(@javax.annotation.Nullable String description) { + public PageJsmopsOnCallRespondersTaskParams description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -270,17 +268,17 @@ public PageJsmopsOnCallRespondersTaskParams description(@javax.annotation.Nullab * Description field of the incident that is generally used to provide a detailed information about the incident * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public PageJsmopsOnCallRespondersTaskParams teams(@javax.annotation.Nullable List teams) { + public PageJsmopsOnCallRespondersTaskParams teams(@jakarta.annotation.Nullable List teams) { this.teams = teams; return this; } @@ -297,17 +295,17 @@ public PageJsmopsOnCallRespondersTaskParams addTeamsItem(AddActionItemTaskParams * Get teams * @return teams */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getTeams() { return teams; } - public void setTeams(@javax.annotation.Nullable List teams) { + public void setTeams(@jakarta.annotation.Nullable List teams) { this.teams = teams; } - public PageJsmopsOnCallRespondersTaskParams users(@javax.annotation.Nullable List users) { + public PageJsmopsOnCallRespondersTaskParams users(@jakarta.annotation.Nullable List users) { this.users = users; return this; } @@ -324,17 +322,17 @@ public PageJsmopsOnCallRespondersTaskParams addUsersItem(AddActionItemTaskParams * Get users * @return users */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getUsers() { return users; } - public void setUsers(@javax.annotation.Nullable List users) { + public void setUsers(@jakarta.annotation.Nullable List users) { this.users = users; } - public PageJsmopsOnCallRespondersTaskParams priority(@javax.annotation.Nullable PriorityEnum priority) { + public PageJsmopsOnCallRespondersTaskParams priority(@jakarta.annotation.Nullable PriorityEnum priority) { this.priority = priority; return this; } @@ -343,12 +341,12 @@ public PageJsmopsOnCallRespondersTaskParams priority(@javax.annotation.Nullable * Get priority * @return priority */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public PriorityEnum getPriority() { return priority; } - public void setPriority(@javax.annotation.Nullable PriorityEnum priority) { + public void setPriority(@jakarta.annotation.Nullable PriorityEnum priority) { this.priority = priority; } diff --git a/src/main/java/com/rootly/client/model/PageOpsgenieOnCallRespondersTaskParams.java b/src/main/java/com/rootly/client/model/PageOpsgenieOnCallRespondersTaskParams.java index fe3a37d5..d0a822c0 100644 --- a/src/main/java/com/rootly/client/model/PageOpsgenieOnCallRespondersTaskParams.java +++ b/src/main/java/com/rootly/client/model/PageOpsgenieOnCallRespondersTaskParams.java @@ -52,7 +52,7 @@ /** * PageOpsgenieOnCallRespondersTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PageOpsgenieOnCallRespondersTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/PagePagerdutyOnCallRespondersTaskParams.java b/src/main/java/com/rootly/client/model/PagePagerdutyOnCallRespondersTaskParams.java index 4bf31092..f5129cf9 100644 --- a/src/main/java/com/rootly/client/model/PagePagerdutyOnCallRespondersTaskParams.java +++ b/src/main/java/com/rootly/client/model/PagePagerdutyOnCallRespondersTaskParams.java @@ -52,7 +52,7 @@ /** * PagePagerdutyOnCallRespondersTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PagePagerdutyOnCallRespondersTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParams.java b/src/main/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParams.java index f3d5d220..f3a6bb4f 100644 --- a/src/main/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParams.java +++ b/src/main/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParams.java @@ -49,7 +49,7 @@ /** * PageRootlyOnCallRespondersTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PageRootlyOnCallRespondersTaskParams { /** * Gets or Sets taskType @@ -126,9 +126,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private AddActionItemTaskParamsPostToSlackChannelsInner groupTarget; + public static final String SERIALIZED_NAME_FUNCTIONALITY_TARGET = "functionality_target"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITY_TARGET) + @jakarta.annotation.Nullable + private AddActionItemTaskParamsPostToSlackChannelsInner functionalityTarget; + public static final String SERIALIZED_NAME_ALERT_URGENCY_ID = "alert_urgency_id"; @SerializedName(SERIALIZED_NAME_ALERT_URGENCY_ID) - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull private String alertUrgencyId; public static final String SERIALIZED_NAME_SUMMARY = "summary"; @@ -146,6 +151,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String escalationNote; + public static final String SERIALIZED_NAME_CREATE_NEW_ALERT = "create_new_alert"; + @SerializedName(SERIALIZED_NAME_CREATE_NEW_ALERT) + @jakarta.annotation.Nullable + private Boolean createNewAlert = false; + public PageRootlyOnCallRespondersTaskParams() { } @@ -244,7 +254,26 @@ public void setGroupTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsP } - public PageRootlyOnCallRespondersTaskParams alertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId) { + public PageRootlyOnCallRespondersTaskParams functionalityTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner functionalityTarget) { + this.functionalityTarget = functionalityTarget; + return this; + } + + /** + * Get functionalityTarget + * @return functionalityTarget + */ + @jakarta.annotation.Nullable + public AddActionItemTaskParamsPostToSlackChannelsInner getFunctionalityTarget() { + return functionalityTarget; + } + + public void setFunctionalityTarget(@jakarta.annotation.Nullable AddActionItemTaskParamsPostToSlackChannelsInner functionalityTarget) { + this.functionalityTarget = functionalityTarget; + } + + + public PageRootlyOnCallRespondersTaskParams alertUrgencyId(@jakarta.annotation.Nonnull String alertUrgencyId) { this.alertUrgencyId = alertUrgencyId; return this; } @@ -253,12 +282,12 @@ public PageRootlyOnCallRespondersTaskParams alertUrgencyId(@jakarta.annotation.N * Alert urgency ID * @return alertUrgencyId */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull public String getAlertUrgencyId() { return alertUrgencyId; } - public void setAlertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId) { + public void setAlertUrgencyId(@jakarta.annotation.Nonnull String alertUrgencyId) { this.alertUrgencyId = alertUrgencyId; } @@ -320,6 +349,25 @@ public void setEscalationNote(@jakarta.annotation.Nullable String escalationNote } + public PageRootlyOnCallRespondersTaskParams createNewAlert(@jakarta.annotation.Nullable Boolean createNewAlert) { + this.createNewAlert = createNewAlert; + return this; + } + + /** + * When true, always create a new alert instead of re-paging the alert that triggered the workflow + * @return createNewAlert + */ + @jakarta.annotation.Nullable + public Boolean getCreateNewAlert() { + return createNewAlert; + } + + public void setCreateNewAlert(@jakarta.annotation.Nullable Boolean createNewAlert) { + this.createNewAlert = createNewAlert; + } + + @Override public boolean equals(Object o) { @@ -335,15 +383,17 @@ public boolean equals(Object o) { Objects.equals(this.serviceTarget, pageRootlyOnCallRespondersTaskParams.serviceTarget) && Objects.equals(this.userTarget, pageRootlyOnCallRespondersTaskParams.userTarget) && Objects.equals(this.groupTarget, pageRootlyOnCallRespondersTaskParams.groupTarget) && + Objects.equals(this.functionalityTarget, pageRootlyOnCallRespondersTaskParams.functionalityTarget) && Objects.equals(this.alertUrgencyId, pageRootlyOnCallRespondersTaskParams.alertUrgencyId) && Objects.equals(this.summary, pageRootlyOnCallRespondersTaskParams.summary) && Objects.equals(this.description, pageRootlyOnCallRespondersTaskParams.description) && - Objects.equals(this.escalationNote, pageRootlyOnCallRespondersTaskParams.escalationNote); + Objects.equals(this.escalationNote, pageRootlyOnCallRespondersTaskParams.escalationNote) && + Objects.equals(this.createNewAlert, pageRootlyOnCallRespondersTaskParams.createNewAlert); } @Override public int hashCode() { - return Objects.hash(taskType, escalationPolicyTarget, serviceTarget, userTarget, groupTarget, alertUrgencyId, summary, description, escalationNote); + return Objects.hash(taskType, escalationPolicyTarget, serviceTarget, userTarget, groupTarget, functionalityTarget, alertUrgencyId, summary, description, escalationNote, createNewAlert); } @Override @@ -355,10 +405,12 @@ public String toString() { sb.append(" serviceTarget: ").append(toIndentedString(serviceTarget)).append("\n"); sb.append(" userTarget: ").append(toIndentedString(userTarget)).append("\n"); sb.append(" groupTarget: ").append(toIndentedString(groupTarget)).append("\n"); + sb.append(" functionalityTarget: ").append(toIndentedString(functionalityTarget)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); sb.append(" summary: ").append(toIndentedString(summary)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" escalationNote: ").append(toIndentedString(escalationNote)).append("\n"); + sb.append(" createNewAlert: ").append(toIndentedString(createNewAlert)).append("\n"); sb.append("}"); return sb.toString(); } @@ -386,13 +438,16 @@ private String toIndentedString(Object o) { openapiFields.add("service_target"); openapiFields.add("user_target"); openapiFields.add("group_target"); + openapiFields.add("functionality_target"); openapiFields.add("alert_urgency_id"); openapiFields.add("summary"); openapiFields.add("description"); openapiFields.add("escalation_note"); + openapiFields.add("create_new_alert"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("alert_urgency_id"); openapiRequiredFields.add("summary"); } @@ -447,7 +502,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("group_target") != null && !jsonObj.get("group_target").isJsonNull()) { AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("group_target")); } - if ((jsonObj.get("alert_urgency_id") != null && !jsonObj.get("alert_urgency_id").isJsonNull()) && !jsonObj.get("alert_urgency_id").isJsonPrimitive()) { + // validate the optional field `functionality_target` + if (jsonObj.get("functionality_target") != null && !jsonObj.get("functionality_target").isJsonNull()) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("functionality_target")); + } + if (!jsonObj.get("alert_urgency_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `alert_urgency_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_urgency_id").toString())); } if (!jsonObj.get("summary").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParams.java b/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParams.java index 1c006be7..efe56250 100644 --- a/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParams.java +++ b/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParams.java @@ -19,378 +19,253 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.PageVictorOpsOnCallRespondersTaskParamsAnyOf; +import com.rootly.client.model.PageVictorOpsOnCallRespondersTaskParamsAnyOf1; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * PageVictorOpsOnCallRespondersTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class PageVictorOpsOnCallRespondersTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - PAGE_VICTOR_OPS_ON_CALL_RESPONDERS("page_victor_ops_on_call_responders"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class PageVictorOpsOnCallRespondersTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(PageVictorOpsOnCallRespondersTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PageVictorOpsOnCallRespondersTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PageVictorOpsOnCallRespondersTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterPageVictorOpsOnCallRespondersTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(PageVictorOpsOnCallRespondersTaskParamsAnyOf.class)); + final TypeAdapter adapterPageVictorOpsOnCallRespondersTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(PageVictorOpsOnCallRespondersTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PageVictorOpsOnCallRespondersTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `PageVictorOpsOnCallRespondersTaskParamsAnyOf` + if (value.getActualInstance() instanceof PageVictorOpsOnCallRespondersTaskParamsAnyOf) { + JsonElement element = adapterPageVictorOpsOnCallRespondersTaskParamsAnyOf.toJsonTree((PageVictorOpsOnCallRespondersTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PageVictorOpsOnCallRespondersTaskParamsAnyOf1` + if (value.getActualInstance() instanceof PageVictorOpsOnCallRespondersTaskParamsAnyOf1) { + JsonElement element = adapterPageVictorOpsOnCallRespondersTaskParamsAnyOf1.toJsonTree((PageVictorOpsOnCallRespondersTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: PageVictorOpsOnCallRespondersTaskParamsAnyOf, PageVictorOpsOnCallRespondersTaskParamsAnyOf1"); + } + + @Override + public PageVictorOpsOnCallRespondersTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize PageVictorOpsOnCallRespondersTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + PageVictorOpsOnCallRespondersTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterPageVictorOpsOnCallRespondersTaskParamsAnyOf; + PageVictorOpsOnCallRespondersTaskParams ret = new PageVictorOpsOnCallRespondersTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PageVictorOpsOnCallRespondersTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PageVictorOpsOnCallRespondersTaskParamsAnyOf'", e); + } + // deserialize PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + PageVictorOpsOnCallRespondersTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterPageVictorOpsOnCallRespondersTaskParamsAnyOf1; + PageVictorOpsOnCallRespondersTaskParams ret = new PageVictorOpsOnCallRespondersTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PageVictorOpsOnCallRespondersTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PageVictorOpsOnCallRespondersTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for PageVictorOpsOnCallRespondersTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + public PageVictorOpsOnCallRespondersTaskParams() { + super("anyOf", Boolean.FALSE); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); + public PageVictorOpsOnCallRespondersTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_ESCALATION_POLICIES = "escalation_policies"; - @SerializedName(SERIALIZED_NAME_ESCALATION_POLICIES) - @jakarta.annotation.Nullable - private List escalationPolicies = new ArrayList<>(); - - public static final String SERIALIZED_NAME_USERS = "users"; - @SerializedName(SERIALIZED_NAME_USERS) - @jakarta.annotation.Nullable - private List users = new ArrayList<>(); - - public static final String SERIALIZED_NAME_TITLE = "title"; - @SerializedName(SERIALIZED_NAME_TITLE) - @jakarta.annotation.Nullable - private String title; - public PageVictorOpsOnCallRespondersTaskParams() { - } - - public PageVictorOpsOnCallRespondersTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public PageVictorOpsOnCallRespondersTaskParams escalationPolicies(@jakarta.annotation.Nullable List escalationPolicies) { - this.escalationPolicies = escalationPolicies; - return this; - } - - public PageVictorOpsOnCallRespondersTaskParams addEscalationPoliciesItem(Object escalationPoliciesItem) { - if (this.escalationPolicies == null) { - this.escalationPolicies = new ArrayList<>(); + static { + schemas.put("PageVictorOpsOnCallRespondersTaskParamsAnyOf", PageVictorOpsOnCallRespondersTaskParamsAnyOf.class); + schemas.put("PageVictorOpsOnCallRespondersTaskParamsAnyOf1", PageVictorOpsOnCallRespondersTaskParamsAnyOf1.class); } - this.escalationPolicies.add(escalationPoliciesItem); - return this; - } - /** - * Get escalationPolicies - * @return escalationPolicies - */ - @jakarta.annotation.Nullable - public List getEscalationPolicies() { - return escalationPolicies; - } - - public void setEscalationPolicies(@jakarta.annotation.Nullable List escalationPolicies) { - this.escalationPolicies = escalationPolicies; - } - - - public PageVictorOpsOnCallRespondersTaskParams users(@jakarta.annotation.Nullable List users) { - this.users = users; - return this; - } - - public PageVictorOpsOnCallRespondersTaskParams addUsersItem(Object usersItem) { - if (this.users == null) { - this.users = new ArrayList<>(); + @Override + public Map> getSchemas() { + return PageVictorOpsOnCallRespondersTaskParams.schemas; } - this.users.add(usersItem); - return this; - } - - /** - * Get users - * @return users - */ - @jakarta.annotation.Nullable - public List getUsers() { - return users; - } - - public void setUsers(@jakarta.annotation.Nullable List users) { - this.users = users; - } - - - public PageVictorOpsOnCallRespondersTaskParams title(@jakarta.annotation.Nullable String title) { - this.title = title; - return this; - } - - /** - * Alert title. - * @return title - */ - @jakarta.annotation.Nullable - public String getTitle() { - return title; - } - - public void setTitle(@jakarta.annotation.Nullable String title) { - this.title = title; - } + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * PageVictorOpsOnCallRespondersTaskParamsAnyOf, PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof PageVictorOpsOnCallRespondersTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } + if (instance instanceof PageVictorOpsOnCallRespondersTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; + } - @Override - public boolean equals(Object o) { - if (this == o) { - return true; + throw new RuntimeException("Invalid instance type. Must be PageVictorOpsOnCallRespondersTaskParamsAnyOf, PageVictorOpsOnCallRespondersTaskParamsAnyOf1"); } - if (o == null || getClass() != o.getClass()) { - return false; - } - PageVictorOpsOnCallRespondersTaskParams pageVictorOpsOnCallRespondersTaskParams = (PageVictorOpsOnCallRespondersTaskParams) o; - return Objects.equals(this.taskType, pageVictorOpsOnCallRespondersTaskParams.taskType) && - Objects.equals(this.escalationPolicies, pageVictorOpsOnCallRespondersTaskParams.escalationPolicies) && - Objects.equals(this.users, pageVictorOpsOnCallRespondersTaskParams.users) && - Objects.equals(this.title, pageVictorOpsOnCallRespondersTaskParams.title); - } - - private static boolean equalsNullable(JsonNullable a, JsonNullable b) { - return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); - } - @Override - public int hashCode() { - return Objects.hash(taskType, escalationPolicies, users, title); - } - - private static int hashCodeNullable(JsonNullable a) { - if (a == null) { - return 1; + /** + * Get the actual instance, which can be the following: + * PageVictorOpsOnCallRespondersTaskParamsAnyOf, PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + * + * @return The actual instance (PageVictorOpsOnCallRespondersTaskParamsAnyOf, PageVictorOpsOnCallRespondersTaskParamsAnyOf1) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; - } - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class PageVictorOpsOnCallRespondersTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" escalationPolicies: ").append(toIndentedString(escalationPolicies)).append("\n"); - sb.append(" users: ").append(toIndentedString(users)).append("\n"); - sb.append(" title: ").append(toIndentedString(title)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + /** + * Get the actual instance of `PageVictorOpsOnCallRespondersTaskParamsAnyOf`. If the actual instance is not `PageVictorOpsOnCallRespondersTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PageVictorOpsOnCallRespondersTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `PageVictorOpsOnCallRespondersTaskParamsAnyOf` + */ + public PageVictorOpsOnCallRespondersTaskParamsAnyOf getPageVictorOpsOnCallRespondersTaskParamsAnyOf() throws ClassCastException { + return (PageVictorOpsOnCallRespondersTaskParamsAnyOf)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to PageVictorOpsOnCallRespondersTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!PageVictorOpsOnCallRespondersTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in PageVictorOpsOnCallRespondersTaskParams is not found in the empty JSON string", PageVictorOpsOnCallRespondersTaskParams.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!PageVictorOpsOnCallRespondersTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PageVictorOpsOnCallRespondersTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if (jsonObj.get("escalation_policies") != null && !jsonObj.get("escalation_policies").isJsonNull()) { - JsonArray jsonArrayescalationPolicies = jsonObj.getAsJsonArray("escalation_policies"); - if (jsonArrayescalationPolicies != null) { - // ensure the json data is an array - if (!jsonObj.get("escalation_policies").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `escalation_policies` to be an array in the JSON string but got `%s`", jsonObj.get("escalation_policies").toString())); - } + /** + * Get the actual instance of `PageVictorOpsOnCallRespondersTaskParamsAnyOf1`. If the actual instance is not `PageVictorOpsOnCallRespondersTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PageVictorOpsOnCallRespondersTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `PageVictorOpsOnCallRespondersTaskParamsAnyOf1` + */ + public PageVictorOpsOnCallRespondersTaskParamsAnyOf1 getPageVictorOpsOnCallRespondersTaskParamsAnyOf1() throws ClassCastException { + return (PageVictorOpsOnCallRespondersTaskParamsAnyOf1)super.getActualInstance(); + } - // validate the optional field `escalation_policies` (array) - for (int i = 0; i < jsonArrayescalationPolicies.size(); i++) { - }; + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PageVictorOpsOnCallRespondersTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with PageVictorOpsOnCallRespondersTaskParamsAnyOf + try { + PageVictorOpsOnCallRespondersTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PageVictorOpsOnCallRespondersTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if (jsonObj.get("users") != null && !jsonObj.get("users").isJsonNull()) { - JsonArray jsonArrayusers = jsonObj.getAsJsonArray("users"); - if (jsonArrayusers != null) { - // ensure the json data is an array - if (!jsonObj.get("users").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `users` to be an array in the JSON string but got `%s`", jsonObj.get("users").toString())); - } - - // validate the optional field `users` (array) - for (int i = 0; i < jsonArrayusers.size(); i++) { - }; + // validate the json string with PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + try { + PageVictorOpsOnCallRespondersTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PageVictorOpsOnCallRespondersTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!PageVictorOpsOnCallRespondersTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'PageVictorOpsOnCallRespondersTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(PageVictorOpsOnCallRespondersTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, PageVictorOpsOnCallRespondersTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public PageVictorOpsOnCallRespondersTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + throw new IOException(String.format("The JSON string is invalid for PageVictorOpsOnCallRespondersTaskParams with anyOf schemas: PageVictorOpsOnCallRespondersTaskParamsAnyOf, PageVictorOpsOnCallRespondersTaskParamsAnyOf1. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } - } - /** - * Create an instance of PageVictorOpsOnCallRespondersTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of PageVictorOpsOnCallRespondersTaskParams - * @throws IOException if the JSON string is invalid with respect to PageVictorOpsOnCallRespondersTaskParams - */ - public static PageVictorOpsOnCallRespondersTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, PageVictorOpsOnCallRespondersTaskParams.class); - } + /** + * Create an instance of PageVictorOpsOnCallRespondersTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of PageVictorOpsOnCallRespondersTaskParams + * @throws IOException if the JSON string is invalid with respect to PageVictorOpsOnCallRespondersTaskParams + */ + public static PageVictorOpsOnCallRespondersTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PageVictorOpsOnCallRespondersTaskParams.class); + } - /** - * Convert an instance of PageVictorOpsOnCallRespondersTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } + /** + * Convert an instance of PageVictorOpsOnCallRespondersTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf.java new file mode 100644 index 00000000..f54b137e --- /dev/null +++ b/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * PageVictorOpsOnCallRespondersTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class PageVictorOpsOnCallRespondersTaskParamsAnyOf { + public static final String SERIALIZED_NAME_USERS = "users"; + @SerializedName(SERIALIZED_NAME_USERS) + @jakarta.annotation.Nonnull + private List users = new ArrayList<>(); + + public PageVictorOpsOnCallRespondersTaskParamsAnyOf() { + } + + public PageVictorOpsOnCallRespondersTaskParamsAnyOf users(@jakarta.annotation.Nonnull List users) { + this.users = users; + return this; + } + + public PageVictorOpsOnCallRespondersTaskParamsAnyOf addUsersItem(AddActionItemTaskParamsPostToSlackChannelsInner usersItem) { + if (this.users == null) { + this.users = new ArrayList<>(); + } + this.users.add(usersItem); + return this; + } + + /** + * Get users + * @return users + */ + @jakarta.annotation.Nonnull + public List getUsers() { + return users; + } + + public void setUsers(@jakarta.annotation.Nonnull List users) { + this.users = users; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PageVictorOpsOnCallRespondersTaskParamsAnyOf pageVictorOpsOnCallRespondersTaskParamsAnyOf = (PageVictorOpsOnCallRespondersTaskParamsAnyOf) o; + return Objects.equals(this.users, pageVictorOpsOnCallRespondersTaskParamsAnyOf.users); + } + + @Override + public int hashCode() { + return Objects.hash(users); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PageVictorOpsOnCallRespondersTaskParamsAnyOf {\n"); + sb.append(" users: ").append(toIndentedString(users)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("users"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("users"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PageVictorOpsOnCallRespondersTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PageVictorOpsOnCallRespondersTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PageVictorOpsOnCallRespondersTaskParamsAnyOf is not found in the empty JSON string", PageVictorOpsOnCallRespondersTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PageVictorOpsOnCallRespondersTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PageVictorOpsOnCallRespondersTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : PageVictorOpsOnCallRespondersTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("users").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `users` to be an array in the JSON string but got `%s`", jsonObj.get("users").toString())); + } + + JsonArray jsonArrayusers = jsonObj.getAsJsonArray("users"); + // validate the required field `users` (array) + for (int i = 0; i < jsonArrayusers.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArrayusers.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PageVictorOpsOnCallRespondersTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PageVictorOpsOnCallRespondersTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PageVictorOpsOnCallRespondersTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PageVictorOpsOnCallRespondersTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PageVictorOpsOnCallRespondersTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PageVictorOpsOnCallRespondersTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of PageVictorOpsOnCallRespondersTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to PageVictorOpsOnCallRespondersTaskParamsAnyOf + */ + public static PageVictorOpsOnCallRespondersTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PageVictorOpsOnCallRespondersTaskParamsAnyOf.class); + } + + /** + * Convert an instance of PageVictorOpsOnCallRespondersTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.java b/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.java new file mode 100644 index 00000000..bd1ceb5a --- /dev/null +++ b/src/main/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class PageVictorOpsOnCallRespondersTaskParamsAnyOf1 { + public static final String SERIALIZED_NAME_ESCALATION_POLICIES = "escalation_policies"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICIES) + @jakarta.annotation.Nonnull + private List escalationPolicies = new ArrayList<>(); + + public PageVictorOpsOnCallRespondersTaskParamsAnyOf1() { + } + + public PageVictorOpsOnCallRespondersTaskParamsAnyOf1 escalationPolicies(@jakarta.annotation.Nonnull List escalationPolicies) { + this.escalationPolicies = escalationPolicies; + return this; + } + + public PageVictorOpsOnCallRespondersTaskParamsAnyOf1 addEscalationPoliciesItem(AddActionItemTaskParamsPostToSlackChannelsInner escalationPoliciesItem) { + if (this.escalationPolicies == null) { + this.escalationPolicies = new ArrayList<>(); + } + this.escalationPolicies.add(escalationPoliciesItem); + return this; + } + + /** + * Get escalationPolicies + * @return escalationPolicies + */ + @jakarta.annotation.Nonnull + public List getEscalationPolicies() { + return escalationPolicies; + } + + public void setEscalationPolicies(@jakarta.annotation.Nonnull List escalationPolicies) { + this.escalationPolicies = escalationPolicies; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PageVictorOpsOnCallRespondersTaskParamsAnyOf1 pageVictorOpsOnCallRespondersTaskParamsAnyOf1 = (PageVictorOpsOnCallRespondersTaskParamsAnyOf1) o; + return Objects.equals(this.escalationPolicies, pageVictorOpsOnCallRespondersTaskParamsAnyOf1.escalationPolicies); + } + + @Override + public int hashCode() { + return Objects.hash(escalationPolicies); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PageVictorOpsOnCallRespondersTaskParamsAnyOf1 {\n"); + sb.append(" escalationPolicies: ").append(toIndentedString(escalationPolicies)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("escalation_policies"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("escalation_policies"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PageVictorOpsOnCallRespondersTaskParamsAnyOf1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in PageVictorOpsOnCallRespondersTaskParamsAnyOf1 is not found in the empty JSON string", PageVictorOpsOnCallRespondersTaskParamsAnyOf1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PageVictorOpsOnCallRespondersTaskParamsAnyOf1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `PageVictorOpsOnCallRespondersTaskParamsAnyOf1` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : PageVictorOpsOnCallRespondersTaskParamsAnyOf1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("escalation_policies").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policies` to be an array in the JSON string but got `%s`", jsonObj.get("escalation_policies").toString())); + } + + JsonArray jsonArrayescalationPolicies = jsonObj.getAsJsonArray("escalation_policies"); + // validate the required field `escalation_policies` (array) + for (int i = 0; i < jsonArrayescalationPolicies.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArrayescalationPolicies.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PageVictorOpsOnCallRespondersTaskParamsAnyOf1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PageVictorOpsOnCallRespondersTaskParamsAnyOf1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(PageVictorOpsOnCallRespondersTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, PageVictorOpsOnCallRespondersTaskParamsAnyOf1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PageVictorOpsOnCallRespondersTaskParamsAnyOf1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of PageVictorOpsOnCallRespondersTaskParamsAnyOf1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + * @throws IOException if the JSON string is invalid with respect to PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + */ + public static PageVictorOpsOnCallRespondersTaskParamsAnyOf1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PageVictorOpsOnCallRespondersTaskParamsAnyOf1.class); + } + + /** + * Convert an instance of PageVictorOpsOnCallRespondersTaskParamsAnyOf1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/PatchAlertRoute.java b/src/main/java/com/rootly/client/model/PatchAlertRoute.java index d16a9eb9..4d0863a4 100644 --- a/src/main/java/com/rootly/client/model/PatchAlertRoute.java +++ b/src/main/java/com/rootly/client/model/PatchAlertRoute.java @@ -49,17 +49,17 @@ /** * PatchAlertRoute */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PatchAlertRoute { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private PatchAlertRouteData data; public PatchAlertRoute() { } - public PatchAlertRoute data(@javax.annotation.Nonnull PatchAlertRouteData data) { + public PatchAlertRoute data(@jakarta.annotation.Nonnull PatchAlertRouteData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public PatchAlertRoute data(@javax.annotation.Nonnull PatchAlertRouteData data) * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public PatchAlertRouteData getData() { return data; } - public void setData(@javax.annotation.Nonnull PatchAlertRouteData data) { + public void setData(@jakarta.annotation.Nonnull PatchAlertRouteData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/PatchAlertRouteData.java b/src/main/java/com/rootly/client/model/PatchAlertRouteData.java index 3e7fb935..0a0e1375 100644 --- a/src/main/java/com/rootly/client/model/PatchAlertRouteData.java +++ b/src/main/java/com/rootly/client/model/PatchAlertRouteData.java @@ -49,7 +49,7 @@ /** * PatchAlertRouteData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PatchAlertRouteData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private PatchAlertRouteDataAttributes attributes; public PatchAlertRouteData() { } - public PatchAlertRouteData type(@javax.annotation.Nonnull TypeEnum type) { + public PatchAlertRouteData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public PatchAlertRouteData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public PatchAlertRouteData attributes(@javax.annotation.Nonnull PatchAlertRouteDataAttributes attributes) { + public PatchAlertRouteData attributes(@jakarta.annotation.Nonnull PatchAlertRouteDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public PatchAlertRouteData attributes(@javax.annotation.Nonnull PatchAlertRouteD * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public PatchAlertRouteDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull PatchAlertRouteDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull PatchAlertRouteDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributes.java b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributes.java index 6abae3c4..b2fb18c2 100644 --- a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributes.java +++ b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributes.java @@ -52,37 +52,37 @@ /** * PatchAlertRouteDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PatchAlertRouteDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public static final String SERIALIZED_NAME_ENABLED = "enabled"; @SerializedName(SERIALIZED_NAME_ENABLED) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean enabled; public static final String SERIALIZED_NAME_ALERTS_SOURCE_IDS = "alerts_source_ids"; @SerializedName(SERIALIZED_NAME_ALERTS_SOURCE_IDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List alertsSourceIds = new ArrayList<>(); public static final String SERIALIZED_NAME_OWNING_TEAM_IDS = "owning_team_ids"; @SerializedName(SERIALIZED_NAME_OWNING_TEAM_IDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List owningTeamIds = new ArrayList<>(); public static final String SERIALIZED_NAME_RULES = "rules"; @SerializedName(SERIALIZED_NAME_RULES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List rules = new ArrayList<>(); public PatchAlertRouteDataAttributes() { } - public PatchAlertRouteDataAttributes name(@javax.annotation.Nullable String name) { + public PatchAlertRouteDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -91,17 +91,17 @@ public PatchAlertRouteDataAttributes name(@javax.annotation.Nullable String name * The name of the alert route * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public PatchAlertRouteDataAttributes enabled(@javax.annotation.Nullable Boolean enabled) { + public PatchAlertRouteDataAttributes enabled(@jakarta.annotation.Nullable Boolean enabled) { this.enabled = enabled; return this; } @@ -110,17 +110,17 @@ public PatchAlertRouteDataAttributes enabled(@javax.annotation.Nullable Boolean * Whether the alert route is enabled * @return enabled */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getEnabled() { return enabled; } - public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + public void setEnabled(@jakarta.annotation.Nullable Boolean enabled) { this.enabled = enabled; } - public PatchAlertRouteDataAttributes alertsSourceIds(@javax.annotation.Nullable List alertsSourceIds) { + public PatchAlertRouteDataAttributes alertsSourceIds(@jakarta.annotation.Nullable List alertsSourceIds) { this.alertsSourceIds = alertsSourceIds; return this; } @@ -137,17 +137,17 @@ public PatchAlertRouteDataAttributes addAlertsSourceIdsItem(UUID alertsSourceIds * Get alertsSourceIds * @return alertsSourceIds */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getAlertsSourceIds() { return alertsSourceIds; } - public void setAlertsSourceIds(@javax.annotation.Nullable List alertsSourceIds) { + public void setAlertsSourceIds(@jakarta.annotation.Nullable List alertsSourceIds) { this.alertsSourceIds = alertsSourceIds; } - public PatchAlertRouteDataAttributes owningTeamIds(@javax.annotation.Nullable List owningTeamIds) { + public PatchAlertRouteDataAttributes owningTeamIds(@jakarta.annotation.Nullable List owningTeamIds) { this.owningTeamIds = owningTeamIds; return this; } @@ -164,17 +164,17 @@ public PatchAlertRouteDataAttributes addOwningTeamIdsItem(UUID owningTeamIdsItem * Get owningTeamIds * @return owningTeamIds */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getOwningTeamIds() { return owningTeamIds; } - public void setOwningTeamIds(@javax.annotation.Nullable List owningTeamIds) { + public void setOwningTeamIds(@jakarta.annotation.Nullable List owningTeamIds) { this.owningTeamIds = owningTeamIds; } - public PatchAlertRouteDataAttributes rules(@javax.annotation.Nullable List rules) { + public PatchAlertRouteDataAttributes rules(@jakarta.annotation.Nullable List rules) { this.rules = rules; return this; } @@ -191,12 +191,12 @@ public PatchAlertRouteDataAttributes addRulesItem(PatchAlertRouteDataAttributesR * Get rules * @return rules */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getRules() { return rules; } - public void setRules(@javax.annotation.Nullable List rules) { + public void setRules(@jakarta.annotation.Nullable List rules) { this.rules = rules; } diff --git a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInner.java b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInner.java index 9259029d..b2fc1f97 100644 --- a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInner.java +++ b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInner.java @@ -53,47 +53,47 @@ /** * PatchAlertRouteDataAttributesRulesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PatchAlertRouteDataAttributesRulesInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID id; public static final String SERIALIZED_NAME_DESTROY = "_destroy"; @SerializedName(SERIALIZED_NAME_DESTROY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean destroy; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; public static final String SERIALIZED_NAME_FALLBACK_RULE = "fallback_rule"; @SerializedName(SERIALIZED_NAME_FALLBACK_RULE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean fallbackRule = false; public static final String SERIALIZED_NAME_DESTINATIONS = "destinations"; @SerializedName(SERIALIZED_NAME_DESTINATIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List destinations = new ArrayList<>(); public static final String SERIALIZED_NAME_CONDITION_GROUPS = "condition_groups"; @SerializedName(SERIALIZED_NAME_CONDITION_GROUPS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List conditionGroups = new ArrayList<>(); public PatchAlertRouteDataAttributesRulesInner() { } - public PatchAlertRouteDataAttributesRulesInner id(@javax.annotation.Nullable UUID id) { + public PatchAlertRouteDataAttributesRulesInner id(@jakarta.annotation.Nullable UUID id) { this.id = id; return this; } @@ -102,17 +102,17 @@ public PatchAlertRouteDataAttributesRulesInner id(@javax.annotation.Nullable UUI * The ID of the alert routing rule. Required for updating or deleting existing rules. * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getId() { return id; } - public void setId(@javax.annotation.Nullable UUID id) { + public void setId(@jakarta.annotation.Nullable UUID id) { this.id = id; } - public PatchAlertRouteDataAttributesRulesInner destroy(@javax.annotation.Nullable Boolean destroy) { + public PatchAlertRouteDataAttributesRulesInner destroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; return this; } @@ -121,17 +121,17 @@ public PatchAlertRouteDataAttributesRulesInner destroy(@javax.annotation.Nullabl * Set to true to delete this rule. When true, only the id field is required. * @return destroy */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getDestroy() { return destroy; } - public void setDestroy(@javax.annotation.Nullable Boolean destroy) { + public void setDestroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; } - public PatchAlertRouteDataAttributesRulesInner name(@javax.annotation.Nullable String name) { + public PatchAlertRouteDataAttributesRulesInner name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -140,17 +140,17 @@ public PatchAlertRouteDataAttributesRulesInner name(@javax.annotation.Nullable S * The name of the alert routing rule * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public PatchAlertRouteDataAttributesRulesInner position(@javax.annotation.Nullable Integer position) { + public PatchAlertRouteDataAttributesRulesInner position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -159,17 +159,17 @@ public PatchAlertRouteDataAttributesRulesInner position(@javax.annotation.Nullab * The position of the alert routing rule for ordering evaluation * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public PatchAlertRouteDataAttributesRulesInner fallbackRule(@javax.annotation.Nullable Boolean fallbackRule) { + public PatchAlertRouteDataAttributesRulesInner fallbackRule(@jakarta.annotation.Nullable Boolean fallbackRule) { this.fallbackRule = fallbackRule; return this; } @@ -178,17 +178,17 @@ public PatchAlertRouteDataAttributesRulesInner fallbackRule(@javax.annotation.Nu * Whether this is a fallback rule * @return fallbackRule */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getFallbackRule() { return fallbackRule; } - public void setFallbackRule(@javax.annotation.Nullable Boolean fallbackRule) { + public void setFallbackRule(@jakarta.annotation.Nullable Boolean fallbackRule) { this.fallbackRule = fallbackRule; } - public PatchAlertRouteDataAttributesRulesInner destinations(@javax.annotation.Nullable List destinations) { + public PatchAlertRouteDataAttributesRulesInner destinations(@jakarta.annotation.Nullable List destinations) { this.destinations = destinations; return this; } @@ -205,17 +205,17 @@ public PatchAlertRouteDataAttributesRulesInner addDestinationsItem(PatchAlertRou * Get destinations * @return destinations */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getDestinations() { return destinations; } - public void setDestinations(@javax.annotation.Nullable List destinations) { + public void setDestinations(@jakarta.annotation.Nullable List destinations) { this.destinations = destinations; } - public PatchAlertRouteDataAttributesRulesInner conditionGroups(@javax.annotation.Nullable List conditionGroups) { + public PatchAlertRouteDataAttributesRulesInner conditionGroups(@jakarta.annotation.Nullable List conditionGroups) { this.conditionGroups = conditionGroups; return this; } @@ -232,12 +232,12 @@ public PatchAlertRouteDataAttributesRulesInner addConditionGroupsItem(PatchAlert * Get conditionGroups * @return conditionGroups */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getConditionGroups() { return conditionGroups; } - public void setConditionGroups(@javax.annotation.Nullable List conditionGroups) { + public void setConditionGroups(@jakarta.annotation.Nullable List conditionGroups) { this.conditionGroups = conditionGroups; } diff --git a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.java b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.java index 6e4b73a2..76f44b3e 100644 --- a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.java +++ b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner.java @@ -52,32 +52,32 @@ /** * PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID id; public static final String SERIALIZED_NAME_DESTROY = "_destroy"; @SerializedName(SERIALIZED_NAME_DESTROY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean destroy; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; @SerializedName(SERIALIZED_NAME_CONDITIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List conditions = new ArrayList<>(); public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner() { } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner id(@javax.annotation.Nullable UUID id) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner id(@jakarta.annotation.Nullable UUID id) { this.id = id; return this; } @@ -86,17 +86,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner id(@javax.ann * The ID of the condition group. Required for updating or deleting existing condition groups. * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getId() { return id; } - public void setId(@javax.annotation.Nullable UUID id) { + public void setId(@jakarta.annotation.Nullable UUID id) { this.id = id; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner destroy(@javax.annotation.Nullable Boolean destroy) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner destroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; return this; } @@ -105,17 +105,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner destroy(@java * Set to true to delete this condition group * @return destroy */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getDestroy() { return destroy; } - public void setDestroy(@javax.annotation.Nullable Boolean destroy) { + public void setDestroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner position(@javax.annotation.Nullable Integer position) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -124,17 +124,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner position(@jav * The position of the condition group * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner conditions(@javax.annotation.Nullable List conditions) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner conditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; return this; } @@ -151,12 +151,12 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInner addConditions * Get conditions * @return conditions */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getConditions() { return conditions; } - public void setConditions(@javax.annotation.Nullable List conditions) { + public void setConditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; } diff --git a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java index 53e3fc85..9781d4f3 100644 --- a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java +++ b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner.java @@ -52,16 +52,16 @@ /** * PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID id; public static final String SERIALIZED_NAME_DESTROY = "_destroy"; @SerializedName(SERIALIZED_NAME_DESTROY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean destroy; /** @@ -130,12 +130,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PROPERTY_FIELD_CONDITION_TYPE = "property_field_condition_type"; @SerializedName(SERIALIZED_NAME_PROPERTY_FIELD_CONDITION_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private PropertyFieldConditionTypeEnum propertyFieldConditionType; public static final String SERIALIZED_NAME_PROPERTY_FIELD_NAME = "property_field_name"; @SerializedName(SERIALIZED_NAME_PROPERTY_FIELD_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String propertyFieldName; /** @@ -194,22 +194,22 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PROPERTY_FIELD_TYPE = "property_field_type"; @SerializedName(SERIALIZED_NAME_PROPERTY_FIELD_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private PropertyFieldTypeEnum propertyFieldType; public static final String SERIALIZED_NAME_PROPERTY_FIELD_VALUE = "property_field_value"; @SerializedName(SERIALIZED_NAME_PROPERTY_FIELD_VALUE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String propertyFieldValue; public static final String SERIALIZED_NAME_PROPERTY_FIELD_VALUES = "property_field_values"; @SerializedName(SERIALIZED_NAME_PROPERTY_FIELD_VALUES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List propertyFieldValues; public static final String SERIALIZED_NAME_ALERT_URGENCY_IDS = "alert_urgency_ids"; @SerializedName(SERIALIZED_NAME_ALERT_URGENCY_IDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List alertUrgencyIds; /** @@ -264,18 +264,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CONDITIONABLE_TYPE = "conditionable_type"; @SerializedName(SERIALIZED_NAME_CONDITIONABLE_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private ConditionableTypeEnum conditionableType; public static final String SERIALIZED_NAME_CONDITIONABLE_ID = "conditionable_id"; @SerializedName(SERIALIZED_NAME_CONDITIONABLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID conditionableId; public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner() { } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner id(@javax.annotation.Nullable UUID id) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner id(@jakarta.annotation.Nullable UUID id) { this.id = id; return this; } @@ -284,17 +284,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * The ID of the condition. Required for updating or deleting existing conditions. * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getId() { return id; } - public void setId(@javax.annotation.Nullable UUID id) { + public void setId(@jakarta.annotation.Nullable UUID id) { this.id = id; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner destroy(@javax.annotation.Nullable Boolean destroy) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner destroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; return this; } @@ -303,17 +303,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * Set to true to delete this condition * @return destroy */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getDestroy() { return destroy; } - public void setDestroy(@javax.annotation.Nullable Boolean destroy) { + public void setDestroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldConditionType(@javax.annotation.Nullable PropertyFieldConditionTypeEnum propertyFieldConditionType) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldConditionType(@jakarta.annotation.Nullable PropertyFieldConditionTypeEnum propertyFieldConditionType) { this.propertyFieldConditionType = propertyFieldConditionType; return this; } @@ -322,17 +322,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * Get propertyFieldConditionType * @return propertyFieldConditionType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public PropertyFieldConditionTypeEnum getPropertyFieldConditionType() { return propertyFieldConditionType; } - public void setPropertyFieldConditionType(@javax.annotation.Nullable PropertyFieldConditionTypeEnum propertyFieldConditionType) { + public void setPropertyFieldConditionType(@jakarta.annotation.Nullable PropertyFieldConditionTypeEnum propertyFieldConditionType) { this.propertyFieldConditionType = propertyFieldConditionType; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldName(@javax.annotation.Nullable String propertyFieldName) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldName(@jakarta.annotation.Nullable String propertyFieldName) { this.propertyFieldName = propertyFieldName; return this; } @@ -341,17 +341,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * The name of the property field * @return propertyFieldName */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getPropertyFieldName() { return propertyFieldName; } - public void setPropertyFieldName(@javax.annotation.Nullable String propertyFieldName) { + public void setPropertyFieldName(@jakarta.annotation.Nullable String propertyFieldName) { this.propertyFieldName = propertyFieldName; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldType(@javax.annotation.Nullable PropertyFieldTypeEnum propertyFieldType) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldType(@jakarta.annotation.Nullable PropertyFieldTypeEnum propertyFieldType) { this.propertyFieldType = propertyFieldType; return this; } @@ -360,17 +360,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * Get propertyFieldType * @return propertyFieldType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public PropertyFieldTypeEnum getPropertyFieldType() { return propertyFieldType; } - public void setPropertyFieldType(@javax.annotation.Nullable PropertyFieldTypeEnum propertyFieldType) { + public void setPropertyFieldType(@jakarta.annotation.Nullable PropertyFieldTypeEnum propertyFieldType) { this.propertyFieldType = propertyFieldType; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldValue(@javax.annotation.Nullable String propertyFieldValue) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldValue(@jakarta.annotation.Nullable String propertyFieldValue) { this.propertyFieldValue = propertyFieldValue; return this; } @@ -379,17 +379,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * The value of the property field * @return propertyFieldValue */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getPropertyFieldValue() { return propertyFieldValue; } - public void setPropertyFieldValue(@javax.annotation.Nullable String propertyFieldValue) { + public void setPropertyFieldValue(@jakarta.annotation.Nullable String propertyFieldValue) { this.propertyFieldValue = propertyFieldValue; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldValues(@javax.annotation.Nullable List propertyFieldValues) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner propertyFieldValues(@jakarta.annotation.Nullable List propertyFieldValues) { this.propertyFieldValues = propertyFieldValues; return this; } @@ -406,17 +406,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * Get propertyFieldValues * @return propertyFieldValues */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getPropertyFieldValues() { return propertyFieldValues; } - public void setPropertyFieldValues(@javax.annotation.Nullable List propertyFieldValues) { + public void setPropertyFieldValues(@jakarta.annotation.Nullable List propertyFieldValues) { this.propertyFieldValues = propertyFieldValues; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner alertUrgencyIds(@javax.annotation.Nullable List alertUrgencyIds) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner alertUrgencyIds(@jakarta.annotation.Nullable List alertUrgencyIds) { this.alertUrgencyIds = alertUrgencyIds; return this; } @@ -433,17 +433,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * The Alert Urgency IDs to check in the condition * @return alertUrgencyIds */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getAlertUrgencyIds() { return alertUrgencyIds; } - public void setAlertUrgencyIds(@javax.annotation.Nullable List alertUrgencyIds) { + public void setAlertUrgencyIds(@jakarta.annotation.Nullable List alertUrgencyIds) { this.alertUrgencyIds = alertUrgencyIds; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner conditionableType(@javax.annotation.Nullable ConditionableTypeEnum conditionableType) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner conditionableType(@jakarta.annotation.Nullable ConditionableTypeEnum conditionableType) { this.conditionableType = conditionableType; return this; } @@ -452,17 +452,17 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * The type of the conditionable * @return conditionableType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public ConditionableTypeEnum getConditionableType() { return conditionableType; } - public void setConditionableType(@javax.annotation.Nullable ConditionableTypeEnum conditionableType) { + public void setConditionableType(@jakarta.annotation.Nullable ConditionableTypeEnum conditionableType) { this.conditionableType = conditionableType; } - public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner conditionableId(@javax.annotation.Nullable UUID conditionableId) { + public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner conditionableId(@jakarta.annotation.Nullable UUID conditionableId) { this.conditionableId = conditionableId; return this; } @@ -471,12 +471,12 @@ public PatchAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInne * The ID of the conditionable * @return conditionableId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getConditionableId() { return conditionableId; } - public void setConditionableId(@javax.annotation.Nullable UUID conditionableId) { + public void setConditionableId(@jakarta.annotation.Nullable UUID conditionableId) { this.conditionableId = conditionableId; } diff --git a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.java b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.java index f102c584..52cf2591 100644 --- a/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.java +++ b/src/main/java/com/rootly/client/model/PatchAlertRouteDataAttributesRulesInnerDestinationsInner.java @@ -49,16 +49,16 @@ /** * PatchAlertRouteDataAttributesRulesInnerDestinationsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PatchAlertRouteDataAttributesRulesInnerDestinationsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID id; public static final String SERIALIZED_NAME_DESTROY = "_destroy"; @SerializedName(SERIALIZED_NAME_DESTROY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean destroy; /** @@ -119,18 +119,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TARGET_TYPE = "target_type"; @SerializedName(SERIALIZED_NAME_TARGET_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TargetTypeEnum targetType; public static final String SERIALIZED_NAME_TARGET_ID = "target_id"; @SerializedName(SERIALIZED_NAME_TARGET_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID targetId; public PatchAlertRouteDataAttributesRulesInnerDestinationsInner() { } - public PatchAlertRouteDataAttributesRulesInnerDestinationsInner id(@javax.annotation.Nullable UUID id) { + public PatchAlertRouteDataAttributesRulesInnerDestinationsInner id(@jakarta.annotation.Nullable UUID id) { this.id = id; return this; } @@ -139,17 +139,17 @@ public PatchAlertRouteDataAttributesRulesInnerDestinationsInner id(@javax.annota * The ID of the destination. Required for updating or deleting existing destinations. * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getId() { return id; } - public void setId(@javax.annotation.Nullable UUID id) { + public void setId(@jakarta.annotation.Nullable UUID id) { this.id = id; } - public PatchAlertRouteDataAttributesRulesInnerDestinationsInner destroy(@javax.annotation.Nullable Boolean destroy) { + public PatchAlertRouteDataAttributesRulesInnerDestinationsInner destroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; return this; } @@ -158,17 +158,17 @@ public PatchAlertRouteDataAttributesRulesInnerDestinationsInner destroy(@javax.a * Set to true to delete this destination * @return destroy */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getDestroy() { return destroy; } - public void setDestroy(@javax.annotation.Nullable Boolean destroy) { + public void setDestroy(@jakarta.annotation.Nullable Boolean destroy) { this.destroy = destroy; } - public PatchAlertRouteDataAttributesRulesInnerDestinationsInner targetType(@javax.annotation.Nullable TargetTypeEnum targetType) { + public PatchAlertRouteDataAttributesRulesInnerDestinationsInner targetType(@jakarta.annotation.Nullable TargetTypeEnum targetType) { this.targetType = targetType; return this; } @@ -177,17 +177,17 @@ public PatchAlertRouteDataAttributesRulesInnerDestinationsInner targetType(@java * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. * @return targetType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TargetTypeEnum getTargetType() { return targetType; } - public void setTargetType(@javax.annotation.Nullable TargetTypeEnum targetType) { + public void setTargetType(@jakarta.annotation.Nullable TargetTypeEnum targetType) { this.targetType = targetType; } - public PatchAlertRouteDataAttributesRulesInnerDestinationsInner targetId(@javax.annotation.Nullable UUID targetId) { + public PatchAlertRouteDataAttributesRulesInnerDestinationsInner targetId(@jakarta.annotation.Nullable UUID targetId) { this.targetId = targetId; return this; } @@ -196,12 +196,12 @@ public PatchAlertRouteDataAttributesRulesInnerDestinationsInner targetId(@javax. * The ID of the target * @return targetId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getTargetId() { return targetId; } - public void setTargetId(@javax.annotation.Nullable UUID targetId) { + public void setTargetId(@jakarta.annotation.Nullable UUID targetId) { this.targetId = targetId; } diff --git a/src/main/java/com/rootly/client/model/PhoneVerificationResponse.java b/src/main/java/com/rootly/client/model/PhoneVerificationResponse.java index 3abce3fd..e8dfd3ec 100644 --- a/src/main/java/com/rootly/client/model/PhoneVerificationResponse.java +++ b/src/main/java/com/rootly/client/model/PhoneVerificationResponse.java @@ -48,7 +48,7 @@ /** * PhoneVerificationResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PhoneVerificationResponse { public static final String SERIALIZED_NAME_MESSAGE = "message"; @SerializedName(SERIALIZED_NAME_MESSAGE) diff --git a/src/main/java/com/rootly/client/model/Playbook.java b/src/main/java/com/rootly/client/model/Playbook.java index cc41d798..0db31119 100644 --- a/src/main/java/com/rootly/client/model/Playbook.java +++ b/src/main/java/com/rootly/client/model/Playbook.java @@ -51,7 +51,7 @@ /** * Playbook */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Playbook { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/PlaybookList.java b/src/main/java/com/rootly/client/model/PlaybookList.java index 543a687a..5cc07425 100644 --- a/src/main/java/com/rootly/client/model/PlaybookList.java +++ b/src/main/java/com/rootly/client/model/PlaybookList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PlaybookResponseData; @@ -53,7 +54,7 @@ /** * PlaybookList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PlaybookList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class PlaybookList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PlaybookList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public PlaybookList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PlaybookList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { PlaybookList playbookList = (PlaybookList) o; return Objects.equals(this.data, playbookList.data) && Objects.equals(this.links, playbookList.links) && - Objects.equals(this.meta, playbookList.meta); + Objects.equals(this.meta, playbookList.meta) && + Objects.equals(this.included, playbookList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PlaybookResponse.java b/src/main/java/com/rootly/client/model/PlaybookResponse.java index ca9ee5fc..d2b572e0 100644 --- a/src/main/java/com/rootly/client/model/PlaybookResponse.java +++ b/src/main/java/com/rootly/client/model/PlaybookResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PlaybookResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * PlaybookResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PlaybookResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private PlaybookResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PlaybookResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull PlaybookResponseData data) { } + public PlaybookResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PlaybookResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } PlaybookResponse playbookResponse = (PlaybookResponse) o; - return Objects.equals(this.data, playbookResponse.data); + return Objects.equals(this.data, playbookResponse.data) && + Objects.equals(this.included, playbookResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class PlaybookResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` PlaybookResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PlaybookResponseData.java b/src/main/java/com/rootly/client/model/PlaybookResponseData.java index 672d218e..274c187a 100644 --- a/src/main/java/com/rootly/client/model/PlaybookResponseData.java +++ b/src/main/java/com/rootly/client/model/PlaybookResponseData.java @@ -49,7 +49,7 @@ /** * PlaybookResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PlaybookResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/PlaybookTask.java b/src/main/java/com/rootly/client/model/PlaybookTask.java index 4b2d3f72..9c6dfe3b 100644 --- a/src/main/java/com/rootly/client/model/PlaybookTask.java +++ b/src/main/java/com/rootly/client/model/PlaybookTask.java @@ -49,7 +49,7 @@ /** * PlaybookTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PlaybookTask { public static final String SERIALIZED_NAME_PLAYBOOK_ID = "playbook_id"; @SerializedName(SERIALIZED_NAME_PLAYBOOK_ID) diff --git a/src/main/java/com/rootly/client/model/PlaybookTaskList.java b/src/main/java/com/rootly/client/model/PlaybookTaskList.java index d31f17e1..07934bc6 100644 --- a/src/main/java/com/rootly/client/model/PlaybookTaskList.java +++ b/src/main/java/com/rootly/client/model/PlaybookTaskList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PlaybookTaskResponseData; @@ -53,7 +54,7 @@ /** * PlaybookTaskList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PlaybookTaskList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class PlaybookTaskList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PlaybookTaskList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public PlaybookTaskList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PlaybookTaskList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { PlaybookTaskList playbookTaskList = (PlaybookTaskList) o; return Objects.equals(this.data, playbookTaskList.data) && Objects.equals(this.links, playbookTaskList.links) && - Objects.equals(this.meta, playbookTaskList.meta); + Objects.equals(this.meta, playbookTaskList.meta) && + Objects.equals(this.included, playbookTaskList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PlaybookTaskResponse.java b/src/main/java/com/rootly/client/model/PlaybookTaskResponse.java index 01781f72..17291b71 100644 --- a/src/main/java/com/rootly/client/model/PlaybookTaskResponse.java +++ b/src/main/java/com/rootly/client/model/PlaybookTaskResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PlaybookTaskResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * PlaybookTaskResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PlaybookTaskResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private PlaybookTaskResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PlaybookTaskResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull PlaybookTaskResponseData data) { } + public PlaybookTaskResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PlaybookTaskResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } PlaybookTaskResponse playbookTaskResponse = (PlaybookTaskResponse) o; - return Objects.equals(this.data, playbookTaskResponse.data); + return Objects.equals(this.data, playbookTaskResponse.data) && + Objects.equals(this.included, playbookTaskResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class PlaybookTaskResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` PlaybookTaskResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PlaybookTaskResponseData.java b/src/main/java/com/rootly/client/model/PlaybookTaskResponseData.java index eefa6d58..77180acf 100644 --- a/src/main/java/com/rootly/client/model/PlaybookTaskResponseData.java +++ b/src/main/java/com/rootly/client/model/PlaybookTaskResponseData.java @@ -49,7 +49,7 @@ /** * PlaybookTaskResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PlaybookTaskResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/PostMortemTemplate.java b/src/main/java/com/rootly/client/model/PostMortemTemplate.java index 7404a961..98f63c47 100644 --- a/src/main/java/com/rootly/client/model/PostMortemTemplate.java +++ b/src/main/java/com/rootly/client/model/PostMortemTemplate.java @@ -49,7 +49,7 @@ /** * PostMortemTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PostMortemTemplate { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -151,6 +151,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public PostMortemTemplate() { } + public PostMortemTemplate( + String slug + ) { + this(); + this.slug = slug; + } + public PostMortemTemplate name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -170,11 +177,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public PostMortemTemplate slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slugified name of the postmortem template * @return slug @@ -184,9 +186,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public PostMortemTemplate _default(@jakarta.annotation.Nullable Boolean _default) { diff --git a/src/main/java/com/rootly/client/model/PostMortemTemplateList.java b/src/main/java/com/rootly/client/model/PostMortemTemplateList.java index a5b91bb7..ab4658b4 100644 --- a/src/main/java/com/rootly/client/model/PostMortemTemplateList.java +++ b/src/main/java/com/rootly/client/model/PostMortemTemplateList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PostMortemTemplateResponseData; @@ -53,7 +54,7 @@ /** * PostMortemTemplateList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PostMortemTemplateList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class PostMortemTemplateList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PostMortemTemplateList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public PostMortemTemplateList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PostMortemTemplateList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { PostMortemTemplateList postMortemTemplateList = (PostMortemTemplateList) o; return Objects.equals(this.data, postMortemTemplateList.data) && Objects.equals(this.links, postMortemTemplateList.links) && - Objects.equals(this.meta, postMortemTemplateList.meta); + Objects.equals(this.meta, postMortemTemplateList.meta) && + Objects.equals(this.included, postMortemTemplateList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PostMortemTemplateResponse.java b/src/main/java/com/rootly/client/model/PostMortemTemplateResponse.java index f74c5fe4..65f4d272 100644 --- a/src/main/java/com/rootly/client/model/PostMortemTemplateResponse.java +++ b/src/main/java/com/rootly/client/model/PostMortemTemplateResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PostMortemTemplateResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * PostMortemTemplateResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PostMortemTemplateResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private PostMortemTemplateResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PostMortemTemplateResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull PostMortemTemplateResponseData d } + public PostMortemTemplateResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PostMortemTemplateResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } PostMortemTemplateResponse postMortemTemplateResponse = (PostMortemTemplateResponse) o; - return Objects.equals(this.data, postMortemTemplateResponse.data); + return Objects.equals(this.data, postMortemTemplateResponse.data) && + Objects.equals(this.included, postMortemTemplateResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class PostMortemTemplateResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` PostMortemTemplateResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PostMortemTemplateResponseData.java b/src/main/java/com/rootly/client/model/PostMortemTemplateResponseData.java index dab9fc69..17c2a70a 100644 --- a/src/main/java/com/rootly/client/model/PostMortemTemplateResponseData.java +++ b/src/main/java/com/rootly/client/model/PostMortemTemplateResponseData.java @@ -49,7 +49,7 @@ /** * PostMortemTemplateResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PostMortemTemplateResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/PostMortemTriggerParams.java b/src/main/java/com/rootly/client/model/PostMortemTriggerParams.java index 0e35d5ab..021fe333 100644 --- a/src/main/java/com/rootly/client/model/PostMortemTriggerParams.java +++ b/src/main/java/com/rootly/client/model/PostMortemTriggerParams.java @@ -51,7 +51,7 @@ /** * PostMortemTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PostMortemTriggerParams { /** * Gets or Sets triggerType @@ -1180,6 +1180,87 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private IncidentConditionCauseEnum incidentConditionCause = IncidentConditionCauseEnum.ANY; + /** + * Gets or Sets incidentConditionLabel + */ + @JsonAdapter(IncidentConditionLabelEnum.Adapter.class) + public enum IncidentConditionLabelEnum { + IS("IS"), + + IS_NOT("IS NOT"), + + ANY("ANY"), + + CONTAINS("CONTAINS"), + + CONTAINS_ALL("CONTAINS_ALL"), + + CONTAINS_NONE("CONTAINS_NONE"), + + NONE("NONE"), + + SET("SET"), + + UNSET("UNSET"); + + private String value; + + IncidentConditionLabelEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IncidentConditionLabelEnum fromValue(String value) { + for (IncidentConditionLabelEnum b : IncidentConditionLabelEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IncidentConditionLabelEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IncidentConditionLabelEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IncidentConditionLabelEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IncidentConditionLabelEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_INCIDENT_CONDITION_LABEL = "incident_condition_label"; + @SerializedName(SERIALIZED_NAME_INCIDENT_CONDITION_LABEL) + @jakarta.annotation.Nullable + private IncidentConditionLabelEnum incidentConditionLabel = IncidentConditionLabelEnum.ANY; + + public static final String SERIALIZED_NAME_INCIDENT_CONDITION_LABEL_USE_REGEXP = "incident_condition_label_use_regexp"; + @SerializedName(SERIALIZED_NAME_INCIDENT_CONDITION_LABEL_USE_REGEXP) + @jakarta.annotation.Nullable + private Boolean incidentConditionLabelUseRegexp = false; + + public static final String SERIALIZED_NAME_INCIDENT_LABELS = "incident_labels"; + @SerializedName(SERIALIZED_NAME_INCIDENT_LABELS) + @jakarta.annotation.Nullable + private List incidentLabels = new ArrayList<>(); + /** * [DEPRECATED] Use incident_condition_cause instead */ @@ -2231,6 +2312,71 @@ public void setIncidentConditionCause(@jakarta.annotation.Nullable IncidentCondi } + public PostMortemTriggerParams incidentConditionLabel(@jakarta.annotation.Nullable IncidentConditionLabelEnum incidentConditionLabel) { + this.incidentConditionLabel = incidentConditionLabel; + return this; + } + + /** + * Get incidentConditionLabel + * @return incidentConditionLabel + */ + @jakarta.annotation.Nullable + public IncidentConditionLabelEnum getIncidentConditionLabel() { + return incidentConditionLabel; + } + + public void setIncidentConditionLabel(@jakarta.annotation.Nullable IncidentConditionLabelEnum incidentConditionLabel) { + this.incidentConditionLabel = incidentConditionLabel; + } + + + public PostMortemTriggerParams incidentConditionLabelUseRegexp(@jakarta.annotation.Nullable Boolean incidentConditionLabelUseRegexp) { + this.incidentConditionLabelUseRegexp = incidentConditionLabelUseRegexp; + return this; + } + + /** + * Get incidentConditionLabelUseRegexp + * @return incidentConditionLabelUseRegexp + */ + @jakarta.annotation.Nullable + public Boolean getIncidentConditionLabelUseRegexp() { + return incidentConditionLabelUseRegexp; + } + + public void setIncidentConditionLabelUseRegexp(@jakarta.annotation.Nullable Boolean incidentConditionLabelUseRegexp) { + this.incidentConditionLabelUseRegexp = incidentConditionLabelUseRegexp; + } + + + public PostMortemTriggerParams incidentLabels(@jakarta.annotation.Nullable List incidentLabels) { + this.incidentLabels = incidentLabels; + return this; + } + + public PostMortemTriggerParams addIncidentLabelsItem(String incidentLabelsItem) { + if (this.incidentLabels == null) { + this.incidentLabels = new ArrayList<>(); + } + this.incidentLabels.add(incidentLabelsItem); + return this; + } + + /** + * Get incidentLabels + * @return incidentLabels + */ + @jakarta.annotation.Nullable + public List getIncidentLabels() { + return incidentLabels; + } + + public void setIncidentLabels(@jakarta.annotation.Nullable List incidentLabels) { + this.incidentLabels = incidentLabels; + } + + public PostMortemTriggerParams incidentPostMortemConditionCause(@jakarta.annotation.Nullable IncidentPostMortemConditionCauseEnum incidentPostMortemConditionCause) { this.incidentPostMortemConditionCause = incidentPostMortemConditionCause; return this; @@ -2477,6 +2623,9 @@ public boolean equals(Object o) { Objects.equals(this.incidentConditionFunctionality, postMortemTriggerParams.incidentConditionFunctionality) && Objects.equals(this.incidentConditionGroup, postMortemTriggerParams.incidentConditionGroup) && Objects.equals(this.incidentConditionCause, postMortemTriggerParams.incidentConditionCause) && + Objects.equals(this.incidentConditionLabel, postMortemTriggerParams.incidentConditionLabel) && + Objects.equals(this.incidentConditionLabelUseRegexp, postMortemTriggerParams.incidentConditionLabelUseRegexp) && + Objects.equals(this.incidentLabels, postMortemTriggerParams.incidentLabels) && Objects.equals(this.incidentPostMortemConditionCause, postMortemTriggerParams.incidentPostMortemConditionCause) && Objects.equals(this.incidentConditionSummary, postMortemTriggerParams.incidentConditionSummary) && Objects.equals(this.incidentConditionStartedAt, postMortemTriggerParams.incidentConditionStartedAt) && @@ -2496,7 +2645,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(triggerType, triggers, incidentVisibilities, incidentKinds, incidentStatuses, incidentInactivityDuration, incidentCondition, incidentConditionVisibility, incidentConditionKind, incidentConditionStatus, incidentConditionSubStatus, incidentConditionEnvironment, incidentConditionSeverity, incidentConditionIncidentType, incidentConditionIncidentRoles, incidentConditionService, incidentConditionFunctionality, incidentConditionGroup, incidentConditionCause, incidentPostMortemConditionCause, incidentConditionSummary, incidentConditionStartedAt, incidentConditionDetectedAt, incidentConditionAcknowledgedAt, incidentConditionMitigatedAt, incidentConditionResolvedAt, incidentConditionalInactivity, incidentPostMortemCondition, incidentPostMortemConditionStatus, incidentPostMortemStatuses); + return Objects.hash(triggerType, triggers, incidentVisibilities, incidentKinds, incidentStatuses, incidentInactivityDuration, incidentCondition, incidentConditionVisibility, incidentConditionKind, incidentConditionStatus, incidentConditionSubStatus, incidentConditionEnvironment, incidentConditionSeverity, incidentConditionIncidentType, incidentConditionIncidentRoles, incidentConditionService, incidentConditionFunctionality, incidentConditionGroup, incidentConditionCause, incidentConditionLabel, incidentConditionLabelUseRegexp, incidentLabels, incidentPostMortemConditionCause, incidentConditionSummary, incidentConditionStartedAt, incidentConditionDetectedAt, incidentConditionAcknowledgedAt, incidentConditionMitigatedAt, incidentConditionResolvedAt, incidentConditionalInactivity, incidentPostMortemCondition, incidentPostMortemConditionStatus, incidentPostMortemStatuses); } private static int hashCodeNullable(JsonNullable a) { @@ -2529,6 +2678,9 @@ public String toString() { sb.append(" incidentConditionFunctionality: ").append(toIndentedString(incidentConditionFunctionality)).append("\n"); sb.append(" incidentConditionGroup: ").append(toIndentedString(incidentConditionGroup)).append("\n"); sb.append(" incidentConditionCause: ").append(toIndentedString(incidentConditionCause)).append("\n"); + sb.append(" incidentConditionLabel: ").append(toIndentedString(incidentConditionLabel)).append("\n"); + sb.append(" incidentConditionLabelUseRegexp: ").append(toIndentedString(incidentConditionLabelUseRegexp)).append("\n"); + sb.append(" incidentLabels: ").append(toIndentedString(incidentLabels)).append("\n"); sb.append(" incidentPostMortemConditionCause: ").append(toIndentedString(incidentPostMortemConditionCause)).append("\n"); sb.append(" incidentConditionSummary: ").append(toIndentedString(incidentConditionSummary)).append("\n"); sb.append(" incidentConditionStartedAt: ").append(toIndentedString(incidentConditionStartedAt)).append("\n"); @@ -2581,6 +2733,9 @@ private String toIndentedString(Object o) { openapiFields.add("incident_condition_functionality"); openapiFields.add("incident_condition_group"); openapiFields.add("incident_condition_cause"); + openapiFields.add("incident_condition_label"); + openapiFields.add("incident_condition_label_use_regexp"); + openapiFields.add("incident_labels"); openapiFields.add("incident_post_mortem_condition_cause"); openapiFields.add("incident_condition_summary"); openapiFields.add("incident_condition_started_at"); @@ -2741,6 +2896,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_condition_cause") != null && !jsonObj.get("incident_condition_cause").isJsonNull()) { IncidentConditionCauseEnum.validateJsonElement(jsonObj.get("incident_condition_cause")); } + if ((jsonObj.get("incident_condition_label") != null && !jsonObj.get("incident_condition_label").isJsonNull()) && !jsonObj.get("incident_condition_label").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_condition_label` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_condition_label").toString())); + } + // validate the optional field `incident_condition_label` + if (jsonObj.get("incident_condition_label") != null && !jsonObj.get("incident_condition_label").isJsonNull()) { + IncidentConditionLabelEnum.validateJsonElement(jsonObj.get("incident_condition_label")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("incident_labels") != null && !jsonObj.get("incident_labels").isJsonNull() && !jsonObj.get("incident_labels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_labels` to be an array in the JSON string but got `%s`", jsonObj.get("incident_labels").toString())); + } if ((jsonObj.get("incident_post_mortem_condition_cause") != null && !jsonObj.get("incident_post_mortem_condition_cause").isJsonNull()) && !jsonObj.get("incident_post_mortem_condition_cause").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `incident_post_mortem_condition_cause` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_post_mortem_condition_cause").toString())); } diff --git a/src/main/java/com/rootly/client/model/PrintTaskParams.java b/src/main/java/com/rootly/client/model/PrintTaskParams.java index 3d8ce882..03d49fb1 100644 --- a/src/main/java/com/rootly/client/model/PrintTaskParams.java +++ b/src/main/java/com/rootly/client/model/PrintTaskParams.java @@ -48,7 +48,7 @@ /** * PrintTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PrintTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/PublishIncidentTaskParams.java b/src/main/java/com/rootly/client/model/PublishIncidentTaskParams.java index 8b54bf83..a14a1798 100644 --- a/src/main/java/com/rootly/client/model/PublishIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/PublishIncidentTaskParams.java @@ -21,7 +21,9 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -50,7 +52,7 @@ /** * PublishIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PublishIncidentTaskParams { /** * Gets or Sets taskType @@ -209,6 +211,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private String statusPageId; + public static final String SERIALIZED_NAME_STATUS_PAGE_IDS = "status_page_ids"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_IDS) + @jakarta.annotation.Nullable + private List statusPageIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_INTEGRATION_PAYLOAD = "integration_payload"; @SerializedName(SERIALIZED_NAME_INTEGRATION_PAYLOAD) @jakarta.annotation.Nullable @@ -388,6 +395,33 @@ public void setStatusPageId(@jakarta.annotation.Nonnull String statusPageId) { } + public PublishIncidentTaskParams statusPageIds(@jakarta.annotation.Nullable List statusPageIds) { + this.statusPageIds = statusPageIds; + return this; + } + + public PublishIncidentTaskParams addStatusPageIdsItem(String statusPageIdsItem) { + if (this.statusPageIds == null) { + this.statusPageIds = new ArrayList<>(); + } + this.statusPageIds.add(statusPageIdsItem); + return this; + } + + /** + * Publishes the update to every listed status page (requires the status-page-v3-limited-bulk-publish feature). When set, it takes precedence over status_page_id and the first entry becomes status_page_id. + * @return statusPageIds + */ + @jakarta.annotation.Nullable + public List getStatusPageIds() { + return statusPageIds; + } + + public void setStatusPageIds(@jakarta.annotation.Nullable List statusPageIds) { + this.statusPageIds = statusPageIds; + } + + public PublishIncidentTaskParams integrationPayload(@jakarta.annotation.Nullable String integrationPayload) { this.integrationPayload = integrationPayload; return this; @@ -426,6 +460,7 @@ public boolean equals(Object o) { Objects.equals(this.shouldTweet, publishIncidentTaskParams.shouldTweet) && Objects.equals(this.statusPageTemplate, publishIncidentTaskParams.statusPageTemplate) && Objects.equals(this.statusPageId, publishIncidentTaskParams.statusPageId) && + Objects.equals(this.statusPageIds, publishIncidentTaskParams.statusPageIds) && Objects.equals(this.integrationPayload, publishIncidentTaskParams.integrationPayload); } @@ -435,7 +470,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(taskType, incident, publicTitle, event, status, notifySubscribers, shouldTweet, statusPageTemplate, statusPageId, integrationPayload); + return Objects.hash(taskType, incident, publicTitle, event, status, notifySubscribers, shouldTweet, statusPageTemplate, statusPageId, statusPageIds, integrationPayload); } private static int hashCodeNullable(JsonNullable a) { @@ -458,6 +493,7 @@ public String toString() { sb.append(" shouldTweet: ").append(toIndentedString(shouldTweet)).append("\n"); sb.append(" statusPageTemplate: ").append(toIndentedString(statusPageTemplate)).append("\n"); sb.append(" statusPageId: ").append(toIndentedString(statusPageId)).append("\n"); + sb.append(" statusPageIds: ").append(toIndentedString(statusPageIds)).append("\n"); sb.append(" integrationPayload: ").append(toIndentedString(integrationPayload)).append("\n"); sb.append("}"); return sb.toString(); @@ -490,6 +526,7 @@ private String toIndentedString(Object o) { openapiFields.add("should_tweet"); openapiFields.add("status_page_template"); openapiFields.add("status_page_id"); + openapiFields.add("status_page_ids"); openapiFields.add("integration_payload"); // a set of required properties/fields (JSON key names) @@ -555,6 +592,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("status_page_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `status_page_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_id").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("status_page_ids") != null && !jsonObj.get("status_page_ids").isJsonNull() && !jsonObj.get("status_page_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_ids` to be an array in the JSON string but got `%s`", jsonObj.get("status_page_ids").toString())); + } if ((jsonObj.get("integration_payload") != null && !jsonObj.get("integration_payload").isJsonNull()) && !jsonObj.get("integration_payload").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `integration_payload` to be a primitive type in the JSON string but got `%s`", jsonObj.get("integration_payload").toString())); } diff --git a/src/main/java/com/rootly/client/model/Pulse.java b/src/main/java/com/rootly/client/model/Pulse.java index 7a29858c..58ee235e 100644 --- a/src/main/java/com/rootly/client/model/Pulse.java +++ b/src/main/java/com/rootly/client/model/Pulse.java @@ -55,7 +55,7 @@ /** * Pulse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Pulse { public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) diff --git a/src/main/java/com/rootly/client/model/PulseList.java b/src/main/java/com/rootly/client/model/PulseList.java index e0ae2d8b..36edfe50 100644 --- a/src/main/java/com/rootly/client/model/PulseList.java +++ b/src/main/java/com/rootly/client/model/PulseList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PulseResponseData; @@ -53,7 +54,7 @@ /** * PulseList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PulseList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class PulseList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PulseList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public PulseList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PulseList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { PulseList pulseList = (PulseList) o; return Objects.equals(this.data, pulseList.data) && Objects.equals(this.links, pulseList.links) && - Objects.equals(this.meta, pulseList.meta); + Objects.equals(this.meta, pulseList.meta) && + Objects.equals(this.included, pulseList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PulseResponse.java b/src/main/java/com/rootly/client/model/PulseResponse.java index 3291cdd0..b171a593 100644 --- a/src/main/java/com/rootly/client/model/PulseResponse.java +++ b/src/main/java/com/rootly/client/model/PulseResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PulseResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * PulseResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PulseResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private PulseResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public PulseResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull PulseResponseData data) { } + public PulseResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public PulseResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } PulseResponse pulseResponse = (PulseResponse) o; - return Objects.equals(this.data, pulseResponse.data); + return Objects.equals(this.data, pulseResponse.data) && + Objects.equals(this.included, pulseResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class PulseResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` PulseResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/PulseResponseData.java b/src/main/java/com/rootly/client/model/PulseResponseData.java index 91be7a21..bc2c2977 100644 --- a/src/main/java/com/rootly/client/model/PulseResponseData.java +++ b/src/main/java/com/rootly/client/model/PulseResponseData.java @@ -49,7 +49,7 @@ /** * PulseResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PulseResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/PulseTriggerParams.java b/src/main/java/com/rootly/client/model/PulseTriggerParams.java index 396dfe18..3c018d68 100644 --- a/src/main/java/com/rootly/client/model/PulseTriggerParams.java +++ b/src/main/java/com/rootly/client/model/PulseTriggerParams.java @@ -51,7 +51,7 @@ /** * PulseTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class PulseTriggerParams { /** * Gets or Sets triggerType diff --git a/src/main/java/com/rootly/client/model/Receipt.java b/src/main/java/com/rootly/client/model/Receipt.java new file mode 100644 index 00000000..8b72a717 --- /dev/null +++ b/src/main/java/com/rootly/client/model/Receipt.java @@ -0,0 +1,420 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * Receipt + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class Receipt { + /** + * Delivery state of the receipt. + */ + @JsonAdapter(StateEnum.Adapter.class) + public enum StateEnum { + PENDING("pending"), + + DONE("done"), + + FAILED("failed"); + + private String value; + + StateEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StateEnum fromValue(String value) { + for (StateEnum b : StateEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StateEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StateEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StateEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StateEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATE = "state"; + @SerializedName(SERIALIZED_NAME_STATE) + @jakarta.annotation.Nonnull + private StateEnum state; + + /** + * Reason a receipt failed. Present when state is failed. + */ + @JsonAdapter(ReasonEnum.Adapter.class) + public enum ReasonEnum { + NO_ROUTE_MATCHED("no_route_matched"), + + DEDUPLICATED("deduplicated"), + + SUPPRESSED("suppressed"), + + VALIDATION_ERROR("validation_error"); + + private String value; + + ReasonEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ReasonEnum fromValue(String value) { + for (ReasonEnum b : ReasonEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ReasonEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ReasonEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ReasonEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ReasonEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_REASON = "reason"; + @SerializedName(SERIALIZED_NAME_REASON) + @jakarta.annotation.Nullable + private ReasonEnum reason; + + public static final String SERIALIZED_NAME_RESOURCE_TYPE = "resource_type"; + @SerializedName(SERIALIZED_NAME_RESOURCE_TYPE) + @jakarta.annotation.Nullable + private String resourceType; + + public static final String SERIALIZED_NAME_RESOURCE_ID = "resource_id"; + @SerializedName(SERIALIZED_NAME_RESOURCE_ID) + @jakarta.annotation.Nullable + private String resourceId; + + public Receipt() { + } + + public Receipt state(@jakarta.annotation.Nonnull StateEnum state) { + this.state = state; + return this; + } + + /** + * Delivery state of the receipt. + * @return state + */ + @jakarta.annotation.Nonnull + public StateEnum getState() { + return state; + } + + public void setState(@jakarta.annotation.Nonnull StateEnum state) { + this.state = state; + } + + + public Receipt reason(@jakarta.annotation.Nullable ReasonEnum reason) { + this.reason = reason; + return this; + } + + /** + * Reason a receipt failed. Present when state is failed. + * @return reason + */ + @jakarta.annotation.Nullable + public ReasonEnum getReason() { + return reason; + } + + public void setReason(@jakarta.annotation.Nullable ReasonEnum reason) { + this.reason = reason; + } + + + public Receipt resourceType(@jakarta.annotation.Nullable String resourceType) { + this.resourceType = resourceType; + return this; + } + + /** + * Type of the referenced resource (present when set). + * @return resourceType + */ + @jakarta.annotation.Nullable + public String getResourceType() { + return resourceType; + } + + public void setResourceType(@jakarta.annotation.Nullable String resourceType) { + this.resourceType = resourceType; + } + + + public Receipt resourceId(@jakarta.annotation.Nullable String resourceId) { + this.resourceId = resourceId; + return this; + } + + /** + * ID of the referenced resource (present when set). + * @return resourceId + */ + @jakarta.annotation.Nullable + public String getResourceId() { + return resourceId; + } + + public void setResourceId(@jakarta.annotation.Nullable String resourceId) { + this.resourceId = resourceId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Receipt receipt = (Receipt) o; + return Objects.equals(this.state, receipt.state) && + Objects.equals(this.reason, receipt.reason) && + Objects.equals(this.resourceType, receipt.resourceType) && + Objects.equals(this.resourceId, receipt.resourceId); + } + + @Override + public int hashCode() { + return Objects.hash(state, reason, resourceType, resourceId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Receipt {\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" resourceType: ").append(toIndentedString(resourceType)).append("\n"); + sb.append(" resourceId: ").append(toIndentedString(resourceId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("state"); + openapiFields.add("reason"); + openapiFields.add("resource_type"); + openapiFields.add("resource_id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("state"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Receipt + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Receipt.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in Receipt is not found in the empty JSON string", Receipt.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Receipt.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `Receipt` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Receipt.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("state").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("state").toString())); + } + // validate the required field `state` + StateEnum.validateJsonElement(jsonObj.get("state")); + if ((jsonObj.get("reason") != null && !jsonObj.get("reason").isJsonNull()) && !jsonObj.get("reason").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `reason` to be a primitive type in the JSON string but got `%s`", jsonObj.get("reason").toString())); + } + // validate the optional field `reason` + if (jsonObj.get("reason") != null && !jsonObj.get("reason").isJsonNull()) { + ReasonEnum.validateJsonElement(jsonObj.get("reason")); + } + if ((jsonObj.get("resource_type") != null && !jsonObj.get("resource_type").isJsonNull()) && !jsonObj.get("resource_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `resource_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("resource_type").toString())); + } + if ((jsonObj.get("resource_id") != null && !jsonObj.get("resource_id").isJsonNull()) && !jsonObj.get("resource_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `resource_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("resource_id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Receipt.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Receipt' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(Receipt.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, Receipt value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Receipt read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of Receipt given an JSON string + * + * @param jsonString JSON string + * @return An instance of Receipt + * @throws IOException if the JSON string is invalid with respect to Receipt + */ + public static Receipt fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Receipt.class); + } + + /** + * Convert an instance of Receipt to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/RedisClientTaskParams.java b/src/main/java/com/rootly/client/model/RedisClientTaskParams.java index a8e04778..d023b908 100644 --- a/src/main/java/com/rootly/client/model/RedisClientTaskParams.java +++ b/src/main/java/com/rootly/client/model/RedisClientTaskParams.java @@ -51,7 +51,7 @@ /** * RedisClientTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RedisClientTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/RemoveGoogleDocsPermissionsTaskParams.java b/src/main/java/com/rootly/client/model/RemoveGoogleDocsPermissionsTaskParams.java index a2cce1e2..9e3c5118 100644 --- a/src/main/java/com/rootly/client/model/RemoveGoogleDocsPermissionsTaskParams.java +++ b/src/main/java/com/rootly/client/model/RemoveGoogleDocsPermissionsTaskParams.java @@ -48,7 +48,7 @@ /** * RemoveGoogleDocsPermissionsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RemoveGoogleDocsPermissionsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/RemoveSubscribers.java b/src/main/java/com/rootly/client/model/RemoveSubscribers.java index 06d3b604..2b537cf7 100644 --- a/src/main/java/com/rootly/client/model/RemoveSubscribers.java +++ b/src/main/java/com/rootly/client/model/RemoveSubscribers.java @@ -49,7 +49,7 @@ /** * RemoveSubscribers */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RemoveSubscribers { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/RemoveSubscribersData.java b/src/main/java/com/rootly/client/model/RemoveSubscribersData.java index b7eee67a..4c5fb39f 100644 --- a/src/main/java/com/rootly/client/model/RemoveSubscribersData.java +++ b/src/main/java/com/rootly/client/model/RemoveSubscribersData.java @@ -49,7 +49,7 @@ /** * RemoveSubscribersData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RemoveSubscribersData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/RemoveSubscribersDataAttributes.java b/src/main/java/com/rootly/client/model/RemoveSubscribersDataAttributes.java index f32fa88f..29511a81 100644 --- a/src/main/java/com/rootly/client/model/RemoveSubscribersDataAttributes.java +++ b/src/main/java/com/rootly/client/model/RemoveSubscribersDataAttributes.java @@ -51,7 +51,7 @@ /** * RemoveSubscribersDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RemoveSubscribersDataAttributes { public static final String SERIALIZED_NAME_USER_IDS = "user_ids"; @SerializedName(SERIALIZED_NAME_USER_IDS) diff --git a/src/main/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParams.java b/src/main/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParams.java new file mode 100644 index 00000000..30f9f4d6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParams.java @@ -0,0 +1,329 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * RenameGoogleChatSpaceTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class RenameGoogleChatSpaceTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + RENAME_GOOGLE_CHAT_SPACE("rename_google_chat_space"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_SPACE = "space"; + @SerializedName(SERIALIZED_NAME_SPACE) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner space; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nonnull + private String title; + + public RenameGoogleChatSpaceTaskParams() { + } + + public RenameGoogleChatSpaceTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public RenameGoogleChatSpaceTaskParams space(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + return this; + } + + /** + * Get space + * @return space + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getSpace() { + return space; + } + + public void setSpace(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + } + + + public RenameGoogleChatSpaceTaskParams title(@jakarta.annotation.Nonnull String title) { + this.title = title; + return this; + } + + /** + * Get title + * @return title + */ + @jakarta.annotation.Nonnull + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nonnull String title) { + this.title = title; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RenameGoogleChatSpaceTaskParams renameGoogleChatSpaceTaskParams = (RenameGoogleChatSpaceTaskParams) o; + return Objects.equals(this.taskType, renameGoogleChatSpaceTaskParams.taskType) && + Objects.equals(this.space, renameGoogleChatSpaceTaskParams.space) && + Objects.equals(this.title, renameGoogleChatSpaceTaskParams.title); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, space, title); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RenameGoogleChatSpaceTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" space: ").append(toIndentedString(space)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("space"); + openapiFields.add("title"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("space"); + openapiRequiredFields.add("title"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RenameGoogleChatSpaceTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RenameGoogleChatSpaceTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in RenameGoogleChatSpaceTaskParams is not found in the empty JSON string", RenameGoogleChatSpaceTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RenameGoogleChatSpaceTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `RenameGoogleChatSpaceTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RenameGoogleChatSpaceTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // validate the required field `space` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("space")); + if (!jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RenameGoogleChatSpaceTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RenameGoogleChatSpaceTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RenameGoogleChatSpaceTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RenameGoogleChatSpaceTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RenameGoogleChatSpaceTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of RenameGoogleChatSpaceTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of RenameGoogleChatSpaceTaskParams + * @throws IOException if the JSON string is invalid with respect to RenameGoogleChatSpaceTaskParams + */ + public static RenameGoogleChatSpaceTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RenameGoogleChatSpaceTaskParams.class); + } + + /** + * Convert an instance of RenameGoogleChatSpaceTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/RenameMicrosoftTeamsChannelTaskParams.java b/src/main/java/com/rootly/client/model/RenameMicrosoftTeamsChannelTaskParams.java index 66d5b5d3..58108b8e 100644 --- a/src/main/java/com/rootly/client/model/RenameMicrosoftTeamsChannelTaskParams.java +++ b/src/main/java/com/rootly/client/model/RenameMicrosoftTeamsChannelTaskParams.java @@ -49,7 +49,7 @@ /** * RenameMicrosoftTeamsChannelTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RenameMicrosoftTeamsChannelTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/RenameSlackChannelTaskParams.java b/src/main/java/com/rootly/client/model/RenameSlackChannelTaskParams.java index 1c7e3597..767a5046 100644 --- a/src/main/java/com/rootly/client/model/RenameSlackChannelTaskParams.java +++ b/src/main/java/com/rootly/client/model/RenameSlackChannelTaskParams.java @@ -49,7 +49,7 @@ /** * RenameSlackChannelTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RenameSlackChannelTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/ResolveAlert.java b/src/main/java/com/rootly/client/model/ResolveAlert.java index 02cc0666..cd313b11 100644 --- a/src/main/java/com/rootly/client/model/ResolveAlert.java +++ b/src/main/java/com/rootly/client/model/ResolveAlert.java @@ -49,7 +49,7 @@ /** * ResolveAlert */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ResolveAlert { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/ResolveAlertData.java b/src/main/java/com/rootly/client/model/ResolveAlertData.java index ba47e6a6..2a36e4b6 100644 --- a/src/main/java/com/rootly/client/model/ResolveAlertData.java +++ b/src/main/java/com/rootly/client/model/ResolveAlertData.java @@ -49,7 +49,7 @@ /** * ResolveAlertData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ResolveAlertData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/ResolveAlertDataAttributes.java b/src/main/java/com/rootly/client/model/ResolveAlertDataAttributes.java index 33b47501..3bcda96c 100644 --- a/src/main/java/com/rootly/client/model/ResolveAlertDataAttributes.java +++ b/src/main/java/com/rootly/client/model/ResolveAlertDataAttributes.java @@ -49,7 +49,7 @@ /** * ResolveAlertDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ResolveAlertDataAttributes { public static final String SERIALIZED_NAME_RESOLUTION_MESSAGE = "resolution_message"; @SerializedName(SERIALIZED_NAME_RESOLUTION_MESSAGE) diff --git a/src/main/java/com/rootly/client/model/ResolveIncident.java b/src/main/java/com/rootly/client/model/ResolveIncident.java index 982c96d4..78b5aeaa 100644 --- a/src/main/java/com/rootly/client/model/ResolveIncident.java +++ b/src/main/java/com/rootly/client/model/ResolveIncident.java @@ -49,7 +49,7 @@ /** * ResolveIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ResolveIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/ResolveIncidentData.java b/src/main/java/com/rootly/client/model/ResolveIncidentData.java index e2addf64..23f65674 100644 --- a/src/main/java/com/rootly/client/model/ResolveIncidentData.java +++ b/src/main/java/com/rootly/client/model/ResolveIncidentData.java @@ -49,7 +49,7 @@ /** * ResolveIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ResolveIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/ResolveIncidentDataAttributes.java b/src/main/java/com/rootly/client/model/ResolveIncidentDataAttributes.java index 7f72ab06..03082bd5 100644 --- a/src/main/java/com/rootly/client/model/ResolveIncidentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/ResolveIncidentDataAttributes.java @@ -49,7 +49,7 @@ /** * ResolveIncidentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ResolveIncidentDataAttributes { public static final String SERIALIZED_NAME_RESOLUTION_MESSAGE = "resolution_message"; @SerializedName(SERIALIZED_NAME_RESOLUTION_MESSAGE) diff --git a/src/main/java/com/rootly/client/model/RestartIncident.java b/src/main/java/com/rootly/client/model/RestartIncident.java index d6153ca6..75cb7011 100644 --- a/src/main/java/com/rootly/client/model/RestartIncident.java +++ b/src/main/java/com/rootly/client/model/RestartIncident.java @@ -49,7 +49,7 @@ /** * RestartIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RestartIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/RestartIncidentData.java b/src/main/java/com/rootly/client/model/RestartIncidentData.java index 412c81b0..280b2dc0 100644 --- a/src/main/java/com/rootly/client/model/RestartIncidentData.java +++ b/src/main/java/com/rootly/client/model/RestartIncidentData.java @@ -48,7 +48,7 @@ /** * RestartIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RestartIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/RetrospectiveConfiguration.java b/src/main/java/com/rootly/client/model/RetrospectiveConfiguration.java index 18a2e3e3..68c8e68c 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveConfiguration.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveConfiguration.java @@ -51,7 +51,7 @@ /** * RetrospectiveConfiguration */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveConfiguration { /** * The kind of the configuration. diff --git a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationList.java b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationList.java index 49ad52ff..2f69a00d 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationList.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveConfigurationListDataInner; import java.io.IOException; import java.util.ArrayList; @@ -51,13 +52,18 @@ /** * RetrospectiveConfigurationList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveConfigurationList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private List data = new ArrayList<>(); + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveConfigurationList() { } @@ -88,6 +94,33 @@ public void setData(@jakarta.annotation.Nonnull List included) { + this.included = included; + return this; + } + + public RetrospectiveConfigurationList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -98,12 +131,13 @@ public boolean equals(Object o) { return false; } RetrospectiveConfigurationList retrospectiveConfigurationList = (RetrospectiveConfigurationList) o; - return Objects.equals(this.data, retrospectiveConfigurationList.data); + return Objects.equals(this.data, retrospectiveConfigurationList.data) && + Objects.equals(this.included, retrospectiveConfigurationList.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -111,6 +145,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RetrospectiveConfigurationList {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -134,6 +169,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -178,6 +214,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti for (int i = 0; i < jsonArraydata.size(); i++) { RetrospectiveConfigurationListDataInner.validateJsonElement(jsonArraydata.get(i)); }; + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationListDataInner.java b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationListDataInner.java index 0cfaa8e8..b997cf14 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationListDataInner.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationListDataInner.java @@ -49,7 +49,7 @@ /** * RetrospectiveConfigurationListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveConfigurationListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponse.java b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponse.java index 7c9521de..792c5822 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponse.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveConfigurationResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * RetrospectiveConfigurationResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveConfigurationResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private RetrospectiveConfigurationResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveConfigurationResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull RetrospectiveConfigurationRespon } + public RetrospectiveConfigurationResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveConfigurationResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } RetrospectiveConfigurationResponse retrospectiveConfigurationResponse = (RetrospectiveConfigurationResponse) o; - return Objects.equals(this.data, retrospectiveConfigurationResponse.data); + return Objects.equals(this.data, retrospectiveConfigurationResponse.data) && + Objects.equals(this.included, retrospectiveConfigurationResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RetrospectiveConfigurationResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` RetrospectiveConfigurationResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponseData.java b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponseData.java index fac82dc7..0c00fa7a 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponseData.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveConfigurationResponseData.java @@ -49,7 +49,7 @@ /** * RetrospectiveConfigurationResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveConfigurationResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcess.java b/src/main/java/com/rootly/client/model/RetrospectiveProcess.java index c5174f60..4442eb15 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcess.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcess.java @@ -50,7 +50,7 @@ /** * RetrospectiveProcess */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcess { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroup.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroup.java index fddc9065..c990a2a8 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroup.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroup.java @@ -48,7 +48,7 @@ /** * RetrospectiveProcessGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroup { public static final String SERIALIZED_NAME_RETROSPECTIVE_PROCESS_ID = "retrospective_process_id"; @SerializedName(SERIALIZED_NAME_RETROSPECTIVE_PROCESS_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupList.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupList.java index 8e70effd..2087045a 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupList.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveProcessGroupResponseData; @@ -53,7 +54,7 @@ /** * RetrospectiveProcessGroupList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroupList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class RetrospectiveProcessGroupList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveProcessGroupList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public RetrospectiveProcessGroupList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveProcessGroupList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { RetrospectiveProcessGroupList retrospectiveProcessGroupList = (RetrospectiveProcessGroupList) o; return Objects.equals(this.data, retrospectiveProcessGroupList.data) && Objects.equals(this.links, retrospectiveProcessGroupList.links) && - Objects.equals(this.meta, retrospectiveProcessGroupList.meta); + Objects.equals(this.meta, retrospectiveProcessGroupList.meta) && + Objects.equals(this.included, retrospectiveProcessGroupList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponse.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponse.java index 9a70ec9d..d51b19b0 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponse.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveProcessGroupResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * RetrospectiveProcessGroupResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroupResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private RetrospectiveProcessGroupResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveProcessGroupResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull RetrospectiveProcessGroupRespons } + public RetrospectiveProcessGroupResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveProcessGroupResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } RetrospectiveProcessGroupResponse retrospectiveProcessGroupResponse = (RetrospectiveProcessGroupResponse) o; - return Objects.equals(this.data, retrospectiveProcessGroupResponse.data); + return Objects.equals(this.data, retrospectiveProcessGroupResponse.data) && + Objects.equals(this.included, retrospectiveProcessGroupResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RetrospectiveProcessGroupResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` RetrospectiveProcessGroupResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponseData.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponseData.java index 2f3af389..8df4e733 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponseData.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupResponseData.java @@ -49,7 +49,7 @@ /** * RetrospectiveProcessGroupResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroupResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStep.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStep.java index 4b663a22..7473b160 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStep.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStep.java @@ -48,7 +48,7 @@ /** * RetrospectiveProcessGroupStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroupStep { public static final String SERIALIZED_NAME_RETROSPECTIVE_PROCESS_GROUP_ID = "retrospective_process_group_id"; @SerializedName(SERIALIZED_NAME_RETROSPECTIVE_PROCESS_GROUP_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepList.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepList.java index 9be974bf..049dd7a9 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepList.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveProcessGroupStepResponseData; @@ -53,7 +54,7 @@ /** * RetrospectiveProcessGroupStepList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroupStepList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class RetrospectiveProcessGroupStepList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveProcessGroupStepList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public RetrospectiveProcessGroupStepList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveProcessGroupStepList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { RetrospectiveProcessGroupStepList retrospectiveProcessGroupStepList = (RetrospectiveProcessGroupStepList) o; return Objects.equals(this.data, retrospectiveProcessGroupStepList.data) && Objects.equals(this.links, retrospectiveProcessGroupStepList.links) && - Objects.equals(this.meta, retrospectiveProcessGroupStepList.meta); + Objects.equals(this.meta, retrospectiveProcessGroupStepList.meta) && + Objects.equals(this.included, retrospectiveProcessGroupStepList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponse.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponse.java index 087b2b18..00de0207 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponse.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveProcessGroupStepResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * RetrospectiveProcessGroupStepResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroupStepResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private RetrospectiveProcessGroupStepResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveProcessGroupStepResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull RetrospectiveProcessGroupStepRes } + public RetrospectiveProcessGroupStepResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveProcessGroupStepResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } RetrospectiveProcessGroupStepResponse retrospectiveProcessGroupStepResponse = (RetrospectiveProcessGroupStepResponse) o; - return Objects.equals(this.data, retrospectiveProcessGroupStepResponse.data); + return Objects.equals(this.data, retrospectiveProcessGroupStepResponse.data) && + Objects.equals(this.included, retrospectiveProcessGroupStepResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RetrospectiveProcessGroupStepResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` RetrospectiveProcessGroupStepResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseData.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseData.java index a61104c4..4e497c14 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseData.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseData.java @@ -49,7 +49,7 @@ /** * RetrospectiveProcessGroupStepResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessGroupStepResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessList.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessList.java index 4f704adf..aee38aee 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessList.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveProcessListDataInner; @@ -53,7 +54,7 @@ /** * RetrospectiveProcessList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class RetrospectiveProcessList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveProcessList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public RetrospectiveProcessList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveProcessList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { RetrospectiveProcessList retrospectiveProcessList = (RetrospectiveProcessList) o; return Objects.equals(this.data, retrospectiveProcessList.data) && Objects.equals(this.links, retrospectiveProcessList.links) && - Objects.equals(this.meta, retrospectiveProcessList.meta); + Objects.equals(this.meta, retrospectiveProcessList.meta) && + Objects.equals(this.included, retrospectiveProcessList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessListDataInner.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessListDataInner.java index c57ffeb7..6d567ad6 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessListDataInner.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessListDataInner.java @@ -49,7 +49,7 @@ /** * RetrospectiveProcessListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessResponse.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessResponse.java index a3d7da55..f7e66f1f 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessResponse.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveProcessResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * RetrospectiveProcessResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private RetrospectiveProcessResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveProcessResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull RetrospectiveProcessResponseData } + public RetrospectiveProcessResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveProcessResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } RetrospectiveProcessResponse retrospectiveProcessResponse = (RetrospectiveProcessResponse) o; - return Objects.equals(this.data, retrospectiveProcessResponse.data); + return Objects.equals(this.data, retrospectiveProcessResponse.data) && + Objects.equals(this.included, retrospectiveProcessResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RetrospectiveProcessResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` RetrospectiveProcessResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveProcessResponseData.java b/src/main/java/com/rootly/client/model/RetrospectiveProcessResponseData.java index 9e656331..0e103d44 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveProcessResponseData.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveProcessResponseData.java @@ -49,7 +49,7 @@ /** * RetrospectiveProcessResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveProcessResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RetrospectiveStep.java b/src/main/java/com/rootly/client/model/RetrospectiveStep.java index 29fda80e..1d4d6506 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveStep.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveStep.java @@ -49,7 +49,7 @@ /** * RetrospectiveStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveStep { public static final String SERIALIZED_NAME_RETROSPECTIVE_PROCESS_ID = "retrospective_process_id"; @SerializedName(SERIALIZED_NAME_RETROSPECTIVE_PROCESS_ID) @@ -104,6 +104,13 @@ public class RetrospectiveStep { public RetrospectiveStep() { } + public RetrospectiveStep( + String slug + ) { + this(); + this.slug = slug; + } + public RetrospectiveStep retrospectiveProcessId(@jakarta.annotation.Nonnull String retrospectiveProcessId) { this.retrospectiveProcessId = retrospectiveProcessId; return this; @@ -142,11 +149,6 @@ public void setTitle(@jakarta.annotation.Nonnull String title) { } - public RetrospectiveStep slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the step * @return slug @@ -156,9 +158,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public RetrospectiveStep description(@jakarta.annotation.Nullable String description) { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveStepList.java b/src/main/java/com/rootly/client/model/RetrospectiveStepList.java index 34017b7b..ff5a9d86 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveStepList.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveStepList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveStepResponseData; @@ -53,7 +54,7 @@ /** * RetrospectiveStepList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveStepList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class RetrospectiveStepList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveStepList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public RetrospectiveStepList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveStepList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { RetrospectiveStepList retrospectiveStepList = (RetrospectiveStepList) o; return Objects.equals(this.data, retrospectiveStepList.data) && Objects.equals(this.links, retrospectiveStepList.links) && - Objects.equals(this.meta, retrospectiveStepList.meta); + Objects.equals(this.meta, retrospectiveStepList.meta) && + Objects.equals(this.included, retrospectiveStepList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveStepResponse.java b/src/main/java/com/rootly/client/model/RetrospectiveStepResponse.java index bb8ea386..25c08a32 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveStepResponse.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveStepResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveStepResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * RetrospectiveStepResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveStepResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private RetrospectiveStepResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RetrospectiveStepResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull RetrospectiveStepResponseData da } + public RetrospectiveStepResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RetrospectiveStepResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } RetrospectiveStepResponse retrospectiveStepResponse = (RetrospectiveStepResponse) o; - return Objects.equals(this.data, retrospectiveStepResponse.data); + return Objects.equals(this.data, retrospectiveStepResponse.data) && + Objects.equals(this.included, retrospectiveStepResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RetrospectiveStepResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` RetrospectiveStepResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RetrospectiveStepResponseData.java b/src/main/java/com/rootly/client/model/RetrospectiveStepResponseData.java index 217eaac9..5f139bb3 100644 --- a/src/main/java/com/rootly/client/model/RetrospectiveStepResponseData.java +++ b/src/main/java/com/rootly/client/model/RetrospectiveStepResponseData.java @@ -49,7 +49,7 @@ /** * RetrospectiveStepResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RetrospectiveStepResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Role.java b/src/main/java/com/rootly/client/model/Role.java index d4f88073..7eb66374 100644 --- a/src/main/java/com/rootly/client/model/Role.java +++ b/src/main/java/com/rootly/client/model/Role.java @@ -51,7 +51,7 @@ /** * Role */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Role { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -60,7 +60,7 @@ public class Role { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID = "incident_permission_set_id"; @@ -1658,6 +1658,435 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List workflowsPermissions = new ArrayList<>(); + /** + * Gets or Sets catalogsPermissions + */ + @JsonAdapter(CatalogsPermissionsEnum.Adapter.class) + public enum CatalogsPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + CatalogsPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogsPermissionsEnum fromValue(String value) { + for (CatalogsPermissionsEnum b : CatalogsPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogsPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogsPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogsPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogsPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_CATALOGS_PERMISSIONS = "catalogs_permissions"; + @SerializedName(SERIALIZED_NAME_CATALOGS_PERMISSIONS) + @jakarta.annotation.Nullable + private List catalogsPermissions = new ArrayList<>(); + + /** + * Gets or Sets subStatusesPermissions + */ + @JsonAdapter(SubStatusesPermissionsEnum.Adapter.class) + public enum SubStatusesPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + SubStatusesPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SubStatusesPermissionsEnum fromValue(String value) { + for (SubStatusesPermissionsEnum b : SubStatusesPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SubStatusesPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SubStatusesPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SubStatusesPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SubStatusesPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SUB_STATUSES_PERMISSIONS = "sub_statuses_permissions"; + @SerializedName(SERIALIZED_NAME_SUB_STATUSES_PERMISSIONS) + @jakarta.annotation.Nullable + private List subStatusesPermissions = new ArrayList<>(); + + /** + * Gets or Sets edgeConnectorPermissions + */ + @JsonAdapter(EdgeConnectorPermissionsEnum.Adapter.class) + public enum EdgeConnectorPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + EdgeConnectorPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EdgeConnectorPermissionsEnum fromValue(String value) { + for (EdgeConnectorPermissionsEnum b : EdgeConnectorPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EdgeConnectorPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EdgeConnectorPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EdgeConnectorPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EdgeConnectorPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_EDGE_CONNECTOR_PERMISSIONS = "edge_connector_permissions"; + @SerializedName(SERIALIZED_NAME_EDGE_CONNECTOR_PERMISSIONS) + @jakarta.annotation.Nullable + private List edgeConnectorPermissions = new ArrayList<>(); + + /** + * Gets or Sets slasPermissions + */ + @JsonAdapter(SlasPermissionsEnum.Adapter.class) + public enum SlasPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + SlasPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SlasPermissionsEnum fromValue(String value) { + for (SlasPermissionsEnum b : SlasPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SlasPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SlasPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SlasPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SlasPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SLAS_PERMISSIONS = "slas_permissions"; + @SerializedName(SERIALIZED_NAME_SLAS_PERMISSIONS) + @jakarta.annotation.Nullable + private List slasPermissions = new ArrayList<>(); + + /** + * Gets or Sets pagingPermissions + */ + @JsonAdapter(PagingPermissionsEnum.Adapter.class) + public enum PagingPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + PagingPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingPermissionsEnum fromValue(String value) { + for (PagingPermissionsEnum b : PagingPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_PERMISSIONS = "paging_permissions"; + @SerializedName(SERIALIZED_NAME_PAGING_PERMISSIONS) + @jakarta.annotation.Nullable + private List pagingPermissions = new ArrayList<>(); + + /** + * Gets or Sets incidentCommunicationPermissions + */ + @JsonAdapter(IncidentCommunicationPermissionsEnum.Adapter.class) + public enum IncidentCommunicationPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"), + + SEND("send"); + + private String value; + + IncidentCommunicationPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IncidentCommunicationPermissionsEnum fromValue(String value) { + for (IncidentCommunicationPermissionsEnum b : IncidentCommunicationPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IncidentCommunicationPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IncidentCommunicationPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IncidentCommunicationPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IncidentCommunicationPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_INCIDENT_COMMUNICATION_PERMISSIONS = "incident_communication_permissions"; + @SerializedName(SERIALIZED_NAME_INCIDENT_COMMUNICATION_PERMISSIONS) + @jakarta.annotation.Nullable + private List incidentCommunicationPermissions = new ArrayList<>(); + + /** + * Gets or Sets communicationPermissions + */ + @JsonAdapter(CommunicationPermissionsEnum.Adapter.class) + public enum CommunicationPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + CommunicationPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CommunicationPermissionsEnum fromValue(String value) { + for (CommunicationPermissionsEnum b : CommunicationPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CommunicationPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CommunicationPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CommunicationPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CommunicationPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_COMMUNICATION_PERMISSIONS = "communication_permissions"; + @SerializedName(SERIALIZED_NAME_COMMUNICATION_PERMISSIONS) + @jakarta.annotation.Nullable + private List communicationPermissions = new ArrayList<>(); + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -1671,6 +2100,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public Role() { } + public Role( + String slug + ) { + this(); + this.slug = slug; + } + public Role name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -1690,23 +2126,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Role slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The role slug. * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public Role incidentPermissionSetId(@jakarta.annotation.Nullable String incidentPermissionSetId) { @@ -2468,6 +2896,195 @@ public void setWorkflowsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + return this; + } + + public Role addCatalogsPermissionsItem(CatalogsPermissionsEnum catalogsPermissionsItem) { + if (this.catalogsPermissions == null) { + this.catalogsPermissions = new ArrayList<>(); + } + this.catalogsPermissions.add(catalogsPermissionsItem); + return this; + } + + /** + * Get catalogsPermissions + * @return catalogsPermissions + */ + @jakarta.annotation.Nullable + public List getCatalogsPermissions() { + return catalogsPermissions; + } + + public void setCatalogsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + } + + + public Role subStatusesPermissions(@jakarta.annotation.Nullable List subStatusesPermissions) { + this.subStatusesPermissions = subStatusesPermissions; + return this; + } + + public Role addSubStatusesPermissionsItem(SubStatusesPermissionsEnum subStatusesPermissionsItem) { + if (this.subStatusesPermissions == null) { + this.subStatusesPermissions = new ArrayList<>(); + } + this.subStatusesPermissions.add(subStatusesPermissionsItem); + return this; + } + + /** + * Get subStatusesPermissions + * @return subStatusesPermissions + */ + @jakarta.annotation.Nullable + public List getSubStatusesPermissions() { + return subStatusesPermissions; + } + + public void setSubStatusesPermissions(@jakarta.annotation.Nullable List subStatusesPermissions) { + this.subStatusesPermissions = subStatusesPermissions; + } + + + public Role edgeConnectorPermissions(@jakarta.annotation.Nullable List edgeConnectorPermissions) { + this.edgeConnectorPermissions = edgeConnectorPermissions; + return this; + } + + public Role addEdgeConnectorPermissionsItem(EdgeConnectorPermissionsEnum edgeConnectorPermissionsItem) { + if (this.edgeConnectorPermissions == null) { + this.edgeConnectorPermissions = new ArrayList<>(); + } + this.edgeConnectorPermissions.add(edgeConnectorPermissionsItem); + return this; + } + + /** + * Get edgeConnectorPermissions + * @return edgeConnectorPermissions + */ + @jakarta.annotation.Nullable + public List getEdgeConnectorPermissions() { + return edgeConnectorPermissions; + } + + public void setEdgeConnectorPermissions(@jakarta.annotation.Nullable List edgeConnectorPermissions) { + this.edgeConnectorPermissions = edgeConnectorPermissions; + } + + + public Role slasPermissions(@jakarta.annotation.Nullable List slasPermissions) { + this.slasPermissions = slasPermissions; + return this; + } + + public Role addSlasPermissionsItem(SlasPermissionsEnum slasPermissionsItem) { + if (this.slasPermissions == null) { + this.slasPermissions = new ArrayList<>(); + } + this.slasPermissions.add(slasPermissionsItem); + return this; + } + + /** + * Get slasPermissions + * @return slasPermissions + */ + @jakarta.annotation.Nullable + public List getSlasPermissions() { + return slasPermissions; + } + + public void setSlasPermissions(@jakarta.annotation.Nullable List slasPermissions) { + this.slasPermissions = slasPermissions; + } + + + public Role pagingPermissions(@jakarta.annotation.Nullable List pagingPermissions) { + this.pagingPermissions = pagingPermissions; + return this; + } + + public Role addPagingPermissionsItem(PagingPermissionsEnum pagingPermissionsItem) { + if (this.pagingPermissions == null) { + this.pagingPermissions = new ArrayList<>(); + } + this.pagingPermissions.add(pagingPermissionsItem); + return this; + } + + /** + * Get pagingPermissions + * @return pagingPermissions + */ + @jakarta.annotation.Nullable + public List getPagingPermissions() { + return pagingPermissions; + } + + public void setPagingPermissions(@jakarta.annotation.Nullable List pagingPermissions) { + this.pagingPermissions = pagingPermissions; + } + + + public Role incidentCommunicationPermissions(@jakarta.annotation.Nullable List incidentCommunicationPermissions) { + this.incidentCommunicationPermissions = incidentCommunicationPermissions; + return this; + } + + public Role addIncidentCommunicationPermissionsItem(IncidentCommunicationPermissionsEnum incidentCommunicationPermissionsItem) { + if (this.incidentCommunicationPermissions == null) { + this.incidentCommunicationPermissions = new ArrayList<>(); + } + this.incidentCommunicationPermissions.add(incidentCommunicationPermissionsItem); + return this; + } + + /** + * Get incidentCommunicationPermissions + * @return incidentCommunicationPermissions + */ + @jakarta.annotation.Nullable + public List getIncidentCommunicationPermissions() { + return incidentCommunicationPermissions; + } + + public void setIncidentCommunicationPermissions(@jakarta.annotation.Nullable List incidentCommunicationPermissions) { + this.incidentCommunicationPermissions = incidentCommunicationPermissions; + } + + + public Role communicationPermissions(@jakarta.annotation.Nullable List communicationPermissions) { + this.communicationPermissions = communicationPermissions; + return this; + } + + public Role addCommunicationPermissionsItem(CommunicationPermissionsEnum communicationPermissionsItem) { + if (this.communicationPermissions == null) { + this.communicationPermissions = new ArrayList<>(); + } + this.communicationPermissions.add(communicationPermissionsItem); + return this; + } + + /** + * Get communicationPermissions + * @return communicationPermissions + */ + @jakarta.annotation.Nullable + public List getCommunicationPermissions() { + return communicationPermissions; + } + + public void setCommunicationPermissions(@jakarta.annotation.Nullable List communicationPermissions) { + this.communicationPermissions = communicationPermissions; + } + + public Role createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -2547,6 +3164,13 @@ public boolean equals(Object o) { Objects.equals(this.statusPagesPermissions, role.statusPagesPermissions) && Objects.equals(this.webhooksPermissions, role.webhooksPermissions) && Objects.equals(this.workflowsPermissions, role.workflowsPermissions) && + Objects.equals(this.catalogsPermissions, role.catalogsPermissions) && + Objects.equals(this.subStatusesPermissions, role.subStatusesPermissions) && + Objects.equals(this.edgeConnectorPermissions, role.edgeConnectorPermissions) && + Objects.equals(this.slasPermissions, role.slasPermissions) && + Objects.equals(this.pagingPermissions, role.pagingPermissions) && + Objects.equals(this.incidentCommunicationPermissions, role.incidentCommunicationPermissions) && + Objects.equals(this.communicationPermissions, role.communicationPermissions) && Objects.equals(this.createdAt, role.createdAt) && Objects.equals(this.updatedAt, role.updatedAt); } @@ -2557,7 +3181,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, incidentPermissionSetId, isDeletable, isEditable, alertsPermissions, apiKeysPermissions, auditsPermissions, billingPermissions, environmentsPermissions, formFieldsPermissions, functionalitiesPermissions, groupsPermissions, incidentCausesPermissions, incidentFeedbacksPermissions, incidentRolesPermissions, incidentTypesPermissions, incidentsPermissions, integrationsPermissions, invitationsPermissions, playbooksPermissions, privateIncidentsPermissions, pulsesPermissions, retrospectivePermissions, rolesPermissions, secretsPermissions, servicesPermissions, severitiesPermissions, statusPagesPermissions, webhooksPermissions, workflowsPermissions, createdAt, updatedAt); + return Objects.hash(name, slug, incidentPermissionSetId, isDeletable, isEditable, alertsPermissions, apiKeysPermissions, auditsPermissions, billingPermissions, environmentsPermissions, formFieldsPermissions, functionalitiesPermissions, groupsPermissions, incidentCausesPermissions, incidentFeedbacksPermissions, incidentRolesPermissions, incidentTypesPermissions, incidentsPermissions, integrationsPermissions, invitationsPermissions, playbooksPermissions, privateIncidentsPermissions, pulsesPermissions, retrospectivePermissions, rolesPermissions, secretsPermissions, servicesPermissions, severitiesPermissions, statusPagesPermissions, webhooksPermissions, workflowsPermissions, catalogsPermissions, subStatusesPermissions, edgeConnectorPermissions, slasPermissions, pagingPermissions, incidentCommunicationPermissions, communicationPermissions, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -2602,6 +3226,13 @@ public String toString() { sb.append(" statusPagesPermissions: ").append(toIndentedString(statusPagesPermissions)).append("\n"); sb.append(" webhooksPermissions: ").append(toIndentedString(webhooksPermissions)).append("\n"); sb.append(" workflowsPermissions: ").append(toIndentedString(workflowsPermissions)).append("\n"); + sb.append(" catalogsPermissions: ").append(toIndentedString(catalogsPermissions)).append("\n"); + sb.append(" subStatusesPermissions: ").append(toIndentedString(subStatusesPermissions)).append("\n"); + sb.append(" edgeConnectorPermissions: ").append(toIndentedString(edgeConnectorPermissions)).append("\n"); + sb.append(" slasPermissions: ").append(toIndentedString(slasPermissions)).append("\n"); + sb.append(" pagingPermissions: ").append(toIndentedString(pagingPermissions)).append("\n"); + sb.append(" incidentCommunicationPermissions: ").append(toIndentedString(incidentCommunicationPermissions)).append("\n"); + sb.append(" communicationPermissions: ").append(toIndentedString(communicationPermissions)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -2657,13 +3288,19 @@ private String toIndentedString(Object o) { openapiFields.add("status_pages_permissions"); openapiFields.add("webhooks_permissions"); openapiFields.add("workflows_permissions"); + openapiFields.add("catalogs_permissions"); + openapiFields.add("sub_statuses_permissions"); + openapiFields.add("edge_connector_permissions"); + openapiFields.add("slas_permissions"); + openapiFields.add("paging_permissions"); + openapiFields.add("incident_communication_permissions"); + openapiFields.add("communication_permissions"); openapiFields.add("created_at"); openapiFields.add("updated_at"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("created_at"); openapiRequiredFields.add("updated_at"); } @@ -2699,7 +3336,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("incident_permission_set_id") != null && !jsonObj.get("incident_permission_set_id").isJsonNull()) && !jsonObj.get("incident_permission_set_id").isJsonPrimitive()) { @@ -2809,6 +3446,34 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("workflows_permissions") != null && !jsonObj.get("workflows_permissions").isJsonNull() && !jsonObj.get("workflows_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `workflows_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("workflows_permissions").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("catalogs_permissions") != null && !jsonObj.get("catalogs_permissions").isJsonNull() && !jsonObj.get("catalogs_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `catalogs_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("catalogs_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("sub_statuses_permissions") != null && !jsonObj.get("sub_statuses_permissions").isJsonNull() && !jsonObj.get("sub_statuses_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `sub_statuses_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("sub_statuses_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("edge_connector_permissions") != null && !jsonObj.get("edge_connector_permissions").isJsonNull() && !jsonObj.get("edge_connector_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `edge_connector_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("edge_connector_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("slas_permissions") != null && !jsonObj.get("slas_permissions").isJsonNull() && !jsonObj.get("slas_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `slas_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("slas_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("paging_permissions") != null && !jsonObj.get("paging_permissions").isJsonNull() && !jsonObj.get("paging_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("paging_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("incident_communication_permissions") != null && !jsonObj.get("incident_communication_permissions").isJsonNull() && !jsonObj.get("incident_communication_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_communication_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("incident_communication_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("communication_permissions") != null && !jsonObj.get("communication_permissions").isJsonNull() && !jsonObj.get("communication_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `communication_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("communication_permissions").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/RoleList.java b/src/main/java/com/rootly/client/model/RoleList.java index ae779696..178a8e90 100644 --- a/src/main/java/com/rootly/client/model/RoleList.java +++ b/src/main/java/com/rootly/client/model/RoleList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RoleResponseData; @@ -53,7 +54,7 @@ /** * RoleList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RoleList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class RoleList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RoleList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public RoleList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RoleList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { RoleList roleList = (RoleList) o; return Objects.equals(this.data, roleList.data) && Objects.equals(this.links, roleList.links) && - Objects.equals(this.meta, roleList.meta); + Objects.equals(this.meta, roleList.meta) && + Objects.equals(this.included, roleList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RoleRelationship.java b/src/main/java/com/rootly/client/model/RoleRelationship.java index 8cbf2297..c4b0a84b 100644 --- a/src/main/java/com/rootly/client/model/RoleRelationship.java +++ b/src/main/java/com/rootly/client/model/RoleRelationship.java @@ -50,7 +50,7 @@ /** * RoleRelationship */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RoleRelationship { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/RoleRelationshipData.java b/src/main/java/com/rootly/client/model/RoleRelationshipData.java index 9d8ef429..075c6d3b 100644 --- a/src/main/java/com/rootly/client/model/RoleRelationshipData.java +++ b/src/main/java/com/rootly/client/model/RoleRelationshipData.java @@ -48,7 +48,7 @@ /** * RoleRelationshipData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RoleRelationshipData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RoleResponse.java b/src/main/java/com/rootly/client/model/RoleResponse.java index 59438ad9..06fc9579 100644 --- a/src/main/java/com/rootly/client/model/RoleResponse.java +++ b/src/main/java/com/rootly/client/model/RoleResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RoleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * RoleResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RoleResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private RoleResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public RoleResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull RoleResponseData data) { } + public RoleResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public RoleResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } RoleResponse roleResponse = (RoleResponse) o; - return Objects.equals(this.data, roleResponse.data); + return Objects.equals(this.data, roleResponse.data) && + Objects.equals(this.included, roleResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RoleResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` RoleResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/RoleResponseData.java b/src/main/java/com/rootly/client/model/RoleResponseData.java index c0346548..45c7a220 100644 --- a/src/main/java/com/rootly/client/model/RoleResponseData.java +++ b/src/main/java/com/rootly/client/model/RoleResponseData.java @@ -49,7 +49,7 @@ /** * RoleResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RoleResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/RotateApiKey.java b/src/main/java/com/rootly/client/model/RotateApiKey.java index dad9f059..3a30c26d 100644 --- a/src/main/java/com/rootly/client/model/RotateApiKey.java +++ b/src/main/java/com/rootly/client/model/RotateApiKey.java @@ -49,17 +49,17 @@ /** * RotateApiKey */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RotateApiKey { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RotateApiKeyData data; public RotateApiKey() { } - public RotateApiKey data(@javax.annotation.Nonnull RotateApiKeyData data) { + public RotateApiKey data(@jakarta.annotation.Nonnull RotateApiKeyData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public RotateApiKey data(@javax.annotation.Nonnull RotateApiKeyData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RotateApiKeyData getData() { return data; } - public void setData(@javax.annotation.Nonnull RotateApiKeyData data) { + public void setData(@jakarta.annotation.Nonnull RotateApiKeyData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/RotateApiKeyData.java b/src/main/java/com/rootly/client/model/RotateApiKeyData.java index 5c48edc5..d8d588db 100644 --- a/src/main/java/com/rootly/client/model/RotateApiKeyData.java +++ b/src/main/java/com/rootly/client/model/RotateApiKeyData.java @@ -49,7 +49,7 @@ /** * RotateApiKeyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RotateApiKeyData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private RotateApiKeyDataAttributes attributes; public RotateApiKeyData() { } - public RotateApiKeyData type(@javax.annotation.Nonnull TypeEnum type) { + public RotateApiKeyData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public RotateApiKeyData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public RotateApiKeyData attributes(@javax.annotation.Nonnull RotateApiKeyDataAttributes attributes) { + public RotateApiKeyData attributes(@jakarta.annotation.Nonnull RotateApiKeyDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public RotateApiKeyData attributes(@javax.annotation.Nonnull RotateApiKeyDataAtt * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public RotateApiKeyDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull RotateApiKeyDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull RotateApiKeyDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/RotateApiKeyDataAttributes.java b/src/main/java/com/rootly/client/model/RotateApiKeyDataAttributes.java index 3de1bcf9..4da7b86d 100644 --- a/src/main/java/com/rootly/client/model/RotateApiKeyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/RotateApiKeyDataAttributes.java @@ -50,22 +50,22 @@ /** * RotateApiKeyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RotateApiKeyDataAttributes { public static final String SERIALIZED_NAME_EXPIRES_AT = "expires_at"; @SerializedName(SERIALIZED_NAME_EXPIRES_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private OffsetDateTime expiresAt; public static final String SERIALIZED_NAME_GRACE_PERIOD_MINUTES = "grace_period_minutes"; @SerializedName(SERIALIZED_NAME_GRACE_PERIOD_MINUTES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer gracePeriodMinutes = 30; public RotateApiKeyDataAttributes() { } - public RotateApiKeyDataAttributes expiresAt(@javax.annotation.Nullable OffsetDateTime expiresAt) { + public RotateApiKeyDataAttributes expiresAt(@jakarta.annotation.Nullable OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } @@ -74,17 +74,17 @@ public RotateApiKeyDataAttributes expiresAt(@javax.annotation.Nullable OffsetDat * The new expiration date after rotation (ISO 8601) * @return expiresAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public OffsetDateTime getExpiresAt() { return expiresAt; } - public void setExpiresAt(@javax.annotation.Nullable OffsetDateTime expiresAt) { + public void setExpiresAt(@jakarta.annotation.Nullable OffsetDateTime expiresAt) { this.expiresAt = expiresAt; } - public RotateApiKeyDataAttributes gracePeriodMinutes(@javax.annotation.Nullable Integer gracePeriodMinutes) { + public RotateApiKeyDataAttributes gracePeriodMinutes(@jakarta.annotation.Nullable Integer gracePeriodMinutes) { this.gracePeriodMinutes = gracePeriodMinutes; return this; } @@ -95,12 +95,12 @@ public RotateApiKeyDataAttributes gracePeriodMinutes(@javax.annotation.Nullable * maximum: 1440 * @return gracePeriodMinutes */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getGracePeriodMinutes() { return gracePeriodMinutes; } - public void setGracePeriodMinutes(@javax.annotation.Nullable Integer gracePeriodMinutes) { + public void setGracePeriodMinutes(@jakarta.annotation.Nullable Integer gracePeriodMinutes) { this.gracePeriodMinutes = gracePeriodMinutes; } diff --git a/src/main/java/com/rootly/client/model/RunCommandHerokuTaskParams.java b/src/main/java/com/rootly/client/model/RunCommandHerokuTaskParams.java index 44609109..ff3a8846 100644 --- a/src/main/java/com/rootly/client/model/RunCommandHerokuTaskParams.java +++ b/src/main/java/com/rootly/client/model/RunCommandHerokuTaskParams.java @@ -51,7 +51,7 @@ /** * RunCommandHerokuTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class RunCommandHerokuTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/Schedule.java b/src/main/java/com/rootly/client/model/Schedule.java index 9b2608a8..cee36270 100644 --- a/src/main/java/com/rootly/client/model/Schedule.java +++ b/src/main/java/com/rootly/client/model/Schedule.java @@ -53,7 +53,7 @@ /** * Schedule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Schedule { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -90,6 +90,108 @@ public class Schedule { @jakarta.annotation.Nonnull private Integer ownerUserId; + public static final String SERIALIZED_NAME_SYNC_LINEAR_ENABLED = "sync_linear_enabled"; + @SerializedName(SERIALIZED_NAME_SYNC_LINEAR_ENABLED) + @jakarta.annotation.Nullable + private Boolean syncLinearEnabled; + + public static final String SERIALIZED_NAME_INCLUDE_SHADOWS_IN_SLACK_NOTIFICATIONS = "include_shadows_in_slack_notifications"; + @SerializedName(SERIALIZED_NAME_INCLUDE_SHADOWS_IN_SLACK_NOTIFICATIONS) + @jakarta.annotation.Nullable + private Boolean includeShadowsInSlackNotifications; + + public static final String SERIALIZED_NAME_SHIFT_START_NOTIFICATIONS_ENABLED = "shift_start_notifications_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_START_NOTIFICATIONS_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftStartNotificationsEnabled; + + public static final String SERIALIZED_NAME_SHIFT_UPDATE_NOTIFICATIONS_ENABLED = "shift_update_notifications_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_UPDATE_NOTIFICATIONS_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftUpdateNotificationsEnabled; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_ENABLED = "shift_report_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftReportEnabled; + + /** + * Day of week the weekly shift summary is sent + */ + @JsonAdapter(ShiftReportDayOfWeekEnum.Adapter.class) + public enum ShiftReportDayOfWeekEnum { + MONDAY("monday"), + + TUESDAY("tuesday"), + + WEDNESDAY("wednesday"), + + THURSDAY("thursday"), + + FRIDAY("friday"), + + SATURDAY("saturday"), + + SUNDAY("sunday"); + + private String value; + + ShiftReportDayOfWeekEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ShiftReportDayOfWeekEnum fromValue(String value) { + for (ShiftReportDayOfWeekEnum b : ShiftReportDayOfWeekEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ShiftReportDayOfWeekEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ShiftReportDayOfWeekEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ShiftReportDayOfWeekEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ShiftReportDayOfWeekEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SHIFT_REPORT_DAY_OF_WEEK = "shift_report_day_of_week"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_DAY_OF_WEEK) + @jakarta.annotation.Nullable + private ShiftReportDayOfWeekEnum shiftReportDayOfWeek; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_TIME_OF_DAY = "shift_report_time_of_day"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_TIME_OF_DAY) + @jakarta.annotation.Nullable + private String shiftReportTimeOfDay; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_TIME_ZONE = "shift_report_time_zone"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_TIME_ZONE) + @jakarta.annotation.Nullable + private String shiftReportTimeZone; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -244,6 +346,158 @@ public void setOwnerUserId(@jakarta.annotation.Nonnull Integer ownerUserId) { } + public Schedule syncLinearEnabled(@jakarta.annotation.Nullable Boolean syncLinearEnabled) { + this.syncLinearEnabled = syncLinearEnabled; + return this; + } + + /** + * Whether the schedule is synced with Linear + * @return syncLinearEnabled + */ + @jakarta.annotation.Nullable + public Boolean getSyncLinearEnabled() { + return syncLinearEnabled; + } + + public void setSyncLinearEnabled(@jakarta.annotation.Nullable Boolean syncLinearEnabled) { + this.syncLinearEnabled = syncLinearEnabled; + } + + + public Schedule includeShadowsInSlackNotifications(@jakarta.annotation.Nullable Boolean includeShadowsInSlackNotifications) { + this.includeShadowsInSlackNotifications = includeShadowsInSlackNotifications; + return this; + } + + /** + * Whether shadow users are included in Slack notifications and user group syncing. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return includeShadowsInSlackNotifications + */ + @jakarta.annotation.Nullable + public Boolean getIncludeShadowsInSlackNotifications() { + return includeShadowsInSlackNotifications; + } + + public void setIncludeShadowsInSlackNotifications(@jakarta.annotation.Nullable Boolean includeShadowsInSlackNotifications) { + this.includeShadowsInSlackNotifications = includeShadowsInSlackNotifications; + } + + + public Schedule shiftStartNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftStartNotificationsEnabled) { + this.shiftStartNotificationsEnabled = shiftStartNotificationsEnabled; + return this; + } + + /** + * Whether shift-start notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftStartNotificationsEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftStartNotificationsEnabled() { + return shiftStartNotificationsEnabled; + } + + public void setShiftStartNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftStartNotificationsEnabled) { + this.shiftStartNotificationsEnabled = shiftStartNotificationsEnabled; + } + + + public Schedule shiftUpdateNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftUpdateNotificationsEnabled) { + this.shiftUpdateNotificationsEnabled = shiftUpdateNotificationsEnabled; + return this; + } + + /** + * Whether shift-update notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftUpdateNotificationsEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftUpdateNotificationsEnabled() { + return shiftUpdateNotificationsEnabled; + } + + public void setShiftUpdateNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftUpdateNotificationsEnabled) { + this.shiftUpdateNotificationsEnabled = shiftUpdateNotificationsEnabled; + } + + + public Schedule shiftReportEnabled(@jakarta.annotation.Nullable Boolean shiftReportEnabled) { + this.shiftReportEnabled = shiftReportEnabled; + return this; + } + + /** + * Whether the weekly shift summary report is enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftReportEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftReportEnabled() { + return shiftReportEnabled; + } + + public void setShiftReportEnabled(@jakarta.annotation.Nullable Boolean shiftReportEnabled) { + this.shiftReportEnabled = shiftReportEnabled; + } + + + public Schedule shiftReportDayOfWeek(@jakarta.annotation.Nullable ShiftReportDayOfWeekEnum shiftReportDayOfWeek) { + this.shiftReportDayOfWeek = shiftReportDayOfWeek; + return this; + } + + /** + * Day of week the weekly shift summary is sent + * @return shiftReportDayOfWeek + */ + @jakarta.annotation.Nullable + public ShiftReportDayOfWeekEnum getShiftReportDayOfWeek() { + return shiftReportDayOfWeek; + } + + public void setShiftReportDayOfWeek(@jakarta.annotation.Nullable ShiftReportDayOfWeekEnum shiftReportDayOfWeek) { + this.shiftReportDayOfWeek = shiftReportDayOfWeek; + } + + + public Schedule shiftReportTimeOfDay(@jakarta.annotation.Nullable String shiftReportTimeOfDay) { + this.shiftReportTimeOfDay = shiftReportTimeOfDay; + return this; + } + + /** + * Time of day the weekly shift summary is sent, in HH:MM 24-hour format + * @return shiftReportTimeOfDay + */ + @jakarta.annotation.Nullable + public String getShiftReportTimeOfDay() { + return shiftReportTimeOfDay; + } + + public void setShiftReportTimeOfDay(@jakarta.annotation.Nullable String shiftReportTimeOfDay) { + this.shiftReportTimeOfDay = shiftReportTimeOfDay; + } + + + public Schedule shiftReportTimeZone(@jakarta.annotation.Nullable String shiftReportTimeZone) { + this.shiftReportTimeZone = shiftReportTimeZone; + return this; + } + + /** + * IANA time zone used for the weekly shift summary + * @return shiftReportTimeZone + */ + @jakarta.annotation.Nullable + public String getShiftReportTimeZone() { + return shiftReportTimeZone; + } + + public void setShiftReportTimeZone(@jakarta.annotation.Nullable String shiftReportTimeZone) { + this.shiftReportTimeZone = shiftReportTimeZone; + } + + public Schedule createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -299,6 +553,14 @@ public boolean equals(Object o) { Objects.equals(this.slackChannel, schedule.slackChannel) && Objects.equals(this.ownerGroupIds, schedule.ownerGroupIds) && Objects.equals(this.ownerUserId, schedule.ownerUserId) && + Objects.equals(this.syncLinearEnabled, schedule.syncLinearEnabled) && + Objects.equals(this.includeShadowsInSlackNotifications, schedule.includeShadowsInSlackNotifications) && + Objects.equals(this.shiftStartNotificationsEnabled, schedule.shiftStartNotificationsEnabled) && + Objects.equals(this.shiftUpdateNotificationsEnabled, schedule.shiftUpdateNotificationsEnabled) && + Objects.equals(this.shiftReportEnabled, schedule.shiftReportEnabled) && + Objects.equals(this.shiftReportDayOfWeek, schedule.shiftReportDayOfWeek) && + Objects.equals(this.shiftReportTimeOfDay, schedule.shiftReportTimeOfDay) && + Objects.equals(this.shiftReportTimeZone, schedule.shiftReportTimeZone) && Objects.equals(this.createdAt, schedule.createdAt) && Objects.equals(this.updatedAt, schedule.updatedAt); } @@ -309,7 +571,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, allTimeCoverage, slackUserGroup, slackChannel, ownerGroupIds, ownerUserId, createdAt, updatedAt); + return Objects.hash(name, description, allTimeCoverage, slackUserGroup, slackChannel, ownerGroupIds, ownerUserId, syncLinearEnabled, includeShadowsInSlackNotifications, shiftStartNotificationsEnabled, shiftUpdateNotificationsEnabled, shiftReportEnabled, shiftReportDayOfWeek, shiftReportTimeOfDay, shiftReportTimeZone, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -330,6 +592,14 @@ public String toString() { sb.append(" slackChannel: ").append(toIndentedString(slackChannel)).append("\n"); sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" ownerUserId: ").append(toIndentedString(ownerUserId)).append("\n"); + sb.append(" syncLinearEnabled: ").append(toIndentedString(syncLinearEnabled)).append("\n"); + sb.append(" includeShadowsInSlackNotifications: ").append(toIndentedString(includeShadowsInSlackNotifications)).append("\n"); + sb.append(" shiftStartNotificationsEnabled: ").append(toIndentedString(shiftStartNotificationsEnabled)).append("\n"); + sb.append(" shiftUpdateNotificationsEnabled: ").append(toIndentedString(shiftUpdateNotificationsEnabled)).append("\n"); + sb.append(" shiftReportEnabled: ").append(toIndentedString(shiftReportEnabled)).append("\n"); + sb.append(" shiftReportDayOfWeek: ").append(toIndentedString(shiftReportDayOfWeek)).append("\n"); + sb.append(" shiftReportTimeOfDay: ").append(toIndentedString(shiftReportTimeOfDay)).append("\n"); + sb.append(" shiftReportTimeZone: ").append(toIndentedString(shiftReportTimeZone)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -361,6 +631,14 @@ private String toIndentedString(Object o) { openapiFields.add("slack_channel"); openapiFields.add("owner_group_ids"); openapiFields.add("owner_user_id"); + openapiFields.add("sync_linear_enabled"); + openapiFields.add("include_shadows_in_slack_notifications"); + openapiFields.add("shift_start_notifications_enabled"); + openapiFields.add("shift_update_notifications_enabled"); + openapiFields.add("shift_report_enabled"); + openapiFields.add("shift_report_day_of_week"); + openapiFields.add("shift_report_time_of_day"); + openapiFields.add("shift_report_time_zone"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -418,6 +696,19 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("owner_group_ids") != null && !jsonObj.get("owner_group_ids").isJsonNull() && !jsonObj.get("owner_group_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `owner_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_group_ids").toString())); } + if ((jsonObj.get("shift_report_day_of_week") != null && !jsonObj.get("shift_report_day_of_week").isJsonNull()) && !jsonObj.get("shift_report_day_of_week").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_day_of_week` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_day_of_week").toString())); + } + // validate the optional field `shift_report_day_of_week` + if (jsonObj.get("shift_report_day_of_week") != null && !jsonObj.get("shift_report_day_of_week").isJsonNull()) { + ShiftReportDayOfWeekEnum.validateJsonElement(jsonObj.get("shift_report_day_of_week")); + } + if ((jsonObj.get("shift_report_time_of_day") != null && !jsonObj.get("shift_report_time_of_day").isJsonNull()) && !jsonObj.get("shift_report_time_of_day").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_time_of_day` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_time_of_day").toString())); + } + if ((jsonObj.get("shift_report_time_zone") != null && !jsonObj.get("shift_report_time_zone").isJsonNull()) && !jsonObj.get("shift_report_time_zone").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_time_zone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_time_zone").toString())); + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/ScheduleList.java b/src/main/java/com/rootly/client/model/ScheduleList.java index cd25fd0c..4ccb35ed 100644 --- a/src/main/java/com/rootly/client/model/ScheduleList.java +++ b/src/main/java/com/rootly/client/model/ScheduleList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleListDataInner; @@ -53,7 +54,7 @@ /** * ScheduleList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class ScheduleList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public ScheduleList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { ScheduleList scheduleList = (ScheduleList) o; return Objects.equals(this.data, scheduleList.data) && Objects.equals(this.links, scheduleList.links) && - Objects.equals(this.meta, scheduleList.meta); + Objects.equals(this.meta, scheduleList.meta) && + Objects.equals(this.included, scheduleList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleListDataInner.java b/src/main/java/com/rootly/client/model/ScheduleListDataInner.java index 8cde6625..98dd0afa 100644 --- a/src/main/java/com/rootly/client/model/ScheduleListDataInner.java +++ b/src/main/java/com/rootly/client/model/ScheduleListDataInner.java @@ -49,7 +49,7 @@ /** * ScheduleListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleResponse.java b/src/main/java/com/rootly/client/model/ScheduleResponse.java index ac1eb125..1fe385bf 100644 --- a/src/main/java/com/rootly/client/model/ScheduleResponse.java +++ b/src/main/java/com/rootly/client/model/ScheduleResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * ScheduleResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private ScheduleResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull ScheduleResponseData data) { } + public ScheduleResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ScheduleResponse scheduleResponse = (ScheduleResponse) o; - return Objects.equals(this.data, scheduleResponse.data); + return Objects.equals(this.data, scheduleResponse.data) && + Objects.equals(this.included, scheduleResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ScheduleResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` ScheduleResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleResponseData.java b/src/main/java/com/rootly/client/model/ScheduleResponseData.java index 128b4dcd..d137e0ce 100644 --- a/src/main/java/com/rootly/client/model/ScheduleResponseData.java +++ b/src/main/java/com/rootly/client/model/ScheduleResponseData.java @@ -49,7 +49,7 @@ /** * ScheduleResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleRotation.java b/src/main/java/com/rootly/client/model/ScheduleRotation.java index 88bf60a1..dffadf7d 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotation.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotation.java @@ -22,7 +22,7 @@ import com.rootly.client.model.NewScheduleRotationDataAttributesActiveTimeAttributesInner; import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationableAttributes; import java.io.IOException; -import java.time.LocalDate; +import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -54,7 +54,7 @@ /** * ScheduleRotation */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotation { public static final String SERIALIZED_NAME_SCHEDULE_ID = "schedule_id"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ID) @@ -283,12 +283,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_START_TIME = "start_time"; @SerializedName(SERIALIZED_NAME_START_TIME) @jakarta.annotation.Nullable - private LocalDate startTime; + private OffsetDateTime startTime; public static final String SERIALIZED_NAME_END_TIME = "end_time"; @SerializedName(SERIALIZED_NAME_END_TIME) @jakarta.annotation.Nullable - private LocalDate endTime; + private OffsetDateTime endTime; public ScheduleRotation() { } @@ -507,40 +507,40 @@ public void setScheduleRotationableAttributes(@jakarta.annotation.Nonnull NewSch } - public ScheduleRotation startTime(@jakarta.annotation.Nullable LocalDate startTime) { + public ScheduleRotation startTime(@jakarta.annotation.Nullable OffsetDateTime startTime) { this.startTime = startTime; return this; } /** - * ISO8601 date and time when rotation starts. Shifts will only be created after this time. + * RFC3339 date-time when rotation starts. Shifts will only be created after this time. * @return startTime */ @jakarta.annotation.Nullable - public LocalDate getStartTime() { + public OffsetDateTime getStartTime() { return startTime; } - public void setStartTime(@jakarta.annotation.Nullable LocalDate startTime) { + public void setStartTime(@jakarta.annotation.Nullable OffsetDateTime startTime) { this.startTime = startTime; } - public ScheduleRotation endTime(@jakarta.annotation.Nullable LocalDate endTime) { + public ScheduleRotation endTime(@jakarta.annotation.Nullable OffsetDateTime endTime) { this.endTime = endTime; return this; } /** - * ISO8601 date and time when rotation ends. Shifts will only be created before this time. + * RFC3339 date-time when rotation ends. Shifts will only be created before this time. * @return endTime */ @jakarta.annotation.Nullable - public LocalDate getEndTime() { + public OffsetDateTime getEndTime() { return endTime; } - public void setEndTime(@jakarta.annotation.Nullable LocalDate endTime) { + public void setEndTime(@jakarta.annotation.Nullable OffsetDateTime endTime) { this.endTime = endTime; } diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDay.java b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDay.java index 2fe0f707..a5f13a27 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDay.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDay.java @@ -51,7 +51,7 @@ /** * ScheduleRotationActiveDay */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationActiveDay { public static final String SERIALIZED_NAME_SCHEDULE_ROTATION_ID = "schedule_rotation_id"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ROTATION_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayList.java b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayList.java index b48ae32f..0387ac28 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayList.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleRotationActiveDayListDataInner; @@ -53,7 +54,7 @@ /** * ScheduleRotationActiveDayList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationActiveDayList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class ScheduleRotationActiveDayList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleRotationActiveDayList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public ScheduleRotationActiveDayList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleRotationActiveDayList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { ScheduleRotationActiveDayList scheduleRotationActiveDayList = (ScheduleRotationActiveDayList) o; return Objects.equals(this.data, scheduleRotationActiveDayList.data) && Objects.equals(this.links, scheduleRotationActiveDayList.links) && - Objects.equals(this.meta, scheduleRotationActiveDayList.meta); + Objects.equals(this.meta, scheduleRotationActiveDayList.meta) && + Objects.equals(this.included, scheduleRotationActiveDayList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayListDataInner.java b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayListDataInner.java index 00a41801..4d62fded 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayListDataInner.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayListDataInner.java @@ -49,7 +49,7 @@ /** * ScheduleRotationActiveDayListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationActiveDayListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponse.java b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponse.java index 858ddf75..cc179e26 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponse.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleRotationActiveDayResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * ScheduleRotationActiveDayResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationActiveDayResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nullable private ScheduleRotationActiveDayResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleRotationActiveDayResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nullable ScheduleRotationActiveDayRespon } + public ScheduleRotationActiveDayResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleRotationActiveDayResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ScheduleRotationActiveDayResponse scheduleRotationActiveDayResponse = (ScheduleRotationActiveDayResponse) o; - return Objects.equals(this.data, scheduleRotationActiveDayResponse.data); + return Objects.equals(this.data, scheduleRotationActiveDayResponse.data) && + Objects.equals(this.included, scheduleRotationActiveDayResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ScheduleRotationActiveDayResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -154,6 +192,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { ScheduleRotationActiveDayResponseData.validateJsonElement(jsonObj.get("data")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponseData.java b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponseData.java index 07792045..93402d10 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponseData.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationActiveDayResponseData.java @@ -49,7 +49,7 @@ /** * ScheduleRotationActiveDayResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationActiveDayResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationList.java b/src/main/java/com/rootly/client/model/ScheduleRotationList.java index da9fcc15..638c03c4 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationList.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleRotationResponseData; @@ -53,7 +54,7 @@ /** * ScheduleRotationList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class ScheduleRotationList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleRotationList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public ScheduleRotationList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleRotationList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { ScheduleRotationList scheduleRotationList = (ScheduleRotationList) o; return Objects.equals(this.data, scheduleRotationList.data) && Objects.equals(this.links, scheduleRotationList.links) && - Objects.equals(this.meta, scheduleRotationList.meta); + Objects.equals(this.meta, scheduleRotationList.meta) && + Objects.equals(this.included, scheduleRotationList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationResponse.java b/src/main/java/com/rootly/client/model/ScheduleRotationResponse.java index c282df33..8477277a 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationResponse.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleRotationResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * ScheduleRotationResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private ScheduleRotationResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleRotationResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull ScheduleRotationResponseData dat } + public ScheduleRotationResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleRotationResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ScheduleRotationResponse scheduleRotationResponse = (ScheduleRotationResponse) o; - return Objects.equals(this.data, scheduleRotationResponse.data); + return Objects.equals(this.data, scheduleRotationResponse.data) && + Objects.equals(this.included, scheduleRotationResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ScheduleRotationResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` ScheduleRotationResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationResponseData.java b/src/main/java/com/rootly/client/model/ScheduleRotationResponseData.java index a623a887..d826ab68 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationResponseData.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationResponseData.java @@ -49,7 +49,7 @@ /** * ScheduleRotationResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationUser.java b/src/main/java/com/rootly/client/model/ScheduleRotationUser.java index bd08da2b..4c8477cb 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationUser.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationUser.java @@ -48,7 +48,7 @@ /** * ScheduleRotationUser */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationUser { public static final String SERIALIZED_NAME_SCHEDULE_ROTATION_ID = "schedule_rotation_id"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ROTATION_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationUserList.java b/src/main/java/com/rootly/client/model/ScheduleRotationUserList.java index fe016818..1eecaeaf 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationUserList.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationUserList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleRotationUserListDataInner; @@ -53,7 +54,7 @@ /** * ScheduleRotationUserList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationUserList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class ScheduleRotationUserList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleRotationUserList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public ScheduleRotationUserList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleRotationUserList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { ScheduleRotationUserList scheduleRotationUserList = (ScheduleRotationUserList) o; return Objects.equals(this.data, scheduleRotationUserList.data) && Objects.equals(this.links, scheduleRotationUserList.links) && - Objects.equals(this.meta, scheduleRotationUserList.meta); + Objects.equals(this.meta, scheduleRotationUserList.meta) && + Objects.equals(this.included, scheduleRotationUserList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationUserListDataInner.java b/src/main/java/com/rootly/client/model/ScheduleRotationUserListDataInner.java index 1459e206..5c0e2998 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationUserListDataInner.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationUserListDataInner.java @@ -49,7 +49,7 @@ /** * ScheduleRotationUserListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationUserListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleRotationUserResponse.java b/src/main/java/com/rootly/client/model/ScheduleRotationUserResponse.java index 93566a2e..0fa83779 100644 --- a/src/main/java/com/rootly/client/model/ScheduleRotationUserResponse.java +++ b/src/main/java/com/rootly/client/model/ScheduleRotationUserResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleRotationUserListDataInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * ScheduleRotationUserResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleRotationUserResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private ScheduleRotationUserListDataInner data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ScheduleRotationUserResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull ScheduleRotationUserListDataInne } + public ScheduleRotationUserResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ScheduleRotationUserResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ScheduleRotationUserResponse scheduleRotationUserResponse = (ScheduleRotationUserResponse) o; - return Objects.equals(this.data, scheduleRotationUserResponse.data); + return Objects.equals(this.data, scheduleRotationUserResponse.data) && + Objects.equals(this.included, scheduleRotationUserResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ScheduleRotationUserResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` ScheduleRotationUserListDataInner.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ScheduleSlackChannel.java b/src/main/java/com/rootly/client/model/ScheduleSlackChannel.java index 2c48c731..d21a36e8 100644 --- a/src/main/java/com/rootly/client/model/ScheduleSlackChannel.java +++ b/src/main/java/com/rootly/client/model/ScheduleSlackChannel.java @@ -48,7 +48,7 @@ /** * Synced slack channel of the schedule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleSlackChannel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ScheduleSlackUserGroup.java b/src/main/java/com/rootly/client/model/ScheduleSlackUserGroup.java index b72cee48..aa579c71 100644 --- a/src/main/java/com/rootly/client/model/ScheduleSlackUserGroup.java +++ b/src/main/java/com/rootly/client/model/ScheduleSlackUserGroup.java @@ -48,7 +48,7 @@ /** * Synced slack group of the schedule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ScheduleSlackUserGroup { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Secret.java b/src/main/java/com/rootly/client/model/Secret.java index 67982a37..08d95217 100644 --- a/src/main/java/com/rootly/client/model/Secret.java +++ b/src/main/java/com/rootly/client/model/Secret.java @@ -49,7 +49,7 @@ /** * Secret */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Secret { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/SecretList.java b/src/main/java/com/rootly/client/model/SecretList.java index 00ef8cfa..1a7cc351 100644 --- a/src/main/java/com/rootly/client/model/SecretList.java +++ b/src/main/java/com/rootly/client/model/SecretList.java @@ -53,7 +53,7 @@ /** * SecretList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SecretList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/SecretResponse.java b/src/main/java/com/rootly/client/model/SecretResponse.java index 1eb42814..82b0fa68 100644 --- a/src/main/java/com/rootly/client/model/SecretResponse.java +++ b/src/main/java/com/rootly/client/model/SecretResponse.java @@ -49,7 +49,7 @@ /** * SecretResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SecretResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/SecretResponseData.java b/src/main/java/com/rootly/client/model/SecretResponseData.java index 73c0b6b7..ecb6d814 100644 --- a/src/main/java/com/rootly/client/model/SecretResponseData.java +++ b/src/main/java/com/rootly/client/model/SecretResponseData.java @@ -49,7 +49,7 @@ /** * SecretResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SecretResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/SendDashboardReportTaskParams.java b/src/main/java/com/rootly/client/model/SendDashboardReportTaskParams.java index 82f157cd..61825cf5 100644 --- a/src/main/java/com/rootly/client/model/SendDashboardReportTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendDashboardReportTaskParams.java @@ -51,7 +51,7 @@ /** * SendDashboardReportTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SendDashboardReportTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/SendEmailTaskParams.java b/src/main/java/com/rootly/client/model/SendEmailTaskParams.java index a1948dcb..6ec8e1c6 100644 --- a/src/main/java/com/rootly/client/model/SendEmailTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendEmailTaskParams.java @@ -51,7 +51,7 @@ /** * SendEmailTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SendEmailTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParams.java b/src/main/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParams.java new file mode 100644 index 00000000..bac8219b --- /dev/null +++ b/src/main/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParams.java @@ -0,0 +1,347 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * SendGoogleChatAttachmentsTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class SendGoogleChatAttachmentsTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + SEND_GOOGLE_CHAT_ATTACHMENTS("send_google_chat_attachments"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_SPACES = "spaces"; + @SerializedName(SERIALIZED_NAME_SPACES) + @jakarta.annotation.Nonnull + private List spaces = new ArrayList<>(); + + public static final String SERIALIZED_NAME_ATTACHMENTS = "attachments"; + @SerializedName(SERIALIZED_NAME_ATTACHMENTS) + @jakarta.annotation.Nonnull + private String attachments; + + public SendGoogleChatAttachmentsTaskParams() { + } + + public SendGoogleChatAttachmentsTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public SendGoogleChatAttachmentsTaskParams spaces(@jakarta.annotation.Nonnull List spaces) { + this.spaces = spaces; + return this; + } + + public SendGoogleChatAttachmentsTaskParams addSpacesItem(AddActionItemTaskParamsPostToSlackChannelsInner spacesItem) { + if (this.spaces == null) { + this.spaces = new ArrayList<>(); + } + this.spaces.add(spacesItem); + return this; + } + + /** + * Get spaces + * @return spaces + */ + @jakarta.annotation.Nonnull + public List getSpaces() { + return spaces; + } + + public void setSpaces(@jakarta.annotation.Nonnull List spaces) { + this.spaces = spaces; + } + + + public SendGoogleChatAttachmentsTaskParams attachments(@jakarta.annotation.Nonnull String attachments) { + this.attachments = attachments; + return this; + } + + /** + * Get attachments + * @return attachments + */ + @jakarta.annotation.Nonnull + public String getAttachments() { + return attachments; + } + + public void setAttachments(@jakarta.annotation.Nonnull String attachments) { + this.attachments = attachments; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SendGoogleChatAttachmentsTaskParams sendGoogleChatAttachmentsTaskParams = (SendGoogleChatAttachmentsTaskParams) o; + return Objects.equals(this.taskType, sendGoogleChatAttachmentsTaskParams.taskType) && + Objects.equals(this.spaces, sendGoogleChatAttachmentsTaskParams.spaces) && + Objects.equals(this.attachments, sendGoogleChatAttachmentsTaskParams.attachments); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, spaces, attachments); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SendGoogleChatAttachmentsTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" spaces: ").append(toIndentedString(spaces)).append("\n"); + sb.append(" attachments: ").append(toIndentedString(attachments)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("spaces"); + openapiFields.add("attachments"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("spaces"); + openapiRequiredFields.add("attachments"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SendGoogleChatAttachmentsTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SendGoogleChatAttachmentsTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SendGoogleChatAttachmentsTaskParams is not found in the empty JSON string", SendGoogleChatAttachmentsTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SendGoogleChatAttachmentsTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SendGoogleChatAttachmentsTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SendGoogleChatAttachmentsTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // ensure the json data is an array + if (!jsonObj.get("spaces").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `spaces` to be an array in the JSON string but got `%s`", jsonObj.get("spaces").toString())); + } + + JsonArray jsonArrayspaces = jsonObj.getAsJsonArray("spaces"); + // validate the required field `spaces` (array) + for (int i = 0; i < jsonArrayspaces.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArrayspaces.get(i)); + }; + if (!jsonObj.get("attachments").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `attachments` to be a primitive type in the JSON string but got `%s`", jsonObj.get("attachments").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SendGoogleChatAttachmentsTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SendGoogleChatAttachmentsTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SendGoogleChatAttachmentsTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SendGoogleChatAttachmentsTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SendGoogleChatAttachmentsTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SendGoogleChatAttachmentsTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of SendGoogleChatAttachmentsTaskParams + * @throws IOException if the JSON string is invalid with respect to SendGoogleChatAttachmentsTaskParams + */ + public static SendGoogleChatAttachmentsTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SendGoogleChatAttachmentsTaskParams.class); + } + + /** + * Convert an instance of SendGoogleChatAttachmentsTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/SendGoogleChatMessageTaskParams.java b/src/main/java/com/rootly/client/model/SendGoogleChatMessageTaskParams.java new file mode 100644 index 00000000..2e0b37f3 --- /dev/null +++ b/src/main/java/com/rootly/client/model/SendGoogleChatMessageTaskParams.java @@ -0,0 +1,389 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * SendGoogleChatMessageTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class SendGoogleChatMessageTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + SEND_GOOGLE_CHAT_MESSAGE("send_google_chat_message"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_SPACES = "spaces"; + @SerializedName(SERIALIZED_NAME_SPACES) + @jakarta.annotation.Nonnull + private List spaces = new ArrayList<>(); + + public static final String SERIALIZED_NAME_TEXT = "text"; + @SerializedName(SERIALIZED_NAME_TEXT) + @jakarta.annotation.Nonnull + private String text; + + public static final String SERIALIZED_NAME_THREAD_KEY = "thread_key"; + @SerializedName(SERIALIZED_NAME_THREAD_KEY) + @jakarta.annotation.Nullable + private String threadKey; + + public SendGoogleChatMessageTaskParams() { + } + + public SendGoogleChatMessageTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public SendGoogleChatMessageTaskParams spaces(@jakarta.annotation.Nonnull List spaces) { + this.spaces = spaces; + return this; + } + + public SendGoogleChatMessageTaskParams addSpacesItem(AddActionItemTaskParamsPostToSlackChannelsInner spacesItem) { + if (this.spaces == null) { + this.spaces = new ArrayList<>(); + } + this.spaces.add(spacesItem); + return this; + } + + /** + * Get spaces + * @return spaces + */ + @jakarta.annotation.Nonnull + public List getSpaces() { + return spaces; + } + + public void setSpaces(@jakarta.annotation.Nonnull List spaces) { + this.spaces = spaces; + } + + + public SendGoogleChatMessageTaskParams text(@jakarta.annotation.Nonnull String text) { + this.text = text; + return this; + } + + /** + * Get text + * @return text + */ + @jakarta.annotation.Nonnull + public String getText() { + return text; + } + + public void setText(@jakarta.annotation.Nonnull String text) { + this.text = text; + } + + + public SendGoogleChatMessageTaskParams threadKey(@jakarta.annotation.Nullable String threadKey) { + this.threadKey = threadKey; + return this; + } + + /** + * Thread key to reply within a thread. Messages with the same thread key are grouped together + * @return threadKey + */ + @jakarta.annotation.Nullable + public String getThreadKey() { + return threadKey; + } + + public void setThreadKey(@jakarta.annotation.Nullable String threadKey) { + this.threadKey = threadKey; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SendGoogleChatMessageTaskParams sendGoogleChatMessageTaskParams = (SendGoogleChatMessageTaskParams) o; + return Objects.equals(this.taskType, sendGoogleChatMessageTaskParams.taskType) && + Objects.equals(this.spaces, sendGoogleChatMessageTaskParams.spaces) && + Objects.equals(this.text, sendGoogleChatMessageTaskParams.text) && + Objects.equals(this.threadKey, sendGoogleChatMessageTaskParams.threadKey); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, spaces, text, threadKey); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SendGoogleChatMessageTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" spaces: ").append(toIndentedString(spaces)).append("\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" threadKey: ").append(toIndentedString(threadKey)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("spaces"); + openapiFields.add("text"); + openapiFields.add("thread_key"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("spaces"); + openapiRequiredFields.add("text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SendGoogleChatMessageTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SendGoogleChatMessageTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SendGoogleChatMessageTaskParams is not found in the empty JSON string", SendGoogleChatMessageTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SendGoogleChatMessageTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SendGoogleChatMessageTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SendGoogleChatMessageTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // ensure the json data is an array + if (!jsonObj.get("spaces").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `spaces` to be an array in the JSON string but got `%s`", jsonObj.get("spaces").toString())); + } + + JsonArray jsonArrayspaces = jsonObj.getAsJsonArray("spaces"); + // validate the required field `spaces` (array) + for (int i = 0; i < jsonArrayspaces.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArrayspaces.get(i)); + }; + if (!jsonObj.get("text").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `text` to be a primitive type in the JSON string but got `%s`", jsonObj.get("text").toString())); + } + if ((jsonObj.get("thread_key") != null && !jsonObj.get("thread_key").isJsonNull()) && !jsonObj.get("thread_key").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `thread_key` to be a primitive type in the JSON string but got `%s`", jsonObj.get("thread_key").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SendGoogleChatMessageTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SendGoogleChatMessageTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SendGoogleChatMessageTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SendGoogleChatMessageTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SendGoogleChatMessageTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SendGoogleChatMessageTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of SendGoogleChatMessageTaskParams + * @throws IOException if the JSON string is invalid with respect to SendGoogleChatMessageTaskParams + */ + public static SendGoogleChatMessageTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SendGoogleChatMessageTaskParams.class); + } + + /** + * Convert an instance of SendGoogleChatMessageTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParams.java b/src/main/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParams.java index 0f64dcf4..879e05c2 100644 --- a/src/main/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParams.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -48,106 +51,40 @@ /** * SendMicrosoftTeamsBlocksTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SendMicrosoftTeamsBlocksTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - SEND_MICROSOFT_TEAMS_BLOCKS("send_microsoft_teams_blocks"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_ATTACHMENTS = "attachments"; - @SerializedName(SERIALIZED_NAME_ATTACHMENTS) + public static final String SERIALIZED_NAME_CHANNELS = "channels"; + @SerializedName(SERIALIZED_NAME_CHANNELS) @jakarta.annotation.Nonnull - private String attachments; + private List channels = new ArrayList<>(); public SendMicrosoftTeamsBlocksTaskParams() { } - public SendMicrosoftTeamsBlocksTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; + public SendMicrosoftTeamsBlocksTaskParams channels(@jakarta.annotation.Nonnull List channels) { + this.channels = channels; return this; } - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public SendMicrosoftTeamsBlocksTaskParams attachments(@jakarta.annotation.Nonnull String attachments) { - this.attachments = attachments; + public SendMicrosoftTeamsBlocksTaskParams addChannelsItem(AddActionItemTaskParamsPostToSlackChannelsInner channelsItem) { + if (this.channels == null) { + this.channels = new ArrayList<>(); + } + this.channels.add(channelsItem); return this; } /** - * Support liquid markup. Needs to be a valid JSON string after liquid is parsed - * @return attachments + * Get channels + * @return channels */ @jakarta.annotation.Nonnull - public String getAttachments() { - return attachments; + public List getChannels() { + return channels; } - public void setAttachments(@jakarta.annotation.Nonnull String attachments) { - this.attachments = attachments; + public void setChannels(@jakarta.annotation.Nonnull List channels) { + this.channels = channels; } @@ -161,21 +98,19 @@ public boolean equals(Object o) { return false; } SendMicrosoftTeamsBlocksTaskParams sendMicrosoftTeamsBlocksTaskParams = (SendMicrosoftTeamsBlocksTaskParams) o; - return Objects.equals(this.taskType, sendMicrosoftTeamsBlocksTaskParams.taskType) && - Objects.equals(this.attachments, sendMicrosoftTeamsBlocksTaskParams.attachments); + return Objects.equals(this.channels, sendMicrosoftTeamsBlocksTaskParams.channels); } @Override public int hashCode() { - return Objects.hash(taskType, attachments); + return Objects.hash(channels); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SendMicrosoftTeamsBlocksTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" attachments: ").append(toIndentedString(attachments)).append("\n"); + sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); sb.append("}"); return sb.toString(); } @@ -198,10 +133,11 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("channels"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("attachments"); + openapiRequiredFields.add("channels"); } /** @@ -232,16 +168,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if (!jsonObj.get("attachments").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `attachments` to be a primitive type in the JSON string but got `%s`", jsonObj.get("attachments").toString())); + // ensure the json data is an array + if (!jsonObj.get("channels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `channels` to be an array in the JSON string but got `%s`", jsonObj.get("channels").toString())); } + + JsonArray jsonArraychannels = jsonObj.getAsJsonArray("channels"); + // validate the required field `channels` (array) + for (int i = 0; i < jsonArraychannels.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArraychannels.get(i)); + }; } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SendMicrosoftTeamsChatMessageTaskParams.java b/src/main/java/com/rootly/client/model/SendMicrosoftTeamsChatMessageTaskParams.java index 9842578f..0240dbda 100644 --- a/src/main/java/com/rootly/client/model/SendMicrosoftTeamsChatMessageTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendMicrosoftTeamsChatMessageTaskParams.java @@ -51,7 +51,7 @@ /** * SendMicrosoftTeamsChatMessageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SendMicrosoftTeamsChatMessageTaskParams { /** * Gets or Sets taskType @@ -105,23 +105,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TaskTypeEnum taskType; public static final String SERIALIZED_NAME_CHATS = "chats"; @SerializedName(SERIALIZED_NAME_CHATS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List chats = new ArrayList<>(); public static final String SERIALIZED_NAME_TEXT = "text"; @SerializedName(SERIALIZED_NAME_TEXT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String text; public SendMicrosoftTeamsChatMessageTaskParams() { } - public SendMicrosoftTeamsChatMessageTaskParams taskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public SendMicrosoftTeamsChatMessageTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; return this; } @@ -130,17 +130,17 @@ public SendMicrosoftTeamsChatMessageTaskParams taskType(@javax.annotation.Nullab * Get taskType * @return taskType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TaskTypeEnum getTaskType() { return taskType; } - public void setTaskType(@javax.annotation.Nullable TaskTypeEnum taskType) { + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { this.taskType = taskType; } - public SendMicrosoftTeamsChatMessageTaskParams chats(@javax.annotation.Nonnull List chats) { + public SendMicrosoftTeamsChatMessageTaskParams chats(@jakarta.annotation.Nonnull List chats) { this.chats = chats; return this; } @@ -157,17 +157,17 @@ public SendMicrosoftTeamsChatMessageTaskParams addChatsItem(AddActionItemTaskPar * Get chats * @return chats */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getChats() { return chats; } - public void setChats(@javax.annotation.Nonnull List chats) { + public void setChats(@jakarta.annotation.Nonnull List chats) { this.chats = chats; } - public SendMicrosoftTeamsChatMessageTaskParams text(@javax.annotation.Nonnull String text) { + public SendMicrosoftTeamsChatMessageTaskParams text(@jakarta.annotation.Nonnull String text) { this.text = text; return this; } @@ -176,12 +176,12 @@ public SendMicrosoftTeamsChatMessageTaskParams text(@javax.annotation.Nonnull St * The message text * @return text */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getText() { return text; } - public void setText(@javax.annotation.Nonnull String text) { + public void setText(@jakarta.annotation.Nonnull String text) { this.text = text; } diff --git a/src/main/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParams.java b/src/main/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParams.java index 68d3354c..cd23907b 100644 --- a/src/main/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParams.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -50,101 +51,22 @@ /** * SendMicrosoftTeamsMessageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SendMicrosoftTeamsMessageTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - SEND_MICROSOFT_TEAMS_MESSAGE("send_microsoft_teams_message"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - public static final String SERIALIZED_NAME_CHANNELS = "channels"; @SerializedName(SERIALIZED_NAME_CHANNELS) - @jakarta.annotation.Nullable - private List channels = new ArrayList<>(); - - public static final String SERIALIZED_NAME_TEXT = "text"; - @SerializedName(SERIALIZED_NAME_TEXT) @jakarta.annotation.Nonnull - private String text; + private List channels = new ArrayList<>(); public SendMicrosoftTeamsMessageTaskParams() { } - public SendMicrosoftTeamsMessageTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public SendMicrosoftTeamsMessageTaskParams channels(@jakarta.annotation.Nullable List channels) { + public SendMicrosoftTeamsMessageTaskParams channels(@jakarta.annotation.Nonnull List channels) { this.channels = channels; return this; } - public SendMicrosoftTeamsMessageTaskParams addChannelsItem(Object channelsItem) { + public SendMicrosoftTeamsMessageTaskParams addChannelsItem(AddActionItemTaskParamsPostToSlackChannelsInner channelsItem) { if (this.channels == null) { this.channels = new ArrayList<>(); } @@ -156,35 +78,16 @@ public SendMicrosoftTeamsMessageTaskParams addChannelsItem(Object channelsItem) * Get channels * @return channels */ - @jakarta.annotation.Nullable - public List getChannels() { + @jakarta.annotation.Nonnull + public List getChannels() { return channels; } - public void setChannels(@jakarta.annotation.Nullable List channels) { + public void setChannels(@jakarta.annotation.Nonnull List channels) { this.channels = channels; } - public SendMicrosoftTeamsMessageTaskParams text(@jakarta.annotation.Nonnull String text) { - this.text = text; - return this; - } - - /** - * The message text - * @return text - */ - @jakarta.annotation.Nonnull - public String getText() { - return text; - } - - public void setText(@jakarta.annotation.Nonnull String text) { - this.text = text; - } - - @Override public boolean equals(Object o) { @@ -195,23 +98,19 @@ public boolean equals(Object o) { return false; } SendMicrosoftTeamsMessageTaskParams sendMicrosoftTeamsMessageTaskParams = (SendMicrosoftTeamsMessageTaskParams) o; - return Objects.equals(this.taskType, sendMicrosoftTeamsMessageTaskParams.taskType) && - Objects.equals(this.channels, sendMicrosoftTeamsMessageTaskParams.channels) && - Objects.equals(this.text, sendMicrosoftTeamsMessageTaskParams.text); + return Objects.equals(this.channels, sendMicrosoftTeamsMessageTaskParams.channels); } @Override public int hashCode() { - return Objects.hash(taskType, channels, text); + return Objects.hash(channels); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SendMicrosoftTeamsMessageTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); - sb.append(" text: ").append(toIndentedString(text)).append("\n"); sb.append("}"); return sb.toString(); } @@ -234,10 +133,11 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("channels"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("text"); + openapiRequiredFields.add("channels"); } /** @@ -268,29 +168,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if (jsonObj.get("channels") != null && !jsonObj.get("channels").isJsonNull()) { - JsonArray jsonArraychannels = jsonObj.getAsJsonArray("channels"); - if (jsonArraychannels != null) { - // ensure the json data is an array - if (!jsonObj.get("channels").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `channels` to be an array in the JSON string but got `%s`", jsonObj.get("channels").toString())); - } - - // validate the optional field `channels` (array) - for (int i = 0; i < jsonArraychannels.size(); i++) { - }; - } - } - if (!jsonObj.get("text").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `text` to be a primitive type in the JSON string but got `%s`", jsonObj.get("text").toString())); + // ensure the json data is an array + if (!jsonObj.get("channels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `channels` to be an array in the JSON string but got `%s`", jsonObj.get("channels").toString())); } + + JsonArray jsonArraychannels = jsonObj.getAsJsonArray("channels"); + // validate the required field `channels` (array) + for (int i = 0; i < jsonArraychannels.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArraychannels.get(i)); + }; } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SendSlackBlocksTaskParams.java b/src/main/java/com/rootly/client/model/SendSlackBlocksTaskParams.java index eebbc676..b90f606f 100644 --- a/src/main/java/com/rootly/client/model/SendSlackBlocksTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendSlackBlocksTaskParams.java @@ -19,667 +19,298 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf1; +import com.rootly.client.model.SendSlackMessageTaskParamsAnyOf; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * SendSlackBlocksTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class SendSlackBlocksTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - SEND_SLACK_BLOCKS("send_slack_blocks"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class SendSlackBlocksTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(SendSlackBlocksTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SendSlackBlocksTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SendSlackBlocksTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterSendSlackMessageTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(SendSlackMessageTaskParamsAnyOf.class)); + final TypeAdapter adapterInviteToSlackChannelTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf.class)); + final TypeAdapter adapterInviteToSlackChannelTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SendSlackBlocksTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `SendSlackMessageTaskParamsAnyOf` + if (value.getActualInstance() instanceof SendSlackMessageTaskParamsAnyOf) { + JsonElement element = adapterSendSlackMessageTaskParamsAnyOf.toJsonTree((SendSlackMessageTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToSlackChannelTaskParamsAnyOf` + if (value.getActualInstance() instanceof InviteToSlackChannelTaskParamsAnyOf) { + JsonElement element = adapterInviteToSlackChannelTaskParamsAnyOf.toJsonTree((InviteToSlackChannelTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToSlackChannelTaskParamsAnyOf1` + if (value.getActualInstance() instanceof InviteToSlackChannelTaskParamsAnyOf1) { + JsonElement element = adapterInviteToSlackChannelTaskParamsAnyOf1.toJsonTree((InviteToSlackChannelTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf"); + } + + @Override + public SendSlackBlocksTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize SendSlackMessageTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + SendSlackMessageTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterSendSlackMessageTaskParamsAnyOf; + SendSlackBlocksTaskParams ret = new SendSlackBlocksTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendSlackMessageTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendSlackMessageTaskParamsAnyOf'", e); + } + // deserialize InviteToSlackChannelTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + InviteToSlackChannelTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToSlackChannelTaskParamsAnyOf; + SendSlackBlocksTaskParams ret = new SendSlackBlocksTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelTaskParamsAnyOf'", e); + } + // deserialize InviteToSlackChannelTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + InviteToSlackChannelTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToSlackChannelTaskParamsAnyOf1; + SendSlackBlocksTaskParams ret = new SendSlackBlocksTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for SendSlackBlocksTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } } - public String getValue() { - return value; - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - @Override - public String toString() { - return String.valueOf(value); + public SendSlackBlocksTaskParams() { + super("anyOf", Boolean.FALSE); } - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); + public SendSlackBlocksTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + static { + schemas.put("SendSlackMessageTaskParamsAnyOf", SendSlackMessageTaskParamsAnyOf.class); + schemas.put("InviteToSlackChannelTaskParamsAnyOf", InviteToSlackChannelTaskParamsAnyOf.class); + schemas.put("InviteToSlackChannelTaskParamsAnyOf1", InviteToSlackChannelTaskParamsAnyOf1.class); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_MESSAGE = "message"; - @SerializedName(SERIALIZED_NAME_MESSAGE) - @jakarta.annotation.Nullable - private String message; - - public static final String SERIALIZED_NAME_BLOCKS = "blocks"; - @SerializedName(SERIALIZED_NAME_BLOCKS) - @jakarta.annotation.Nonnull - private String blocks; - - public static final String SERIALIZED_NAME_ATTACHMENTS = "attachments"; - @SerializedName(SERIALIZED_NAME_ATTACHMENTS) - @jakarta.annotation.Nullable - private String attachments; - - public static final String SERIALIZED_NAME_CHANNELS = "channels"; - @SerializedName(SERIALIZED_NAME_CHANNELS) - @jakarta.annotation.Nullable - private List channels = new ArrayList<>(); - - public static final String SERIALIZED_NAME_SLACK_USERS = "slack_users"; - @SerializedName(SERIALIZED_NAME_SLACK_USERS) - @jakarta.annotation.Nullable - private List slackUsers = new ArrayList<>(); - - public static final String SERIALIZED_NAME_SLACK_USER_GROUPS = "slack_user_groups"; - @SerializedName(SERIALIZED_NAME_SLACK_USER_GROUPS) - @jakarta.annotation.Nullable - private List slackUserGroups = new ArrayList<>(); - - public static final String SERIALIZED_NAME_BROADCAST_THREAD_REPLY_TO_CHANNEL = "broadcast_thread_reply_to_channel"; - @SerializedName(SERIALIZED_NAME_BROADCAST_THREAD_REPLY_TO_CHANNEL) - @jakarta.annotation.Nullable - private Boolean broadcastThreadReplyToChannel; - - public static final String SERIALIZED_NAME_SEND_AS_EPHEMERAL = "send_as_ephemeral"; - @SerializedName(SERIALIZED_NAME_SEND_AS_EPHEMERAL) - @jakarta.annotation.Nullable - private Boolean sendAsEphemeral; - - public static final String SERIALIZED_NAME_PIN_TO_CHANNEL = "pin_to_channel"; - @SerializedName(SERIALIZED_NAME_PIN_TO_CHANNEL) - @jakarta.annotation.Nullable - private Boolean pinToChannel; - - public static final String SERIALIZED_NAME_THREAD_TS = "thread_ts"; - @SerializedName(SERIALIZED_NAME_THREAD_TS) - @jakarta.annotation.Nullable - private String threadTs; - - public static final String SERIALIZED_NAME_UPDATE_PARENT_MESSAGE = "update_parent_message"; - @SerializedName(SERIALIZED_NAME_UPDATE_PARENT_MESSAGE) - @jakarta.annotation.Nullable - private Boolean updateParentMessage; - - public static final String SERIALIZED_NAME_PARENT_MESSAGE_THREAD_TASK = "parent_message_thread_task"; - @SerializedName(SERIALIZED_NAME_PARENT_MESSAGE_THREAD_TASK) - @jakarta.annotation.Nullable - private Object parentMessageThreadTask; - - public static final String SERIALIZED_NAME_SEND_ONLY_AS_THREADED_MESSAGE = "send_only_as_threaded_message"; - @SerializedName(SERIALIZED_NAME_SEND_ONLY_AS_THREADED_MESSAGE) - @jakarta.annotation.Nullable - private Boolean sendOnlyAsThreadedMessage; - - public SendSlackBlocksTaskParams() { - } - - public SendSlackBlocksTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public SendSlackBlocksTaskParams message(@jakarta.annotation.Nullable String message) { - this.message = message; - return this; - } - - /** - * Get message - * @return message - */ - @jakarta.annotation.Nullable - public String getMessage() { - return message; - } - - public void setMessage(@jakarta.annotation.Nullable String message) { - this.message = message; - } - - - public SendSlackBlocksTaskParams blocks(@jakarta.annotation.Nonnull String blocks) { - this.blocks = blocks; - return this; - } - - /** - * Support liquid markup. Needs to be a valid JSON string after liquid is parsed - * @return blocks - */ - @jakarta.annotation.Nonnull - public String getBlocks() { - return blocks; - } - - public void setBlocks(@jakarta.annotation.Nonnull String blocks) { - this.blocks = blocks; - } - - - public SendSlackBlocksTaskParams attachments(@jakarta.annotation.Nullable String attachments) { - this.attachments = attachments; - return this; - } - - /** - * Support liquid markup. Needs to be a valid JSON string after liquid is parsed - * @return attachments - */ - @jakarta.annotation.Nullable - public String getAttachments() { - return attachments; - } - - public void setAttachments(@jakarta.annotation.Nullable String attachments) { - this.attachments = attachments; - } - - - public SendSlackBlocksTaskParams channels(@jakarta.annotation.Nullable List channels) { - this.channels = channels; - return this; - } - - public SendSlackBlocksTaskParams addChannelsItem(Object channelsItem) { - if (this.channels == null) { - this.channels = new ArrayList<>(); - } - this.channels.add(channelsItem); - return this; - } - - /** - * Get channels - * @return channels - */ - @jakarta.annotation.Nullable - public List getChannels() { - return channels; - } - - public void setChannels(@jakarta.annotation.Nullable List channels) { - this.channels = channels; - } - - - public SendSlackBlocksTaskParams slackUsers(@jakarta.annotation.Nullable List slackUsers) { - this.slackUsers = slackUsers; - return this; - } - - public SendSlackBlocksTaskParams addSlackUsersItem(Object slackUsersItem) { - if (this.slackUsers == null) { - this.slackUsers = new ArrayList<>(); + @Override + public Map> getSchemas() { + return SendSlackBlocksTaskParams.schemas; } - this.slackUsers.add(slackUsersItem); - return this; - } - - /** - * Get slackUsers - * @return slackUsers - */ - @jakarta.annotation.Nullable - public List getSlackUsers() { - return slackUsers; - } - - public void setSlackUsers(@jakarta.annotation.Nullable List slackUsers) { - this.slackUsers = slackUsers; - } - - - public SendSlackBlocksTaskParams slackUserGroups(@jakarta.annotation.Nullable List slackUserGroups) { - this.slackUserGroups = slackUserGroups; - return this; - } - - public SendSlackBlocksTaskParams addSlackUserGroupsItem(Object slackUserGroupsItem) { - if (this.slackUserGroups == null) { - this.slackUserGroups = new ArrayList<>(); + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof SendSlackMessageTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof InviteToSlackChannelTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof InviteToSlackChannelTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf"); } - this.slackUserGroups.add(slackUserGroupsItem); - return this; - } - - /** - * Get slackUserGroups - * @return slackUserGroups - */ - @jakarta.annotation.Nullable - public List getSlackUserGroups() { - return slackUserGroups; - } - - public void setSlackUserGroups(@jakarta.annotation.Nullable List slackUserGroups) { - this.slackUserGroups = slackUserGroups; - } - - - public SendSlackBlocksTaskParams broadcastThreadReplyToChannel(@jakarta.annotation.Nullable Boolean broadcastThreadReplyToChannel) { - this.broadcastThreadReplyToChannel = broadcastThreadReplyToChannel; - return this; - } - - /** - * Get broadcastThreadReplyToChannel - * @return broadcastThreadReplyToChannel - */ - @jakarta.annotation.Nullable - public Boolean getBroadcastThreadReplyToChannel() { - return broadcastThreadReplyToChannel; - } - - public void setBroadcastThreadReplyToChannel(@jakarta.annotation.Nullable Boolean broadcastThreadReplyToChannel) { - this.broadcastThreadReplyToChannel = broadcastThreadReplyToChannel; - } - - - public SendSlackBlocksTaskParams sendAsEphemeral(@jakarta.annotation.Nullable Boolean sendAsEphemeral) { - this.sendAsEphemeral = sendAsEphemeral; - return this; - } - - /** - * Get sendAsEphemeral - * @return sendAsEphemeral - */ - @jakarta.annotation.Nullable - public Boolean getSendAsEphemeral() { - return sendAsEphemeral; - } - - public void setSendAsEphemeral(@jakarta.annotation.Nullable Boolean sendAsEphemeral) { - this.sendAsEphemeral = sendAsEphemeral; - } - - - public SendSlackBlocksTaskParams pinToChannel(@jakarta.annotation.Nullable Boolean pinToChannel) { - this.pinToChannel = pinToChannel; - return this; - } - - /** - * Get pinToChannel - * @return pinToChannel - */ - @jakarta.annotation.Nullable - public Boolean getPinToChannel() { - return pinToChannel; - } - - public void setPinToChannel(@jakarta.annotation.Nullable Boolean pinToChannel) { - this.pinToChannel = pinToChannel; - } - - - public SendSlackBlocksTaskParams threadTs(@jakarta.annotation.Nullable String threadTs) { - this.threadTs = threadTs; - return this; - } - - /** - * The thread to send the message into - * @return threadTs - */ - @jakarta.annotation.Nullable - public String getThreadTs() { - return threadTs; - } - - public void setThreadTs(@jakarta.annotation.Nullable String threadTs) { - this.threadTs = threadTs; - } - - - public SendSlackBlocksTaskParams updateParentMessage(@jakarta.annotation.Nullable Boolean updateParentMessage) { - this.updateParentMessage = updateParentMessage; - return this; - } - - /** - * Get updateParentMessage - * @return updateParentMessage - */ - @jakarta.annotation.Nullable - public Boolean getUpdateParentMessage() { - return updateParentMessage; - } - - public void setUpdateParentMessage(@jakarta.annotation.Nullable Boolean updateParentMessage) { - this.updateParentMessage = updateParentMessage; - } - - - public SendSlackBlocksTaskParams parentMessageThreadTask(@jakarta.annotation.Nullable Object parentMessageThreadTask) { - this.parentMessageThreadTask = parentMessageThreadTask; - return this; - } - - /** - * A hash where [id] is the task id of the parent task that sent a message, and [name] is the name of the parent task - * @return parentMessageThreadTask - */ - @jakarta.annotation.Nullable - public Object getParentMessageThreadTask() { - return parentMessageThreadTask; - } - - public void setParentMessageThreadTask(@jakarta.annotation.Nullable Object parentMessageThreadTask) { - this.parentMessageThreadTask = parentMessageThreadTask; - } - - - public SendSlackBlocksTaskParams sendOnlyAsThreadedMessage(@jakarta.annotation.Nullable Boolean sendOnlyAsThreadedMessage) { - this.sendOnlyAsThreadedMessage = sendOnlyAsThreadedMessage; - return this; - } - - /** - * When set to true, if the parent for this threaded message cannot be found the message will be skipped. - * @return sendOnlyAsThreadedMessage - */ - @jakarta.annotation.Nullable - public Boolean getSendOnlyAsThreadedMessage() { - return sendOnlyAsThreadedMessage; - } - - public void setSendOnlyAsThreadedMessage(@jakarta.annotation.Nullable Boolean sendOnlyAsThreadedMessage) { - this.sendOnlyAsThreadedMessage = sendOnlyAsThreadedMessage; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; + + /** + * Get the actual instance, which can be the following: + * InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf + * + * @return The actual instance (InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - if (o == null || getClass() != o.getClass()) { - return false; + + /** + * Get the actual instance of `SendSlackMessageTaskParamsAnyOf`. If the actual instance is not `SendSlackMessageTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendSlackMessageTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `SendSlackMessageTaskParamsAnyOf` + */ + public SendSlackMessageTaskParamsAnyOf getSendSlackMessageTaskParamsAnyOf() throws ClassCastException { + return (SendSlackMessageTaskParamsAnyOf)super.getActualInstance(); } - SendSlackBlocksTaskParams sendSlackBlocksTaskParams = (SendSlackBlocksTaskParams) o; - return Objects.equals(this.taskType, sendSlackBlocksTaskParams.taskType) && - Objects.equals(this.message, sendSlackBlocksTaskParams.message) && - Objects.equals(this.blocks, sendSlackBlocksTaskParams.blocks) && - Objects.equals(this.attachments, sendSlackBlocksTaskParams.attachments) && - Objects.equals(this.channels, sendSlackBlocksTaskParams.channels) && - Objects.equals(this.slackUsers, sendSlackBlocksTaskParams.slackUsers) && - Objects.equals(this.slackUserGroups, sendSlackBlocksTaskParams.slackUserGroups) && - Objects.equals(this.broadcastThreadReplyToChannel, sendSlackBlocksTaskParams.broadcastThreadReplyToChannel) && - Objects.equals(this.sendAsEphemeral, sendSlackBlocksTaskParams.sendAsEphemeral) && - Objects.equals(this.pinToChannel, sendSlackBlocksTaskParams.pinToChannel) && - Objects.equals(this.threadTs, sendSlackBlocksTaskParams.threadTs) && - Objects.equals(this.updateParentMessage, sendSlackBlocksTaskParams.updateParentMessage) && - Objects.equals(this.parentMessageThreadTask, sendSlackBlocksTaskParams.parentMessageThreadTask) && - Objects.equals(this.sendOnlyAsThreadedMessage, sendSlackBlocksTaskParams.sendOnlyAsThreadedMessage); - } - - @Override - public int hashCode() { - return Objects.hash(taskType, message, blocks, attachments, channels, slackUsers, slackUserGroups, broadcastThreadReplyToChannel, sendAsEphemeral, pinToChannel, threadTs, updateParentMessage, parentMessageThreadTask, sendOnlyAsThreadedMessage); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class SendSlackBlocksTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" message: ").append(toIndentedString(message)).append("\n"); - sb.append(" blocks: ").append(toIndentedString(blocks)).append("\n"); - sb.append(" attachments: ").append(toIndentedString(attachments)).append("\n"); - sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); - sb.append(" slackUsers: ").append(toIndentedString(slackUsers)).append("\n"); - sb.append(" slackUserGroups: ").append(toIndentedString(slackUserGroups)).append("\n"); - sb.append(" broadcastThreadReplyToChannel: ").append(toIndentedString(broadcastThreadReplyToChannel)).append("\n"); - sb.append(" sendAsEphemeral: ").append(toIndentedString(sendAsEphemeral)).append("\n"); - sb.append(" pinToChannel: ").append(toIndentedString(pinToChannel)).append("\n"); - sb.append(" threadTs: ").append(toIndentedString(threadTs)).append("\n"); - sb.append(" updateParentMessage: ").append(toIndentedString(updateParentMessage)).append("\n"); - sb.append(" parentMessageThreadTask: ").append(toIndentedString(parentMessageThreadTask)).append("\n"); - sb.append(" sendOnlyAsThreadedMessage: ").append(toIndentedString(sendOnlyAsThreadedMessage)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + + /** + * Get the actual instance of `InviteToSlackChannelTaskParamsAnyOf`. If the actual instance is not `InviteToSlackChannelTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToSlackChannelTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `InviteToSlackChannelTaskParamsAnyOf` + */ + public InviteToSlackChannelTaskParamsAnyOf getInviteToSlackChannelTaskParamsAnyOf() throws ClassCastException { + return (InviteToSlackChannelTaskParamsAnyOf)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("blocks"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to SendSlackBlocksTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!SendSlackBlocksTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in SendSlackBlocksTaskParams is not found in the empty JSON string", SendSlackBlocksTaskParams.openapiRequiredFields.toString())); - } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!SendSlackBlocksTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SendSlackBlocksTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); - } - } + /** + * Get the actual instance of `InviteToSlackChannelTaskParamsAnyOf1`. If the actual instance is not `InviteToSlackChannelTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToSlackChannelTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `InviteToSlackChannelTaskParamsAnyOf1` + */ + public InviteToSlackChannelTaskParamsAnyOf1 getInviteToSlackChannelTaskParamsAnyOf1() throws ClassCastException { + return (InviteToSlackChannelTaskParamsAnyOf1)super.getActualInstance(); + } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : SendSlackBlocksTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if ((jsonObj.get("message") != null && !jsonObj.get("message").isJsonNull()) && !jsonObj.get("message").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `message` to be a primitive type in the JSON string but got `%s`", jsonObj.get("message").toString())); - } - if (!jsonObj.get("blocks").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `blocks` to be a primitive type in the JSON string but got `%s`", jsonObj.get("blocks").toString())); - } - if ((jsonObj.get("attachments") != null && !jsonObj.get("attachments").isJsonNull()) && !jsonObj.get("attachments").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `attachments` to be a primitive type in the JSON string but got `%s`", jsonObj.get("attachments").toString())); - } - if (jsonObj.get("channels") != null && !jsonObj.get("channels").isJsonNull()) { - JsonArray jsonArraychannels = jsonObj.getAsJsonArray("channels"); - if (jsonArraychannels != null) { - // ensure the json data is an array - if (!jsonObj.get("channels").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `channels` to be an array in the JSON string but got `%s`", jsonObj.get("channels").toString())); - } - - // validate the optional field `channels` (array) - for (int i = 0; i < jsonArraychannels.size(); i++) { - }; + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SendSlackBlocksTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with SendSlackMessageTaskParamsAnyOf + try { + SendSlackMessageTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendSlackMessageTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if (jsonObj.get("slack_users") != null && !jsonObj.get("slack_users").isJsonNull()) { - JsonArray jsonArrayslackUsers = jsonObj.getAsJsonArray("slack_users"); - if (jsonArrayslackUsers != null) { - // ensure the json data is an array - if (!jsonObj.get("slack_users").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_users` to be an array in the JSON string but got `%s`", jsonObj.get("slack_users").toString())); - } - - // validate the optional field `slack_users` (array) - for (int i = 0; i < jsonArrayslackUsers.size(); i++) { - }; + // validate the json string with InviteToSlackChannelTaskParamsAnyOf + try { + InviteToSlackChannelTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if (jsonObj.get("slack_user_groups") != null && !jsonObj.get("slack_user_groups").isJsonNull()) { - JsonArray jsonArrayslackUserGroups = jsonObj.getAsJsonArray("slack_user_groups"); - if (jsonArrayslackUserGroups != null) { - // ensure the json data is an array - if (!jsonObj.get("slack_user_groups").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_user_groups` to be an array in the JSON string but got `%s`", jsonObj.get("slack_user_groups").toString())); - } - - // validate the optional field `slack_user_groups` (array) - for (int i = 0; i < jsonArrayslackUserGroups.size(); i++) { - }; + // validate the json string with InviteToSlackChannelTaskParamsAnyOf1 + try { + InviteToSlackChannelTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if ((jsonObj.get("thread_ts") != null && !jsonObj.get("thread_ts").isJsonNull()) && !jsonObj.get("thread_ts").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `thread_ts` to be a primitive type in the JSON string but got `%s`", jsonObj.get("thread_ts").toString())); - } - // validate the optional field `parent_message_thread_task` - if (jsonObj.get("parent_message_thread_task") != null && !jsonObj.get("parent_message_thread_task").isJsonNull()) { - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!SendSlackBlocksTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'SendSlackBlocksTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(SendSlackBlocksTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, SendSlackBlocksTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public SendSlackBlocksTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + throw new IOException(String.format("The JSON string is invalid for SendSlackBlocksTaskParams with anyOf schemas: InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of SendSlackBlocksTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of SendSlackBlocksTaskParams + * @throws IOException if the JSON string is invalid with respect to SendSlackBlocksTaskParams + */ + public static SendSlackBlocksTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SendSlackBlocksTaskParams.class); + } + + /** + * Convert an instance of SendSlackBlocksTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); } - } - - /** - * Create an instance of SendSlackBlocksTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of SendSlackBlocksTaskParams - * @throws IOException if the JSON string is invalid with respect to SendSlackBlocksTaskParams - */ - public static SendSlackBlocksTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, SendSlackBlocksTaskParams.class); - } - - /** - * Convert an instance of SendSlackBlocksTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } } diff --git a/src/main/java/com/rootly/client/model/SendSlackMessageTaskParams.java b/src/main/java/com/rootly/client/model/SendSlackMessageTaskParams.java index a1793633..9164b9d2 100644 --- a/src/main/java/com/rootly/client/model/SendSlackMessageTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendSlackMessageTaskParams.java @@ -19,762 +19,298 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf1; +import com.rootly.client.model.SendSlackMessageTaskParamsAnyOf; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; import com.google.gson.reflect.TypeToken; -import com.google.gson.TypeAdapter; +import com.google.gson.JsonPrimitive; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; import com.rootly.client.JSON; -/** - * SendSlackMessageTaskParams - */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") -public class SendSlackMessageTaskParams { - /** - * Gets or Sets taskType - */ - @JsonAdapter(TaskTypeEnum.Adapter.class) - public enum TaskTypeEnum { - SEND_SLACK_MESSAGE("send_slack_message"); - - private String value; - - TaskTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class SendSlackMessageTaskParams extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(SendSlackMessageTaskParams.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SendSlackMessageTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SendSlackMessageTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterSendSlackMessageTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(SendSlackMessageTaskParamsAnyOf.class)); + final TypeAdapter adapterInviteToSlackChannelTaskParamsAnyOf = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf.class)); + final TypeAdapter adapterInviteToSlackChannelTaskParamsAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParamsAnyOf1.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SendSlackMessageTaskParams value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `SendSlackMessageTaskParamsAnyOf` + if (value.getActualInstance() instanceof SendSlackMessageTaskParamsAnyOf) { + JsonElement element = adapterSendSlackMessageTaskParamsAnyOf.toJsonTree((SendSlackMessageTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToSlackChannelTaskParamsAnyOf` + if (value.getActualInstance() instanceof InviteToSlackChannelTaskParamsAnyOf) { + JsonElement element = adapterInviteToSlackChannelTaskParamsAnyOf.toJsonTree((InviteToSlackChannelTaskParamsAnyOf)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToSlackChannelTaskParamsAnyOf1` + if (value.getActualInstance() instanceof InviteToSlackChannelTaskParamsAnyOf1) { + JsonElement element = adapterInviteToSlackChannelTaskParamsAnyOf1.toJsonTree((InviteToSlackChannelTaskParamsAnyOf1)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf"); + } + + @Override + public SendSlackMessageTaskParams read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize SendSlackMessageTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + SendSlackMessageTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterSendSlackMessageTaskParamsAnyOf; + SendSlackMessageTaskParams ret = new SendSlackMessageTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendSlackMessageTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendSlackMessageTaskParamsAnyOf'", e); + } + // deserialize InviteToSlackChannelTaskParamsAnyOf + try { + // validate the JSON object to see if any exception is thrown + InviteToSlackChannelTaskParamsAnyOf.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToSlackChannelTaskParamsAnyOf; + SendSlackMessageTaskParams ret = new SendSlackMessageTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelTaskParamsAnyOf'", e); + } + // deserialize InviteToSlackChannelTaskParamsAnyOf1 + try { + // validate the JSON object to see if any exception is thrown + InviteToSlackChannelTaskParamsAnyOf1.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToSlackChannelTaskParamsAnyOf1; + SendSlackMessageTaskParams ret = new SendSlackMessageTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelTaskParamsAnyOf1'", e); + } + + throw new IOException(String.format("Failed deserialization for SendSlackMessageTaskParams: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } } - @Override - public String toString() { - return String.valueOf(value); - } + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); - public static TaskTypeEnum fromValue(String value) { - for (TaskTypeEnum b : TaskTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); + public SendSlackMessageTaskParams() { + super("anyOf", Boolean.FALSE); } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return TaskTypeEnum.fromValue(value); - } + public SendSlackMessageTaskParams(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - TaskTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; - @SerializedName(SERIALIZED_NAME_TASK_TYPE) - @jakarta.annotation.Nullable - private TaskTypeEnum taskType; - - public static final String SERIALIZED_NAME_CHANNELS = "channels"; - @SerializedName(SERIALIZED_NAME_CHANNELS) - @jakarta.annotation.Nullable - private List channels = new ArrayList<>(); - - public static final String SERIALIZED_NAME_SLACK_USERS = "slack_users"; - @SerializedName(SERIALIZED_NAME_SLACK_USERS) - @jakarta.annotation.Nullable - private List slackUsers = new ArrayList<>(); - - public static final String SERIALIZED_NAME_SLACK_USER_GROUPS = "slack_user_groups"; - @SerializedName(SERIALIZED_NAME_SLACK_USER_GROUPS) - @jakarta.annotation.Nullable - private List slackUserGroups = new ArrayList<>(); - - /** - * Gets or Sets actionables - */ - @JsonAdapter(ActionablesEnum.Adapter.class) - public enum ActionablesEnum { - UPDATE_SUMMARY("update_summary"), - - UPDATE_STATUS("update_status"), - - ARCHIVE_CHANNEL("archive_channel"), - - MANAGE_INCIDENT_ROLES("manage_incident_roles"), - - UPDATE_INCIDENT("update_incident"), - - ALL_COMMANDS("all_commands"), - - LEAVE_FEEDBACK("leave_feedback"), - - MANAGE_FORM_FIELDS("manage_form_fields"), - - MANAGE_ACTION_ITEMS("manage_action_items"), - - VIEW_TASKS("view_tasks"), - - ADD_PAGERDUTY_RESPONDERS("add_pagerduty_responders"), - - ADD_OPSGENIE_RESPONDERS("add_opsgenie_responders"), - - ADD_VICTOR_OPS_RESPONDERS("add_victor_ops_responders"), - - UPDATE_STATUS_PAGE("update_status_page"), - - PAUSE_REMINDER("pause_reminder"), - - SNOOZE_REMINDER("snooze_reminder"), - - RESTART_REMINDER("restart_reminder"), - - CANCEL_INCIDENT("cancel_incident"), - - DELETE_MESSAGE("delete_message"); - - private String value; - - ActionablesEnum(String value) { - this.value = value; + static { + schemas.put("SendSlackMessageTaskParamsAnyOf", SendSlackMessageTaskParamsAnyOf.class); + schemas.put("InviteToSlackChannelTaskParamsAnyOf", InviteToSlackChannelTaskParamsAnyOf.class); + schemas.put("InviteToSlackChannelTaskParamsAnyOf1", InviteToSlackChannelTaskParamsAnyOf1.class); } - public String getValue() { - return value; + @Override + public Map> getSchemas() { + return SendSlackMessageTaskParams.schemas; } + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf + * + * It could be an instance of the 'anyOf' schemas. + */ @Override - public String toString() { - return String.valueOf(value); - } + public void setActualInstance(Object instance) { + if (instance instanceof SendSlackMessageTaskParamsAnyOf) { + super.setActualInstance(instance); + return; + } - public static ActionablesEnum fromValue(String value) { - for (ActionablesEnum b : ActionablesEnum.values()) { - if (b.value.equals(value)) { - return b; + if (instance instanceof InviteToSlackChannelTaskParamsAnyOf) { + super.setActualInstance(instance); + return; } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final ActionablesEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public ActionablesEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return ActionablesEnum.fromValue(value); - } - } + if (instance instanceof InviteToSlackChannelTaskParamsAnyOf1) { + super.setActualInstance(instance); + return; + } - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - ActionablesEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_ACTIONABLES = "actionables"; - @SerializedName(SERIALIZED_NAME_ACTIONABLES) - @jakarta.annotation.Nullable - private List actionables = new ArrayList<>(); - - public static final String SERIALIZED_NAME_BROADCAST_THREAD_REPLY_TO_CHANNEL = "broadcast_thread_reply_to_channel"; - @SerializedName(SERIALIZED_NAME_BROADCAST_THREAD_REPLY_TO_CHANNEL) - @jakarta.annotation.Nullable - private Boolean broadcastThreadReplyToChannel; - - public static final String SERIALIZED_NAME_SEND_AS_EPHEMERAL = "send_as_ephemeral"; - @SerializedName(SERIALIZED_NAME_SEND_AS_EPHEMERAL) - @jakarta.annotation.Nullable - private Boolean sendAsEphemeral; - - public static final String SERIALIZED_NAME_COLOR = "color"; - @SerializedName(SERIALIZED_NAME_COLOR) - @jakarta.annotation.Nullable - private String color; - - public static final String SERIALIZED_NAME_PIN_TO_CHANNEL = "pin_to_channel"; - @SerializedName(SERIALIZED_NAME_PIN_TO_CHANNEL) - @jakarta.annotation.Nullable - private Boolean pinToChannel; - - public static final String SERIALIZED_NAME_UPDATE_PARENT_MESSAGE = "update_parent_message"; - @SerializedName(SERIALIZED_NAME_UPDATE_PARENT_MESSAGE) - @jakarta.annotation.Nullable - private Boolean updateParentMessage; - - public static final String SERIALIZED_NAME_THREAD_TS = "thread_ts"; - @SerializedName(SERIALIZED_NAME_THREAD_TS) - @jakarta.annotation.Nullable - private String threadTs; - - public static final String SERIALIZED_NAME_PARENT_MESSAGE_THREAD_TASK = "parent_message_thread_task"; - @SerializedName(SERIALIZED_NAME_PARENT_MESSAGE_THREAD_TASK) - @jakarta.annotation.Nullable - private Object parentMessageThreadTask; - - public static final String SERIALIZED_NAME_TEXT = "text"; - @SerializedName(SERIALIZED_NAME_TEXT) - @jakarta.annotation.Nonnull - private String text; - - public static final String SERIALIZED_NAME_SEND_ONLY_AS_THREADED_MESSAGE = "send_only_as_threaded_message"; - @SerializedName(SERIALIZED_NAME_SEND_ONLY_AS_THREADED_MESSAGE) - @jakarta.annotation.Nullable - private Boolean sendOnlyAsThreadedMessage; - - public SendSlackMessageTaskParams() { - } - - public SendSlackMessageTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - return this; - } - - /** - * Get taskType - * @return taskType - */ - @jakarta.annotation.Nullable - public TaskTypeEnum getTaskType() { - return taskType; - } - - public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { - this.taskType = taskType; - } - - - public SendSlackMessageTaskParams channels(@jakarta.annotation.Nullable List channels) { - this.channels = channels; - return this; - } - - public SendSlackMessageTaskParams addChannelsItem(Object channelsItem) { - if (this.channels == null) { - this.channels = new ArrayList<>(); - } - this.channels.add(channelsItem); - return this; - } - - /** - * Get channels - * @return channels - */ - @jakarta.annotation.Nullable - public List getChannels() { - return channels; - } - - public void setChannels(@jakarta.annotation.Nullable List channels) { - this.channels = channels; - } - - - public SendSlackMessageTaskParams slackUsers(@jakarta.annotation.Nullable List slackUsers) { - this.slackUsers = slackUsers; - return this; - } - - public SendSlackMessageTaskParams addSlackUsersItem(Object slackUsersItem) { - if (this.slackUsers == null) { - this.slackUsers = new ArrayList<>(); - } - this.slackUsers.add(slackUsersItem); - return this; - } - - /** - * Get slackUsers - * @return slackUsers - */ - @jakarta.annotation.Nullable - public List getSlackUsers() { - return slackUsers; - } - - public void setSlackUsers(@jakarta.annotation.Nullable List slackUsers) { - this.slackUsers = slackUsers; - } - - - public SendSlackMessageTaskParams slackUserGroups(@jakarta.annotation.Nullable List slackUserGroups) { - this.slackUserGroups = slackUserGroups; - return this; - } - - public SendSlackMessageTaskParams addSlackUserGroupsItem(Object slackUserGroupsItem) { - if (this.slackUserGroups == null) { - this.slackUserGroups = new ArrayList<>(); - } - this.slackUserGroups.add(slackUserGroupsItem); - return this; - } - - /** - * Get slackUserGroups - * @return slackUserGroups - */ - @jakarta.annotation.Nullable - public List getSlackUserGroups() { - return slackUserGroups; - } - - public void setSlackUserGroups(@jakarta.annotation.Nullable List slackUserGroups) { - this.slackUserGroups = slackUserGroups; - } - - - public SendSlackMessageTaskParams actionables(@jakarta.annotation.Nullable List actionables) { - this.actionables = actionables; - return this; - } - - public SendSlackMessageTaskParams addActionablesItem(ActionablesEnum actionablesItem) { - if (this.actionables == null) { - this.actionables = new ArrayList<>(); + throw new RuntimeException("Invalid instance type. Must be InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf"); } - this.actionables.add(actionablesItem); - return this; - } - - /** - * Get actionables - * @return actionables - */ - @jakarta.annotation.Nullable - public List getActionables() { - return actionables; - } - - public void setActionables(@jakarta.annotation.Nullable List actionables) { - this.actionables = actionables; - } - - - public SendSlackMessageTaskParams broadcastThreadReplyToChannel(@jakarta.annotation.Nullable Boolean broadcastThreadReplyToChannel) { - this.broadcastThreadReplyToChannel = broadcastThreadReplyToChannel; - return this; - } - - /** - * Get broadcastThreadReplyToChannel - * @return broadcastThreadReplyToChannel - */ - @jakarta.annotation.Nullable - public Boolean getBroadcastThreadReplyToChannel() { - return broadcastThreadReplyToChannel; - } - - public void setBroadcastThreadReplyToChannel(@jakarta.annotation.Nullable Boolean broadcastThreadReplyToChannel) { - this.broadcastThreadReplyToChannel = broadcastThreadReplyToChannel; - } - - - public SendSlackMessageTaskParams sendAsEphemeral(@jakarta.annotation.Nullable Boolean sendAsEphemeral) { - this.sendAsEphemeral = sendAsEphemeral; - return this; - } - - /** - * Get sendAsEphemeral - * @return sendAsEphemeral - */ - @jakarta.annotation.Nullable - public Boolean getSendAsEphemeral() { - return sendAsEphemeral; - } - - public void setSendAsEphemeral(@jakarta.annotation.Nullable Boolean sendAsEphemeral) { - this.sendAsEphemeral = sendAsEphemeral; - } - - - public SendSlackMessageTaskParams color(@jakarta.annotation.Nullable String color) { - this.color = color; - return this; - } - - /** - * A hex color ex. #FFFFFF - * @return color - */ - @jakarta.annotation.Nullable - public String getColor() { - return color; - } - - public void setColor(@jakarta.annotation.Nullable String color) { - this.color = color; - } - - - public SendSlackMessageTaskParams pinToChannel(@jakarta.annotation.Nullable Boolean pinToChannel) { - this.pinToChannel = pinToChannel; - return this; - } - - /** - * Get pinToChannel - * @return pinToChannel - */ - @jakarta.annotation.Nullable - public Boolean getPinToChannel() { - return pinToChannel; - } - - public void setPinToChannel(@jakarta.annotation.Nullable Boolean pinToChannel) { - this.pinToChannel = pinToChannel; - } - - - public SendSlackMessageTaskParams updateParentMessage(@jakarta.annotation.Nullable Boolean updateParentMessage) { - this.updateParentMessage = updateParentMessage; - return this; - } - - /** - * Get updateParentMessage - * @return updateParentMessage - */ - @jakarta.annotation.Nullable - public Boolean getUpdateParentMessage() { - return updateParentMessage; - } - - public void setUpdateParentMessage(@jakarta.annotation.Nullable Boolean updateParentMessage) { - this.updateParentMessage = updateParentMessage; - } - - - public SendSlackMessageTaskParams threadTs(@jakarta.annotation.Nullable String threadTs) { - this.threadTs = threadTs; - return this; - } - - /** - * The thread to send the message into - * @return threadTs - */ - @jakarta.annotation.Nullable - public String getThreadTs() { - return threadTs; - } - - public void setThreadTs(@jakarta.annotation.Nullable String threadTs) { - this.threadTs = threadTs; - } - - - public SendSlackMessageTaskParams parentMessageThreadTask(@jakarta.annotation.Nullable Object parentMessageThreadTask) { - this.parentMessageThreadTask = parentMessageThreadTask; - return this; - } - - /** - * A hash where [id] is the task id of the parent task that sent a message, and [name] is the name of the parent task - * @return parentMessageThreadTask - */ - @jakarta.annotation.Nullable - public Object getParentMessageThreadTask() { - return parentMessageThreadTask; - } - - public void setParentMessageThreadTask(@jakarta.annotation.Nullable Object parentMessageThreadTask) { - this.parentMessageThreadTask = parentMessageThreadTask; - } - - - public SendSlackMessageTaskParams text(@jakarta.annotation.Nonnull String text) { - this.text = text; - return this; - } - - /** - * The message text - * @return text - */ - @jakarta.annotation.Nonnull - public String getText() { - return text; - } - - public void setText(@jakarta.annotation.Nonnull String text) { - this.text = text; - } - - - public SendSlackMessageTaskParams sendOnlyAsThreadedMessage(@jakarta.annotation.Nullable Boolean sendOnlyAsThreadedMessage) { - this.sendOnlyAsThreadedMessage = sendOnlyAsThreadedMessage; - return this; - } - - /** - * When set to true, if the parent for this threaded message cannot be found the message will be skipped. - * @return sendOnlyAsThreadedMessage - */ - @jakarta.annotation.Nullable - public Boolean getSendOnlyAsThreadedMessage() { - return sendOnlyAsThreadedMessage; - } - - public void setSendOnlyAsThreadedMessage(@jakarta.annotation.Nullable Boolean sendOnlyAsThreadedMessage) { - this.sendOnlyAsThreadedMessage = sendOnlyAsThreadedMessage; - } - - - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; + + /** + * Get the actual instance, which can be the following: + * InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf + * + * @return The actual instance (InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); } - if (o == null || getClass() != o.getClass()) { - return false; + + /** + * Get the actual instance of `SendSlackMessageTaskParamsAnyOf`. If the actual instance is not `SendSlackMessageTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendSlackMessageTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `SendSlackMessageTaskParamsAnyOf` + */ + public SendSlackMessageTaskParamsAnyOf getSendSlackMessageTaskParamsAnyOf() throws ClassCastException { + return (SendSlackMessageTaskParamsAnyOf)super.getActualInstance(); } - SendSlackMessageTaskParams sendSlackMessageTaskParams = (SendSlackMessageTaskParams) o; - return Objects.equals(this.taskType, sendSlackMessageTaskParams.taskType) && - Objects.equals(this.channels, sendSlackMessageTaskParams.channels) && - Objects.equals(this.slackUsers, sendSlackMessageTaskParams.slackUsers) && - Objects.equals(this.slackUserGroups, sendSlackMessageTaskParams.slackUserGroups) && - Objects.equals(this.actionables, sendSlackMessageTaskParams.actionables) && - Objects.equals(this.broadcastThreadReplyToChannel, sendSlackMessageTaskParams.broadcastThreadReplyToChannel) && - Objects.equals(this.sendAsEphemeral, sendSlackMessageTaskParams.sendAsEphemeral) && - Objects.equals(this.color, sendSlackMessageTaskParams.color) && - Objects.equals(this.pinToChannel, sendSlackMessageTaskParams.pinToChannel) && - Objects.equals(this.updateParentMessage, sendSlackMessageTaskParams.updateParentMessage) && - Objects.equals(this.threadTs, sendSlackMessageTaskParams.threadTs) && - Objects.equals(this.parentMessageThreadTask, sendSlackMessageTaskParams.parentMessageThreadTask) && - Objects.equals(this.text, sendSlackMessageTaskParams.text) && - Objects.equals(this.sendOnlyAsThreadedMessage, sendSlackMessageTaskParams.sendOnlyAsThreadedMessage); - } - - @Override - public int hashCode() { - return Objects.hash(taskType, channels, slackUsers, slackUserGroups, actionables, broadcastThreadReplyToChannel, sendAsEphemeral, color, pinToChannel, updateParentMessage, threadTs, parentMessageThreadTask, text, sendOnlyAsThreadedMessage); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class SendSlackMessageTaskParams {\n"); - sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); - sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); - sb.append(" slackUsers: ").append(toIndentedString(slackUsers)).append("\n"); - sb.append(" slackUserGroups: ").append(toIndentedString(slackUserGroups)).append("\n"); - sb.append(" actionables: ").append(toIndentedString(actionables)).append("\n"); - sb.append(" broadcastThreadReplyToChannel: ").append(toIndentedString(broadcastThreadReplyToChannel)).append("\n"); - sb.append(" sendAsEphemeral: ").append(toIndentedString(sendAsEphemeral)).append("\n"); - sb.append(" color: ").append(toIndentedString(color)).append("\n"); - sb.append(" pinToChannel: ").append(toIndentedString(pinToChannel)).append("\n"); - sb.append(" updateParentMessage: ").append(toIndentedString(updateParentMessage)).append("\n"); - sb.append(" threadTs: ").append(toIndentedString(threadTs)).append("\n"); - sb.append(" parentMessageThreadTask: ").append(toIndentedString(parentMessageThreadTask)).append("\n"); - sb.append(" text: ").append(toIndentedString(text)).append("\n"); - sb.append(" sendOnlyAsThreadedMessage: ").append(toIndentedString(sendOnlyAsThreadedMessage)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; + + /** + * Get the actual instance of `InviteToSlackChannelTaskParamsAnyOf`. If the actual instance is not `InviteToSlackChannelTaskParamsAnyOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToSlackChannelTaskParamsAnyOf` + * @throws ClassCastException if the instance is not `InviteToSlackChannelTaskParamsAnyOf` + */ + public InviteToSlackChannelTaskParamsAnyOf getInviteToSlackChannelTaskParamsAnyOf() throws ClassCastException { + return (InviteToSlackChannelTaskParamsAnyOf)super.getActualInstance(); } - return o.toString().replace("\n", "\n "); - } - - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("text"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to SendSlackMessageTaskParams - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!SendSlackMessageTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException(String.format("The required field(s) %s in SendSlackMessageTaskParams is not found in the empty JSON string", SendSlackMessageTaskParams.openapiRequiredFields.toString())); - } - } - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!SendSlackMessageTaskParams.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SendSlackMessageTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); - } - } + /** + * Get the actual instance of `InviteToSlackChannelTaskParamsAnyOf1`. If the actual instance is not `InviteToSlackChannelTaskParamsAnyOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToSlackChannelTaskParamsAnyOf1` + * @throws ClassCastException if the instance is not `InviteToSlackChannelTaskParamsAnyOf1` + */ + public InviteToSlackChannelTaskParamsAnyOf1 getInviteToSlackChannelTaskParamsAnyOf1() throws ClassCastException { + return (InviteToSlackChannelTaskParamsAnyOf1)super.getActualInstance(); + } - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : SendSlackMessageTaskParams.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); - } - // validate the optional field `task_type` - if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { - TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); - } - if (jsonObj.get("channels") != null && !jsonObj.get("channels").isJsonNull()) { - JsonArray jsonArraychannels = jsonObj.getAsJsonArray("channels"); - if (jsonArraychannels != null) { - // ensure the json data is an array - if (!jsonObj.get("channels").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `channels` to be an array in the JSON string but got `%s`", jsonObj.get("channels").toString())); - } - - // validate the optional field `channels` (array) - for (int i = 0; i < jsonArraychannels.size(); i++) { - }; + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SendSlackMessageTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with SendSlackMessageTaskParamsAnyOf + try { + SendSlackMessageTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendSlackMessageTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if (jsonObj.get("slack_users") != null && !jsonObj.get("slack_users").isJsonNull()) { - JsonArray jsonArrayslackUsers = jsonObj.getAsJsonArray("slack_users"); - if (jsonArrayslackUsers != null) { - // ensure the json data is an array - if (!jsonObj.get("slack_users").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_users` to be an array in the JSON string but got `%s`", jsonObj.get("slack_users").toString())); - } - - // validate the optional field `slack_users` (array) - for (int i = 0; i < jsonArrayslackUsers.size(); i++) { - }; + // validate the json string with InviteToSlackChannelTaskParamsAnyOf + try { + InviteToSlackChannelTaskParamsAnyOf.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf failed with `%s`.", e.getMessage())); + // continue to the next one } - } - if (jsonObj.get("slack_user_groups") != null && !jsonObj.get("slack_user_groups").isJsonNull()) { - JsonArray jsonArrayslackUserGroups = jsonObj.getAsJsonArray("slack_user_groups"); - if (jsonArrayslackUserGroups != null) { - // ensure the json data is an array - if (!jsonObj.get("slack_user_groups").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `slack_user_groups` to be an array in the JSON string but got `%s`", jsonObj.get("slack_user_groups").toString())); - } - - // validate the optional field `slack_user_groups` (array) - for (int i = 0; i < jsonArrayslackUserGroups.size(); i++) { - }; + // validate the json string with InviteToSlackChannelTaskParamsAnyOf1 + try { + InviteToSlackChannelTaskParamsAnyOf1.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToSlackChannelTaskParamsAnyOf1 failed with `%s`.", e.getMessage())); + // continue to the next one } - } - // ensure the optional json data is an array if present - if (jsonObj.get("actionables") != null && !jsonObj.get("actionables").isJsonNull() && !jsonObj.get("actionables").isJsonArray()) { - throw new IllegalArgumentException(String.format("Expected the field `actionables` to be an array in the JSON string but got `%s`", jsonObj.get("actionables").toString())); - } - if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); - } - if ((jsonObj.get("thread_ts") != null && !jsonObj.get("thread_ts").isJsonNull()) && !jsonObj.get("thread_ts").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `thread_ts` to be a primitive type in the JSON string but got `%s`", jsonObj.get("thread_ts").toString())); - } - // validate the optional field `parent_message_thread_task` - if (jsonObj.get("parent_message_thread_task") != null && !jsonObj.get("parent_message_thread_task").isJsonNull()) { - } - if (!jsonObj.get("text").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `text` to be a primitive type in the JSON string but got `%s`", jsonObj.get("text").toString())); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!SendSlackMessageTaskParams.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'SendSlackMessageTaskParams' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter - = gson.getDelegateAdapter(this, TypeToken.get(SendSlackMessageTaskParams.class)); - - return (TypeAdapter) new TypeAdapter() { - @Override - public void write(JsonWriter out, SendSlackMessageTaskParams value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public SendSlackMessageTaskParams read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - - }.nullSafe(); + throw new IOException(String.format("The JSON string is invalid for SendSlackMessageTaskParams with anyOf schemas: InviteToSlackChannelTaskParamsAnyOf, InviteToSlackChannelTaskParamsAnyOf1, SendSlackMessageTaskParamsAnyOf. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of SendSlackMessageTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of SendSlackMessageTaskParams + * @throws IOException if the JSON string is invalid with respect to SendSlackMessageTaskParams + */ + public static SendSlackMessageTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SendSlackMessageTaskParams.class); + } + + /** + * Convert an instance of SendSlackMessageTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); } - } - - /** - * Create an instance of SendSlackMessageTaskParams given an JSON string - * - * @param jsonString JSON string - * @return An instance of SendSlackMessageTaskParams - * @throws IOException if the JSON string is invalid with respect to SendSlackMessageTaskParams - */ - public static SendSlackMessageTaskParams fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, SendSlackMessageTaskParams.class); - } - - /** - * Convert an instance of SendSlackMessageTaskParams to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } } diff --git a/src/main/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOf.java b/src/main/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOf.java new file mode 100644 index 00000000..6670e5e8 --- /dev/null +++ b/src/main/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOf.java @@ -0,0 +1,232 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * SendSlackMessageTaskParamsAnyOf + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class SendSlackMessageTaskParamsAnyOf { + public static final String SERIALIZED_NAME_CHANNELS = "channels"; + @SerializedName(SERIALIZED_NAME_CHANNELS) + @jakarta.annotation.Nonnull + private List channels = new ArrayList<>(); + + public SendSlackMessageTaskParamsAnyOf() { + } + + public SendSlackMessageTaskParamsAnyOf channels(@jakarta.annotation.Nonnull List channels) { + this.channels = channels; + return this; + } + + public SendSlackMessageTaskParamsAnyOf addChannelsItem(AddActionItemTaskParamsPostToSlackChannelsInner channelsItem) { + if (this.channels == null) { + this.channels = new ArrayList<>(); + } + this.channels.add(channelsItem); + return this; + } + + /** + * Get channels + * @return channels + */ + @jakarta.annotation.Nonnull + public List getChannels() { + return channels; + } + + public void setChannels(@jakarta.annotation.Nonnull List channels) { + this.channels = channels; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SendSlackMessageTaskParamsAnyOf sendSlackMessageTaskParamsAnyOf = (SendSlackMessageTaskParamsAnyOf) o; + return Objects.equals(this.channels, sendSlackMessageTaskParamsAnyOf.channels); + } + + @Override + public int hashCode() { + return Objects.hash(channels); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SendSlackMessageTaskParamsAnyOf {\n"); + sb.append(" channels: ").append(toIndentedString(channels)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("channels"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("channels"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SendSlackMessageTaskParamsAnyOf + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SendSlackMessageTaskParamsAnyOf.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SendSlackMessageTaskParamsAnyOf is not found in the empty JSON string", SendSlackMessageTaskParamsAnyOf.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SendSlackMessageTaskParamsAnyOf.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SendSlackMessageTaskParamsAnyOf` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SendSlackMessageTaskParamsAnyOf.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("channels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `channels` to be an array in the JSON string but got `%s`", jsonObj.get("channels").toString())); + } + + JsonArray jsonArraychannels = jsonObj.getAsJsonArray("channels"); + // validate the required field `channels` (array) + for (int i = 0; i < jsonArraychannels.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArraychannels.get(i)); + }; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SendSlackMessageTaskParamsAnyOf.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SendSlackMessageTaskParamsAnyOf' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SendSlackMessageTaskParamsAnyOf.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SendSlackMessageTaskParamsAnyOf value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SendSlackMessageTaskParamsAnyOf read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SendSlackMessageTaskParamsAnyOf given an JSON string + * + * @param jsonString JSON string + * @return An instance of SendSlackMessageTaskParamsAnyOf + * @throws IOException if the JSON string is invalid with respect to SendSlackMessageTaskParamsAnyOf + */ + public static SendSlackMessageTaskParamsAnyOf fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SendSlackMessageTaskParamsAnyOf.class); + } + + /** + * Convert an instance of SendSlackMessageTaskParamsAnyOf to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/SendSmsTaskParams.java b/src/main/java/com/rootly/client/model/SendSmsTaskParams.java index bbb189b4..a3a5f307 100644 --- a/src/main/java/com/rootly/client/model/SendSmsTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendSmsTaskParams.java @@ -50,7 +50,7 @@ /** * SendSmsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SendSmsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/SendWhatsappMessageTaskParams.java b/src/main/java/com/rootly/client/model/SendWhatsappMessageTaskParams.java index 1affe685..e4c679b7 100644 --- a/src/main/java/com/rootly/client/model/SendWhatsappMessageTaskParams.java +++ b/src/main/java/com/rootly/client/model/SendWhatsappMessageTaskParams.java @@ -50,7 +50,7 @@ /** * SendWhatsappMessageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SendWhatsappMessageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/Service.java b/src/main/java/com/rootly/client/model/Service.java index 607aeef8..8d6560c0 100644 --- a/src/main/java/com/rootly/client/model/Service.java +++ b/src/main/java/com/rootly/client/model/Service.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.ServiceAlertBroadcastChannel; @@ -55,7 +56,7 @@ /** * Service */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Service { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -67,6 +68,73 @@ public class Service { @jakarta.annotation.Nullable private String slug; + /** + * How this service is managed (provenance): web, api, terraform, etc. Read-only. + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -217,6 +285,11 @@ public class Service { @jakarta.annotation.Nullable private ServiceIncidentBroadcastChannel incidentBroadcastChannel; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -230,6 +303,13 @@ public class Service { public Service() { } + public Service( + String slug + ) { + this(); + this.slug = slug; + } + public Service name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -249,11 +329,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Service slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the service * @return slug @@ -263,8 +338,24 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + + + public Service managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * How this service is managed (provenance): web, api, terraform, etc. Read-only. + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; } @@ -293,7 +384,7 @@ public Service publicDescription(@jakarta.annotation.Nullable String publicDescr } /** - * The public description of the service + * The status page description of the service * @return publicDescription */ @jakarta.annotation.Nullable @@ -894,6 +985,33 @@ public void setIncidentBroadcastChannel(@jakarta.annotation.Nullable ServiceInci } + public Service properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public Service addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this service. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + public Service createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -944,6 +1062,7 @@ public boolean equals(Object o) { Service service = (Service) o; return Objects.equals(this.name, service.name) && Objects.equals(this.slug, service.slug) && + Objects.equals(this.managedBy, service.managedBy) && Objects.equals(this.description, service.description) && Objects.equals(this.publicDescription, service.publicDescription) && Objects.equals(this.notifyEmails, service.notifyEmails) && @@ -974,6 +1093,7 @@ public boolean equals(Object o) { Objects.equals(this.alertBroadcastChannel, service.alertBroadcastChannel) && Objects.equals(this.incidentBroadcastEnabled, service.incidentBroadcastEnabled) && Objects.equals(this.incidentBroadcastChannel, service.incidentBroadcastChannel) && + Objects.equals(this.properties, service.properties) && Objects.equals(this.createdAt, service.createdAt) && Objects.equals(this.updatedAt, service.updatedAt); } @@ -984,7 +1104,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, cortexId, serviceNowCiSysId, githubRepositoryName, githubRepositoryBranch, gitlabRepositoryName, gitlabRepositoryBranch, kubernetesDeploymentName, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, alertUrgencyId, escalationPolicyId, alertsEmailEnabled, alertsEmailAddress, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, createdAt, updatedAt); + return Objects.hash(name, slug, managedBy, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, cortexId, serviceNowCiSysId, githubRepositoryName, githubRepositoryBranch, gitlabRepositoryName, gitlabRepositoryBranch, kubernetesDeploymentName, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, alertUrgencyId, escalationPolicyId, alertsEmailEnabled, alertsEmailAddress, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, properties, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -1000,6 +1120,7 @@ public String toString() { sb.append("class Service {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); @@ -1030,6 +1151,7 @@ public String toString() { sb.append(" alertBroadcastChannel: ").append(toIndentedString(alertBroadcastChannel)).append("\n"); sb.append(" incidentBroadcastEnabled: ").append(toIndentedString(incidentBroadcastEnabled)).append("\n"); sb.append(" incidentBroadcastChannel: ").append(toIndentedString(incidentBroadcastChannel)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -1056,6 +1178,7 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("managed_by"); openapiFields.add("description"); openapiFields.add("public_description"); openapiFields.add("notify_emails"); @@ -1086,6 +1209,7 @@ private String toIndentedString(Object o) { openapiFields.add("alert_broadcast_channel"); openapiFields.add("incident_broadcast_enabled"); openapiFields.add("incident_broadcast_channel"); + openapiFields.add("properties"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -1130,6 +1254,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } @@ -1237,6 +1368,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_broadcast_channel") != null && !jsonObj.get("incident_broadcast_channel").isJsonNull()) { ServiceIncidentBroadcastChannel.validateJsonElement(jsonObj.get("incident_broadcast_channel")); } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/ServiceAlertBroadcastChannel.java b/src/main/java/com/rootly/client/model/ServiceAlertBroadcastChannel.java index da6b389e..60d58433 100644 --- a/src/main/java/com/rootly/client/model/ServiceAlertBroadcastChannel.java +++ b/src/main/java/com/rootly/client/model/ServiceAlertBroadcastChannel.java @@ -48,7 +48,7 @@ /** * Slack channel to broadcast alerts to */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ServiceAlertBroadcastChannel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ServiceIncidentBroadcastChannel.java b/src/main/java/com/rootly/client/model/ServiceIncidentBroadcastChannel.java index 4f08593d..cfab21cc 100644 --- a/src/main/java/com/rootly/client/model/ServiceIncidentBroadcastChannel.java +++ b/src/main/java/com/rootly/client/model/ServiceIncidentBroadcastChannel.java @@ -48,7 +48,7 @@ /** * Slack channel to broadcast incidents to */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ServiceIncidentBroadcastChannel { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ServiceList.java b/src/main/java/com/rootly/client/model/ServiceList.java index 060f0bee..0a563d99 100644 --- a/src/main/java/com/rootly/client/model/ServiceList.java +++ b/src/main/java/com/rootly/client/model/ServiceList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ServiceResponseData; @@ -53,7 +54,7 @@ /** * ServiceList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ServiceList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class ServiceList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ServiceList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public ServiceList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ServiceList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { ServiceList serviceList = (ServiceList) o; return Objects.equals(this.data, serviceList.data) && Objects.equals(this.links, serviceList.links) && - Objects.equals(this.meta, serviceList.meta); + Objects.equals(this.meta, serviceList.meta) && + Objects.equals(this.included, serviceList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ServiceResponse.java b/src/main/java/com/rootly/client/model/ServiceResponse.java index eae0edf2..4d17e132 100644 --- a/src/main/java/com/rootly/client/model/ServiceResponse.java +++ b/src/main/java/com/rootly/client/model/ServiceResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ServiceResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * ServiceResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ServiceResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private ServiceResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ServiceResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull ServiceResponseData data) { } + public ServiceResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ServiceResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ServiceResponse serviceResponse = (ServiceResponse) o; - return Objects.equals(this.data, serviceResponse.data); + return Objects.equals(this.data, serviceResponse.data) && + Objects.equals(this.included, serviceResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ServiceResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` ServiceResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ServiceResponseData.java b/src/main/java/com/rootly/client/model/ServiceResponseData.java index 75d4e300..b1abc643 100644 --- a/src/main/java/com/rootly/client/model/ServiceResponseData.java +++ b/src/main/java/com/rootly/client/model/ServiceResponseData.java @@ -49,7 +49,7 @@ /** * ServiceResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ServiceResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Severity.java b/src/main/java/com/rootly/client/model/Severity.java index 389bca4c..f04e381e 100644 --- a/src/main/java/com/rootly/client/model/Severity.java +++ b/src/main/java/com/rootly/client/model/Severity.java @@ -53,7 +53,7 @@ /** * Severity */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Severity { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -169,6 +169,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public Severity() { } + public Severity( + String slug + ) { + this(); + this.slug = slug; + } + public Severity name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -188,11 +195,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Severity slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the severity * @return slug @@ -202,9 +204,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public Severity description(@jakarta.annotation.Nullable String description) { diff --git a/src/main/java/com/rootly/client/model/SeverityList.java b/src/main/java/com/rootly/client/model/SeverityList.java index dd05aae4..dd5d7762 100644 --- a/src/main/java/com/rootly/client/model/SeverityList.java +++ b/src/main/java/com/rootly/client/model/SeverityList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.SeverityResponseData; @@ -53,7 +54,7 @@ /** * SeverityList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SeverityList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class SeverityList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public SeverityList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public SeverityList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public SeverityList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { SeverityList severityList = (SeverityList) o; return Objects.equals(this.data, severityList.data) && Objects.equals(this.links, severityList.links) && - Objects.equals(this.meta, severityList.meta); + Objects.equals(this.meta, severityList.meta) && + Objects.equals(this.included, severityList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SeverityResponse.java b/src/main/java/com/rootly/client/model/SeverityResponse.java index 50e00a69..d63286ce 100644 --- a/src/main/java/com/rootly/client/model/SeverityResponse.java +++ b/src/main/java/com/rootly/client/model/SeverityResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.SeverityResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * SeverityResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SeverityResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private SeverityResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public SeverityResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull SeverityResponseData data) { } + public SeverityResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public SeverityResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } SeverityResponse severityResponse = (SeverityResponse) o; - return Objects.equals(this.data, severityResponse.data); + return Objects.equals(this.data, severityResponse.data) && + Objects.equals(this.included, severityResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SeverityResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` SeverityResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SeverityResponseData.java b/src/main/java/com/rootly/client/model/SeverityResponseData.java index 97a8ad56..f6678dba 100644 --- a/src/main/java/com/rootly/client/model/SeverityResponseData.java +++ b/src/main/java/com/rootly/client/model/SeverityResponseData.java @@ -49,7 +49,7 @@ /** * SeverityResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SeverityResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Shift.java b/src/main/java/com/rootly/client/model/Shift.java index 78aa0293..d3b01ff3 100644 --- a/src/main/java/com/rootly/client/model/Shift.java +++ b/src/main/java/com/rootly/client/model/Shift.java @@ -49,7 +49,7 @@ /** * Shift */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Shift { public static final String SERIALIZED_NAME_SCHEDULE_ID = "schedule_id"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ID) @@ -76,6 +76,11 @@ public class Shift { @jakarta.annotation.Nonnull private Boolean isOverride; + public static final String SERIALIZED_NAME_IS_SHADOW = "is_shadow"; + @SerializedName(SERIALIZED_NAME_IS_SHADOW) + @jakarta.annotation.Nonnull + private Boolean isShadow; + public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) @jakarta.annotation.Nullable @@ -179,6 +184,25 @@ public void setIsOverride(@jakarta.annotation.Nonnull Boolean isOverride) { } + public Shift isShadow(@jakarta.annotation.Nonnull Boolean isShadow) { + this.isShadow = isShadow; + return this; + } + + /** + * Denotes shift is a shadow shift + * @return isShadow + */ + @jakarta.annotation.Nonnull + public Boolean getIsShadow() { + return isShadow; + } + + public void setIsShadow(@jakarta.annotation.Nonnull Boolean isShadow) { + this.isShadow = isShadow; + } + + public Shift userId(@jakarta.annotation.Nullable Integer userId) { this.userId = userId; return this; @@ -213,6 +237,7 @@ public boolean equals(Object o) { Objects.equals(this.startsAt, shift.startsAt) && Objects.equals(this.endsAt, shift.endsAt) && Objects.equals(this.isOverride, shift.isOverride) && + Objects.equals(this.isShadow, shift.isShadow) && Objects.equals(this.userId, shift.userId); } @@ -222,7 +247,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(scheduleId, rotationId, startsAt, endsAt, isOverride, userId); + return Objects.hash(scheduleId, rotationId, startsAt, endsAt, isOverride, isShadow, userId); } private static int hashCodeNullable(JsonNullable a) { @@ -241,6 +266,7 @@ public String toString() { sb.append(" startsAt: ").append(toIndentedString(startsAt)).append("\n"); sb.append(" endsAt: ").append(toIndentedString(endsAt)).append("\n"); sb.append(" isOverride: ").append(toIndentedString(isOverride)).append("\n"); + sb.append(" isShadow: ").append(toIndentedString(isShadow)).append("\n"); sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); sb.append("}"); return sb.toString(); @@ -269,6 +295,7 @@ private String toIndentedString(Object o) { openapiFields.add("starts_at"); openapiFields.add("ends_at"); openapiFields.add("is_override"); + openapiFields.add("is_shadow"); openapiFields.add("user_id"); // a set of required properties/fields (JSON key names) @@ -278,6 +305,7 @@ private String toIndentedString(Object o) { openapiRequiredFields.add("starts_at"); openapiRequiredFields.add("ends_at"); openapiRequiredFields.add("is_override"); + openapiRequiredFields.add("is_shadow"); } /** diff --git a/src/main/java/com/rootly/client/model/ShiftCoverageRequest.java b/src/main/java/com/rootly/client/model/ShiftCoverageRequest.java new file mode 100644 index 00000000..3522937a --- /dev/null +++ b/src/main/java/com/rootly/client/model/ShiftCoverageRequest.java @@ -0,0 +1,550 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.ScheduleResponse; +import com.rootly.client.model.Shift; +import com.rootly.client.model.UserResponse; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * ShiftCoverageRequest + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class ShiftCoverageRequest { + public static final String SERIALIZED_NAME_SCHEDULE_ID = "schedule_id"; + @SerializedName(SERIALIZED_NAME_SCHEDULE_ID) + @jakarta.annotation.Nonnull + private String scheduleId; + + public static final String SERIALIZED_NAME_SHIFT_ID = "shift_id"; + @SerializedName(SERIALIZED_NAME_SHIFT_ID) + @jakarta.annotation.Nonnull + private String shiftId; + + public static final String SERIALIZED_NAME_ORIGINAL_SHIFT_USER_ID = "original_shift_user_id"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_SHIFT_USER_ID) + @jakarta.annotation.Nonnull + private Integer originalShiftUserId; + + public static final String SERIALIZED_NAME_CREATED_BY_USER_ID = "created_by_user_id"; + @SerializedName(SERIALIZED_NAME_CREATED_BY_USER_ID) + @jakarta.annotation.Nonnull + private Integer createdByUserId; + + public static final String SERIALIZED_NAME_STARTS_AT = "starts_at"; + @SerializedName(SERIALIZED_NAME_STARTS_AT) + @jakarta.annotation.Nonnull + private String startsAt; + + public static final String SERIALIZED_NAME_ENDS_AT = "ends_at"; + @SerializedName(SERIALIZED_NAME_ENDS_AT) + @jakarta.annotation.Nonnull + private String endsAt; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nullable + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nullable + private String updatedAt; + + public static final String SERIALIZED_NAME_SCHEDULE = "schedule"; + @SerializedName(SERIALIZED_NAME_SCHEDULE) + @jakarta.annotation.Nullable + private ScheduleResponse schedule; + + public static final String SERIALIZED_NAME_SHIFT = "shift"; + @SerializedName(SERIALIZED_NAME_SHIFT) + @jakarta.annotation.Nullable + private Shift shift; + + public static final String SERIALIZED_NAME_ORIGINAL_SHIFT_USER = "original_shift_user"; + @SerializedName(SERIALIZED_NAME_ORIGINAL_SHIFT_USER) + @jakarta.annotation.Nullable + private UserResponse originalShiftUser; + + public static final String SERIALIZED_NAME_CREATED_BY_USER = "created_by_user"; + @SerializedName(SERIALIZED_NAME_CREATED_BY_USER) + @jakarta.annotation.Nullable + private UserResponse createdByUser; + + public ShiftCoverageRequest() { + } + + public ShiftCoverageRequest scheduleId(@jakarta.annotation.Nonnull String scheduleId) { + this.scheduleId = scheduleId; + return this; + } + + /** + * ID of schedule + * @return scheduleId + */ + @jakarta.annotation.Nonnull + public String getScheduleId() { + return scheduleId; + } + + public void setScheduleId(@jakarta.annotation.Nonnull String scheduleId) { + this.scheduleId = scheduleId; + } + + + public ShiftCoverageRequest shiftId(@jakarta.annotation.Nonnull String shiftId) { + this.shiftId = shiftId; + return this; + } + + /** + * ID of the shift being covered + * @return shiftId + */ + @jakarta.annotation.Nonnull + public String getShiftId() { + return shiftId; + } + + public void setShiftId(@jakarta.annotation.Nonnull String shiftId) { + this.shiftId = shiftId; + } + + + public ShiftCoverageRequest originalShiftUserId(@jakarta.annotation.Nonnull Integer originalShiftUserId) { + this.originalShiftUserId = originalShiftUserId; + return this; + } + + /** + * ID of the user whose shift is being covered + * @return originalShiftUserId + */ + @jakarta.annotation.Nonnull + public Integer getOriginalShiftUserId() { + return originalShiftUserId; + } + + public void setOriginalShiftUserId(@jakarta.annotation.Nonnull Integer originalShiftUserId) { + this.originalShiftUserId = originalShiftUserId; + } + + + public ShiftCoverageRequest createdByUserId(@jakarta.annotation.Nonnull Integer createdByUserId) { + this.createdByUserId = createdByUserId; + return this; + } + + /** + * ID of the user who created the coverage request + * @return createdByUserId + */ + @jakarta.annotation.Nonnull + public Integer getCreatedByUserId() { + return createdByUserId; + } + + public void setCreatedByUserId(@jakarta.annotation.Nonnull Integer createdByUserId) { + this.createdByUserId = createdByUserId; + } + + + public ShiftCoverageRequest startsAt(@jakarta.annotation.Nonnull String startsAt) { + this.startsAt = startsAt; + return this; + } + + /** + * Start datetime of the coverage request + * @return startsAt + */ + @jakarta.annotation.Nonnull + public String getStartsAt() { + return startsAt; + } + + public void setStartsAt(@jakarta.annotation.Nonnull String startsAt) { + this.startsAt = startsAt; + } + + + public ShiftCoverageRequest endsAt(@jakarta.annotation.Nonnull String endsAt) { + this.endsAt = endsAt; + return this; + } + + /** + * End datetime of the coverage request + * @return endsAt + */ + @jakarta.annotation.Nonnull + public String getEndsAt() { + return endsAt; + } + + public void setEndsAt(@jakarta.annotation.Nonnull String endsAt) { + this.endsAt = endsAt; + } + + + public ShiftCoverageRequest createdAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Date of creation + * @return createdAt + */ + @jakarta.annotation.Nullable + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { + this.createdAt = createdAt; + } + + + public ShiftCoverageRequest updatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Date of last update + * @return updatedAt + */ + @jakarta.annotation.Nullable + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { + this.updatedAt = updatedAt; + } + + + public ShiftCoverageRequest schedule(@jakarta.annotation.Nullable ScheduleResponse schedule) { + this.schedule = schedule; + return this; + } + + /** + * Schedule metadata + * @return schedule + */ + @jakarta.annotation.Nullable + public ScheduleResponse getSchedule() { + return schedule; + } + + public void setSchedule(@jakarta.annotation.Nullable ScheduleResponse schedule) { + this.schedule = schedule; + } + + + public ShiftCoverageRequest shift(@jakarta.annotation.Nullable Shift shift) { + this.shift = shift; + return this; + } + + /** + * Shift metadata + * @return shift + */ + @jakarta.annotation.Nullable + public Shift getShift() { + return shift; + } + + public void setShift(@jakarta.annotation.Nullable Shift shift) { + this.shift = shift; + } + + + public ShiftCoverageRequest originalShiftUser(@jakarta.annotation.Nullable UserResponse originalShiftUser) { + this.originalShiftUser = originalShiftUser; + return this; + } + + /** + * User whose shift is being covered + * @return originalShiftUser + */ + @jakarta.annotation.Nullable + public UserResponse getOriginalShiftUser() { + return originalShiftUser; + } + + public void setOriginalShiftUser(@jakarta.annotation.Nullable UserResponse originalShiftUser) { + this.originalShiftUser = originalShiftUser; + } + + + public ShiftCoverageRequest createdByUser(@jakarta.annotation.Nullable UserResponse createdByUser) { + this.createdByUser = createdByUser; + return this; + } + + /** + * User who created the coverage request + * @return createdByUser + */ + @jakarta.annotation.Nullable + public UserResponse getCreatedByUser() { + return createdByUser; + } + + public void setCreatedByUser(@jakarta.annotation.Nullable UserResponse createdByUser) { + this.createdByUser = createdByUser; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShiftCoverageRequest shiftCoverageRequest = (ShiftCoverageRequest) o; + return Objects.equals(this.scheduleId, shiftCoverageRequest.scheduleId) && + Objects.equals(this.shiftId, shiftCoverageRequest.shiftId) && + Objects.equals(this.originalShiftUserId, shiftCoverageRequest.originalShiftUserId) && + Objects.equals(this.createdByUserId, shiftCoverageRequest.createdByUserId) && + Objects.equals(this.startsAt, shiftCoverageRequest.startsAt) && + Objects.equals(this.endsAt, shiftCoverageRequest.endsAt) && + Objects.equals(this.createdAt, shiftCoverageRequest.createdAt) && + Objects.equals(this.updatedAt, shiftCoverageRequest.updatedAt) && + Objects.equals(this.schedule, shiftCoverageRequest.schedule) && + Objects.equals(this.shift, shiftCoverageRequest.shift) && + Objects.equals(this.originalShiftUser, shiftCoverageRequest.originalShiftUser) && + Objects.equals(this.createdByUser, shiftCoverageRequest.createdByUser); + } + + @Override + public int hashCode() { + return Objects.hash(scheduleId, shiftId, originalShiftUserId, createdByUserId, startsAt, endsAt, createdAt, updatedAt, schedule, shift, originalShiftUser, createdByUser); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ShiftCoverageRequest {\n"); + sb.append(" scheduleId: ").append(toIndentedString(scheduleId)).append("\n"); + sb.append(" shiftId: ").append(toIndentedString(shiftId)).append("\n"); + sb.append(" originalShiftUserId: ").append(toIndentedString(originalShiftUserId)).append("\n"); + sb.append(" createdByUserId: ").append(toIndentedString(createdByUserId)).append("\n"); + sb.append(" startsAt: ").append(toIndentedString(startsAt)).append("\n"); + sb.append(" endsAt: ").append(toIndentedString(endsAt)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" schedule: ").append(toIndentedString(schedule)).append("\n"); + sb.append(" shift: ").append(toIndentedString(shift)).append("\n"); + sb.append(" originalShiftUser: ").append(toIndentedString(originalShiftUser)).append("\n"); + sb.append(" createdByUser: ").append(toIndentedString(createdByUser)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("schedule_id"); + openapiFields.add("shift_id"); + openapiFields.add("original_shift_user_id"); + openapiFields.add("created_by_user_id"); + openapiFields.add("starts_at"); + openapiFields.add("ends_at"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + openapiFields.add("schedule"); + openapiFields.add("shift"); + openapiFields.add("original_shift_user"); + openapiFields.add("created_by_user"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("schedule_id"); + openapiRequiredFields.add("shift_id"); + openapiRequiredFields.add("original_shift_user_id"); + openapiRequiredFields.add("created_by_user_id"); + openapiRequiredFields.add("starts_at"); + openapiRequiredFields.add("ends_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ShiftCoverageRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ShiftCoverageRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ShiftCoverageRequest is not found in the empty JSON string", ShiftCoverageRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ShiftCoverageRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ShiftCoverageRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ShiftCoverageRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("schedule_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `schedule_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("schedule_id").toString())); + } + if (!jsonObj.get("shift_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_id").toString())); + } + if (!jsonObj.get("starts_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `starts_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("starts_at").toString())); + } + if (!jsonObj.get("ends_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `ends_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ends_at").toString())); + } + if ((jsonObj.get("created_at") != null && !jsonObj.get("created_at").isJsonNull()) && !jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if ((jsonObj.get("updated_at") != null && !jsonObj.get("updated_at").isJsonNull()) && !jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + // validate the optional field `schedule` + if (jsonObj.get("schedule") != null && !jsonObj.get("schedule").isJsonNull()) { + ScheduleResponse.validateJsonElement(jsonObj.get("schedule")); + } + // validate the optional field `shift` + if (jsonObj.get("shift") != null && !jsonObj.get("shift").isJsonNull()) { + Shift.validateJsonElement(jsonObj.get("shift")); + } + // validate the optional field `original_shift_user` + if (jsonObj.get("original_shift_user") != null && !jsonObj.get("original_shift_user").isJsonNull()) { + UserResponse.validateJsonElement(jsonObj.get("original_shift_user")); + } + // validate the optional field `created_by_user` + if (jsonObj.get("created_by_user") != null && !jsonObj.get("created_by_user").isJsonNull()) { + UserResponse.validateJsonElement(jsonObj.get("created_by_user")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ShiftCoverageRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ShiftCoverageRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ShiftCoverageRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ShiftCoverageRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ShiftCoverageRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ShiftCoverageRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of ShiftCoverageRequest + * @throws IOException if the JSON string is invalid with respect to ShiftCoverageRequest + */ + public static ShiftCoverageRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ShiftCoverageRequest.class); + } + + /** + * Convert an instance of ShiftCoverageRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/ShiftCoverageRequestList.java b/src/main/java/com/rootly/client/model/ShiftCoverageRequestList.java new file mode 100644 index 00000000..d71bab81 --- /dev/null +++ b/src/main/java/com/rootly/client/model/ShiftCoverageRequestList.java @@ -0,0 +1,346 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.ShiftCoverageRequestResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * ShiftCoverageRequestList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class ShiftCoverageRequestList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nullable + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nullable + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public ShiftCoverageRequestList() { + } + + public ShiftCoverageRequestList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public ShiftCoverageRequestList addDataItem(ShiftCoverageRequestResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public ShiftCoverageRequestList links(@jakarta.annotation.Nullable Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nullable + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nullable Links links) { + this.links = links; + } + + + public ShiftCoverageRequestList meta(@jakarta.annotation.Nullable Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nullable + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nullable Meta meta) { + this.meta = meta; + } + + + public ShiftCoverageRequestList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ShiftCoverageRequestList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShiftCoverageRequestList shiftCoverageRequestList = (ShiftCoverageRequestList) o; + return Objects.equals(this.data, shiftCoverageRequestList.data) && + Objects.equals(this.links, shiftCoverageRequestList.links) && + Objects.equals(this.meta, shiftCoverageRequestList.meta) && + Objects.equals(this.included, shiftCoverageRequestList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ShiftCoverageRequestList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ShiftCoverageRequestList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ShiftCoverageRequestList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ShiftCoverageRequestList is not found in the empty JSON string", ShiftCoverageRequestList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ShiftCoverageRequestList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ShiftCoverageRequestList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ShiftCoverageRequestList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + ShiftCoverageRequestResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the optional field `links` + if (jsonObj.get("links") != null && !jsonObj.get("links").isJsonNull()) { + Links.validateJsonElement(jsonObj.get("links")); + } + // validate the optional field `meta` + if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { + Meta.validateJsonElement(jsonObj.get("meta")); + } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ShiftCoverageRequestList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ShiftCoverageRequestList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ShiftCoverageRequestList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ShiftCoverageRequestList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ShiftCoverageRequestList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ShiftCoverageRequestList given an JSON string + * + * @param jsonString JSON string + * @return An instance of ShiftCoverageRequestList + * @throws IOException if the JSON string is invalid with respect to ShiftCoverageRequestList + */ + public static ShiftCoverageRequestList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ShiftCoverageRequestList.class); + } + + /** + * Convert an instance of ShiftCoverageRequestList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/ShiftCoverageRequestResponse.java b/src/main/java/com/rootly/client/model/ShiftCoverageRequestResponse.java new file mode 100644 index 00000000..76edeb49 --- /dev/null +++ b/src/main/java/com/rootly/client/model/ShiftCoverageRequestResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.ShiftCoverageRequestResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * ShiftCoverageRequestResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class ShiftCoverageRequestResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private ShiftCoverageRequestResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public ShiftCoverageRequestResponse() { + } + + public ShiftCoverageRequestResponse data(@jakarta.annotation.Nonnull ShiftCoverageRequestResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public ShiftCoverageRequestResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull ShiftCoverageRequestResponseData data) { + this.data = data; + } + + + public ShiftCoverageRequestResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ShiftCoverageRequestResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShiftCoverageRequestResponse shiftCoverageRequestResponse = (ShiftCoverageRequestResponse) o; + return Objects.equals(this.data, shiftCoverageRequestResponse.data) && + Objects.equals(this.included, shiftCoverageRequestResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ShiftCoverageRequestResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ShiftCoverageRequestResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ShiftCoverageRequestResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ShiftCoverageRequestResponse is not found in the empty JSON string", ShiftCoverageRequestResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ShiftCoverageRequestResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ShiftCoverageRequestResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ShiftCoverageRequestResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + ShiftCoverageRequestResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ShiftCoverageRequestResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ShiftCoverageRequestResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ShiftCoverageRequestResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ShiftCoverageRequestResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ShiftCoverageRequestResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ShiftCoverageRequestResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of ShiftCoverageRequestResponse + * @throws IOException if the JSON string is invalid with respect to ShiftCoverageRequestResponse + */ + public static ShiftCoverageRequestResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ShiftCoverageRequestResponse.class); + } + + /** + * Convert an instance of ShiftCoverageRequestResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/ShiftCoverageRequestResponseData.java b/src/main/java/com/rootly/client/model/ShiftCoverageRequestResponseData.java new file mode 100644 index 00000000..47385d6a --- /dev/null +++ b/src/main/java/com/rootly/client/model/ShiftCoverageRequestResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.ShiftCoverageRequest; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * ShiftCoverageRequestResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class ShiftCoverageRequestResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + SHIFT_COVERAGE_REQUESTS("shift_coverage_requests"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private ShiftCoverageRequest attributes; + + public ShiftCoverageRequestResponseData() { + } + + public ShiftCoverageRequestResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the coverage request + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public ShiftCoverageRequestResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public ShiftCoverageRequestResponseData attributes(@jakarta.annotation.Nonnull ShiftCoverageRequest attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public ShiftCoverageRequest getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull ShiftCoverageRequest attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ShiftCoverageRequestResponseData shiftCoverageRequestResponseData = (ShiftCoverageRequestResponseData) o; + return Objects.equals(this.id, shiftCoverageRequestResponseData.id) && + Objects.equals(this.type, shiftCoverageRequestResponseData.type) && + Objects.equals(this.attributes, shiftCoverageRequestResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ShiftCoverageRequestResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ShiftCoverageRequestResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ShiftCoverageRequestResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ShiftCoverageRequestResponseData is not found in the empty JSON string", ShiftCoverageRequestResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ShiftCoverageRequestResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ShiftCoverageRequestResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ShiftCoverageRequestResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + ShiftCoverageRequest.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ShiftCoverageRequestResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ShiftCoverageRequestResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ShiftCoverageRequestResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ShiftCoverageRequestResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ShiftCoverageRequestResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ShiftCoverageRequestResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of ShiftCoverageRequestResponseData + * @throws IOException if the JSON string is invalid with respect to ShiftCoverageRequestResponseData + */ + public static ShiftCoverageRequestResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ShiftCoverageRequestResponseData.class); + } + + /** + * Convert an instance of ShiftCoverageRequestResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/ShiftList.java b/src/main/java/com/rootly/client/model/ShiftList.java index ccf7cecb..5ef1e454 100644 --- a/src/main/java/com/rootly/client/model/ShiftList.java +++ b/src/main/java/com/rootly/client/model/ShiftList.java @@ -19,6 +19,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Meta; import com.rootly.client.model.ShiftListDataInner; import java.io.IOException; import java.util.ArrayList; @@ -51,13 +53,23 @@ /** * ShiftList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private List data = new ArrayList<>(); + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nullable + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ShiftList() { } @@ -88,6 +100,52 @@ public void setData(@jakarta.annotation.Nonnull List data) { } + public ShiftList meta(@jakarta.annotation.Nullable Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nullable + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nullable Meta meta) { + this.meta = meta; + } + + + public ShiftList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ShiftList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -98,12 +156,14 @@ public boolean equals(Object o) { return false; } ShiftList shiftList = (ShiftList) o; - return Objects.equals(this.data, shiftList.data); + return Objects.equals(this.data, shiftList.data) && + Objects.equals(this.meta, shiftList.meta) && + Objects.equals(this.included, shiftList.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, meta, included); } @Override @@ -111,6 +171,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ShiftList {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -134,6 +196,8 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -178,6 +242,24 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti for (int i = 0; i < jsonArraydata.size(); i++) { ShiftListDataInner.validateJsonElement(jsonArraydata.get(i)); }; + // validate the optional field `meta` + if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { + Meta.validateJsonElement(jsonObj.get("meta")); + } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ShiftListDataInner.java b/src/main/java/com/rootly/client/model/ShiftListDataInner.java index bc094fdf..5507b08d 100644 --- a/src/main/java/com/rootly/client/model/ShiftListDataInner.java +++ b/src/main/java/com/rootly/client/model/ShiftListDataInner.java @@ -50,7 +50,7 @@ /** * ShiftListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ShiftOverride.java b/src/main/java/com/rootly/client/model/ShiftOverride.java index 91abea75..4f87a7dd 100644 --- a/src/main/java/com/rootly/client/model/ShiftOverride.java +++ b/src/main/java/com/rootly/client/model/ShiftOverride.java @@ -48,7 +48,7 @@ /** * ShiftOverride */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftOverride { public static final String SERIALIZED_NAME_SHIFT_ID = "shift_id"; @SerializedName(SERIALIZED_NAME_SHIFT_ID) diff --git a/src/main/java/com/rootly/client/model/ShiftOverrideResponse.java b/src/main/java/com/rootly/client/model/ShiftOverrideResponse.java index c0d793e5..5fadbf6b 100644 --- a/src/main/java/com/rootly/client/model/ShiftOverrideResponse.java +++ b/src/main/java/com/rootly/client/model/ShiftOverrideResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ShiftOverrideResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * ShiftOverrideResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftOverrideResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private ShiftOverrideResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public ShiftOverrideResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull ShiftOverrideResponseData data) } + public ShiftOverrideResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public ShiftOverrideResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } ShiftOverrideResponse shiftOverrideResponse = (ShiftOverrideResponse) o; - return Objects.equals(this.data, shiftOverrideResponse.data); + return Objects.equals(this.data, shiftOverrideResponse.data) && + Objects.equals(this.included, shiftOverrideResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ShiftOverrideResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` ShiftOverrideResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/ShiftOverrideResponseData.java b/src/main/java/com/rootly/client/model/ShiftOverrideResponseData.java index f387c6f5..b36e3623 100644 --- a/src/main/java/com/rootly/client/model/ShiftOverrideResponseData.java +++ b/src/main/java/com/rootly/client/model/ShiftOverrideResponseData.java @@ -49,7 +49,7 @@ /** * ShiftOverrideResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftOverrideResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ShiftRelationships.java b/src/main/java/com/rootly/client/model/ShiftRelationships.java index 6d576fec..2d3e90f3 100644 --- a/src/main/java/com/rootly/client/model/ShiftRelationships.java +++ b/src/main/java/com/rootly/client/model/ShiftRelationships.java @@ -19,9 +19,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsUser; import com.rootly.client.model.ShiftRelationshipsAssignee; import com.rootly.client.model.ShiftRelationshipsShiftOverride; -import com.rootly.client.model.ShiftRelationshipsUser; import java.io.IOException; import java.util.Arrays; @@ -51,7 +51,7 @@ /** * ShiftRelationships */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftRelationships { public static final String SERIALIZED_NAME_SHIFT_OVERRIDE = "shift_override"; @SerializedName(SERIALIZED_NAME_SHIFT_OVERRIDE) @@ -61,7 +61,7 @@ public class ShiftRelationships { public static final String SERIALIZED_NAME_USER = "user"; @SerializedName(SERIALIZED_NAME_USER) @jakarta.annotation.Nullable - private ShiftRelationshipsUser user; + private OncallRelationshipsUser user; public static final String SERIALIZED_NAME_ASSIGNEE = "assignee"; @SerializedName(SERIALIZED_NAME_ASSIGNEE) @@ -90,7 +90,7 @@ public void setShiftOverride(@jakarta.annotation.Nullable ShiftRelationshipsShif } - public ShiftRelationships user(@jakarta.annotation.Nullable ShiftRelationshipsUser user) { + public ShiftRelationships user(@jakarta.annotation.Nullable OncallRelationshipsUser user) { this.user = user; return this; } @@ -100,11 +100,11 @@ public ShiftRelationships user(@jakarta.annotation.Nullable ShiftRelationshipsUs * @return user */ @jakarta.annotation.Nullable - public ShiftRelationshipsUser getUser() { + public OncallRelationshipsUser getUser() { return user; } - public void setUser(@jakarta.annotation.Nullable ShiftRelationshipsUser user) { + public void setUser(@jakarta.annotation.Nullable OncallRelationshipsUser user) { this.user = user; } @@ -212,7 +212,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the optional field `user` if (jsonObj.get("user") != null && !jsonObj.get("user").isJsonNull()) { - ShiftRelationshipsUser.validateJsonElement(jsonObj.get("user")); + OncallRelationshipsUser.validateJsonElement(jsonObj.get("user")); } // validate the optional field `assignee` if (jsonObj.get("assignee") != null && !jsonObj.get("assignee").isJsonNull()) { diff --git a/src/main/java/com/rootly/client/model/ShiftRelationshipsAssignee.java b/src/main/java/com/rootly/client/model/ShiftRelationshipsAssignee.java index 4cb4de2e..5c41b6b1 100644 --- a/src/main/java/com/rootly/client/model/ShiftRelationshipsAssignee.java +++ b/src/main/java/com/rootly/client/model/ShiftRelationshipsAssignee.java @@ -50,7 +50,7 @@ /** * Assignee can be either a User or Schedule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftRelationshipsAssignee { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/ShiftRelationshipsAssigneeData.java b/src/main/java/com/rootly/client/model/ShiftRelationshipsAssigneeData.java index 3689da30..f57d9d18 100644 --- a/src/main/java/com/rootly/client/model/ShiftRelationshipsAssigneeData.java +++ b/src/main/java/com/rootly/client/model/ShiftRelationshipsAssigneeData.java @@ -48,7 +48,7 @@ /** * ShiftRelationshipsAssigneeData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftRelationshipsAssigneeData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverride.java b/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverride.java index 3a8ce41f..69cf7ab0 100644 --- a/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverride.java +++ b/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverride.java @@ -50,7 +50,7 @@ /** * ShiftRelationshipsShiftOverride */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftRelationshipsShiftOverride { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverrideData.java b/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverrideData.java index dc7dfe6d..f7a260e2 100644 --- a/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverrideData.java +++ b/src/main/java/com/rootly/client/model/ShiftRelationshipsShiftOverrideData.java @@ -48,7 +48,7 @@ /** * ShiftRelationshipsShiftOverrideData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class ShiftRelationshipsShiftOverrideData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/SimpleTriggerParams.java b/src/main/java/com/rootly/client/model/SimpleTriggerParams.java index 9d68c584..31bf3aa2 100644 --- a/src/main/java/com/rootly/client/model/SimpleTriggerParams.java +++ b/src/main/java/com/rootly/client/model/SimpleTriggerParams.java @@ -50,7 +50,7 @@ /** * SimpleTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SimpleTriggerParams { /** * Gets or Sets triggerType diff --git a/src/main/java/com/rootly/client/model/Sla.java b/src/main/java/com/rootly/client/model/Sla.java index 8e003290..667be375 100644 --- a/src/main/java/com/rootly/client/model/Sla.java +++ b/src/main/java/com/rootly/client/model/Sla.java @@ -54,26 +54,26 @@ /** * Sla */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Sla { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; /** @@ -128,7 +128,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ENTITY_TYPE = "entity_type"; @SerializedName(SERIALIZED_NAME_ENTITY_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private EntityTypeEnum entityType; /** @@ -185,83 +185,83 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CONDITION_MATCH_TYPE = "condition_match_type"; @SerializedName(SERIALIZED_NAME_CONDITION_MATCH_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private ConditionMatchTypeEnum conditionMatchType; public static final String SERIALIZED_NAME_MANAGER_ROLE_ID = "manager_role_id"; @SerializedName(SERIALIZED_NAME_MANAGER_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID managerRoleId; public static final String SERIALIZED_NAME_MANAGER_USER_ID = "manager_user_id"; @SerializedName(SERIALIZED_NAME_MANAGER_USER_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer managerUserId; public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_DAYS = "assignment_deadline_days"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_DAYS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Integer assignmentDeadlineDays; public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_PARENT_STATUS = "assignment_deadline_parent_status"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_PARENT_STATUS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String assignmentDeadlineParentStatus; public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_SUB_STATUS_ID = "assignment_deadline_sub_status_id"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_SUB_STATUS_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID assignmentDeadlineSubStatusId; public static final String SERIALIZED_NAME_ASSIGNMENT_SKIP_WEEKENDS = "assignment_skip_weekends"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_SKIP_WEEKENDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean assignmentSkipWeekends; public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_DAYS = "completion_deadline_days"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_DAYS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Integer completionDeadlineDays; public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_PARENT_STATUS = "completion_deadline_parent_status"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_PARENT_STATUS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String completionDeadlineParentStatus; public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_SUB_STATUS_ID = "completion_deadline_sub_status_id"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_SUB_STATUS_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID completionDeadlineSubStatusId; public static final String SERIALIZED_NAME_COMPLETION_SKIP_WEEKENDS = "completion_skip_weekends"; @SerializedName(SERIALIZED_NAME_COMPLETION_SKIP_WEEKENDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean completionSkipWeekends; public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; @SerializedName(SERIALIZED_NAME_CONDITIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List conditions = new ArrayList<>(); public static final String SERIALIZED_NAME_NOTIFICATION_CONFIGURATIONS = "notification_configurations"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_CONFIGURATIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List notificationConfigurations = new ArrayList<>(); public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String updatedAt; public Sla() { } - public Sla slug(@javax.annotation.Nullable String slug) { + public Sla slug(@jakarta.annotation.Nullable String slug) { this.slug = slug; return this; } @@ -270,17 +270,17 @@ public Sla slug(@javax.annotation.Nullable String slug) { * The slug of the SLA * @return slug */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@javax.annotation.Nullable String slug) { + public void setSlug(@jakarta.annotation.Nullable String slug) { this.slug = slug; } - public Sla name(@javax.annotation.Nonnull String name) { + public Sla name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; } @@ -289,17 +289,17 @@ public Sla name(@javax.annotation.Nonnull String name) { * The name of the SLA * @return name */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getName() { return name; } - public void setName(@javax.annotation.Nonnull String name) { + public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public Sla description(@javax.annotation.Nullable String description) { + public Sla description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -308,17 +308,17 @@ public Sla description(@javax.annotation.Nullable String description) { * A description of the SLA * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public Sla position(@javax.annotation.Nullable Integer position) { + public Sla position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -327,17 +327,17 @@ public Sla position(@javax.annotation.Nullable Integer position) { * Position of the SLA for ordering * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public Sla entityType(@javax.annotation.Nullable EntityTypeEnum entityType) { + public Sla entityType(@jakarta.annotation.Nullable EntityTypeEnum entityType) { this.entityType = entityType; return this; } @@ -346,17 +346,17 @@ public Sla entityType(@javax.annotation.Nullable EntityTypeEnum entityType) { * The entity type this SLA applies to * @return entityType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public EntityTypeEnum getEntityType() { return entityType; } - public void setEntityType(@javax.annotation.Nullable EntityTypeEnum entityType) { + public void setEntityType(@jakarta.annotation.Nullable EntityTypeEnum entityType) { this.entityType = entityType; } - public Sla conditionMatchType(@javax.annotation.Nonnull ConditionMatchTypeEnum conditionMatchType) { + public Sla conditionMatchType(@jakarta.annotation.Nonnull ConditionMatchTypeEnum conditionMatchType) { this.conditionMatchType = conditionMatchType; return this; } @@ -365,17 +365,17 @@ public Sla conditionMatchType(@javax.annotation.Nonnull ConditionMatchTypeEnum c * Whether all or any conditions must match * @return conditionMatchType */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public ConditionMatchTypeEnum getConditionMatchType() { return conditionMatchType; } - public void setConditionMatchType(@javax.annotation.Nonnull ConditionMatchTypeEnum conditionMatchType) { + public void setConditionMatchType(@jakarta.annotation.Nonnull ConditionMatchTypeEnum conditionMatchType) { this.conditionMatchType = conditionMatchType; } - public Sla managerRoleId(@javax.annotation.Nullable UUID managerRoleId) { + public Sla managerRoleId(@jakarta.annotation.Nullable UUID managerRoleId) { this.managerRoleId = managerRoleId; return this; } @@ -384,17 +384,17 @@ public Sla managerRoleId(@javax.annotation.Nullable UUID managerRoleId) { * The ID of the manager incident role. Exactly one of `manager_role_id` or `manager_user_id` must be provided. * @return managerRoleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getManagerRoleId() { return managerRoleId; } - public void setManagerRoleId(@javax.annotation.Nullable UUID managerRoleId) { + public void setManagerRoleId(@jakarta.annotation.Nullable UUID managerRoleId) { this.managerRoleId = managerRoleId; } - public Sla managerUserId(@javax.annotation.Nullable Integer managerUserId) { + public Sla managerUserId(@jakarta.annotation.Nullable Integer managerUserId) { this.managerUserId = managerUserId; return this; } @@ -403,17 +403,17 @@ public Sla managerUserId(@javax.annotation.Nullable Integer managerUserId) { * The ID of the manager user. Exactly one of `manager_role_id` or `manager_user_id` must be provided. * @return managerUserId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getManagerUserId() { return managerUserId; } - public void setManagerUserId(@javax.annotation.Nullable Integer managerUserId) { + public void setManagerUserId(@jakarta.annotation.Nullable Integer managerUserId) { this.managerUserId = managerUserId; } - public Sla assignmentDeadlineDays(@javax.annotation.Nonnull Integer assignmentDeadlineDays) { + public Sla assignmentDeadlineDays(@jakarta.annotation.Nonnull Integer assignmentDeadlineDays) { this.assignmentDeadlineDays = assignmentDeadlineDays; return this; } @@ -422,17 +422,17 @@ public Sla assignmentDeadlineDays(@javax.annotation.Nonnull Integer assignmentDe * Number of days for the assignment deadline * @return assignmentDeadlineDays */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Integer getAssignmentDeadlineDays() { return assignmentDeadlineDays; } - public void setAssignmentDeadlineDays(@javax.annotation.Nonnull Integer assignmentDeadlineDays) { + public void setAssignmentDeadlineDays(@jakarta.annotation.Nonnull Integer assignmentDeadlineDays) { this.assignmentDeadlineDays = assignmentDeadlineDays; } - public Sla assignmentDeadlineParentStatus(@javax.annotation.Nonnull String assignmentDeadlineParentStatus) { + public Sla assignmentDeadlineParentStatus(@jakarta.annotation.Nonnull String assignmentDeadlineParentStatus) { this.assignmentDeadlineParentStatus = assignmentDeadlineParentStatus; return this; } @@ -441,17 +441,17 @@ public Sla assignmentDeadlineParentStatus(@javax.annotation.Nonnull String assig * The incident parent status that triggers the assignment deadline * @return assignmentDeadlineParentStatus */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getAssignmentDeadlineParentStatus() { return assignmentDeadlineParentStatus; } - public void setAssignmentDeadlineParentStatus(@javax.annotation.Nonnull String assignmentDeadlineParentStatus) { + public void setAssignmentDeadlineParentStatus(@jakarta.annotation.Nonnull String assignmentDeadlineParentStatus) { this.assignmentDeadlineParentStatus = assignmentDeadlineParentStatus; } - public Sla assignmentDeadlineSubStatusId(@javax.annotation.Nullable UUID assignmentDeadlineSubStatusId) { + public Sla assignmentDeadlineSubStatusId(@jakarta.annotation.Nullable UUID assignmentDeadlineSubStatusId) { this.assignmentDeadlineSubStatusId = assignmentDeadlineSubStatusId; return this; } @@ -460,17 +460,17 @@ public Sla assignmentDeadlineSubStatusId(@javax.annotation.Nullable UUID assignm * Sub-status for the assignment deadline. Required when custom lifecycle statuses are enabled on the team. * @return assignmentDeadlineSubStatusId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getAssignmentDeadlineSubStatusId() { return assignmentDeadlineSubStatusId; } - public void setAssignmentDeadlineSubStatusId(@javax.annotation.Nullable UUID assignmentDeadlineSubStatusId) { + public void setAssignmentDeadlineSubStatusId(@jakarta.annotation.Nullable UUID assignmentDeadlineSubStatusId) { this.assignmentDeadlineSubStatusId = assignmentDeadlineSubStatusId; } - public Sla assignmentSkipWeekends(@javax.annotation.Nullable Boolean assignmentSkipWeekends) { + public Sla assignmentSkipWeekends(@jakarta.annotation.Nullable Boolean assignmentSkipWeekends) { this.assignmentSkipWeekends = assignmentSkipWeekends; return this; } @@ -479,17 +479,17 @@ public Sla assignmentSkipWeekends(@javax.annotation.Nullable Boolean assignmentS * Whether to skip weekends when calculating the assignment deadline * @return assignmentSkipWeekends */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getAssignmentSkipWeekends() { return assignmentSkipWeekends; } - public void setAssignmentSkipWeekends(@javax.annotation.Nullable Boolean assignmentSkipWeekends) { + public void setAssignmentSkipWeekends(@jakarta.annotation.Nullable Boolean assignmentSkipWeekends) { this.assignmentSkipWeekends = assignmentSkipWeekends; } - public Sla completionDeadlineDays(@javax.annotation.Nonnull Integer completionDeadlineDays) { + public Sla completionDeadlineDays(@jakarta.annotation.Nonnull Integer completionDeadlineDays) { this.completionDeadlineDays = completionDeadlineDays; return this; } @@ -498,17 +498,17 @@ public Sla completionDeadlineDays(@javax.annotation.Nonnull Integer completionDe * Number of days for the completion deadline * @return completionDeadlineDays */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Integer getCompletionDeadlineDays() { return completionDeadlineDays; } - public void setCompletionDeadlineDays(@javax.annotation.Nonnull Integer completionDeadlineDays) { + public void setCompletionDeadlineDays(@jakarta.annotation.Nonnull Integer completionDeadlineDays) { this.completionDeadlineDays = completionDeadlineDays; } - public Sla completionDeadlineParentStatus(@javax.annotation.Nonnull String completionDeadlineParentStatus) { + public Sla completionDeadlineParentStatus(@jakarta.annotation.Nonnull String completionDeadlineParentStatus) { this.completionDeadlineParentStatus = completionDeadlineParentStatus; return this; } @@ -517,17 +517,17 @@ public Sla completionDeadlineParentStatus(@javax.annotation.Nonnull String compl * The incident parent status that triggers the completion deadline * @return completionDeadlineParentStatus */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCompletionDeadlineParentStatus() { return completionDeadlineParentStatus; } - public void setCompletionDeadlineParentStatus(@javax.annotation.Nonnull String completionDeadlineParentStatus) { + public void setCompletionDeadlineParentStatus(@jakarta.annotation.Nonnull String completionDeadlineParentStatus) { this.completionDeadlineParentStatus = completionDeadlineParentStatus; } - public Sla completionDeadlineSubStatusId(@javax.annotation.Nullable UUID completionDeadlineSubStatusId) { + public Sla completionDeadlineSubStatusId(@jakarta.annotation.Nullable UUID completionDeadlineSubStatusId) { this.completionDeadlineSubStatusId = completionDeadlineSubStatusId; return this; } @@ -536,17 +536,17 @@ public Sla completionDeadlineSubStatusId(@javax.annotation.Nullable UUID complet * Sub-status for the completion deadline. Required when custom lifecycle statuses are enabled on the team. * @return completionDeadlineSubStatusId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getCompletionDeadlineSubStatusId() { return completionDeadlineSubStatusId; } - public void setCompletionDeadlineSubStatusId(@javax.annotation.Nullable UUID completionDeadlineSubStatusId) { + public void setCompletionDeadlineSubStatusId(@jakarta.annotation.Nullable UUID completionDeadlineSubStatusId) { this.completionDeadlineSubStatusId = completionDeadlineSubStatusId; } - public Sla completionSkipWeekends(@javax.annotation.Nullable Boolean completionSkipWeekends) { + public Sla completionSkipWeekends(@jakarta.annotation.Nullable Boolean completionSkipWeekends) { this.completionSkipWeekends = completionSkipWeekends; return this; } @@ -555,17 +555,17 @@ public Sla completionSkipWeekends(@javax.annotation.Nullable Boolean completionS * Whether to skip weekends when calculating the completion deadline * @return completionSkipWeekends */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getCompletionSkipWeekends() { return completionSkipWeekends; } - public void setCompletionSkipWeekends(@javax.annotation.Nullable Boolean completionSkipWeekends) { + public void setCompletionSkipWeekends(@jakarta.annotation.Nullable Boolean completionSkipWeekends) { this.completionSkipWeekends = completionSkipWeekends; } - public Sla conditions(@javax.annotation.Nullable List conditions) { + public Sla conditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; return this; } @@ -582,17 +582,17 @@ public Sla addConditionsItem(SlaConditionsInner conditionsItem) { * Conditions that determine which incidents this SLA applies to * @return conditions */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getConditions() { return conditions; } - public void setConditions(@javax.annotation.Nullable List conditions) { + public void setConditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; } - public Sla notificationConfigurations(@javax.annotation.Nullable List notificationConfigurations) { + public Sla notificationConfigurations(@jakarta.annotation.Nullable List notificationConfigurations) { this.notificationConfigurations = notificationConfigurations; return this; } @@ -609,17 +609,17 @@ public Sla addNotificationConfigurationsItem(SlaNotificationConfigurationsInner * Notification timing configurations * @return notificationConfigurations */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getNotificationConfigurations() { return notificationConfigurations; } - public void setNotificationConfigurations(@javax.annotation.Nullable List notificationConfigurations) { + public void setNotificationConfigurations(@jakarta.annotation.Nullable List notificationConfigurations) { this.notificationConfigurations = notificationConfigurations; } - public Sla createdAt(@javax.annotation.Nonnull String createdAt) { + public Sla createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; } @@ -628,17 +628,17 @@ public Sla createdAt(@javax.annotation.Nonnull String createdAt) { * Date of creation * @return createdAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nonnull String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; } - public Sla updatedAt(@javax.annotation.Nonnull String updatedAt) { + public Sla updatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -647,12 +647,12 @@ public Sla updatedAt(@javax.annotation.Nonnull String updatedAt) { * Date of last update * @return updatedAt */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nonnull String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { this.updatedAt = updatedAt; } diff --git a/src/main/java/com/rootly/client/model/SlaConditionsInner.java b/src/main/java/com/rootly/client/model/SlaConditionsInner.java index 2ea01356..601946a4 100644 --- a/src/main/java/com/rootly/client/model/SlaConditionsInner.java +++ b/src/main/java/com/rootly/client/model/SlaConditionsInner.java @@ -52,16 +52,16 @@ /** * SlaConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SlaConditionsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID id; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; /** @@ -118,33 +118,33 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CONDITIONABLE_TYPE = "conditionable_type"; @SerializedName(SERIALIZED_NAME_CONDITIONABLE_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private ConditionableTypeEnum conditionableType; public static final String SERIALIZED_NAME_PROPERTY = "property"; @SerializedName(SERIALIZED_NAME_PROPERTY) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String property; public static final String SERIALIZED_NAME_OPERATOR = "operator"; @SerializedName(SERIALIZED_NAME_OPERATOR) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String operator; public static final String SERIALIZED_NAME_VALUES = "values"; @SerializedName(SERIALIZED_NAME_VALUES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List values; public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID formFieldId; public SlaConditionsInner() { } - public SlaConditionsInner id(@javax.annotation.Nullable UUID id) { + public SlaConditionsInner id(@jakarta.annotation.Nullable UUID id) { this.id = id; return this; } @@ -153,17 +153,17 @@ public SlaConditionsInner id(@javax.annotation.Nullable UUID id) { * Unique ID of the condition * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getId() { return id; } - public void setId(@javax.annotation.Nullable UUID id) { + public void setId(@jakarta.annotation.Nullable UUID id) { this.id = id; } - public SlaConditionsInner position(@javax.annotation.Nullable Integer position) { + public SlaConditionsInner position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -172,17 +172,17 @@ public SlaConditionsInner position(@javax.annotation.Nullable Integer position) * The position of the condition * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public SlaConditionsInner conditionableType(@javax.annotation.Nullable ConditionableTypeEnum conditionableType) { + public SlaConditionsInner conditionableType(@jakarta.annotation.Nullable ConditionableTypeEnum conditionableType) { this.conditionableType = conditionableType; return this; } @@ -191,17 +191,17 @@ public SlaConditionsInner conditionableType(@javax.annotation.Nullable Condition * The type of condition * @return conditionableType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public ConditionableTypeEnum getConditionableType() { return conditionableType; } - public void setConditionableType(@javax.annotation.Nullable ConditionableTypeEnum conditionableType) { + public void setConditionableType(@jakarta.annotation.Nullable ConditionableTypeEnum conditionableType) { this.conditionableType = conditionableType; } - public SlaConditionsInner property(@javax.annotation.Nullable String property) { + public SlaConditionsInner property(@jakarta.annotation.Nullable String property) { this.property = property; return this; } @@ -210,17 +210,17 @@ public SlaConditionsInner property(@javax.annotation.Nullable String property) { * The property to evaluate (for built-in field conditions) * @return property */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getProperty() { return property; } - public void setProperty(@javax.annotation.Nullable String property) { + public void setProperty(@jakarta.annotation.Nullable String property) { this.property = property; } - public SlaConditionsInner operator(@javax.annotation.Nullable String operator) { + public SlaConditionsInner operator(@jakarta.annotation.Nullable String operator) { this.operator = operator; return this; } @@ -229,17 +229,17 @@ public SlaConditionsInner operator(@javax.annotation.Nullable String operator) { * The comparison operator * @return operator */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getOperator() { return operator; } - public void setOperator(@javax.annotation.Nullable String operator) { + public void setOperator(@jakarta.annotation.Nullable String operator) { this.operator = operator; } - public SlaConditionsInner values(@javax.annotation.Nullable List values) { + public SlaConditionsInner values(@jakarta.annotation.Nullable List values) { this.values = values; return this; } @@ -256,17 +256,17 @@ public SlaConditionsInner addValuesItem(String valuesItem) { * The values to compare against * @return values */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getValues() { return values; } - public void setValues(@javax.annotation.Nullable List values) { + public void setValues(@jakarta.annotation.Nullable List values) { this.values = values; } - public SlaConditionsInner formFieldId(@javax.annotation.Nullable UUID formFieldId) { + public SlaConditionsInner formFieldId(@jakarta.annotation.Nullable UUID formFieldId) { this.formFieldId = formFieldId; return this; } @@ -275,12 +275,12 @@ public SlaConditionsInner formFieldId(@javax.annotation.Nullable UUID formFieldI * The ID of the form field (for custom field conditions) * @return formFieldId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getFormFieldId() { return formFieldId; } - public void setFormFieldId(@javax.annotation.Nullable UUID formFieldId) { + public void setFormFieldId(@jakarta.annotation.Nullable UUID formFieldId) { this.formFieldId = formFieldId; } diff --git a/src/main/java/com/rootly/client/model/SlaList.java b/src/main/java/com/rootly/client/model/SlaList.java index f2f16daa..ce819511 100644 --- a/src/main/java/com/rootly/client/model/SlaList.java +++ b/src/main/java/com/rootly/client/model/SlaList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.SlaResponseData; @@ -53,27 +54,32 @@ /** * SlaList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SlaList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private List data = new ArrayList<>(); public static final String SERIALIZED_NAME_LINKS = "links"; @SerializedName(SERIALIZED_NAME_LINKS) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Links links; public static final String SERIALIZED_NAME_META = "meta"; @SerializedName(SERIALIZED_NAME_META) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public SlaList() { } - public SlaList data(@javax.annotation.Nonnull List data) { + public SlaList data(@jakarta.annotation.Nonnull List data) { this.data = data; return this; } @@ -90,17 +96,17 @@ public SlaList addDataItem(SlaResponseData dataItem) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public List getData() { return data; } - public void setData(@javax.annotation.Nonnull List data) { + public void setData(@jakarta.annotation.Nonnull List data) { this.data = data; } - public SlaList links(@javax.annotation.Nonnull Links links) { + public SlaList links(@jakarta.annotation.Nonnull Links links) { this.links = links; return this; } @@ -109,17 +115,17 @@ public SlaList links(@javax.annotation.Nonnull Links links) { * Get links * @return links */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Links getLinks() { return links; } - public void setLinks(@javax.annotation.Nonnull Links links) { + public void setLinks(@jakarta.annotation.Nonnull Links links) { this.links = links; } - public SlaList meta(@javax.annotation.Nonnull Meta meta) { + public SlaList meta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; return this; } @@ -128,16 +134,43 @@ public SlaList meta(@javax.annotation.Nonnull Meta meta) { * Get meta * @return meta */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Meta getMeta() { return meta; } - public void setMeta(@javax.annotation.Nonnull Meta meta) { + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { this.meta = meta; } + public SlaList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public SlaList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { SlaList slaList = (SlaList) o; return Objects.equals(this.data, slaList.data) && Objects.equals(this.links, slaList.links) && - Objects.equals(this.meta, slaList.meta); + Objects.equals(this.meta, slaList.meta) && + Objects.equals(this.included, slaList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SlaNotificationConfigurationsInner.java b/src/main/java/com/rootly/client/model/SlaNotificationConfigurationsInner.java index 4ec3a176..cb2da773 100644 --- a/src/main/java/com/rootly/client/model/SlaNotificationConfigurationsInner.java +++ b/src/main/java/com/rootly/client/model/SlaNotificationConfigurationsInner.java @@ -49,11 +49,11 @@ /** * SlaNotificationConfigurationsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SlaNotificationConfigurationsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID id; /** @@ -112,28 +112,28 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_OFFSET_TYPE = "offset_type"; @SerializedName(SERIALIZED_NAME_OFFSET_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private OffsetTypeEnum offsetType; public static final String SERIALIZED_NAME_OFFSET_DAYS = "offset_days"; @SerializedName(SERIALIZED_NAME_OFFSET_DAYS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer offsetDays; public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String createdAt; public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String updatedAt; public SlaNotificationConfigurationsInner() { } - public SlaNotificationConfigurationsInner id(@javax.annotation.Nullable UUID id) { + public SlaNotificationConfigurationsInner id(@jakarta.annotation.Nullable UUID id) { this.id = id; return this; } @@ -142,17 +142,17 @@ public SlaNotificationConfigurationsInner id(@javax.annotation.Nullable UUID id) * Unique ID of the notification configuration * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getId() { return id; } - public void setId(@javax.annotation.Nullable UUID id) { + public void setId(@jakarta.annotation.Nullable UUID id) { this.id = id; } - public SlaNotificationConfigurationsInner offsetType(@javax.annotation.Nullable OffsetTypeEnum offsetType) { + public SlaNotificationConfigurationsInner offsetType(@jakarta.annotation.Nullable OffsetTypeEnum offsetType) { this.offsetType = offsetType; return this; } @@ -161,17 +161,17 @@ public SlaNotificationConfigurationsInner offsetType(@javax.annotation.Nullable * When to send the notification relative to the deadline * @return offsetType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public OffsetTypeEnum getOffsetType() { return offsetType; } - public void setOffsetType(@javax.annotation.Nullable OffsetTypeEnum offsetType) { + public void setOffsetType(@jakarta.annotation.Nullable OffsetTypeEnum offsetType) { this.offsetType = offsetType; } - public SlaNotificationConfigurationsInner offsetDays(@javax.annotation.Nullable Integer offsetDays) { + public SlaNotificationConfigurationsInner offsetDays(@jakarta.annotation.Nullable Integer offsetDays) { this.offsetDays = offsetDays; return this; } @@ -180,17 +180,17 @@ public SlaNotificationConfigurationsInner offsetDays(@javax.annotation.Nullable * Number of days offset from the deadline * @return offsetDays */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getOffsetDays() { return offsetDays; } - public void setOffsetDays(@javax.annotation.Nullable Integer offsetDays) { + public void setOffsetDays(@jakarta.annotation.Nullable Integer offsetDays) { this.offsetDays = offsetDays; } - public SlaNotificationConfigurationsInner createdAt(@javax.annotation.Nullable String createdAt) { + public SlaNotificationConfigurationsInner createdAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; return this; } @@ -199,17 +199,17 @@ public SlaNotificationConfigurationsInner createdAt(@javax.annotation.Nullable S * Date of creation * @return createdAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getCreatedAt() { return createdAt; } - public void setCreatedAt(@javax.annotation.Nullable String createdAt) { + public void setCreatedAt(@jakarta.annotation.Nullable String createdAt) { this.createdAt = createdAt; } - public SlaNotificationConfigurationsInner updatedAt(@javax.annotation.Nullable String updatedAt) { + public SlaNotificationConfigurationsInner updatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; return this; } @@ -218,12 +218,12 @@ public SlaNotificationConfigurationsInner updatedAt(@javax.annotation.Nullable S * Date of last update * @return updatedAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(@javax.annotation.Nullable String updatedAt) { + public void setUpdatedAt(@jakarta.annotation.Nullable String updatedAt) { this.updatedAt = updatedAt; } diff --git a/src/main/java/com/rootly/client/model/SlaResponse.java b/src/main/java/com/rootly/client/model/SlaResponse.java index 60b9e2ad..ad4a987d 100644 --- a/src/main/java/com/rootly/client/model/SlaResponse.java +++ b/src/main/java/com/rootly/client/model/SlaResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.SlaResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,17 +52,22 @@ /** * SlaResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SlaResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private SlaResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public SlaResponse() { } - public SlaResponse data(@javax.annotation.Nonnull SlaResponseData data) { + public SlaResponse data(@jakarta.annotation.Nonnull SlaResponseData data) { this.data = data; return this; } @@ -68,16 +76,43 @@ public SlaResponse data(@javax.annotation.Nonnull SlaResponseData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public SlaResponseData getData() { return data; } - public void setData(@javax.annotation.Nonnull SlaResponseData data) { + public void setData(@jakarta.annotation.Nonnull SlaResponseData data) { this.data = data; } + public SlaResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public SlaResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } SlaResponse slaResponse = (SlaResponse) o; - return Objects.equals(this.data, slaResponse.data); + return Objects.equals(this.data, slaResponse.data) && + Objects.equals(this.included, slaResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SlaResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` SlaResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SlaResponseData.java b/src/main/java/com/rootly/client/model/SlaResponseData.java index f324c6e8..5d42fc44 100644 --- a/src/main/java/com/rootly/client/model/SlaResponseData.java +++ b/src/main/java/com/rootly/client/model/SlaResponseData.java @@ -49,11 +49,11 @@ /** * SlaResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SlaResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private String id; /** @@ -108,18 +108,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Sla attributes; public SlaResponseData() { } - public SlaResponseData id(@javax.annotation.Nonnull String id) { + public SlaResponseData id(@jakarta.annotation.Nonnull String id) { this.id = id; return this; } @@ -128,17 +128,17 @@ public SlaResponseData id(@javax.annotation.Nonnull String id) { * Unique ID of the SLA * @return id */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public String getId() { return id; } - public void setId(@javax.annotation.Nonnull String id) { + public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; } - public SlaResponseData type(@javax.annotation.Nonnull TypeEnum type) { + public SlaResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -147,17 +147,17 @@ public SlaResponseData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public SlaResponseData attributes(@javax.annotation.Nonnull Sla attributes) { + public SlaResponseData attributes(@jakarta.annotation.Nonnull Sla attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public SlaResponseData attributes(@javax.annotation.Nonnull Sla attributes) { * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Sla getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull Sla attributes) { + public void setAttributes(@jakarta.annotation.Nonnull Sla attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/SlackChannel.java b/src/main/java/com/rootly/client/model/SlackChannel.java new file mode 100644 index 00000000..b544b468 --- /dev/null +++ b/src/main/java/com/rootly/client/model/SlackChannel.java @@ -0,0 +1,369 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * SlackChannel + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class SlackChannel { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + public static final String SERIALIZED_NAME_SLACK_CHANNEL_NAME = "slack_channel_name"; + @SerializedName(SERIALIZED_NAME_SLACK_CHANNEL_NAME) + @jakarta.annotation.Nonnull + private String slackChannelName; + + public static final String SERIALIZED_NAME_SLACK_CHANNEL_ID = "slack_channel_id"; + @SerializedName(SERIALIZED_NAME_SLACK_CHANNEL_ID) + @jakarta.annotation.Nonnull + private String slackChannelId; + + public static final String SERIALIZED_NAME_SLACK_TEAM_ID = "slack_team_id"; + @SerializedName(SERIALIZED_NAME_SLACK_TEAM_ID) + @jakarta.annotation.Nonnull + private String slackTeamId; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private String updatedAt; + + public SlackChannel() { + } + + public SlackChannel id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Get id + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public SlackChannel slackChannelName(@jakarta.annotation.Nonnull String slackChannelName) { + this.slackChannelName = slackChannelName; + return this; + } + + /** + * Get slackChannelName + * @return slackChannelName + */ + @jakarta.annotation.Nonnull + public String getSlackChannelName() { + return slackChannelName; + } + + public void setSlackChannelName(@jakarta.annotation.Nonnull String slackChannelName) { + this.slackChannelName = slackChannelName; + } + + + public SlackChannel slackChannelId(@jakarta.annotation.Nonnull String slackChannelId) { + this.slackChannelId = slackChannelId; + return this; + } + + /** + * Get slackChannelId + * @return slackChannelId + */ + @jakarta.annotation.Nonnull + public String getSlackChannelId() { + return slackChannelId; + } + + public void setSlackChannelId(@jakarta.annotation.Nonnull String slackChannelId) { + this.slackChannelId = slackChannelId; + } + + + public SlackChannel slackTeamId(@jakarta.annotation.Nonnull String slackTeamId) { + this.slackTeamId = slackTeamId; + return this; + } + + /** + * Get slackTeamId + * @return slackTeamId + */ + @jakarta.annotation.Nonnull + public String getSlackTeamId() { + return slackTeamId; + } + + public void setSlackTeamId(@jakarta.annotation.Nonnull String slackTeamId) { + this.slackTeamId = slackTeamId; + } + + + public SlackChannel createdAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Get createdAt + * @return createdAt + */ + @jakarta.annotation.Nonnull + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + } + + + public SlackChannel updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Get updatedAt + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SlackChannel slackChannel = (SlackChannel) o; + return Objects.equals(this.id, slackChannel.id) && + Objects.equals(this.slackChannelName, slackChannel.slackChannelName) && + Objects.equals(this.slackChannelId, slackChannel.slackChannelId) && + Objects.equals(this.slackTeamId, slackChannel.slackTeamId) && + Objects.equals(this.createdAt, slackChannel.createdAt) && + Objects.equals(this.updatedAt, slackChannel.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, slackChannelName, slackChannelId, slackTeamId, createdAt, updatedAt); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SlackChannel {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" slackChannelName: ").append(toIndentedString(slackChannelName)).append("\n"); + sb.append(" slackChannelId: ").append(toIndentedString(slackChannelId)).append("\n"); + sb.append(" slackTeamId: ").append(toIndentedString(slackTeamId)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("slack_channel_name"); + openapiFields.add("slack_channel_id"); + openapiFields.add("slack_team_id"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("slack_channel_name"); + openapiRequiredFields.add("slack_channel_id"); + openapiRequiredFields.add("slack_team_id"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SlackChannel + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SlackChannel.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SlackChannel is not found in the empty JSON string", SlackChannel.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SlackChannel.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SlackChannel` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SlackChannel.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("slack_channel_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slack_channel_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slack_channel_name").toString())); + } + if (!jsonObj.get("slack_channel_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slack_channel_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slack_channel_id").toString())); + } + if (!jsonObj.get("slack_team_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slack_team_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slack_team_id").toString())); + } + if (!jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if (!jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SlackChannel.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SlackChannel' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SlackChannel.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, SlackChannel value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SlackChannel read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SlackChannel given an JSON string + * + * @param jsonString JSON string + * @return An instance of SlackChannel + * @throws IOException if the JSON string is invalid with respect to SlackChannel + */ + public static SlackChannel fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SlackChannel.class); + } + + /** + * Convert an instance of SlackChannel to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/SnapshotDatadogGraphTaskParams.java b/src/main/java/com/rootly/client/model/SnapshotDatadogGraphTaskParams.java index 1690f919..654ba0b8 100644 --- a/src/main/java/com/rootly/client/model/SnapshotDatadogGraphTaskParams.java +++ b/src/main/java/com/rootly/client/model/SnapshotDatadogGraphTaskParams.java @@ -51,7 +51,7 @@ /** * SnapshotDatadogGraphTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SnapshotDatadogGraphTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/SnapshotGrafanaDashboardTaskParams.java b/src/main/java/com/rootly/client/model/SnapshotGrafanaDashboardTaskParams.java index 682cc5ff..1d2b61f3 100644 --- a/src/main/java/com/rootly/client/model/SnapshotGrafanaDashboardTaskParams.java +++ b/src/main/java/com/rootly/client/model/SnapshotGrafanaDashboardTaskParams.java @@ -51,7 +51,7 @@ /** * SnapshotGrafanaDashboardTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SnapshotGrafanaDashboardTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/SnapshotLookerLookTaskParams.java b/src/main/java/com/rootly/client/model/SnapshotLookerLookTaskParams.java index c03431cf..368db3b0 100644 --- a/src/main/java/com/rootly/client/model/SnapshotLookerLookTaskParams.java +++ b/src/main/java/com/rootly/client/model/SnapshotLookerLookTaskParams.java @@ -51,7 +51,7 @@ /** * SnapshotLookerLookTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SnapshotLookerLookTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/SnapshotNewRelicGraphTaskParams.java b/src/main/java/com/rootly/client/model/SnapshotNewRelicGraphTaskParams.java index 4436b0a3..197158d4 100644 --- a/src/main/java/com/rootly/client/model/SnapshotNewRelicGraphTaskParams.java +++ b/src/main/java/com/rootly/client/model/SnapshotNewRelicGraphTaskParams.java @@ -51,7 +51,7 @@ /** * SnapshotNewRelicGraphTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SnapshotNewRelicGraphTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/SnoozeAlert.java b/src/main/java/com/rootly/client/model/SnoozeAlert.java index 2ffb60cf..15327b8c 100644 --- a/src/main/java/com/rootly/client/model/SnoozeAlert.java +++ b/src/main/java/com/rootly/client/model/SnoozeAlert.java @@ -49,17 +49,17 @@ /** * SnoozeAlert */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SnoozeAlert { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private SnoozeAlertData data; public SnoozeAlert() { } - public SnoozeAlert data(@javax.annotation.Nonnull SnoozeAlertData data) { + public SnoozeAlert data(@jakarta.annotation.Nonnull SnoozeAlertData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public SnoozeAlert data(@javax.annotation.Nonnull SnoozeAlertData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public SnoozeAlertData getData() { return data; } - public void setData(@javax.annotation.Nonnull SnoozeAlertData data) { + public void setData(@jakarta.annotation.Nonnull SnoozeAlertData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/SnoozeAlertData.java b/src/main/java/com/rootly/client/model/SnoozeAlertData.java index 418f02bd..4a651659 100644 --- a/src/main/java/com/rootly/client/model/SnoozeAlertData.java +++ b/src/main/java/com/rootly/client/model/SnoozeAlertData.java @@ -49,7 +49,7 @@ /** * SnoozeAlertData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SnoozeAlertData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private SnoozeAlertDataAttributes attributes; public SnoozeAlertData() { } - public SnoozeAlertData type(@javax.annotation.Nonnull TypeEnum type) { + public SnoozeAlertData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public SnoozeAlertData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public SnoozeAlertData attributes(@javax.annotation.Nonnull SnoozeAlertDataAttributes attributes) { + public SnoozeAlertData attributes(@jakarta.annotation.Nonnull SnoozeAlertDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public SnoozeAlertData attributes(@javax.annotation.Nonnull SnoozeAlertDataAttri * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public SnoozeAlertDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull SnoozeAlertDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull SnoozeAlertDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/SnoozeAlertDataAttributes.java b/src/main/java/com/rootly/client/model/SnoozeAlertDataAttributes.java index d870b8a5..215f590a 100644 --- a/src/main/java/com/rootly/client/model/SnoozeAlertDataAttributes.java +++ b/src/main/java/com/rootly/client/model/SnoozeAlertDataAttributes.java @@ -48,17 +48,17 @@ /** * SnoozeAlertDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SnoozeAlertDataAttributes { public static final String SERIALIZED_NAME_DELAY_MINUTES = "delay_minutes"; @SerializedName(SERIALIZED_NAME_DELAY_MINUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private Integer delayMinutes; public SnoozeAlertDataAttributes() { } - public SnoozeAlertDataAttributes delayMinutes(@javax.annotation.Nonnull Integer delayMinutes) { + public SnoozeAlertDataAttributes delayMinutes(@jakarta.annotation.Nonnull Integer delayMinutes) { this.delayMinutes = delayMinutes; return this; } @@ -66,15 +66,15 @@ public SnoozeAlertDataAttributes delayMinutes(@javax.annotation.Nonnull Integer /** * Number of minutes to snooze the alert for * minimum: 1 - * maximum: 1440 + * maximum: 10080 * @return delayMinutes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public Integer getDelayMinutes() { return delayMinutes; } - public void setDelayMinutes(@javax.annotation.Nonnull Integer delayMinutes) { + public void setDelayMinutes(@jakarta.annotation.Nonnull Integer delayMinutes) { this.delayMinutes = delayMinutes; } diff --git a/src/main/java/com/rootly/client/model/StartSessionRequest.java b/src/main/java/com/rootly/client/model/StartSessionRequest.java new file mode 100644 index 00000000..40fd3334 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StartSessionRequest.java @@ -0,0 +1,308 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StartSessionRequest + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StartSessionRequest { + /** + * Meeting platform + */ + @JsonAdapter(PlatformEnum.Adapter.class) + public enum PlatformEnum { + ZOOM("zoom"), + + GOOGLE_MEET("google_meet"), + + MICROSOFT_TEAMS("microsoft_teams"), + + WEBEX("webex"); + + private String value; + + PlatformEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PlatformEnum fromValue(String value) { + for (PlatformEnum b : PlatformEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PlatformEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PlatformEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PlatformEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PlatformEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PLATFORM = "platform"; + @SerializedName(SERIALIZED_NAME_PLATFORM) + @jakarta.annotation.Nullable + private PlatformEnum platform; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nullable + private String title; + + public StartSessionRequest() { + } + + public StartSessionRequest platform(@jakarta.annotation.Nullable PlatformEnum platform) { + this.platform = platform; + return this; + } + + /** + * Meeting platform + * @return platform + */ + @jakarta.annotation.Nullable + public PlatformEnum getPlatform() { + return platform; + } + + public void setPlatform(@jakarta.annotation.Nullable PlatformEnum platform) { + this.platform = platform; + } + + + public StartSessionRequest title(@jakarta.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Human-readable label for the recording session + * @return title + */ + @jakarta.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nullable String title) { + this.title = title; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartSessionRequest startSessionRequest = (StartSessionRequest) o; + return Objects.equals(this.platform, startSessionRequest.platform) && + Objects.equals(this.title, startSessionRequest.title); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(platform, title); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartSessionRequest {\n"); + sb.append(" platform: ").append(toIndentedString(platform)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("platform"); + openapiFields.add("title"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartSessionRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartSessionRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartSessionRequest is not found in the empty JSON string", StartSessionRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartSessionRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartSessionRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("platform") != null && !jsonObj.get("platform").isJsonNull()) && !jsonObj.get("platform").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `platform` to be a primitive type in the JSON string but got `%s`", jsonObj.get("platform").toString())); + } + // validate the optional field `platform` + if (jsonObj.get("platform") != null && !jsonObj.get("platform").isJsonNull()) { + PlatformEnum.validateJsonElement(jsonObj.get("platform")); + } + if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartSessionRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartSessionRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartSessionRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartSessionRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartSessionRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartSessionRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartSessionRequest + * @throws IOException if the JSON string is invalid with respect to StartSessionRequest + */ + public static StartSessionRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartSessionRequest.class); + } + + /** + * Convert an instance of StartSessionRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StartSessionResponse.java b/src/main/java/com/rootly/client/model/StartSessionResponse.java new file mode 100644 index 00000000..d4a27634 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StartSessionResponse.java @@ -0,0 +1,208 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StartSessionResponseData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StartSessionResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StartSessionResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nullable + private StartSessionResponseData data; + + public StartSessionResponse() { + } + + public StartSessionResponse data(@jakarta.annotation.Nullable StartSessionResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nullable + public StartSessionResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nullable StartSessionResponseData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartSessionResponse startSessionResponse = (StartSessionResponse) o; + return Objects.equals(this.data, startSessionResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartSessionResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartSessionResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartSessionResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartSessionResponse is not found in the empty JSON string", StartSessionResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartSessionResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartSessionResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `data` + if (jsonObj.get("data") != null && !jsonObj.get("data").isJsonNull()) { + StartSessionResponseData.validateJsonElement(jsonObj.get("data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartSessionResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartSessionResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartSessionResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartSessionResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartSessionResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartSessionResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartSessionResponse + * @throws IOException if the JSON string is invalid with respect to StartSessionResponse + */ + public static StartSessionResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartSessionResponse.class); + } + + /** + * Convert an instance of StartSessionResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StartSessionResponseData.java b/src/main/java/com/rootly/client/model/StartSessionResponseData.java new file mode 100644 index 00000000..7ef30340 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StartSessionResponseData.java @@ -0,0 +1,277 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StartSessionResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StartSessionResponseData { + public static final String SERIALIZED_NAME_SESSION_ID = "session_id"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + @jakarta.annotation.Nonnull + private UUID sessionId; + + public static final String SERIALIZED_NAME_STREAM_TOKEN = "stream_token"; + @SerializedName(SERIALIZED_NAME_STREAM_TOKEN) + @jakarta.annotation.Nonnull + private String streamToken; + + public static final String SERIALIZED_NAME_MEETING_RECORDING_ID = "meeting_recording_id"; + @SerializedName(SERIALIZED_NAME_MEETING_RECORDING_ID) + @jakarta.annotation.Nonnull + private UUID meetingRecordingId; + + public StartSessionResponseData() { + } + + public StartSessionResponseData sessionId(@jakarta.annotation.Nonnull UUID sessionId) { + this.sessionId = sessionId; + return this; + } + + /** + * Meeting recording UUID + * @return sessionId + */ + @jakarta.annotation.Nonnull + public UUID getSessionId() { + return sessionId; + } + + public void setSessionId(@jakarta.annotation.Nonnull UUID sessionId) { + this.sessionId = sessionId; + } + + + public StartSessionResponseData streamToken(@jakarta.annotation.Nonnull String streamToken) { + this.streamToken = streamToken; + return this; + } + + /** + * Token for the desktop client to stream audio + * @return streamToken + */ + @jakarta.annotation.Nonnull + public String getStreamToken() { + return streamToken; + } + + public void setStreamToken(@jakarta.annotation.Nonnull String streamToken) { + this.streamToken = streamToken; + } + + + public StartSessionResponseData meetingRecordingId(@jakarta.annotation.Nonnull UUID meetingRecordingId) { + this.meetingRecordingId = meetingRecordingId; + return this; + } + + /** + * Meeting recording UUID + * @return meetingRecordingId + */ + @jakarta.annotation.Nonnull + public UUID getMeetingRecordingId() { + return meetingRecordingId; + } + + public void setMeetingRecordingId(@jakarta.annotation.Nonnull UUID meetingRecordingId) { + this.meetingRecordingId = meetingRecordingId; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StartSessionResponseData startSessionResponseData = (StartSessionResponseData) o; + return Objects.equals(this.sessionId, startSessionResponseData.sessionId) && + Objects.equals(this.streamToken, startSessionResponseData.streamToken) && + Objects.equals(this.meetingRecordingId, startSessionResponseData.meetingRecordingId); + } + + @Override + public int hashCode() { + return Objects.hash(sessionId, streamToken, meetingRecordingId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StartSessionResponseData {\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append(" streamToken: ").append(toIndentedString(streamToken)).append("\n"); + sb.append(" meetingRecordingId: ").append(toIndentedString(meetingRecordingId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("session_id"); + openapiFields.add("stream_token"); + openapiFields.add("meeting_recording_id"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("session_id"); + openapiRequiredFields.add("stream_token"); + openapiRequiredFields.add("meeting_recording_id"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StartSessionResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StartSessionResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StartSessionResponseData is not found in the empty JSON string", StartSessionResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StartSessionResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StartSessionResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StartSessionResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("session_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `session_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("session_id").toString())); + } + if (!jsonObj.get("stream_token").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `stream_token` to be a primitive type in the JSON string but got `%s`", jsonObj.get("stream_token").toString())); + } + if (!jsonObj.get("meeting_recording_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `meeting_recording_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("meeting_recording_id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StartSessionResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StartSessionResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StartSessionResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StartSessionResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StartSessionResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StartSessionResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of StartSessionResponseData + * @throws IOException if the JSON string is invalid with respect to StartSessionResponseData + */ + public static StartSessionResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StartSessionResponseData.class); + } + + /** + * Convert an instance of StartSessionResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/Status.java b/src/main/java/com/rootly/client/model/Status.java index e6018a1c..659af3e6 100644 --- a/src/main/java/com/rootly/client/model/Status.java +++ b/src/main/java/com/rootly/client/model/Status.java @@ -49,7 +49,7 @@ /** * Status */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Status { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -58,7 +58,7 @@ public class Status { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -89,6 +89,13 @@ public class Status { public Status() { } + public Status( + String slug + ) { + this(); + this.slug = slug; + } + public Status name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -108,23 +115,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Status slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * Get slug * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public Status description(@jakarta.annotation.Nullable String description) { @@ -301,7 +300,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("color"); openapiRequiredFields.add("enabled"); openapiRequiredFields.add("created_at"); @@ -339,7 +337,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { diff --git a/src/main/java/com/rootly/client/model/StatusList.java b/src/main/java/com/rootly/client/model/StatusList.java index a880c580..d5e179f4 100644 --- a/src/main/java/com/rootly/client/model/StatusList.java +++ b/src/main/java/com/rootly/client/model/StatusList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.StatusResponseData; @@ -53,7 +54,7 @@ /** * StatusList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class StatusList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public StatusList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public StatusList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { StatusList statusList = (StatusList) o; return Objects.equals(this.data, statusList.data) && Objects.equals(this.links, statusList.links) && - Objects.equals(this.meta, statusList.meta); + Objects.equals(this.meta, statusList.meta) && + Objects.equals(this.included, statusList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/StatusPage.java b/src/main/java/com/rootly/client/model/StatusPage.java index 63d8a975..3f2b4750 100644 --- a/src/main/java/com/rootly/client/model/StatusPage.java +++ b/src/main/java/com/rootly/client/model/StatusPage.java @@ -22,7 +22,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -51,7 +53,7 @@ /** * StatusPage */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPage { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) @@ -318,6 +320,65 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private SamlNameIdentifierFormatEnum samlNameIdentifierFormat; + /** + * Gets or Sets sectionOrder + */ + @JsonAdapter(SectionOrderEnum.Adapter.class) + public enum SectionOrderEnum { + MAINTENANCE("maintenance"), + + SYSTEM_STATUS("system_status"), + + INCIDENTS("incidents"); + + private String value; + + SectionOrderEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SectionOrderEnum fromValue(String value) { + for (SectionOrderEnum b : SectionOrderEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SectionOrderEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SectionOrderEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SectionOrderEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SectionOrderEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SECTION_ORDER = "section_order"; + @SerializedName(SERIALIZED_NAME_SECTION_ORDER) + @jakarta.annotation.Nullable + private List sectionOrder; + public static final String SERIALIZED_NAME_WEBSITE_URL = "website_url"; @SerializedName(SERIALIZED_NAME_WEBSITE_URL) @jakarta.annotation.Nullable @@ -363,6 +424,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List externalDomainNames = new ArrayList<>(); + public static final String SERIALIZED_NAME_CNAME_RECORDS = "cname_records"; + @SerializedName(SERIALIZED_NAME_CNAME_RECORDS) + @jakarta.annotation.Nullable + private Map cnameRecords; + public static final String SERIALIZED_NAME_ENABLED = "enabled"; @SerializedName(SERIALIZED_NAME_ENABLED) @jakarta.annotation.Nullable @@ -381,6 +447,15 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public StatusPage() { } + public StatusPage( + String slug, + Map cnameRecords + ) { + this(); + this.slug = slug; + this.cnameRecords = cnameRecords; + } + public StatusPage title(@jakarta.annotation.Nonnull String title) { this.title = title; return this; @@ -400,11 +475,6 @@ public void setTitle(@jakarta.annotation.Nonnull String title) { } - public StatusPage slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the status page * @return slug @@ -414,9 +484,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public StatusPage publicTitle(@jakarta.annotation.Nullable String publicTitle) { @@ -765,6 +832,33 @@ public void setSamlNameIdentifierFormat(@jakarta.annotation.Nullable SamlNameIde } + public StatusPage sectionOrder(@jakarta.annotation.Nullable List sectionOrder) { + this.sectionOrder = sectionOrder; + return this; + } + + public StatusPage addSectionOrderItem(SectionOrderEnum sectionOrderItem) { + if (this.sectionOrder == null) { + this.sectionOrder = new ArrayList<>(); + } + this.sectionOrder.add(sectionOrderItem); + return this; + } + + /** + * Order of sections on the status page + * @return sectionOrder + */ + @jakarta.annotation.Nullable + public List getSectionOrder() { + return sectionOrder; + } + + public void setSectionOrder(@jakarta.annotation.Nullable List sectionOrder) { + this.sectionOrder = sectionOrder; + } + + public StatusPage websiteUrl(@jakarta.annotation.Nullable String websiteUrl) { this.websiteUrl = websiteUrl; return this; @@ -960,6 +1054,17 @@ public void setExternalDomainNames(@jakarta.annotation.Nullable List ext } + /** + * CNAME records mapping external domain names to their DNS target values. These are populated asynchronously after setting external_domain_names. + * @return cnameRecords + */ + @jakarta.annotation.Nullable + public Map getCnameRecords() { + return cnameRecords; + } + + + public StatusPage enabled(@jakarta.annotation.Nullable Boolean enabled) { this.enabled = enabled; return this; @@ -1047,6 +1152,7 @@ public boolean equals(Object o) { Objects.equals(this.samlIdpCert, statusPage.samlIdpCert) && Objects.equals(this.samlIdpCertFingerprint, statusPage.samlIdpCertFingerprint) && Objects.equals(this.samlNameIdentifierFormat, statusPage.samlNameIdentifierFormat) && + Objects.equals(this.sectionOrder, statusPage.sectionOrder) && Objects.equals(this.websiteUrl, statusPage.websiteUrl) && Objects.equals(this.websitePrivacyUrl, statusPage.websitePrivacyUrl) && Objects.equals(this.websiteSupportUrl, statusPage.websiteSupportUrl) && @@ -1056,6 +1162,7 @@ public boolean equals(Object o) { Objects.equals(this.serviceIds, statusPage.serviceIds) && Objects.equals(this.functionalityIds, statusPage.functionalityIds) && Objects.equals(this.externalDomainNames, statusPage.externalDomainNames) && + Objects.equals(this.cnameRecords, statusPage.cnameRecords) && Objects.equals(this.enabled, statusPage.enabled) && Objects.equals(this.createdAt, statusPage.createdAt) && Objects.equals(this.updatedAt, statusPage.updatedAt); @@ -1067,7 +1174,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(title, slug, publicTitle, description, publicDescription, headerColor, footerColor, allowSearchEngineIndex, showUptime, showUptimeLastDays, successMessage, failureMessage, authenticationMethod, authenticationEnabled, authenticationPassword, samlIdpSsoServiceUrl, samlIdpSloServiceUrl, samlIdpCert, samlIdpCertFingerprint, samlNameIdentifierFormat, websiteUrl, websitePrivacyUrl, websiteSupportUrl, gaTrackingId, timeZone, _public, serviceIds, functionalityIds, externalDomainNames, enabled, createdAt, updatedAt); + return Objects.hash(title, slug, publicTitle, description, publicDescription, headerColor, footerColor, allowSearchEngineIndex, showUptime, showUptimeLastDays, successMessage, failureMessage, authenticationMethod, authenticationEnabled, authenticationPassword, samlIdpSsoServiceUrl, samlIdpSloServiceUrl, samlIdpCert, samlIdpCertFingerprint, samlNameIdentifierFormat, sectionOrder, websiteUrl, websitePrivacyUrl, websiteSupportUrl, gaTrackingId, timeZone, _public, serviceIds, functionalityIds, externalDomainNames, cnameRecords, enabled, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -1101,6 +1208,7 @@ public String toString() { sb.append(" samlIdpCert: ").append(toIndentedString(samlIdpCert)).append("\n"); sb.append(" samlIdpCertFingerprint: ").append(toIndentedString(samlIdpCertFingerprint)).append("\n"); sb.append(" samlNameIdentifierFormat: ").append(toIndentedString(samlNameIdentifierFormat)).append("\n"); + sb.append(" sectionOrder: ").append(toIndentedString(sectionOrder)).append("\n"); sb.append(" websiteUrl: ").append(toIndentedString(websiteUrl)).append("\n"); sb.append(" websitePrivacyUrl: ").append(toIndentedString(websitePrivacyUrl)).append("\n"); sb.append(" websiteSupportUrl: ").append(toIndentedString(websiteSupportUrl)).append("\n"); @@ -1110,6 +1218,7 @@ public String toString() { sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); sb.append(" functionalityIds: ").append(toIndentedString(functionalityIds)).append("\n"); sb.append(" externalDomainNames: ").append(toIndentedString(externalDomainNames)).append("\n"); + sb.append(" cnameRecords: ").append(toIndentedString(cnameRecords)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); @@ -1155,6 +1264,7 @@ private String toIndentedString(Object o) { openapiFields.add("saml_idp_cert"); openapiFields.add("saml_idp_cert_fingerprint"); openapiFields.add("saml_name_identifier_format"); + openapiFields.add("section_order"); openapiFields.add("website_url"); openapiFields.add("website_privacy_url"); openapiFields.add("website_support_url"); @@ -1164,6 +1274,7 @@ private String toIndentedString(Object o) { openapiFields.add("service_ids"); openapiFields.add("functionality_ids"); openapiFields.add("external_domain_names"); + openapiFields.add("cname_records"); openapiFields.add("enabled"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -1263,6 +1374,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("saml_name_identifier_format") != null && !jsonObj.get("saml_name_identifier_format").isJsonNull()) { SamlNameIdentifierFormatEnum.validateJsonElement(jsonObj.get("saml_name_identifier_format")); } + // ensure the optional json data is an array if present + if (jsonObj.get("section_order") != null && !jsonObj.get("section_order").isJsonNull() && !jsonObj.get("section_order").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `section_order` to be an array in the JSON string but got `%s`", jsonObj.get("section_order").toString())); + } if ((jsonObj.get("website_url") != null && !jsonObj.get("website_url").isJsonNull()) && !jsonObj.get("website_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `website_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("website_url").toString())); } diff --git a/src/main/java/com/rootly/client/model/StatusPageAnnouncement.java b/src/main/java/com/rootly/client/model/StatusPageAnnouncement.java new file mode 100644 index 00000000..32900313 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageAnnouncement.java @@ -0,0 +1,408 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageAnnouncement + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageAnnouncement { + public static final String SERIALIZED_NAME_STATUS_PAGE_ID = "status_page_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_ID) + @jakarta.annotation.Nonnull + private String statusPageId; + + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nonnull + private String title; + + public static final String SERIALIZED_NAME_BODY = "body"; + @SerializedName(SERIALIZED_NAME_BODY) + @jakarta.annotation.Nonnull + private String body; + + public static final String SERIALIZED_NAME_USER_ID = "user_id"; + @SerializedName(SERIALIZED_NAME_USER_ID) + @jakarta.annotation.Nullable + private Integer userId; + + public static final String SERIALIZED_NAME_PUBLISHED_AT = "published_at"; + @SerializedName(SERIALIZED_NAME_PUBLISHED_AT) + @jakarta.annotation.Nonnull + private String publishedAt; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private String updatedAt; + + public StatusPageAnnouncement() { + } + + public StatusPageAnnouncement statusPageId(@jakarta.annotation.Nonnull String statusPageId) { + this.statusPageId = statusPageId; + return this; + } + + /** + * ID of the status page the announcement was posted to + * @return statusPageId + */ + @jakarta.annotation.Nonnull + public String getStatusPageId() { + return statusPageId; + } + + public void setStatusPageId(@jakarta.annotation.Nonnull String statusPageId) { + this.statusPageId = statusPageId; + } + + + public StatusPageAnnouncement title(@jakarta.annotation.Nonnull String title) { + this.title = title; + return this; + } + + /** + * Title of the announcement + * @return title + */ + @jakarta.annotation.Nonnull + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nonnull String title) { + this.title = title; + } + + + public StatusPageAnnouncement body(@jakarta.annotation.Nonnull String body) { + this.body = body; + return this; + } + + /** + * Body of the announcement + * @return body + */ + @jakarta.annotation.Nonnull + public String getBody() { + return body; + } + + public void setBody(@jakarta.annotation.Nonnull String body) { + this.body = body; + } + + + public StatusPageAnnouncement userId(@jakarta.annotation.Nullable Integer userId) { + this.userId = userId; + return this; + } + + /** + * ID of the user who posted the announcement + * @return userId + */ + @jakarta.annotation.Nullable + public Integer getUserId() { + return userId; + } + + public void setUserId(@jakarta.annotation.Nullable Integer userId) { + this.userId = userId; + } + + + public StatusPageAnnouncement publishedAt(@jakarta.annotation.Nonnull String publishedAt) { + this.publishedAt = publishedAt; + return this; + } + + /** + * Date the announcement was published + * @return publishedAt + */ + @jakarta.annotation.Nonnull + public String getPublishedAt() { + return publishedAt; + } + + public void setPublishedAt(@jakarta.annotation.Nonnull String publishedAt) { + this.publishedAt = publishedAt; + } + + + public StatusPageAnnouncement createdAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Date of creation + * @return createdAt + */ + @jakarta.annotation.Nonnull + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + } + + + public StatusPageAnnouncement updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Date of last update + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageAnnouncement statusPageAnnouncement = (StatusPageAnnouncement) o; + return Objects.equals(this.statusPageId, statusPageAnnouncement.statusPageId) && + Objects.equals(this.title, statusPageAnnouncement.title) && + Objects.equals(this.body, statusPageAnnouncement.body) && + Objects.equals(this.userId, statusPageAnnouncement.userId) && + Objects.equals(this.publishedAt, statusPageAnnouncement.publishedAt) && + Objects.equals(this.createdAt, statusPageAnnouncement.createdAt) && + Objects.equals(this.updatedAt, statusPageAnnouncement.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(statusPageId, title, body, userId, publishedAt, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageAnnouncement {\n"); + sb.append(" statusPageId: ").append(toIndentedString(statusPageId)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" body: ").append(toIndentedString(body)).append("\n"); + sb.append(" userId: ").append(toIndentedString(userId)).append("\n"); + sb.append(" publishedAt: ").append(toIndentedString(publishedAt)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("status_page_id"); + openapiFields.add("title"); + openapiFields.add("body"); + openapiFields.add("user_id"); + openapiFields.add("published_at"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("status_page_id"); + openapiRequiredFields.add("title"); + openapiRequiredFields.add("body"); + openapiRequiredFields.add("published_at"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageAnnouncement + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageAnnouncement.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageAnnouncement is not found in the empty JSON string", StatusPageAnnouncement.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageAnnouncement.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageAnnouncement` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageAnnouncement.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("status_page_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_id").toString())); + } + if (!jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if (!jsonObj.get("body").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("body").toString())); + } + if (!jsonObj.get("published_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `published_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("published_at").toString())); + } + if (!jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if (!jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageAnnouncement.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageAnnouncement' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageAnnouncement.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageAnnouncement value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageAnnouncement read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageAnnouncement given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageAnnouncement + * @throws IOException if the JSON string is invalid with respect to StatusPageAnnouncement + */ + public static StatusPageAnnouncement fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageAnnouncement.class); + } + + /** + * Convert an instance of StatusPageAnnouncement to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageAnnouncementList.java b/src/main/java/com/rootly/client/model/StatusPageAnnouncementList.java new file mode 100644 index 00000000..a5005d54 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageAnnouncementList.java @@ -0,0 +1,344 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.StatusPageAnnouncementResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageAnnouncementList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageAnnouncementList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nonnull + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nonnull + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public StatusPageAnnouncementList() { + } + + public StatusPageAnnouncementList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public StatusPageAnnouncementList addDataItem(StatusPageAnnouncementResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public StatusPageAnnouncementList links(@jakarta.annotation.Nonnull Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nonnull + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nonnull Links links) { + this.links = links; + } + + + public StatusPageAnnouncementList meta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nonnull + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + } + + + public StatusPageAnnouncementList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageAnnouncementList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageAnnouncementList statusPageAnnouncementList = (StatusPageAnnouncementList) o; + return Objects.equals(this.data, statusPageAnnouncementList.data) && + Objects.equals(this.links, statusPageAnnouncementList.links) && + Objects.equals(this.meta, statusPageAnnouncementList.meta) && + Objects.equals(this.included, statusPageAnnouncementList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageAnnouncementList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + openapiRequiredFields.add("links"); + openapiRequiredFields.add("meta"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageAnnouncementList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageAnnouncementList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageAnnouncementList is not found in the empty JSON string", StatusPageAnnouncementList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageAnnouncementList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageAnnouncementList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageAnnouncementList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + StatusPageAnnouncementResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the required field `links` + Links.validateJsonElement(jsonObj.get("links")); + // validate the required field `meta` + Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageAnnouncementList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageAnnouncementList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageAnnouncementList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageAnnouncementList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageAnnouncementList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageAnnouncementList given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageAnnouncementList + * @throws IOException if the JSON string is invalid with respect to StatusPageAnnouncementList + */ + public static StatusPageAnnouncementList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageAnnouncementList.class); + } + + /** + * Convert an instance of StatusPageAnnouncementList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageAnnouncementResponse.java b/src/main/java/com/rootly/client/model/StatusPageAnnouncementResponse.java new file mode 100644 index 00000000..9a12b582 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageAnnouncementResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.StatusPageAnnouncementResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageAnnouncementResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageAnnouncementResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private StatusPageAnnouncementResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public StatusPageAnnouncementResponse() { + } + + public StatusPageAnnouncementResponse data(@jakarta.annotation.Nonnull StatusPageAnnouncementResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public StatusPageAnnouncementResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull StatusPageAnnouncementResponseData data) { + this.data = data; + } + + + public StatusPageAnnouncementResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageAnnouncementResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageAnnouncementResponse statusPageAnnouncementResponse = (StatusPageAnnouncementResponse) o; + return Objects.equals(this.data, statusPageAnnouncementResponse.data) && + Objects.equals(this.included, statusPageAnnouncementResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageAnnouncementResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageAnnouncementResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageAnnouncementResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageAnnouncementResponse is not found in the empty JSON string", StatusPageAnnouncementResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageAnnouncementResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageAnnouncementResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageAnnouncementResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + StatusPageAnnouncementResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageAnnouncementResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageAnnouncementResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageAnnouncementResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageAnnouncementResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageAnnouncementResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageAnnouncementResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageAnnouncementResponse + * @throws IOException if the JSON string is invalid with respect to StatusPageAnnouncementResponse + */ + public static StatusPageAnnouncementResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageAnnouncementResponse.class); + } + + /** + * Convert an instance of StatusPageAnnouncementResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageAnnouncementResponseData.java b/src/main/java/com/rootly/client/model/StatusPageAnnouncementResponseData.java new file mode 100644 index 00000000..091ab427 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageAnnouncementResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StatusPageAnnouncement; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageAnnouncementResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageAnnouncementResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_ANNOUNCEMENTS("status_page_announcements"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private StatusPageAnnouncement attributes; + + public StatusPageAnnouncementResponseData() { + } + + public StatusPageAnnouncementResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the status page announcement + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public StatusPageAnnouncementResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public StatusPageAnnouncementResponseData attributes(@jakarta.annotation.Nonnull StatusPageAnnouncement attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public StatusPageAnnouncement getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull StatusPageAnnouncement attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageAnnouncementResponseData statusPageAnnouncementResponseData = (StatusPageAnnouncementResponseData) o; + return Objects.equals(this.id, statusPageAnnouncementResponseData.id) && + Objects.equals(this.type, statusPageAnnouncementResponseData.type) && + Objects.equals(this.attributes, statusPageAnnouncementResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageAnnouncementResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageAnnouncementResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageAnnouncementResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageAnnouncementResponseData is not found in the empty JSON string", StatusPageAnnouncementResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageAnnouncementResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageAnnouncementResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageAnnouncementResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + StatusPageAnnouncement.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageAnnouncementResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageAnnouncementResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageAnnouncementResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageAnnouncementResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageAnnouncementResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageAnnouncementResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageAnnouncementResponseData + * @throws IOException if the JSON string is invalid with respect to StatusPageAnnouncementResponseData + */ + public static StatusPageAnnouncementResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageAnnouncementResponseData.class); + } + + /** + * Convert an instance of StatusPageAnnouncementResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponent.java b/src/main/java/com/rootly/client/model/StatusPageComponent.java new file mode 100644 index 00000000..d2aaab44 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponent.java @@ -0,0 +1,556 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponent + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponent { + public static final String SERIALIZED_NAME_STATUS_PAGE_ID = "status_page_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_ID) + @jakarta.annotation.Nonnull + private String statusPageId; + + public static final String SERIALIZED_NAME_STATUS_PAGE_COMPONENT_GROUP_ID = "status_page_component_group_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_COMPONENT_GROUP_ID) + @jakarta.annotation.Nullable + private String statusPageComponentGroupId; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nonnull + private Integer position; + + public static final String SERIALIZED_NAME_SOURCE_TYPE = "source_type"; + @SerializedName(SERIALIZED_NAME_SOURCE_TYPE) + @jakarta.annotation.Nullable + private String sourceType; + + public static final String SERIALIZED_NAME_SOURCE_ID = "source_id"; + @SerializedName(SERIALIZED_NAME_SOURCE_ID) + @jakarta.annotation.Nullable + private String sourceId; + + /** + * Latest recorded status of the component + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + OPERATIONAL("operational"), + + DEGRADED_PERFORMANCE("degraded_performance"), + + PARTIAL_OUTAGE("partial_outage"), + + MAJOR_OUTAGE("major_outage"), + + MAINTENANCE("maintenance"), + + IMPACTED("impacted"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nullable + private StatusEnum status; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime updatedAt; + + public StatusPageComponent() { + } + + public StatusPageComponent statusPageId(@jakarta.annotation.Nonnull String statusPageId) { + this.statusPageId = statusPageId; + return this; + } + + /** + * Get statusPageId + * @return statusPageId + */ + @jakarta.annotation.Nonnull + public String getStatusPageId() { + return statusPageId; + } + + public void setStatusPageId(@jakarta.annotation.Nonnull String statusPageId) { + this.statusPageId = statusPageId; + } + + + public StatusPageComponent statusPageComponentGroupId(@jakarta.annotation.Nullable String statusPageComponentGroupId) { + this.statusPageComponentGroupId = statusPageComponentGroupId; + return this; + } + + /** + * ID of the component group the component belongs to + * @return statusPageComponentGroupId + */ + @jakarta.annotation.Nullable + public String getStatusPageComponentGroupId() { + return statusPageComponentGroupId; + } + + public void setStatusPageComponentGroupId(@jakarta.annotation.Nullable String statusPageComponentGroupId) { + this.statusPageComponentGroupId = statusPageComponentGroupId; + } + + + public StatusPageComponent name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Name of the component (derived from the source for catalog-backed components) + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public StatusPageComponent description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Description of the component (derived from the source for catalog-backed components) + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public StatusPageComponent position(@jakarta.annotation.Nonnull Integer position) { + this.position = position; + return this; + } + + /** + * Position of the component + * minimum: 1 + * @return position + */ + @jakarta.annotation.Nonnull + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nonnull Integer position) { + this.position = position; + } + + + public StatusPageComponent sourceType(@jakarta.annotation.Nullable String sourceType) { + this.sourceType = sourceType; + return this; + } + + /** + * Catalog source type backing the component (null for ad-hoc components) + * @return sourceType + */ + @jakarta.annotation.Nullable + public String getSourceType() { + return sourceType; + } + + public void setSourceType(@jakarta.annotation.Nullable String sourceType) { + this.sourceType = sourceType; + } + + + public StatusPageComponent sourceId(@jakarta.annotation.Nullable String sourceId) { + this.sourceId = sourceId; + return this; + } + + /** + * ID of the catalog source backing the component (null for ad-hoc components) + * @return sourceId + */ + @jakarta.annotation.Nullable + public String getSourceId() { + return sourceId; + } + + public void setSourceId(@jakarta.annotation.Nullable String sourceId) { + this.sourceId = sourceId; + } + + + public StatusPageComponent status(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + return this; + } + + /** + * Latest recorded status of the component + * @return status + */ + @jakarta.annotation.Nullable + public StatusEnum getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + } + + + public StatusPageComponent createdAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Date of creation + * @return createdAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + + public StatusPageComponent updatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Date of last update + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponent statusPageComponent = (StatusPageComponent) o; + return Objects.equals(this.statusPageId, statusPageComponent.statusPageId) && + Objects.equals(this.statusPageComponentGroupId, statusPageComponent.statusPageComponentGroupId) && + Objects.equals(this.name, statusPageComponent.name) && + Objects.equals(this.description, statusPageComponent.description) && + Objects.equals(this.position, statusPageComponent.position) && + Objects.equals(this.sourceType, statusPageComponent.sourceType) && + Objects.equals(this.sourceId, statusPageComponent.sourceId) && + Objects.equals(this.status, statusPageComponent.status) && + Objects.equals(this.createdAt, statusPageComponent.createdAt) && + Objects.equals(this.updatedAt, statusPageComponent.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(statusPageId, statusPageComponentGroupId, name, description, position, sourceType, sourceId, status, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponent {\n"); + sb.append(" statusPageId: ").append(toIndentedString(statusPageId)).append("\n"); + sb.append(" statusPageComponentGroupId: ").append(toIndentedString(statusPageComponentGroupId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" sourceType: ").append(toIndentedString(sourceType)).append("\n"); + sb.append(" sourceId: ").append(toIndentedString(sourceId)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("status_page_id"); + openapiFields.add("status_page_component_group_id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("position"); + openapiFields.add("source_type"); + openapiFields.add("source_id"); + openapiFields.add("status"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("status_page_id"); + openapiRequiredFields.add("position"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponent + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponent.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponent is not found in the empty JSON string", StatusPageComponent.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponent.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponent` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponent.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("status_page_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_id").toString())); + } + if ((jsonObj.get("status_page_component_group_id") != null && !jsonObj.get("status_page_component_group_id").isJsonNull()) && !jsonObj.get("status_page_component_group_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_component_group_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_component_group_id").toString())); + } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("source_type") != null && !jsonObj.get("source_type").isJsonNull()) && !jsonObj.get("source_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `source_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source_type").toString())); + } + if ((jsonObj.get("source_id") != null && !jsonObj.get("source_id").isJsonNull()) && !jsonObj.get("source_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `source_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source_id").toString())); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the optional field `status` + if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { + StatusEnum.validateJsonElement(jsonObj.get("status")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponent.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponent' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponent.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponent value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponent read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponent given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponent + * @throws IOException if the JSON string is invalid with respect to StatusPageComponent + */ + public static StatusPageComponent fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponent.class); + } + + /** + * Convert an instance of StatusPageComponent to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponentGroup.java b/src/main/java/com/rootly/client/model/StatusPageComponentGroup.java new file mode 100644 index 00000000..79c00a5e --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponentGroup.java @@ -0,0 +1,400 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponentGroup + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponentGroup { + public static final String SERIALIZED_NAME_STATUS_PAGE_ID = "status_page_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_ID) + @jakarta.annotation.Nonnull + private String statusPageId; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nonnull + private Integer position; + + public static final String SERIALIZED_NAME_COLLAPSED_BY_DEFAULT = "collapsed_by_default"; + @SerializedName(SERIALIZED_NAME_COLLAPSED_BY_DEFAULT) + @jakarta.annotation.Nullable + private Boolean collapsedByDefault; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private OffsetDateTime updatedAt; + + public StatusPageComponentGroup() { + } + + public StatusPageComponentGroup statusPageId(@jakarta.annotation.Nonnull String statusPageId) { + this.statusPageId = statusPageId; + return this; + } + + /** + * Get statusPageId + * @return statusPageId + */ + @jakarta.annotation.Nonnull + public String getStatusPageId() { + return statusPageId; + } + + public void setStatusPageId(@jakarta.annotation.Nonnull String statusPageId) { + this.statusPageId = statusPageId; + } + + + public StatusPageComponentGroup name(@jakarta.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Name of the component group + * @return name + */ + @jakarta.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nonnull String name) { + this.name = name; + } + + + public StatusPageComponentGroup description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Description of the component group + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public StatusPageComponentGroup position(@jakarta.annotation.Nonnull Integer position) { + this.position = position; + return this; + } + + /** + * Position of the group on the status page's top-level list + * minimum: 1 + * @return position + */ + @jakarta.annotation.Nonnull + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nonnull Integer position) { + this.position = position; + } + + + public StatusPageComponentGroup collapsedByDefault(@jakarta.annotation.Nullable Boolean collapsedByDefault) { + this.collapsedByDefault = collapsedByDefault; + return this; + } + + /** + * Whether the group renders collapsed on the public page + * @return collapsedByDefault + */ + @jakarta.annotation.Nullable + public Boolean getCollapsedByDefault() { + return collapsedByDefault; + } + + public void setCollapsedByDefault(@jakarta.annotation.Nullable Boolean collapsedByDefault) { + this.collapsedByDefault = collapsedByDefault; + } + + + public StatusPageComponentGroup createdAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Date of creation + * @return createdAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + + public StatusPageComponentGroup updatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Date of last update + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponentGroup statusPageComponentGroup = (StatusPageComponentGroup) o; + return Objects.equals(this.statusPageId, statusPageComponentGroup.statusPageId) && + Objects.equals(this.name, statusPageComponentGroup.name) && + Objects.equals(this.description, statusPageComponentGroup.description) && + Objects.equals(this.position, statusPageComponentGroup.position) && + Objects.equals(this.collapsedByDefault, statusPageComponentGroup.collapsedByDefault) && + Objects.equals(this.createdAt, statusPageComponentGroup.createdAt) && + Objects.equals(this.updatedAt, statusPageComponentGroup.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(statusPageId, name, description, position, collapsedByDefault, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponentGroup {\n"); + sb.append(" statusPageId: ").append(toIndentedString(statusPageId)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" collapsedByDefault: ").append(toIndentedString(collapsedByDefault)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("status_page_id"); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("position"); + openapiFields.add("collapsed_by_default"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("status_page_id"); + openapiRequiredFields.add("name"); + openapiRequiredFields.add("position"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponentGroup + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponentGroup.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponentGroup is not found in the empty JSON string", StatusPageComponentGroup.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponentGroup.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponentGroup` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponentGroup.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("status_page_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_id").toString())); + } + if (!jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponentGroup.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponentGroup' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponentGroup.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponentGroup value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponentGroup read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponentGroup given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponentGroup + * @throws IOException if the JSON string is invalid with respect to StatusPageComponentGroup + */ + public static StatusPageComponentGroup fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponentGroup.class); + } + + /** + * Convert an instance of StatusPageComponentGroup to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponentGroupList.java b/src/main/java/com/rootly/client/model/StatusPageComponentGroupList.java new file mode 100644 index 00000000..c1f18aee --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponentGroupList.java @@ -0,0 +1,344 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.StatusPageComponentGroupResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponentGroupList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponentGroupList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nonnull + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nonnull + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public StatusPageComponentGroupList() { + } + + public StatusPageComponentGroupList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public StatusPageComponentGroupList addDataItem(StatusPageComponentGroupResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public StatusPageComponentGroupList links(@jakarta.annotation.Nonnull Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nonnull + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nonnull Links links) { + this.links = links; + } + + + public StatusPageComponentGroupList meta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nonnull + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + } + + + public StatusPageComponentGroupList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageComponentGroupList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponentGroupList statusPageComponentGroupList = (StatusPageComponentGroupList) o; + return Objects.equals(this.data, statusPageComponentGroupList.data) && + Objects.equals(this.links, statusPageComponentGroupList.links) && + Objects.equals(this.meta, statusPageComponentGroupList.meta) && + Objects.equals(this.included, statusPageComponentGroupList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponentGroupList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + openapiRequiredFields.add("links"); + openapiRequiredFields.add("meta"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponentGroupList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponentGroupList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponentGroupList is not found in the empty JSON string", StatusPageComponentGroupList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponentGroupList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponentGroupList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponentGroupList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + StatusPageComponentGroupResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the required field `links` + Links.validateJsonElement(jsonObj.get("links")); + // validate the required field `meta` + Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponentGroupList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponentGroupList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponentGroupList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponentGroupList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponentGroupList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponentGroupList given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponentGroupList + * @throws IOException if the JSON string is invalid with respect to StatusPageComponentGroupList + */ + public static StatusPageComponentGroupList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponentGroupList.class); + } + + /** + * Convert an instance of StatusPageComponentGroupList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponentGroupResponse.java b/src/main/java/com/rootly/client/model/StatusPageComponentGroupResponse.java new file mode 100644 index 00000000..66c25315 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponentGroupResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.StatusPageComponentGroupResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponentGroupResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponentGroupResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private StatusPageComponentGroupResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public StatusPageComponentGroupResponse() { + } + + public StatusPageComponentGroupResponse data(@jakarta.annotation.Nonnull StatusPageComponentGroupResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public StatusPageComponentGroupResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull StatusPageComponentGroupResponseData data) { + this.data = data; + } + + + public StatusPageComponentGroupResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageComponentGroupResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponentGroupResponse statusPageComponentGroupResponse = (StatusPageComponentGroupResponse) o; + return Objects.equals(this.data, statusPageComponentGroupResponse.data) && + Objects.equals(this.included, statusPageComponentGroupResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponentGroupResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponentGroupResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponentGroupResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponentGroupResponse is not found in the empty JSON string", StatusPageComponentGroupResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponentGroupResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponentGroupResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponentGroupResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + StatusPageComponentGroupResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponentGroupResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponentGroupResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponentGroupResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponentGroupResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponentGroupResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponentGroupResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponentGroupResponse + * @throws IOException if the JSON string is invalid with respect to StatusPageComponentGroupResponse + */ + public static StatusPageComponentGroupResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponentGroupResponse.class); + } + + /** + * Convert an instance of StatusPageComponentGroupResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponentGroupResponseData.java b/src/main/java/com/rootly/client/model/StatusPageComponentGroupResponseData.java new file mode 100644 index 00000000..8d72cbb1 --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponentGroupResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StatusPageComponentGroup; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponentGroupResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponentGroupResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_COMPONENT_GROUPS("status_page_component_groups"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private StatusPageComponentGroup attributes; + + public StatusPageComponentGroupResponseData() { + } + + public StatusPageComponentGroupResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the status page component group + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public StatusPageComponentGroupResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public StatusPageComponentGroupResponseData attributes(@jakarta.annotation.Nonnull StatusPageComponentGroup attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public StatusPageComponentGroup getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull StatusPageComponentGroup attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponentGroupResponseData statusPageComponentGroupResponseData = (StatusPageComponentGroupResponseData) o; + return Objects.equals(this.id, statusPageComponentGroupResponseData.id) && + Objects.equals(this.type, statusPageComponentGroupResponseData.type) && + Objects.equals(this.attributes, statusPageComponentGroupResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponentGroupResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponentGroupResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponentGroupResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponentGroupResponseData is not found in the empty JSON string", StatusPageComponentGroupResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponentGroupResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponentGroupResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponentGroupResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + StatusPageComponentGroup.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponentGroupResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponentGroupResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponentGroupResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponentGroupResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponentGroupResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponentGroupResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponentGroupResponseData + * @throws IOException if the JSON string is invalid with respect to StatusPageComponentGroupResponseData + */ + public static StatusPageComponentGroupResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponentGroupResponseData.class); + } + + /** + * Convert an instance of StatusPageComponentGroupResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponentList.java b/src/main/java/com/rootly/client/model/StatusPageComponentList.java new file mode 100644 index 00000000..4ebe104d --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponentList.java @@ -0,0 +1,344 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.StatusPageComponentResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponentList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponentList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nonnull + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nonnull + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public StatusPageComponentList() { + } + + public StatusPageComponentList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public StatusPageComponentList addDataItem(StatusPageComponentResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public StatusPageComponentList links(@jakarta.annotation.Nonnull Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nonnull + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nonnull Links links) { + this.links = links; + } + + + public StatusPageComponentList meta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nonnull + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + } + + + public StatusPageComponentList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageComponentList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponentList statusPageComponentList = (StatusPageComponentList) o; + return Objects.equals(this.data, statusPageComponentList.data) && + Objects.equals(this.links, statusPageComponentList.links) && + Objects.equals(this.meta, statusPageComponentList.meta) && + Objects.equals(this.included, statusPageComponentList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponentList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + openapiRequiredFields.add("links"); + openapiRequiredFields.add("meta"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponentList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponentList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponentList is not found in the empty JSON string", StatusPageComponentList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponentList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponentList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponentList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + StatusPageComponentResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the required field `links` + Links.validateJsonElement(jsonObj.get("links")); + // validate the required field `meta` + Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponentList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponentList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponentList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponentList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponentList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponentList given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponentList + * @throws IOException if the JSON string is invalid with respect to StatusPageComponentList + */ + public static StatusPageComponentList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponentList.class); + } + + /** + * Convert an instance of StatusPageComponentList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponentResponse.java b/src/main/java/com/rootly/client/model/StatusPageComponentResponse.java new file mode 100644 index 00000000..5110566b --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponentResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.StatusPageComponentResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponentResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponentResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private StatusPageComponentResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public StatusPageComponentResponse() { + } + + public StatusPageComponentResponse data(@jakarta.annotation.Nonnull StatusPageComponentResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public StatusPageComponentResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull StatusPageComponentResponseData data) { + this.data = data; + } + + + public StatusPageComponentResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageComponentResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponentResponse statusPageComponentResponse = (StatusPageComponentResponse) o; + return Objects.equals(this.data, statusPageComponentResponse.data) && + Objects.equals(this.included, statusPageComponentResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponentResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponentResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponentResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponentResponse is not found in the empty JSON string", StatusPageComponentResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponentResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponentResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponentResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + StatusPageComponentResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponentResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponentResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponentResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponentResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponentResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponentResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponentResponse + * @throws IOException if the JSON string is invalid with respect to StatusPageComponentResponse + */ + public static StatusPageComponentResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponentResponse.class); + } + + /** + * Convert an instance of StatusPageComponentResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageComponentResponseData.java b/src/main/java/com/rootly/client/model/StatusPageComponentResponseData.java new file mode 100644 index 00000000..c1a4b65b --- /dev/null +++ b/src/main/java/com/rootly/client/model/StatusPageComponentResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StatusPageComponent; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * StatusPageComponentResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class StatusPageComponentResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_COMPONENTS("status_page_components"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private StatusPageComponent attributes; + + public StatusPageComponentResponseData() { + } + + public StatusPageComponentResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the status page component + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public StatusPageComponentResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public StatusPageComponentResponseData attributes(@jakarta.annotation.Nonnull StatusPageComponent attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public StatusPageComponent getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull StatusPageComponent attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusPageComponentResponseData statusPageComponentResponseData = (StatusPageComponentResponseData) o; + return Objects.equals(this.id, statusPageComponentResponseData.id) && + Objects.equals(this.type, statusPageComponentResponseData.type) && + Objects.equals(this.attributes, statusPageComponentResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusPageComponentResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusPageComponentResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusPageComponentResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in StatusPageComponentResponseData is not found in the empty JSON string", StatusPageComponentResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusPageComponentResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `StatusPageComponentResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusPageComponentResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + StatusPageComponent.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusPageComponentResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusPageComponentResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(StatusPageComponentResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusPageComponentResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusPageComponentResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of StatusPageComponentResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusPageComponentResponseData + * @throws IOException if the JSON string is invalid with respect to StatusPageComponentResponseData + */ + public static StatusPageComponentResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusPageComponentResponseData.class); + } + + /** + * Convert an instance of StatusPageComponentResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/StatusPageList.java b/src/main/java/com/rootly/client/model/StatusPageList.java index 68dd6a4e..7e8d7b81 100644 --- a/src/main/java/com/rootly/client/model/StatusPageList.java +++ b/src/main/java/com/rootly/client/model/StatusPageList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.StatusPageResponseData; @@ -53,7 +54,7 @@ /** * StatusPageList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class StatusPageList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public StatusPageList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public StatusPageList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { StatusPageList statusPageList = (StatusPageList) o; return Objects.equals(this.data, statusPageList.data) && Objects.equals(this.links, statusPageList.links) && - Objects.equals(this.meta, statusPageList.meta); + Objects.equals(this.meta, statusPageList.meta) && + Objects.equals(this.included, statusPageList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/StatusPageResponse.java b/src/main/java/com/rootly/client/model/StatusPageResponse.java index 0c415b3d..979f82fd 100644 --- a/src/main/java/com/rootly/client/model/StatusPageResponse.java +++ b/src/main/java/com/rootly/client/model/StatusPageResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.StatusPageResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * StatusPageResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private StatusPageResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public StatusPageResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull StatusPageResponseData data) { } + public StatusPageResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } StatusPageResponse statusPageResponse = (StatusPageResponse) o; - return Objects.equals(this.data, statusPageResponse.data); + return Objects.equals(this.data, statusPageResponse.data) && + Objects.equals(this.included, statusPageResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class StatusPageResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` StatusPageResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/StatusPageResponseData.java b/src/main/java/com/rootly/client/model/StatusPageResponseData.java index 9a574916..a95fd641 100644 --- a/src/main/java/com/rootly/client/model/StatusPageResponseData.java +++ b/src/main/java/com/rootly/client/model/StatusPageResponseData.java @@ -49,7 +49,7 @@ /** * StatusPageResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/StatusPageTemplate.java b/src/main/java/com/rootly/client/model/StatusPageTemplate.java index a9747e5a..e6a17dc1 100644 --- a/src/main/java/com/rootly/client/model/StatusPageTemplate.java +++ b/src/main/java/com/rootly/client/model/StatusPageTemplate.java @@ -49,7 +49,7 @@ /** * StatusPageTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageTemplate { public static final String SERIALIZED_NAME_STATUS_PAGE_ID = "status_page_id"; @SerializedName(SERIALIZED_NAME_STATUS_PAGE_ID) @@ -61,6 +61,11 @@ public class StatusPageTemplate { @jakarta.annotation.Nonnull private String title; + public static final String SERIALIZED_NAME_UPDATE_TITLE = "update_title"; + @SerializedName(SERIALIZED_NAME_UPDATE_TITLE) + @jakarta.annotation.Nullable + private String updateTitle; + public static final String SERIALIZED_NAME_BODY = "body"; @SerializedName(SERIALIZED_NAME_BODY) @jakarta.annotation.Nonnull @@ -194,6 +199,25 @@ public void setTitle(@jakarta.annotation.Nonnull String title) { } + public StatusPageTemplate updateTitle(@jakarta.annotation.Nullable String updateTitle) { + this.updateTitle = updateTitle; + return this; + } + + /** + * Title that will be used for the status page update + * @return updateTitle + */ + @jakarta.annotation.Nullable + public String getUpdateTitle() { + return updateTitle; + } + + public void setUpdateTitle(@jakarta.annotation.Nullable String updateTitle) { + this.updateTitle = updateTitle; + } + + public StatusPageTemplate body(@jakarta.annotation.Nonnull String body) { this.body = body; return this; @@ -358,6 +382,7 @@ public boolean equals(Object o) { StatusPageTemplate statusPageTemplate = (StatusPageTemplate) o; return Objects.equals(this.statusPageId, statusPageTemplate.statusPageId) && Objects.equals(this.title, statusPageTemplate.title) && + Objects.equals(this.updateTitle, statusPageTemplate.updateTitle) && Objects.equals(this.body, statusPageTemplate.body) && Objects.equals(this.updateStatus, statusPageTemplate.updateStatus) && Objects.equals(this.kind, statusPageTemplate.kind) && @@ -374,7 +399,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(statusPageId, title, body, updateStatus, kind, shouldNotifySubscribers, enabled, position, createdAt, updatedAt); + return Objects.hash(statusPageId, title, updateTitle, body, updateStatus, kind, shouldNotifySubscribers, enabled, position, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -390,6 +415,7 @@ public String toString() { sb.append("class StatusPageTemplate {\n"); sb.append(" statusPageId: ").append(toIndentedString(statusPageId)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" updateTitle: ").append(toIndentedString(updateTitle)).append("\n"); sb.append(" body: ").append(toIndentedString(body)).append("\n"); sb.append(" updateStatus: ").append(toIndentedString(updateStatus)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); @@ -422,6 +448,7 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("status_page_id"); openapiFields.add("title"); + openapiFields.add("update_title"); openapiFields.add("body"); openapiFields.add("update_status"); openapiFields.add("kind"); @@ -474,6 +501,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } + if ((jsonObj.get("update_title") != null && !jsonObj.get("update_title").isJsonNull()) && !jsonObj.get("update_title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `update_title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("update_title").toString())); + } if (!jsonObj.get("body").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("body").toString())); } diff --git a/src/main/java/com/rootly/client/model/StatusPageTemplateList.java b/src/main/java/com/rootly/client/model/StatusPageTemplateList.java index 658f7558..83ec5c1a 100644 --- a/src/main/java/com/rootly/client/model/StatusPageTemplateList.java +++ b/src/main/java/com/rootly/client/model/StatusPageTemplateList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.StatusPageTemplateListDataInner; @@ -53,7 +54,7 @@ /** * StatusPageTemplateList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageTemplateList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class StatusPageTemplateList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public StatusPageTemplateList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public StatusPageTemplateList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageTemplateList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { StatusPageTemplateList statusPageTemplateList = (StatusPageTemplateList) o; return Objects.equals(this.data, statusPageTemplateList.data) && Objects.equals(this.links, statusPageTemplateList.links) && - Objects.equals(this.meta, statusPageTemplateList.meta); + Objects.equals(this.meta, statusPageTemplateList.meta) && + Objects.equals(this.included, statusPageTemplateList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/StatusPageTemplateListDataInner.java b/src/main/java/com/rootly/client/model/StatusPageTemplateListDataInner.java index 70d0d95f..7e4e4ac9 100644 --- a/src/main/java/com/rootly/client/model/StatusPageTemplateListDataInner.java +++ b/src/main/java/com/rootly/client/model/StatusPageTemplateListDataInner.java @@ -49,7 +49,7 @@ /** * StatusPageTemplateListDataInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageTemplateListDataInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/StatusPageTemplateResponse.java b/src/main/java/com/rootly/client/model/StatusPageTemplateResponse.java index b183cc89..e6c79613 100644 --- a/src/main/java/com/rootly/client/model/StatusPageTemplateResponse.java +++ b/src/main/java/com/rootly/client/model/StatusPageTemplateResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.StatusPageTemplateResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * StatusPageTemplateResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageTemplateResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private StatusPageTemplateResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public StatusPageTemplateResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull StatusPageTemplateResponseData d } + public StatusPageTemplateResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusPageTemplateResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } StatusPageTemplateResponse statusPageTemplateResponse = (StatusPageTemplateResponse) o; - return Objects.equals(this.data, statusPageTemplateResponse.data); + return Objects.equals(this.data, statusPageTemplateResponse.data) && + Objects.equals(this.included, statusPageTemplateResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class StatusPageTemplateResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` StatusPageTemplateResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/StatusPageTemplateResponseData.java b/src/main/java/com/rootly/client/model/StatusPageTemplateResponseData.java index 9c776905..bd77b074 100644 --- a/src/main/java/com/rootly/client/model/StatusPageTemplateResponseData.java +++ b/src/main/java/com/rootly/client/model/StatusPageTemplateResponseData.java @@ -49,7 +49,7 @@ /** * StatusPageTemplateResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusPageTemplateResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/StatusResponse.java b/src/main/java/com/rootly/client/model/StatusResponse.java index 4098b7a6..ef9a9880 100644 --- a/src/main/java/com/rootly/client/model/StatusResponse.java +++ b/src/main/java/com/rootly/client/model/StatusResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.StatusResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * StatusResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private StatusResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public StatusResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull StatusResponseData data) { } + public StatusResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public StatusResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } StatusResponse statusResponse = (StatusResponse) o; - return Objects.equals(this.data, statusResponse.data); + return Objects.equals(this.data, statusResponse.data) && + Objects.equals(this.included, statusResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class StatusResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` StatusResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/StatusResponseData.java b/src/main/java/com/rootly/client/model/StatusResponseData.java index 917e14c7..170c93a2 100644 --- a/src/main/java/com/rootly/client/model/StatusResponseData.java +++ b/src/main/java/com/rootly/client/model/StatusResponseData.java @@ -49,7 +49,7 @@ /** * StatusResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class StatusResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/SubStatus.java b/src/main/java/com/rootly/client/model/SubStatus.java index 1cb2d2e6..7d2c69e0 100644 --- a/src/main/java/com/rootly/client/model/SubStatus.java +++ b/src/main/java/com/rootly/client/model/SubStatus.java @@ -49,7 +49,7 @@ /** * SubStatus */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SubStatus { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -157,6 +157,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public SubStatus() { } + public SubStatus( + String slug + ) { + this(); + this.slug = slug; + } + public SubStatus name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -176,11 +183,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public SubStatus slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * Get slug * @return slug @@ -190,9 +192,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public SubStatus description(@jakarta.annotation.Nullable String description) { diff --git a/src/main/java/com/rootly/client/model/SubStatusList.java b/src/main/java/com/rootly/client/model/SubStatusList.java index 0c53ab60..8d3e8b0f 100644 --- a/src/main/java/com/rootly/client/model/SubStatusList.java +++ b/src/main/java/com/rootly/client/model/SubStatusList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.SubStatusResponseData; @@ -53,7 +54,7 @@ /** * SubStatusList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SubStatusList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class SubStatusList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public SubStatusList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public SubStatusList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public SubStatusList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { SubStatusList subStatusList = (SubStatusList) o; return Objects.equals(this.data, subStatusList.data) && Objects.equals(this.links, subStatusList.links) && - Objects.equals(this.meta, subStatusList.meta); + Objects.equals(this.meta, subStatusList.meta) && + Objects.equals(this.included, subStatusList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SubStatusResponse.java b/src/main/java/com/rootly/client/model/SubStatusResponse.java index 506e7901..95f348b7 100644 --- a/src/main/java/com/rootly/client/model/SubStatusResponse.java +++ b/src/main/java/com/rootly/client/model/SubStatusResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.SubStatusResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * SubStatusResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SubStatusResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private SubStatusResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public SubStatusResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull SubStatusResponseData data) { } + public SubStatusResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public SubStatusResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } SubStatusResponse subStatusResponse = (SubStatusResponse) o; - return Objects.equals(this.data, subStatusResponse.data); + return Objects.equals(this.data, subStatusResponse.data) && + Objects.equals(this.included, subStatusResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SubStatusResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` SubStatusResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/SubStatusResponseData.java b/src/main/java/com/rootly/client/model/SubStatusResponseData.java index 315a5a26..5c70f41a 100644 --- a/src/main/java/com/rootly/client/model/SubStatusResponseData.java +++ b/src/main/java/com/rootly/client/model/SubStatusResponseData.java @@ -49,7 +49,7 @@ /** * SubStatusResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class SubStatusResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Team.java b/src/main/java/com/rootly/client/model/Team.java index 708b54e4..97ed9d20 100644 --- a/src/main/java/com/rootly/client/model/Team.java +++ b/src/main/java/com/rootly/client/model/Team.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.ServiceAlertBroadcastChannel; @@ -55,7 +56,7 @@ /** * Team */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Team { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -67,11 +68,83 @@ public class Team { @jakarta.annotation.Nullable private String slug; + /** + * How this team is managed (provenance): web, api, terraform, etc. Read-only. + */ + @JsonAdapter(ManagedByEnum.Adapter.class) + public enum ManagedByEnum { + WEB("web"), + + ADMIN_WEB("admin_web"), + + API("api"), + + TERRAFORM("terraform"), + + PULUMI("pulumi"), + + BACKSTAGE("backstage"), + + CATALOG_SYNC("catalog_sync"); + + private String value; + + ManagedByEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ManagedByEnum fromValue(String value) { + for (ManagedByEnum b : ManagedByEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ManagedByEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ManagedByEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ManagedByEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ManagedByEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MANAGED_BY = "managed_by"; + @SerializedName(SERIALIZED_NAME_MANAGED_BY) + @jakarta.annotation.Nullable + private ManagedByEnum managedBy; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) @jakarta.annotation.Nullable @@ -192,6 +265,72 @@ public class Team { @jakarta.annotation.Nullable private Boolean autoAddMembersWhenAttached; + /** + * Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. + */ + @JsonAdapter(AutoAddMembersScopeEnum.Adapter.class) + public enum AutoAddMembersScopeEnum { + OFF("off"), + + PUBLIC_ONLY("public_only"), + + PUBLIC_AND_TEST("public_and_test"), + + ALL("all"); + + private String value; + + AutoAddMembersScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AutoAddMembersScopeEnum fromValue(String value) { + for (AutoAddMembersScopeEnum b : AutoAddMembersScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AutoAddMembersScopeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AutoAddMembersScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AutoAddMembersScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AutoAddMembersScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_AUTO_ADD_MEMBERS_SCOPE = "auto_add_members_scope"; + @SerializedName(SERIALIZED_NAME_AUTO_ADD_MEMBERS_SCOPE) + @jakarta.annotation.Nullable + private AutoAddMembersScopeEnum autoAddMembersScope; + + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -205,6 +344,13 @@ public class Team { public Team() { } + public Team( + String slug + ) { + this(); + this.slug = slug; + } + public Team name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -224,11 +370,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Team slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * Get slug * @return slug @@ -238,8 +379,24 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + + + public Team managedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; + return this; + } + + /** + * How this team is managed (provenance): web, api, terraform, etc. Read-only. + * @return managedBy + */ + @jakarta.annotation.Nullable + public ManagedByEnum getManagedBy() { + return managedBy; + } + + public void setManagedBy(@jakarta.annotation.Nullable ManagedByEnum managedBy) { + this.managedBy = managedBy; } @@ -262,6 +419,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public Team publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the team + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public Team notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { this.notifyEmails = notifyEmails; return this; @@ -758,6 +934,52 @@ public void setAutoAddMembersWhenAttached(@jakarta.annotation.Nullable Boolean a } + public Team autoAddMembersScope(@jakarta.annotation.Nullable AutoAddMembersScopeEnum autoAddMembersScope) { + this.autoAddMembersScope = autoAddMembersScope; + return this; + } + + /** + * Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. + * @return autoAddMembersScope + */ + @jakarta.annotation.Nullable + public AutoAddMembersScopeEnum getAutoAddMembersScope() { + return autoAddMembersScope; + } + + public void setAutoAddMembersScope(@jakarta.annotation.Nullable AutoAddMembersScopeEnum autoAddMembersScope) { + this.autoAddMembersScope = autoAddMembersScope; + } + + + public Team properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public Team addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this team. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + public Team createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -808,7 +1030,9 @@ public boolean equals(Object o) { Team team = (Team) o; return Objects.equals(this.name, team.name) && Objects.equals(this.slug, team.slug) && + Objects.equals(this.managedBy, team.managedBy) && Objects.equals(this.description, team.description) && + Objects.equals(this.publicDescription, team.publicDescription) && Objects.equals(this.notifyEmails, team.notifyEmails) && Objects.equals(this.color, team.color) && Objects.equals(this.position, team.position) && @@ -833,6 +1057,8 @@ public boolean equals(Object o) { Objects.equals(this.incidentBroadcastEnabled, team.incidentBroadcastEnabled) && Objects.equals(this.incidentBroadcastChannel, team.incidentBroadcastChannel) && Objects.equals(this.autoAddMembersWhenAttached, team.autoAddMembersWhenAttached) && + Objects.equals(this.autoAddMembersScope, team.autoAddMembersScope) && + Objects.equals(this.properties, team.properties) && Objects.equals(this.createdAt, team.createdAt) && Objects.equals(this.updatedAt, team.updatedAt); } @@ -843,7 +1069,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, notifyEmails, color, position, backstageId, externalId, pagerdutyId, pagerdutyServiceId, opsgenieId, victorOpsId, pagertreeId, cortexId, serviceNowCiSysId, userIds, adminIds, alertsEmailEnabled, alertsEmailAddress, alertUrgencyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, autoAddMembersWhenAttached, createdAt, updatedAt); + return Objects.hash(name, slug, managedBy, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, pagerdutyServiceId, opsgenieId, victorOpsId, pagertreeId, cortexId, serviceNowCiSysId, userIds, adminIds, alertsEmailEnabled, alertsEmailAddress, alertUrgencyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, autoAddMembersWhenAttached, autoAddMembersScope, properties, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -859,7 +1085,9 @@ public String toString() { sb.append("class Team {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" managedBy: ").append(toIndentedString(managedBy)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -884,6 +1112,8 @@ public String toString() { sb.append(" incidentBroadcastEnabled: ").append(toIndentedString(incidentBroadcastEnabled)).append("\n"); sb.append(" incidentBroadcastChannel: ").append(toIndentedString(incidentBroadcastChannel)).append("\n"); sb.append(" autoAddMembersWhenAttached: ").append(toIndentedString(autoAddMembersWhenAttached)).append("\n"); + sb.append(" autoAddMembersScope: ").append(toIndentedString(autoAddMembersScope)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -910,7 +1140,9 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("managed_by"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("notify_emails"); openapiFields.add("color"); openapiFields.add("position"); @@ -935,6 +1167,8 @@ private String toIndentedString(Object o) { openapiFields.add("incident_broadcast_enabled"); openapiFields.add("incident_broadcast_channel"); openapiFields.add("auto_add_members_when_attached"); + openapiFields.add("auto_add_members_scope"); + openapiFields.add("properties"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -979,9 +1213,19 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) && !jsonObj.get("managed_by").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `managed_by` to be a primitive type in the JSON string but got `%s`", jsonObj.get("managed_by").toString())); + } + // validate the optional field `managed_by` + if (jsonObj.get("managed_by") != null && !jsonObj.get("managed_by").isJsonNull()) { + ManagedByEnum.validateJsonElement(jsonObj.get("managed_by")); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); @@ -1066,6 +1310,27 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_broadcast_channel") != null && !jsonObj.get("incident_broadcast_channel").isJsonNull()) { ServiceIncidentBroadcastChannel.validateJsonElement(jsonObj.get("incident_broadcast_channel")); } + if ((jsonObj.get("auto_add_members_scope") != null && !jsonObj.get("auto_add_members_scope").isJsonNull()) && !jsonObj.get("auto_add_members_scope").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `auto_add_members_scope` to be a primitive type in the JSON string but got `%s`", jsonObj.get("auto_add_members_scope").toString())); + } + // validate the optional field `auto_add_members_scope` + if (jsonObj.get("auto_add_members_scope") != null && !jsonObj.get("auto_add_members_scope").isJsonNull()) { + AutoAddMembersScopeEnum.validateJsonElement(jsonObj.get("auto_add_members_scope")); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/TeamList.java b/src/main/java/com/rootly/client/model/TeamList.java index 22f1492e..74c21bd3 100644 --- a/src/main/java/com/rootly/client/model/TeamList.java +++ b/src/main/java/com/rootly/client/model/TeamList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.TeamResponseData; @@ -53,7 +54,7 @@ /** * TeamList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TeamList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class TeamList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public TeamList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public TeamList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public TeamList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { TeamList teamList = (TeamList) o; return Objects.equals(this.data, teamList.data) && Objects.equals(this.links, teamList.links) && - Objects.equals(this.meta, teamList.meta); + Objects.equals(this.meta, teamList.meta) && + Objects.equals(this.included, teamList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/TeamResponse.java b/src/main/java/com/rootly/client/model/TeamResponse.java index a3f1ce49..301c5407 100644 --- a/src/main/java/com/rootly/client/model/TeamResponse.java +++ b/src/main/java/com/rootly/client/model/TeamResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.TeamResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * TeamResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TeamResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private TeamResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public TeamResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull TeamResponseData data) { } + public TeamResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public TeamResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } TeamResponse teamResponse = (TeamResponse) o; - return Objects.equals(this.data, teamResponse.data); + return Objects.equals(this.data, teamResponse.data) && + Objects.equals(this.included, teamResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class TeamResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` TeamResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/TeamResponseData.java b/src/main/java/com/rootly/client/model/TeamResponseData.java index 0c1697c8..5299ed2a 100644 --- a/src/main/java/com/rootly/client/model/TeamResponseData.java +++ b/src/main/java/com/rootly/client/model/TeamResponseData.java @@ -49,7 +49,7 @@ /** * TeamResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TeamResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/TiptapBlockSchema.java b/src/main/java/com/rootly/client/model/TiptapBlockSchema.java index a0d3de98..0bbe864b 100644 --- a/src/main/java/com/rootly/client/model/TiptapBlockSchema.java +++ b/src/main/java/com/rootly/client/model/TiptapBlockSchema.java @@ -50,7 +50,7 @@ /** * TipTap block component schema for post mortem templates */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TiptapBlockSchema { public static final String SERIALIZED_NAME_FOLLOWUP_COMPONENT = "followup_component"; @SerializedName(SERIALIZED_NAME_FOLLOWUP_COMPONENT) diff --git a/src/main/java/com/rootly/client/model/TiptapBlockSchemaFollowupComponent.java b/src/main/java/com/rootly/client/model/TiptapBlockSchemaFollowupComponent.java index ba2012e8..ded3373c 100644 --- a/src/main/java/com/rootly/client/model/TiptapBlockSchemaFollowupComponent.java +++ b/src/main/java/com/rootly/client/model/TiptapBlockSchemaFollowupComponent.java @@ -48,7 +48,7 @@ /** * Followup component block */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TiptapBlockSchemaFollowupComponent { public static final String SERIALIZED_NAME_HTML = "html"; @SerializedName(SERIALIZED_NAME_HTML) diff --git a/src/main/java/com/rootly/client/model/TiptapBlockSchemaTimelineComponent.java b/src/main/java/com/rootly/client/model/TiptapBlockSchemaTimelineComponent.java index 96b1ee34..cf37bb74 100644 --- a/src/main/java/com/rootly/client/model/TiptapBlockSchemaTimelineComponent.java +++ b/src/main/java/com/rootly/client/model/TiptapBlockSchemaTimelineComponent.java @@ -48,7 +48,7 @@ /** * Timeline component block */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TiptapBlockSchemaTimelineComponent { public static final String SERIALIZED_NAME_HTML = "html"; @SerializedName(SERIALIZED_NAME_HTML) diff --git a/src/main/java/com/rootly/client/model/TriggerWorkflowTaskParams.java b/src/main/java/com/rootly/client/model/TriggerWorkflowTaskParams.java index 75e6b7fc..6056be47 100644 --- a/src/main/java/com/rootly/client/model/TriggerWorkflowTaskParams.java +++ b/src/main/java/com/rootly/client/model/TriggerWorkflowTaskParams.java @@ -49,7 +49,7 @@ /** * TriggerWorkflowTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TriggerWorkflowTaskParams { /** * Gets or Sets taskType @@ -113,10 +113,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public enum KindEnum { INCIDENT("incident"), - POST_MORTEM("post_mortem"), - ACTION_ITEM("action_item"), + POST_MORTEM("post_mortem"), + PULSE("pulse"), ALERT("alert"); @@ -170,7 +170,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti private KindEnum kind = KindEnum.INCIDENT; /** - * [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] + * [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] */ @JsonAdapter(AttributeToQueryByEnum.Adapter.class) public enum AttributeToQueryByEnum { @@ -322,7 +322,7 @@ public TriggerWorkflowTaskParams attributeToQueryBy(@jakarta.annotation.Nonnull } /** - * [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] + * [\"(incident) kind can only match [:id, :slug, :sequential_id, :pagerduty_incident_id, :opsgenie_incident_id, :victor_ops_incident_id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(action_item) kind can only match [:id, :jira_issue_id, :asana_task_id, :shortcut_task_id, :linear_issue_id, :zendesk_ticket_id, :motion_task_id, :trello_card_id, :airtable_record_id, :shortcut_story_id, :github_issue_id, :freshservice_ticket_id, :freshservice_task_id, :clickup_task_id]\", \"(post_mortem) kind can only match [:id]\", \"(pulse) kind can only match [:id]\", \"(alert) kind can only match [:id]\"] * @return attributeToQueryBy */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/TweetTwitterMessageTaskParams.java b/src/main/java/com/rootly/client/model/TweetTwitterMessageTaskParams.java index d4447846..7aa703a1 100644 --- a/src/main/java/com/rootly/client/model/TweetTwitterMessageTaskParams.java +++ b/src/main/java/com/rootly/client/model/TweetTwitterMessageTaskParams.java @@ -48,7 +48,7 @@ /** * TweetTwitterMessageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class TweetTwitterMessageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UnassignRoleFromUser.java b/src/main/java/com/rootly/client/model/UnassignRoleFromUser.java index 2f6e577f..4ddcd940 100644 --- a/src/main/java/com/rootly/client/model/UnassignRoleFromUser.java +++ b/src/main/java/com/rootly/client/model/UnassignRoleFromUser.java @@ -49,7 +49,7 @@ /** * UnassignRoleFromUser */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UnassignRoleFromUser { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UnassignRoleFromUserData.java b/src/main/java/com/rootly/client/model/UnassignRoleFromUserData.java index fd69f873..e744eddc 100644 --- a/src/main/java/com/rootly/client/model/UnassignRoleFromUserData.java +++ b/src/main/java/com/rootly/client/model/UnassignRoleFromUserData.java @@ -49,7 +49,7 @@ /** * UnassignRoleFromUserData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UnassignRoleFromUserData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UnassignRoleFromUserDataAttributes.java b/src/main/java/com/rootly/client/model/UnassignRoleFromUserDataAttributes.java index ca522f54..b08523b6 100644 --- a/src/main/java/com/rootly/client/model/UnassignRoleFromUserDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UnassignRoleFromUserDataAttributes.java @@ -48,7 +48,7 @@ /** * UnassignRoleFromUserDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UnassignRoleFromUserDataAttributes { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateActionItemTaskParams.java b/src/main/java/com/rootly/client/model/UpdateActionItemTaskParams.java index d992118f..321b5fce 100644 --- a/src/main/java/com/rootly/client/model/UpdateActionItemTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateActionItemTaskParams.java @@ -52,7 +52,7 @@ /** * UpdateActionItemTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateActionItemTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateAirtableTableRecordTaskParams.java b/src/main/java/com/rootly/client/model/UpdateAirtableTableRecordTaskParams.java index 04323162..a8b11241 100644 --- a/src/main/java/com/rootly/client/model/UpdateAirtableTableRecordTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateAirtableTableRecordTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateAirtableTableRecordTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAirtableTableRecordTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateAlert.java b/src/main/java/com/rootly/client/model/UpdateAlert.java index 429b618b..025d22b9 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlert.java +++ b/src/main/java/com/rootly/client/model/UpdateAlert.java @@ -49,7 +49,7 @@ /** * UpdateAlert */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlert { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertData.java b/src/main/java/com/rootly/client/model/UpdateAlertData.java index cc38e522..2602dd37 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertData.java @@ -49,7 +49,7 @@ /** * UpdateAlertData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertData { /** * Gets or Sets type @@ -103,7 +103,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @@ -114,7 +114,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdateAlertData() { } - public UpdateAlertData type(@jakarta.annotation.Nullable TypeEnum type) { + public UpdateAlertData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,12 +123,12 @@ public UpdateAlertData type(@jakarta.annotation.Nullable TypeEnum type) { * Get type * @return type */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@jakarta.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } @@ -204,6 +204,7 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); openapiRequiredFields.add("attributes"); } @@ -235,13 +236,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + if (!jsonObj.get("type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); } - // validate the optional field `type` - if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { - TypeEnum.validateJsonElement(jsonObj.get("type")); - } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); // validate the required field `attributes` UpdateAlertDataAttributes.validateJsonElement(jsonObj.get("attributes")); } diff --git a/src/main/java/com/rootly/client/model/UpdateAlertDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertDataAttributes.java index d181ef81..77ec843f 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertDataAttributes.java @@ -54,7 +54,7 @@ /** * UpdateAlertDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertDataAttributes { /** * Whether the alert is marked as noise @@ -113,144 +113,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private NoiseEnum noise; - /** - * The source of the alert - */ - @JsonAdapter(SourceEnum.Adapter.class) - public enum SourceEnum { - ROOTLY("rootly"), - - MANUAL("manual"), - - API("api"), - - HEARTBEAT("heartbeat"), - - WEB("web"), - - SLACK("slack"), - - EMAIL("email"), - - WORKFLOW("workflow"), - - LIVE_CALL_ROUTING("live_call_routing"), - - MOBILE("mobile"), - - PAGERDUTY("pagerduty"), - - OPSGENIE("opsgenie"), - - VICTOROPS("victorops"), - - PAGERTREE("pagertree"), - - DATADOG("datadog"), - - NOBL9("nobl9"), - - ZENDESK("zendesk"), - - ASANA("asana"), - - CLICKUP("clickup"), - - SENTRY("sentry"), - - ROLLBAR("rollbar"), - - JIRA("jira"), - - HONEYCOMB("honeycomb"), - - SERVICE_NOW("service_now"), - - LINEAR("linear"), - - GRAFANA("grafana"), - - ALERTMANAGER("alertmanager"), - - GOOGLE_CLOUD("google_cloud"), - - GENERIC_WEBHOOK("generic_webhook"), - - CLOUD_WATCH("cloud_watch"), - - AZURE("azure"), - - SPLUNK("splunk"), - - CHRONOSPHERE("chronosphere"), - - APP_OPTICS("app_optics"), - - BUG_SNAG("bug_snag"), - - MONTE_CARLO("monte_carlo"), - - NAGIOS("nagios"), - - PRTG("prtg"), - - CATCHPOINT("catchpoint"), - - APP_DYNAMICS("app_dynamics"), - - CHECKLY("checkly"), - - NEW_RELIC("new_relic"), - - GITLAB("gitlab"); - - private String value; - - SourceEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static SourceEnum fromValue(String value) { - for (SourceEnum b : SourceEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final SourceEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public SourceEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return SourceEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - SourceEnum.fromValue(value); - } - } - public static final String SERIALIZED_NAME_SOURCE = "source"; + @Deprecated @SerializedName(SERIALIZED_NAME_SOURCE) @jakarta.annotation.Nullable - private SourceEnum source; + private String source; public static final String SERIALIZED_NAME_SUMMARY = "summary"; @SerializedName(SERIALIZED_NAME_SUMMARY) @@ -272,6 +139,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List groupIds; + public static final String SERIALIZED_NAME_FUNCTIONALITY_IDS = "functionality_ids"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List functionalityIds; + public static final String SERIALIZED_NAME_ENVIRONMENT_IDS = "environment_ids"; @SerializedName(SERIALIZED_NAME_ENVIRONMENT_IDS) @jakarta.annotation.Nullable @@ -344,21 +216,25 @@ public void setNoise(@jakarta.annotation.Nullable NoiseEnum noise) { } - public UpdateAlertDataAttributes source(@jakarta.annotation.Nullable SourceEnum source) { + @Deprecated + public UpdateAlertDataAttributes source(@jakarta.annotation.Nullable String source) { this.source = source; return this; } /** - * The source of the alert + * Deprecated. Accepted for backwards compatibility; new clients should omit. Defaults to `api`. * @return source + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable - public SourceEnum getSource() { + public String getSource() { return source; } - public void setSource(@jakarta.annotation.Nullable SourceEnum source) { + @Deprecated + public void setSource(@jakarta.annotation.Nullable String source) { this.source = source; } @@ -455,6 +331,33 @@ public void setGroupIds(@jakarta.annotation.Nullable List groupIds) { } + public UpdateAlertDataAttributes functionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + return this; + } + + public UpdateAlertDataAttributes addFunctionalityIdsItem(String functionalityIdsItem) { + if (this.functionalityIds == null) { + this.functionalityIds = new ArrayList<>(); + } + this.functionalityIds.add(functionalityIdsItem); + return this; + } + + /** + * The Functionality IDs to attach to the alert + * @return functionalityIds + */ + @jakarta.annotation.Nullable + public List getFunctionalityIds() { + return functionalityIds; + } + + public void setFunctionalityIds(@jakarta.annotation.Nullable List functionalityIds) { + this.functionalityIds = functionalityIds; + } + + public UpdateAlertDataAttributes environmentIds(@jakarta.annotation.Nullable List environmentIds) { this.environmentIds = environmentIds; return this; @@ -685,6 +588,7 @@ public boolean equals(Object o) { Objects.equals(this.description, updateAlertDataAttributes.description) && Objects.equals(this.serviceIds, updateAlertDataAttributes.serviceIds) && Objects.equals(this.groupIds, updateAlertDataAttributes.groupIds) && + Objects.equals(this.functionalityIds, updateAlertDataAttributes.functionalityIds) && Objects.equals(this.environmentIds, updateAlertDataAttributes.environmentIds) && Objects.equals(this.startedAt, updateAlertDataAttributes.startedAt) && Objects.equals(this.endedAt, updateAlertDataAttributes.endedAt) && @@ -703,7 +607,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(noise, source, summary, description, serviceIds, groupIds, environmentIds, startedAt, endedAt, externalId, externalUrl, alertUrgencyId, labels, data, deduplicationKey, alertFieldValuesAttributes); + return Objects.hash(noise, source, summary, description, serviceIds, groupIds, functionalityIds, environmentIds, startedAt, endedAt, externalId, externalUrl, alertUrgencyId, labels, data, deduplicationKey, alertFieldValuesAttributes); } private static int hashCodeNullable(JsonNullable a) { @@ -723,6 +627,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); sb.append(" groupIds: ").append(toIndentedString(groupIds)).append("\n"); + sb.append(" functionalityIds: ").append(toIndentedString(functionalityIds)).append("\n"); sb.append(" environmentIds: ").append(toIndentedString(environmentIds)).append("\n"); sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); sb.append(" endedAt: ").append(toIndentedString(endedAt)).append("\n"); @@ -761,6 +666,7 @@ private String toIndentedString(Object o) { openapiFields.add("description"); openapiFields.add("service_ids"); openapiFields.add("group_ids"); + openapiFields.add("functionality_ids"); openapiFields.add("environment_ids"); openapiFields.add("started_at"); openapiFields.add("ended_at"); @@ -807,10 +713,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("source") != null && !jsonObj.get("source").isJsonNull()) && !jsonObj.get("source").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source").toString())); } - // validate the optional field `source` - if (jsonObj.get("source") != null && !jsonObj.get("source").isJsonNull()) { - SourceEnum.validateJsonElement(jsonObj.get("source")); - } if ((jsonObj.get("summary") != null && !jsonObj.get("summary").isJsonNull()) && !jsonObj.get("summary").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `summary` to be a primitive type in the JSON string but got `%s`", jsonObj.get("summary").toString())); } @@ -826,6 +728,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti throw new IllegalArgumentException(String.format("Expected the field `group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("group_ids").toString())); } // ensure the optional json data is an array if present + if (jsonObj.get("functionality_ids") != null && !jsonObj.get("functionality_ids").isJsonNull() && !jsonObj.get("functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("functionality_ids").toString())); + } + // ensure the optional json data is an array if present if (jsonObj.get("environment_ids") != null && !jsonObj.get("environment_ids").isJsonNull() && !jsonObj.get("environment_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("environment_ids").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateAlertEvent.java b/src/main/java/com/rootly/client/model/UpdateAlertEvent.java index 41f78fd2..0b34a621 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertEvent.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertEvent.java @@ -49,7 +49,7 @@ /** * Update an alert event. Note: Only alert events with kind='note' can be updated. You cannot change the kind field. */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertEvent { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertEventData.java b/src/main/java/com/rootly/client/model/UpdateAlertEventData.java index af758b3a..625ae7ce 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertEventData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertEventData.java @@ -49,7 +49,7 @@ /** * UpdateAlertEventData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertEventData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAlertEventDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertEventDataAttributes.java index 7dcc077d..7832bda1 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertEventDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertEventDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateAlertEventDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertEventDataAttributes { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertField.java b/src/main/java/com/rootly/client/model/UpdateAlertField.java index dbf48e45..8c04ad86 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertField.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertField.java @@ -49,7 +49,7 @@ /** * UpdateAlertField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertFieldData.java b/src/main/java/com/rootly/client/model/UpdateAlertFieldData.java index d807756e..bb08a9f8 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertFieldData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertFieldData.java @@ -49,7 +49,7 @@ /** * UpdateAlertFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertFieldData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAlertFieldDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertFieldDataAttributes.java index 3c3a19e2..de35c247 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertFieldDataAttributes.java @@ -21,6 +21,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -48,8 +49,14 @@ /** * UpdateAlertFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertFieldDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -58,6 +65,29 @@ public class UpdateAlertFieldDataAttributes { public UpdateAlertFieldDataAttributes() { } + @Deprecated + public UpdateAlertFieldDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateAlertFieldDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -87,18 +117,31 @@ public boolean equals(Object o) { return false; } UpdateAlertFieldDataAttributes updateAlertFieldDataAttributes = (UpdateAlertFieldDataAttributes) o; - return Objects.equals(this.name, updateAlertFieldDataAttributes.name); + return Objects.equals(this.slug, updateAlertFieldDataAttributes.slug) && + Objects.equals(this.name, updateAlertFieldDataAttributes.name); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(name); + return Objects.hash(slug, name); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateAlertFieldDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append("}"); return sb.toString(); @@ -122,6 +165,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); // a set of required properties/fields (JSON key names) @@ -149,6 +193,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateAlertGroup.java b/src/main/java/com/rootly/client/model/UpdateAlertGroup.java index 3b3f4fe0..9886cc7a 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertGroup.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertGroup.java @@ -49,7 +49,7 @@ /** * UpdateAlertGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertGroupData.java b/src/main/java/com/rootly/client/model/UpdateAlertGroupData.java index 87e272d3..9e49c901 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertGroupData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertGroupData.java @@ -49,7 +49,7 @@ /** * UpdateAlertGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAlertGroupDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertGroupDataAttributes.java index 4a467d93..221b4303 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertGroupDataAttributes.java @@ -54,8 +54,14 @@ /** * UpdateAlertGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertGroupDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -263,6 +269,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdateAlertGroupDataAttributes() { } + @Deprecated + public UpdateAlertGroupDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateAlertGroupDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -480,7 +509,8 @@ public boolean equals(Object o) { return false; } UpdateAlertGroupDataAttributes updateAlertGroupDataAttributes = (UpdateAlertGroupDataAttributes) o; - return Objects.equals(this.name, updateAlertGroupDataAttributes.name) && + return Objects.equals(this.slug, updateAlertGroupDataAttributes.slug) && + Objects.equals(this.name, updateAlertGroupDataAttributes.name) && Objects.equals(this.description, updateAlertGroupDataAttributes.description) && Objects.equals(this.timeWindow, updateAlertGroupDataAttributes.timeWindow) && Objects.equals(this.targets, updateAlertGroupDataAttributes.targets) && @@ -497,7 +527,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, timeWindow, targets, attributes, groupByAlertTitle, groupByAlertUrgency, conditionType, conditions); + return Objects.hash(slug, name, description, timeWindow, targets, attributes, groupByAlertTitle, groupByAlertUrgency, conditionType, conditions); } private static int hashCodeNullable(JsonNullable a) { @@ -511,6 +541,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateAlertGroupDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" timeWindow: ").append(toIndentedString(timeWindow)).append("\n"); @@ -542,6 +573,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("time_window"); @@ -577,6 +609,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRule.java b/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRule.java new file mode 100644 index 00000000..20947115 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRule.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateAlertRetriggerRuleData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateAlertRetriggerRule + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateAlertRetriggerRule { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private UpdateAlertRetriggerRuleData data; + + public UpdateAlertRetriggerRule() { + } + + public UpdateAlertRetriggerRule data(@jakarta.annotation.Nonnull UpdateAlertRetriggerRuleData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public UpdateAlertRetriggerRuleData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull UpdateAlertRetriggerRuleData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAlertRetriggerRule updateAlertRetriggerRule = (UpdateAlertRetriggerRule) o; + return Objects.equals(this.data, updateAlertRetriggerRule.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateAlertRetriggerRule {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateAlertRetriggerRule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateAlertRetriggerRule.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateAlertRetriggerRule is not found in the empty JSON string", UpdateAlertRetriggerRule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateAlertRetriggerRule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateAlertRetriggerRule` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateAlertRetriggerRule.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + UpdateAlertRetriggerRuleData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateAlertRetriggerRule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateAlertRetriggerRule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateAlertRetriggerRule.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateAlertRetriggerRule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateAlertRetriggerRule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateAlertRetriggerRule given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateAlertRetriggerRule + * @throws IOException if the JSON string is invalid with respect to UpdateAlertRetriggerRule + */ + public static UpdateAlertRetriggerRule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateAlertRetriggerRule.class); + } + + /** + * Convert an instance of UpdateAlertRetriggerRule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleData.java b/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleData.java new file mode 100644 index 00000000..c31ee5e1 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateAlertRetriggerRuleDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateAlertRetriggerRuleData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateAlertRetriggerRuleData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + ALERT_RETRIGGER_RULES("alert_retrigger_rules"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private UpdateAlertRetriggerRuleDataAttributes attributes; + + public UpdateAlertRetriggerRuleData() { + } + + public UpdateAlertRetriggerRuleData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public UpdateAlertRetriggerRuleData attributes(@jakarta.annotation.Nonnull UpdateAlertRetriggerRuleDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public UpdateAlertRetriggerRuleDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull UpdateAlertRetriggerRuleDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAlertRetriggerRuleData updateAlertRetriggerRuleData = (UpdateAlertRetriggerRuleData) o; + return Objects.equals(this.type, updateAlertRetriggerRuleData.type) && + Objects.equals(this.attributes, updateAlertRetriggerRuleData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateAlertRetriggerRuleData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateAlertRetriggerRuleData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateAlertRetriggerRuleData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateAlertRetriggerRuleData is not found in the empty JSON string", UpdateAlertRetriggerRuleData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateAlertRetriggerRuleData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateAlertRetriggerRuleData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateAlertRetriggerRuleData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + UpdateAlertRetriggerRuleDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateAlertRetriggerRuleData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateAlertRetriggerRuleData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateAlertRetriggerRuleData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateAlertRetriggerRuleData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateAlertRetriggerRuleData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateAlertRetriggerRuleData given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateAlertRetriggerRuleData + * @throws IOException if the JSON string is invalid with respect to UpdateAlertRetriggerRuleData + */ + public static UpdateAlertRetriggerRuleData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateAlertRetriggerRuleData.class); + } + + /** + * Convert an instance of UpdateAlertRetriggerRuleData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributes.java new file mode 100644 index 00000000..42aaf2b8 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributes.java @@ -0,0 +1,490 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertRetriggerRuleDataAttributesConditionsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateAlertRetriggerRuleDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateAlertRetriggerRuleDataAttributes { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + /** + * Whether all or any of the conditions must match + */ + @JsonAdapter(MatchModeEnum.Adapter.class) + public enum MatchModeEnum { + MATCH_ALL_RULES("match-all-rules"), + + MATCH_ANY_RULE("match-any-rule"); + + private String value; + + MatchModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MatchModeEnum fromValue(String value) { + for (MatchModeEnum b : MatchModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MatchModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MatchModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MatchModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MatchModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_MATCH_MODE = "match_mode"; + @SerializedName(SERIALIZED_NAME_MATCH_MODE) + @jakarta.annotation.Nullable + private MatchModeEnum matchMode; + + /** + * Re-trigger the alert this many minutes after acknowledgment. Null means never re-trigger. + */ + @JsonAdapter(TimeoutMinutesEnum.Adapter.class) + public enum TimeoutMinutesEnum { + NUMBER_10(10), + + NUMBER_20(20), + + NUMBER_30(30), + + NUMBER_40(40), + + NUMBER_50(50), + + NUMBER_60(60), + + NUMBER_90(90), + + NUMBER_120(120), + + NUMBER_180(180), + + NUMBER_240(240), + + NUMBER_300(300), + + NUMBER_360(360), + + NUMBER_720(720), + + NUMBER_1440(1440); + + private Integer value; + + TimeoutMinutesEnum(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TimeoutMinutesEnum fromValue(Integer value) { + for (TimeoutMinutesEnum b : TimeoutMinutesEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TimeoutMinutesEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TimeoutMinutesEnum read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return TimeoutMinutesEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + TimeoutMinutesEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TIMEOUT_MINUTES = "timeout_minutes"; + @SerializedName(SERIALIZED_NAME_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private TimeoutMinutesEnum timeoutMinutes; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; + @SerializedName(SERIALIZED_NAME_CONDITIONS) + @jakarta.annotation.Nullable + private List conditions = new ArrayList<>(); + + public UpdateAlertRetriggerRuleDataAttributes() { + } + + public UpdateAlertRetriggerRuleDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * A human-readable name for the rule + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public UpdateAlertRetriggerRuleDataAttributes matchMode(@jakarta.annotation.Nullable MatchModeEnum matchMode) { + this.matchMode = matchMode; + return this; + } + + /** + * Whether all or any of the conditions must match + * @return matchMode + */ + @jakarta.annotation.Nullable + public MatchModeEnum getMatchMode() { + return matchMode; + } + + public void setMatchMode(@jakarta.annotation.Nullable MatchModeEnum matchMode) { + this.matchMode = matchMode; + } + + + public UpdateAlertRetriggerRuleDataAttributes timeoutMinutes(@jakarta.annotation.Nullable TimeoutMinutesEnum timeoutMinutes) { + this.timeoutMinutes = timeoutMinutes; + return this; + } + + /** + * Re-trigger the alert this many minutes after acknowledgment. Null means never re-trigger. + * @return timeoutMinutes + */ + @jakarta.annotation.Nullable + public TimeoutMinutesEnum getTimeoutMinutes() { + return timeoutMinutes; + } + + public void setTimeoutMinutes(@jakarta.annotation.Nullable TimeoutMinutesEnum timeoutMinutes) { + this.timeoutMinutes = timeoutMinutes; + } + + + public UpdateAlertRetriggerRuleDataAttributes position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * The position of the rule for ordering evaluation + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public UpdateAlertRetriggerRuleDataAttributes conditions(@jakarta.annotation.Nullable List conditions) { + this.conditions = conditions; + return this; + } + + public UpdateAlertRetriggerRuleDataAttributes addConditionsItem(NewAlertRetriggerRuleDataAttributesConditionsInner conditionsItem) { + if (this.conditions == null) { + this.conditions = new ArrayList<>(); + } + this.conditions.add(conditionsItem); + return this; + } + + /** + * The full desired set of conditions; replaces the rule's existing conditions. An empty array applies to every alert. + * @return conditions + */ + @jakarta.annotation.Nullable + public List getConditions() { + return conditions; + } + + public void setConditions(@jakarta.annotation.Nullable List conditions) { + this.conditions = conditions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateAlertRetriggerRuleDataAttributes updateAlertRetriggerRuleDataAttributes = (UpdateAlertRetriggerRuleDataAttributes) o; + return Objects.equals(this.name, updateAlertRetriggerRuleDataAttributes.name) && + Objects.equals(this.matchMode, updateAlertRetriggerRuleDataAttributes.matchMode) && + Objects.equals(this.timeoutMinutes, updateAlertRetriggerRuleDataAttributes.timeoutMinutes) && + Objects.equals(this.position, updateAlertRetriggerRuleDataAttributes.position) && + Objects.equals(this.conditions, updateAlertRetriggerRuleDataAttributes.conditions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, matchMode, timeoutMinutes, position, conditions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateAlertRetriggerRuleDataAttributes {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" matchMode: ").append(toIndentedString(matchMode)).append("\n"); + sb.append(" timeoutMinutes: ").append(toIndentedString(timeoutMinutes)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("match_mode"); + openapiFields.add("timeout_minutes"); + openapiFields.add("position"); + openapiFields.add("conditions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateAlertRetriggerRuleDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateAlertRetriggerRuleDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateAlertRetriggerRuleDataAttributes is not found in the empty JSON string", UpdateAlertRetriggerRuleDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateAlertRetriggerRuleDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateAlertRetriggerRuleDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) && !jsonObj.get("match_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `match_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("match_mode").toString())); + } + // validate the optional field `match_mode` + if (jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) { + MatchModeEnum.validateJsonElement(jsonObj.get("match_mode")); + } + // validate the optional field `timeout_minutes` + if (jsonObj.get("timeout_minutes") != null && !jsonObj.get("timeout_minutes").isJsonNull()) { + TimeoutMinutesEnum.validateJsonElement(jsonObj.get("timeout_minutes")); + } + if (jsonObj.get("conditions") != null && !jsonObj.get("conditions").isJsonNull()) { + JsonArray jsonArrayconditions = jsonObj.getAsJsonArray("conditions"); + if (jsonArrayconditions != null) { + // ensure the json data is an array + if (!jsonObj.get("conditions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `conditions` to be an array in the JSON string but got `%s`", jsonObj.get("conditions").toString())); + } + + // validate the optional field `conditions` (array) + for (int i = 0; i < jsonArrayconditions.size(); i++) { + NewAlertRetriggerRuleDataAttributesConditionsInner.validateJsonElement(jsonArrayconditions.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateAlertRetriggerRuleDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateAlertRetriggerRuleDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateAlertRetriggerRuleDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateAlertRetriggerRuleDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateAlertRetriggerRuleDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateAlertRetriggerRuleDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateAlertRetriggerRuleDataAttributes + * @throws IOException if the JSON string is invalid with respect to UpdateAlertRetriggerRuleDataAttributes + */ + public static UpdateAlertRetriggerRuleDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateAlertRetriggerRuleDataAttributes.class); + } + + /** + * Convert an instance of UpdateAlertRetriggerRuleDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRoute.java b/src/main/java/com/rootly/client/model/UpdateAlertRoute.java index d54e4f98..520246ed 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRoute.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRoute.java @@ -49,7 +49,7 @@ /** * UpdateAlertRoute */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRoute { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRouteData.java b/src/main/java/com/rootly/client/model/UpdateAlertRouteData.java index 037b12d3..461be129 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRouteData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRouteData.java @@ -49,7 +49,7 @@ /** * UpdateAlertRouteData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRouteData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributes.java index e7a187bc..c9754317 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRouteDataAttributes.java @@ -19,7 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInner; +import com.rootly.client.model.NewAlertRouteDataAttributesRulesInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -52,7 +52,7 @@ /** * UpdateAlertRouteDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRouteDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -77,7 +77,7 @@ public class UpdateAlertRouteDataAttributes { public static final String SERIALIZED_NAME_RULES = "rules"; @SerializedName(SERIALIZED_NAME_RULES) @jakarta.annotation.Nullable - private List rules = new ArrayList<>(); + private List rules = new ArrayList<>(); public UpdateAlertRouteDataAttributes() { } @@ -174,12 +174,12 @@ public void setOwningTeamIds(@jakarta.annotation.Nullable List owningTeamI } - public UpdateAlertRouteDataAttributes rules(@jakarta.annotation.Nullable List rules) { + public UpdateAlertRouteDataAttributes rules(@jakarta.annotation.Nullable List rules) { this.rules = rules; return this; } - public UpdateAlertRouteDataAttributes addRulesItem(UpdateAlertRouteDataAttributesRulesInner rulesItem) { + public UpdateAlertRouteDataAttributes addRulesItem(NewAlertRouteDataAttributesRulesInner rulesItem) { if (this.rules == null) { this.rules = new ArrayList<>(); } @@ -192,11 +192,11 @@ public UpdateAlertRouteDataAttributes addRulesItem(UpdateAlertRouteDataAttribute * @return rules */ @jakarta.annotation.Nullable - public List getRules() { + public List getRules() { return rules; } - public void setRules(@jakarta.annotation.Nullable List rules) { + public void setRules(@jakarta.annotation.Nullable List rules) { this.rules = rules; } @@ -306,7 +306,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti // validate the optional field `rules` (array) for (int i = 0; i < jsonArrayrules.size(); i++) { - UpdateAlertRouteDataAttributesRulesInner.validateJsonElement(jsonArrayrules.get(i)); + NewAlertRouteDataAttributesRulesInner.validateJsonElement(jsonArrayrules.get(i)); }; } } diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRule.java b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRule.java index 7283d2de..7d48e330 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRule.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRule.java @@ -49,7 +49,7 @@ /** * UpdateAlertRoutingRule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRoutingRule { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleData.java b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleData.java index baaa2e86..49df1daa 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleData.java @@ -49,7 +49,7 @@ /** * UpdateAlertRoutingRuleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRoutingRuleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributes.java index 687ef784..65d6d29b 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributes.java @@ -53,7 +53,7 @@ /** * UpdateAlertRoutingRuleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRoutingRuleDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesConditionsInner.java b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesConditionsInner.java index 76c09116..e000af6b 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesConditionsInner.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesConditionsInner.java @@ -52,7 +52,7 @@ /** * UpdateAlertRoutingRuleDataAttributesConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRoutingRuleDataAttributesConditionsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesDestination.java b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesDestination.java index ac48fd26..39458154 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesDestination.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertRoutingRuleDataAttributesDestination.java @@ -49,10 +49,10 @@ /** * UpdateAlertRoutingRuleDataAttributesDestination */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertRoutingRuleDataAttributesDestination { /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(TargetTypeEnum.Adapter.class) public enum TargetTypeEnum { @@ -60,6 +60,8 @@ public enum TargetTypeEnum { GROUP("Group"), + FUNCTIONALITY("Functionality"), + ESCALATION_POLICY("EscalationPolicy"); private String value; @@ -124,7 +126,7 @@ public UpdateAlertRoutingRuleDataAttributesDestination targetType(@jakarta.annot } /** - * The type of the target + * The type of the target. Please contact support if you encounter issues using `Functionality` as a target type. * @return targetType */ @jakarta.annotation.Nullable diff --git a/src/main/java/com/rootly/client/model/UpdateAlertUrgency.java b/src/main/java/com/rootly/client/model/UpdateAlertUrgency.java index 320e4396..8bfc3f80 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertUrgency.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertUrgency.java @@ -49,7 +49,7 @@ /** * UpdateAlertUrgency */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertUrgency { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertUrgencyData.java b/src/main/java/com/rootly/client/model/UpdateAlertUrgencyData.java index 18511e6c..892b06b2 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertUrgencyData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertUrgencyData.java @@ -49,7 +49,7 @@ /** * UpdateAlertUrgencyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertUrgencyData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributes.java index ff54162f..83fd9428 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateAlertUrgencyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertUrgencyDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -66,6 +66,11 @@ public class UpdateAlertUrgencyDataAttributes { @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES = "retrigger_timeout_minutes"; + @SerializedName(SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private Integer retriggerTimeoutMinutes; + public UpdateAlertUrgencyDataAttributes() { } @@ -126,6 +131,25 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public UpdateAlertUrgencyDataAttributes retriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + return this; + } + + /** + * Re-trigger acknowledged alerts of this urgency after N minutes; null inherits the workspace default, negative = never. + * @return retriggerTimeoutMinutes + */ + @jakarta.annotation.Nullable + public Integer getRetriggerTimeoutMinutes() { + return retriggerTimeoutMinutes; + } + + public void setRetriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + } + + @Override public boolean equals(Object o) { @@ -138,7 +162,8 @@ public boolean equals(Object o) { UpdateAlertUrgencyDataAttributes updateAlertUrgencyDataAttributes = (UpdateAlertUrgencyDataAttributes) o; return Objects.equals(this.name, updateAlertUrgencyDataAttributes.name) && Objects.equals(this.description, updateAlertUrgencyDataAttributes.description) && - Objects.equals(this.position, updateAlertUrgencyDataAttributes.position); + Objects.equals(this.position, updateAlertUrgencyDataAttributes.position) && + Objects.equals(this.retriggerTimeoutMinutes, updateAlertUrgencyDataAttributes.retriggerTimeoutMinutes); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -147,7 +172,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(name, description, position, retriggerTimeoutMinutes); } private static int hashCodeNullable(JsonNullable a) { @@ -164,6 +189,7 @@ public String toString() { sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" retriggerTimeoutMinutes: ").append(toIndentedString(retriggerTimeoutMinutes)).append("\n"); sb.append("}"); return sb.toString(); } @@ -189,6 +215,7 @@ private String toIndentedString(Object o) { openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); + openapiFields.add("retrigger_timeout_minutes"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/UpdateAlertsSource.java b/src/main/java/com/rootly/client/model/UpdateAlertsSource.java index ea3c9b06..a8e1a8c4 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertsSource.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertsSource.java @@ -49,7 +49,7 @@ /** * UpdateAlertsSource */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertsSource { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAlertsSourceData.java b/src/main/java/com/rootly/client/model/UpdateAlertsSourceData.java index 87bb9a94..9f27e3b9 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertsSourceData.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertsSourceData.java @@ -49,7 +49,7 @@ /** * UpdateAlertsSourceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertsSourceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAlertsSourceDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAlertsSourceDataAttributes.java index 1ceb3ade..4de75b14 100644 --- a/src/main/java/com/rootly/client/model/UpdateAlertsSourceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAlertsSourceDataAttributes.java @@ -56,13 +56,18 @@ /** * UpdateAlertsSourceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAlertsSourceDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable private String name; + public static final String SERIALIZED_NAME_ENABLED = "enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @jakarta.annotation.Nullable + private Boolean enabled; + /** * The alert source type */ @@ -74,8 +79,12 @@ public enum SourceTypeEnum { CATCHPOINT("catchpoint"), + CLOUDFLARE("cloudflare"), + DATADOG("datadog"), + DYNATRACE("dynatrace"), + ALERTMANAGER("alertmanager"), GOOGLE_CLOUD("google_cloud"), @@ -88,6 +97,8 @@ public enum SourceTypeEnum { CLOUD_WATCH("cloud_watch"), + AWS_SNS("aws_sns"), + CHECKLY("checkly"), AZURE("azure"), @@ -285,6 +296,25 @@ public void setName(@jakarta.annotation.Nullable String name) { } + public UpdateAlertsSourceDataAttributes enabled(@jakarta.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the alert source is enabled. Disabled sources do not create alerts from incoming events. + * @return enabled + */ + @jakarta.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@jakarta.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + public UpdateAlertsSourceDataAttributes sourceType(@jakarta.annotation.Nullable SourceTypeEnum sourceType) { this.sourceType = sourceType; return this; @@ -548,6 +578,7 @@ public boolean equals(Object o) { } UpdateAlertsSourceDataAttributes updateAlertsSourceDataAttributes = (UpdateAlertsSourceDataAttributes) o; return Objects.equals(this.name, updateAlertsSourceDataAttributes.name) && + Objects.equals(this.enabled, updateAlertsSourceDataAttributes.enabled) && Objects.equals(this.sourceType, updateAlertsSourceDataAttributes.sourceType) && Objects.equals(this.alertUrgencyId, updateAlertsSourceDataAttributes.alertUrgencyId) && Objects.equals(this.deduplicateAlertsByKey, updateAlertsSourceDataAttributes.deduplicateAlertsByKey) && @@ -568,7 +599,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, sourceType, alertUrgencyId, deduplicateAlertsByKey, deduplicationKeyKind, deduplicationKeyPath, deduplicationKeyRegexp, ownerGroupIds, alertTemplateAttributes, alertSourceUrgencyRulesAttributes, sourceableAttributes, resolutionRuleAttributes, alertSourceFieldsAttributes); + return Objects.hash(name, enabled, sourceType, alertUrgencyId, deduplicateAlertsByKey, deduplicationKeyKind, deduplicationKeyPath, deduplicationKeyRegexp, ownerGroupIds, alertTemplateAttributes, alertSourceUrgencyRulesAttributes, sourceableAttributes, resolutionRuleAttributes, alertSourceFieldsAttributes); } private static int hashCodeNullable(JsonNullable a) { @@ -583,6 +614,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateAlertsSourceDataAttributes {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" sourceType: ").append(toIndentedString(sourceType)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); sb.append(" deduplicateAlertsByKey: ").append(toIndentedString(deduplicateAlertsByKey)).append("\n"); @@ -618,6 +650,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("name"); + openapiFields.add("enabled"); openapiFields.add("source_type"); openapiFields.add("alert_urgency_id"); openapiFields.add("deduplicate_alerts_by_key"); diff --git a/src/main/java/com/rootly/client/model/UpdateApiKey.java b/src/main/java/com/rootly/client/model/UpdateApiKey.java index abc521fe..5e47bd48 100644 --- a/src/main/java/com/rootly/client/model/UpdateApiKey.java +++ b/src/main/java/com/rootly/client/model/UpdateApiKey.java @@ -49,17 +49,17 @@ /** * UpdateApiKey */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateApiKey { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateApiKeyData data; public UpdateApiKey() { } - public UpdateApiKey data(@javax.annotation.Nonnull UpdateApiKeyData data) { + public UpdateApiKey data(@jakarta.annotation.Nonnull UpdateApiKeyData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public UpdateApiKey data(@javax.annotation.Nonnull UpdateApiKeyData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateApiKeyData getData() { return data; } - public void setData(@javax.annotation.Nonnull UpdateApiKeyData data) { + public void setData(@jakarta.annotation.Nonnull UpdateApiKeyData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/UpdateApiKeyData.java b/src/main/java/com/rootly/client/model/UpdateApiKeyData.java index e782a68b..4c5fcf54 100644 --- a/src/main/java/com/rootly/client/model/UpdateApiKeyData.java +++ b/src/main/java/com/rootly/client/model/UpdateApiKeyData.java @@ -49,7 +49,7 @@ /** * UpdateApiKeyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateApiKeyData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateApiKeyDataAttributes attributes; public UpdateApiKeyData() { } - public UpdateApiKeyData type(@javax.annotation.Nonnull TypeEnum type) { + public UpdateApiKeyData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public UpdateApiKeyData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public UpdateApiKeyData attributes(@javax.annotation.Nonnull UpdateApiKeyDataAttributes attributes) { + public UpdateApiKeyData attributes(@jakarta.annotation.Nonnull UpdateApiKeyDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public UpdateApiKeyData attributes(@javax.annotation.Nonnull UpdateApiKeyDataAtt * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateApiKeyDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull UpdateApiKeyDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull UpdateApiKeyDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/UpdateApiKeyDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateApiKeyDataAttributes.java index cd64e19b..9f077f63 100644 --- a/src/main/java/com/rootly/client/model/UpdateApiKeyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateApiKeyDataAttributes.java @@ -50,27 +50,27 @@ /** * UpdateApiKeyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateApiKeyDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_EXPIRES_AT = "expires_at"; @SerializedName(SERIALIZED_NAME_EXPIRES_AT) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private OffsetDateTime expiresAt; public UpdateApiKeyDataAttributes() { } - public UpdateApiKeyDataAttributes name(@javax.annotation.Nullable String name) { + public UpdateApiKeyDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -79,17 +79,17 @@ public UpdateApiKeyDataAttributes name(@javax.annotation.Nullable String name) { * The name of the API key * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public UpdateApiKeyDataAttributes description(@javax.annotation.Nullable String description) { + public UpdateApiKeyDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -98,17 +98,17 @@ public UpdateApiKeyDataAttributes description(@javax.annotation.Nullable String * A description of the API key * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public UpdateApiKeyDataAttributes expiresAt(@javax.annotation.Nullable OffsetDateTime expiresAt) { + public UpdateApiKeyDataAttributes expiresAt(@jakarta.annotation.Nullable OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } @@ -117,12 +117,12 @@ public UpdateApiKeyDataAttributes expiresAt(@javax.annotation.Nullable OffsetDat * The expiration date of the API key (ISO 8601) * @return expiresAt */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public OffsetDateTime getExpiresAt() { return expiresAt; } - public void setExpiresAt(@javax.annotation.Nullable OffsetDateTime expiresAt) { + public void setExpiresAt(@jakarta.annotation.Nullable OffsetDateTime expiresAt) { this.expiresAt = expiresAt; } diff --git a/src/main/java/com/rootly/client/model/UpdateAsanaTaskTaskParams.java b/src/main/java/com/rootly/client/model/UpdateAsanaTaskTaskParams.java index 4e9db735..7dcc46a3 100644 --- a/src/main/java/com/rootly/client/model/UpdateAsanaTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateAsanaTaskTaskParams.java @@ -52,7 +52,7 @@ /** * UpdateAsanaTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAsanaTaskTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateAttachedAlertsTaskParams.java b/src/main/java/com/rootly/client/model/UpdateAttachedAlertsTaskParams.java index 25aeefc4..8dafe3a6 100644 --- a/src/main/java/com/rootly/client/model/UpdateAttachedAlertsTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateAttachedAlertsTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateAttachedAlertsTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAttachedAlertsTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateAuthorization.java b/src/main/java/com/rootly/client/model/UpdateAuthorization.java index 5905ad1e..ecdcbe76 100644 --- a/src/main/java/com/rootly/client/model/UpdateAuthorization.java +++ b/src/main/java/com/rootly/client/model/UpdateAuthorization.java @@ -49,7 +49,7 @@ /** * UpdateAuthorization */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAuthorization { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateAuthorizationData.java b/src/main/java/com/rootly/client/model/UpdateAuthorizationData.java index 1f1631de..e98fc8da 100644 --- a/src/main/java/com/rootly/client/model/UpdateAuthorizationData.java +++ b/src/main/java/com/rootly/client/model/UpdateAuthorizationData.java @@ -49,7 +49,7 @@ /** * UpdateAuthorizationData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAuthorizationData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateAuthorizationDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateAuthorizationDataAttributes.java index 67aa57f1..e8ce1e9b 100644 --- a/src/main/java/com/rootly/client/model/UpdateAuthorizationDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateAuthorizationDataAttributes.java @@ -50,7 +50,7 @@ /** * UpdateAuthorizationDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateAuthorizationDataAttributes { /** * Gets or Sets permissions diff --git a/src/main/java/com/rootly/client/model/UpdateCatalog.java b/src/main/java/com/rootly/client/model/UpdateCatalog.java index 48a15336..be8ee19b 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalog.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalog.java @@ -49,7 +49,7 @@ /** * UpdateCatalog */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalog { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplate.java b/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplate.java index 8a7576c3..ee28a015 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplate.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplate.java @@ -49,17 +49,17 @@ /** * UpdateCatalogChecklistTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogChecklistTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateCatalogChecklistTemplateData data; public UpdateCatalogChecklistTemplate() { } - public UpdateCatalogChecklistTemplate data(@javax.annotation.Nonnull UpdateCatalogChecklistTemplateData data) { + public UpdateCatalogChecklistTemplate data(@jakarta.annotation.Nonnull UpdateCatalogChecklistTemplateData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public UpdateCatalogChecklistTemplate data(@javax.annotation.Nonnull UpdateCatal * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateCatalogChecklistTemplateData getData() { return data; } - public void setData(@javax.annotation.Nonnull UpdateCatalogChecklistTemplateData data) { + public void setData(@jakarta.annotation.Nonnull UpdateCatalogChecklistTemplateData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateData.java b/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateData.java index d5a2851a..77aefa9e 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateData.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateData.java @@ -49,7 +49,7 @@ /** * UpdateCatalogChecklistTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogChecklistTemplateData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateCatalogChecklistTemplateDataAttributes attributes; public UpdateCatalogChecklistTemplateData() { } - public UpdateCatalogChecklistTemplateData type(@javax.annotation.Nonnull TypeEnum type) { + public UpdateCatalogChecklistTemplateData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public UpdateCatalogChecklistTemplateData type(@javax.annotation.Nonnull TypeEnu * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public UpdateCatalogChecklistTemplateData attributes(@javax.annotation.Nonnull UpdateCatalogChecklistTemplateDataAttributes attributes) { + public UpdateCatalogChecklistTemplateData attributes(@jakarta.annotation.Nonnull UpdateCatalogChecklistTemplateDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public UpdateCatalogChecklistTemplateData attributes(@javax.annotation.Nonnull U * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateCatalogChecklistTemplateDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull UpdateCatalogChecklistTemplateDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull UpdateCatalogChecklistTemplateDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributes.java index 1fdd1294..f79e9906 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributes.java @@ -53,32 +53,61 @@ /** * UpdateCatalogChecklistTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogChecklistTemplateDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_FIELDS = "fields"; @SerializedName(SERIALIZED_NAME_FIELDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List fields; public static final String SERIALIZED_NAME_OWNERS = "owners"; @SerializedName(SERIALIZED_NAME_OWNERS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List owners; public UpdateCatalogChecklistTemplateDataAttributes() { } - public UpdateCatalogChecklistTemplateDataAttributes name(@javax.annotation.Nullable String name) { + @Deprecated + public UpdateCatalogChecklistTemplateDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public UpdateCatalogChecklistTemplateDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -87,17 +116,17 @@ public UpdateCatalogChecklistTemplateDataAttributes name(@javax.annotation.Nulla * The name of the checklist template * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public UpdateCatalogChecklistTemplateDataAttributes description(@javax.annotation.Nullable String description) { + public UpdateCatalogChecklistTemplateDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -106,17 +135,17 @@ public UpdateCatalogChecklistTemplateDataAttributes description(@javax.annotatio * The description of the checklist template * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public UpdateCatalogChecklistTemplateDataAttributes fields(@javax.annotation.Nullable List fields) { + public UpdateCatalogChecklistTemplateDataAttributes fields(@jakarta.annotation.Nullable List fields) { this.fields = fields; return this; } @@ -133,17 +162,17 @@ public UpdateCatalogChecklistTemplateDataAttributes addFieldsItem(NewCatalogChec * Template fields. Position is determined by array order. Replaces all existing fields. * @return fields */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getFields() { return fields; } - public void setFields(@javax.annotation.Nullable List fields) { + public void setFields(@jakarta.annotation.Nullable List fields) { this.fields = fields; } - public UpdateCatalogChecklistTemplateDataAttributes owners(@javax.annotation.Nullable List owners) { + public UpdateCatalogChecklistTemplateDataAttributes owners(@jakarta.annotation.Nullable List owners) { this.owners = owners; return this; } @@ -160,12 +189,12 @@ public UpdateCatalogChecklistTemplateDataAttributes addOwnersItem(NewCatalogChec * Template owners. Replaces all existing owners. * @return owners */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getOwners() { return owners; } - public void setOwners(@javax.annotation.Nullable List owners) { + public void setOwners(@jakarta.annotation.Nullable List owners) { this.owners = owners; } @@ -180,7 +209,8 @@ public boolean equals(Object o) { return false; } UpdateCatalogChecklistTemplateDataAttributes updateCatalogChecklistTemplateDataAttributes = (UpdateCatalogChecklistTemplateDataAttributes) o; - return Objects.equals(this.name, updateCatalogChecklistTemplateDataAttributes.name) && + return Objects.equals(this.slug, updateCatalogChecklistTemplateDataAttributes.slug) && + Objects.equals(this.name, updateCatalogChecklistTemplateDataAttributes.name) && Objects.equals(this.description, updateCatalogChecklistTemplateDataAttributes.description) && Objects.equals(this.fields, updateCatalogChecklistTemplateDataAttributes.fields) && Objects.equals(this.owners, updateCatalogChecklistTemplateDataAttributes.owners); @@ -192,7 +222,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, fields, owners); + return Objects.hash(slug, name, description, fields, owners); } private static int hashCodeNullable(JsonNullable a) { @@ -206,6 +236,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCatalogChecklistTemplateDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); @@ -232,6 +263,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("fields"); @@ -262,6 +294,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogData.java b/src/main/java/com/rootly/client/model/UpdateCatalogData.java index 28ede7d2..17779fd7 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogData.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogData.java @@ -49,7 +49,7 @@ /** * UpdateCatalogData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCatalogDataAttributes.java index 605ef488..668bb61a 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogDataAttributes.java @@ -49,8 +49,14 @@ /** * UpdateCatalogDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -135,9 +141,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public UpdateCatalogDataAttributes() { } + @Deprecated + public UpdateCatalogDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateCatalogDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -214,6 +248,25 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public UpdateCatalogDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog. Must be unique within the team. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + @Override public boolean equals(Object o) { @@ -224,10 +277,12 @@ public boolean equals(Object o) { return false; } UpdateCatalogDataAttributes updateCatalogDataAttributes = (UpdateCatalogDataAttributes) o; - return Objects.equals(this.name, updateCatalogDataAttributes.name) && + return Objects.equals(this.slug, updateCatalogDataAttributes.slug) && + Objects.equals(this.name, updateCatalogDataAttributes.name) && Objects.equals(this.description, updateCatalogDataAttributes.description) && Objects.equals(this.icon, updateCatalogDataAttributes.icon) && - Objects.equals(this.position, updateCatalogDataAttributes.position); + Objects.equals(this.position, updateCatalogDataAttributes.position) && + Objects.equals(this.externalId, updateCatalogDataAttributes.externalId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -236,7 +291,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, icon, position); + return Objects.hash(slug, name, description, icon, position, externalId); } private static int hashCodeNullable(JsonNullable a) { @@ -250,10 +305,12 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCatalogDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" icon: ").append(toIndentedString(icon)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -276,10 +333,12 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("icon"); openapiFields.add("position"); + openapiFields.add("external_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -306,6 +365,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -319,6 +381,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("icon") != null && !jsonObj.get("icon").isJsonNull()) { IconEnum.validateJsonElement(jsonObj.get("icon")); } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogEntity.java b/src/main/java/com/rootly/client/model/UpdateCatalogEntity.java index ece1b2fe..03f8b314 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogEntity.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogEntity.java @@ -49,7 +49,7 @@ /** * UpdateCatalogEntity */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogEntity { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogEntityData.java b/src/main/java/com/rootly/client/model/UpdateCatalogEntityData.java index bd7d4b49..6d2dbe5d 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogEntityData.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogEntityData.java @@ -49,7 +49,7 @@ /** * UpdateCatalogEntityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogEntityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogEntityDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCatalogEntityDataAttributes.java index 695dc598..85f156b8 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogEntityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogEntityDataAttributes.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCatalogEntityDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,8 +52,14 @@ /** * UpdateCatalogEntityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogEntityDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -61,14 +70,57 @@ public class UpdateCatalogEntityDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_BACKSTAGE_ID = "backstage_id"; + @SerializedName(SERIALIZED_NAME_BACKSTAGE_ID) + @jakarta.annotation.Nullable + private String backstageId; + + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public UpdateCatalogEntityDataAttributes() { } + @Deprecated + public UpdateCatalogEntityDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateCatalogEntityDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -107,6 +159,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public UpdateCatalogEntityDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the catalog entity + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public UpdateCatalogEntityDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; @@ -126,6 +197,71 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public UpdateCatalogEntityDataAttributes backstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + return this; + } + + /** + * The Backstage entity ID this catalog entity is linked to. + * @return backstageId + */ + @jakarta.annotation.Nullable + public String getBackstageId() { + return backstageId; + } + + public void setBackstageId(@jakarta.annotation.Nullable String backstageId) { + this.backstageId = backstageId; + } + + + public UpdateCatalogEntityDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog entity. Must be unique within the catalog. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + + public UpdateCatalogEntityDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public UpdateCatalogEntityDataAttributes addPropertiesItem(NewCatalogEntityDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this catalog entity + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -136,9 +272,14 @@ public boolean equals(Object o) { return false; } UpdateCatalogEntityDataAttributes updateCatalogEntityDataAttributes = (UpdateCatalogEntityDataAttributes) o; - return Objects.equals(this.name, updateCatalogEntityDataAttributes.name) && + return Objects.equals(this.slug, updateCatalogEntityDataAttributes.slug) && + Objects.equals(this.name, updateCatalogEntityDataAttributes.name) && Objects.equals(this.description, updateCatalogEntityDataAttributes.description) && - Objects.equals(this.position, updateCatalogEntityDataAttributes.position); + Objects.equals(this.publicDescription, updateCatalogEntityDataAttributes.publicDescription) && + Objects.equals(this.position, updateCatalogEntityDataAttributes.position) && + Objects.equals(this.backstageId, updateCatalogEntityDataAttributes.backstageId) && + Objects.equals(this.externalId, updateCatalogEntityDataAttributes.externalId) && + Objects.equals(this.properties, updateCatalogEntityDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -147,7 +288,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(slug, name, description, publicDescription, position, backstageId, externalId, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -161,9 +302,14 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCatalogEntityDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" backstageId: ").append(toIndentedString(backstageId)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -186,9 +332,14 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("position"); + openapiFields.add("backstage_id"); + openapiFields.add("external_id"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -215,12 +366,38 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if ((jsonObj.get("backstage_id") != null && !jsonObj.get("backstage_id").isJsonNull()) && !jsonObj.get("backstage_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `backstage_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("backstage_id").toString())); + } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCatalogEntityDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogEntityProperty.java b/src/main/java/com/rootly/client/model/UpdateCatalogEntityProperty.java index 9db733f3..677fa790 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogEntityProperty.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogEntityProperty.java @@ -47,9 +47,11 @@ import com.rootly.client.JSON; /** - * UpdateCatalogEntityProperty + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. + * @deprecated */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@Deprecated +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogEntityProperty { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyData.java b/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyData.java index 06394d96..df495de9 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyData.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyData.java @@ -49,7 +49,7 @@ /** * UpdateCatalogEntityPropertyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogEntityPropertyData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyDataAttributes.java index 6857ad27..6deae144 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogEntityPropertyDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateCatalogEntityPropertyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogEntityPropertyDataAttributes { /** * Gets or Sets key @@ -57,7 +57,9 @@ public class UpdateCatalogEntityPropertyDataAttributes { public enum KeyEnum { TEXT("text"), - CATALOG_ENTITY("catalog_entity"); + CATALOG_ENTITY("catalog_entity"), + + SLACK("slack"); private String value; diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogField.java b/src/main/java/com/rootly/client/model/UpdateCatalogField.java index b3567854..cacc8704 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogField.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogField.java @@ -49,7 +49,7 @@ /** * UpdateCatalogField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogFieldData.java b/src/main/java/com/rootly/client/model/UpdateCatalogFieldData.java index 8e2a1aff..3ec64c19 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogFieldData.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogFieldData.java @@ -49,14 +49,14 @@ /** * UpdateCatalogFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogFieldData { /** * Gets or Sets type */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { - CATALOG_FIELDS("catalog_fields"); + CATALOG_PROPERTIES("catalog_properties"); private String value; diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogFieldDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCatalogFieldDataAttributes.java index bad35bd0..0c0c240e 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogFieldDataAttributes.java @@ -49,18 +49,19 @@ /** * UpdateCatalogFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogFieldDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nullable - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + /** * Gets or Sets kind */ @@ -68,7 +69,23 @@ public class UpdateCatalogFieldDataAttributes { public enum KindEnum { TEXT("text"), - REFERENCE("reference"); + REFERENCE("reference"), + + BOOLEAN("boolean"), + + SERVICE("service"), + + FUNCTIONALITY("functionality"), + + ENVIRONMENT("environment"), + + GROUP("group"), + + CAUSE("cause"), + + INCIDENT_TYPE("incident_type"), + + USER("user"); private String value; @@ -128,47 +145,128 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer position; - public UpdateCatalogFieldDataAttributes() { - } - - public UpdateCatalogFieldDataAttributes name(@jakarta.annotation.Nullable String name) { - this.name = name; - return this; - } + public static final String SERIALIZED_NAME_REQUIRED = "required"; + @SerializedName(SERIALIZED_NAME_REQUIRED) + @jakarta.annotation.Nullable + private Boolean required; /** - * Get name - * @return name + * The type of catalog the field belongs to. */ - @jakarta.annotation.Nullable - public String getName() { - return name; - } + @JsonAdapter(CatalogTypeEnum.Adapter.class) + public enum CatalogTypeEnum { + CATALOG("catalog"), + + CAUSE("cause"), + + ENVIRONMENT("environment"), + + FUNCTIONALITY("functionality"), + + INCIDENT_TYPE("incident_type"), + + SERVICE("service"), + + TEAM("team"); - public void setName(@jakarta.annotation.Nullable String name) { - this.name = name; + private String value; + + CatalogTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogTypeEnum fromValue(String value) { + for (CatalogTypeEnum b : CatalogTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogTypeEnum.fromValue(value); + } } + public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; + @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) + @jakarta.annotation.Nullable + private CatalogTypeEnum catalogType; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + + public UpdateCatalogFieldDataAttributes() { + } + + @Deprecated public UpdateCatalogFieldDataAttributes slug(@jakarta.annotation.Nullable String slug) { this.slug = slug; return this; } /** - * Get slug + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable public String getSlug() { return slug; } + @Deprecated public void setSlug(@jakarta.annotation.Nullable String slug) { this.slug = slug; } + public UpdateCatalogFieldDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + public UpdateCatalogFieldDataAttributes kind(@jakarta.annotation.Nullable KindEnum kind) { this.kind = kind; return this; @@ -226,6 +324,63 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public UpdateCatalogFieldDataAttributes required(@jakarta.annotation.Nullable Boolean required) { + this.required = required; + return this; + } + + /** + * Whether the field is required. + * @return required + */ + @jakarta.annotation.Nullable + public Boolean getRequired() { + return required; + } + + public void setRequired(@jakarta.annotation.Nullable Boolean required) { + this.required = required; + } + + + public UpdateCatalogFieldDataAttributes catalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { + this.catalogType = catalogType; + return this; + } + + /** + * The type of catalog the field belongs to. + * @return catalogType + */ + @jakarta.annotation.Nullable + public CatalogTypeEnum getCatalogType() { + return catalogType; + } + + public void setCatalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { + this.catalogType = catalogType; + } + + + public UpdateCatalogFieldDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog field. Must be unique within the scope. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + @Override public boolean equals(Object o) { @@ -236,11 +391,14 @@ public boolean equals(Object o) { return false; } UpdateCatalogFieldDataAttributes updateCatalogFieldDataAttributes = (UpdateCatalogFieldDataAttributes) o; - return Objects.equals(this.name, updateCatalogFieldDataAttributes.name) && - Objects.equals(this.slug, updateCatalogFieldDataAttributes.slug) && + return Objects.equals(this.slug, updateCatalogFieldDataAttributes.slug) && + Objects.equals(this.name, updateCatalogFieldDataAttributes.name) && Objects.equals(this.kind, updateCatalogFieldDataAttributes.kind) && Objects.equals(this.kindCatalogId, updateCatalogFieldDataAttributes.kindCatalogId) && - Objects.equals(this.position, updateCatalogFieldDataAttributes.position); + Objects.equals(this.position, updateCatalogFieldDataAttributes.position) && + Objects.equals(this.required, updateCatalogFieldDataAttributes.required) && + Objects.equals(this.catalogType, updateCatalogFieldDataAttributes.catalogType) && + Objects.equals(this.externalId, updateCatalogFieldDataAttributes.externalId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -249,7 +407,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, kind, kindCatalogId, position); + return Objects.hash(slug, name, kind, kindCatalogId, position, required, catalogType, externalId); } private static int hashCodeNullable(JsonNullable a) { @@ -263,11 +421,14 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCatalogFieldDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" kindCatalogId: ").append(toIndentedString(kindCatalogId)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" required: ").append(toIndentedString(required)).append("\n"); + sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -290,11 +451,14 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("kind"); openapiFields.add("kind_catalog_id"); openapiFields.add("position"); + openapiFields.add("required"); + openapiFields.add("catalog_type"); + openapiFields.add("external_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -321,12 +485,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("kind") != null && !jsonObj.get("kind").isJsonNull()) && !jsonObj.get("kind").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); } @@ -337,6 +501,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("kind_catalog_id") != null && !jsonObj.get("kind_catalog_id").isJsonNull()) && !jsonObj.get("kind_catalog_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind_catalog_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind_catalog_id").toString())); } + if ((jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) && !jsonObj.get("catalog_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `catalog_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("catalog_type").toString())); + } + // validate the optional field `catalog_type` + if (jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) { + CatalogTypeEnum.validateJsonElement(jsonObj.get("catalog_type")); + } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogProperty.java b/src/main/java/com/rootly/client/model/UpdateCatalogProperty.java index 37ac2af3..5e6d06b9 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogProperty.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogProperty.java @@ -49,17 +49,17 @@ /** * UpdateCatalogProperty */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogProperty { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateCatalogPropertyData data; public UpdateCatalogProperty() { } - public UpdateCatalogProperty data(@javax.annotation.Nonnull UpdateCatalogPropertyData data) { + public UpdateCatalogProperty data(@jakarta.annotation.Nonnull UpdateCatalogPropertyData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public UpdateCatalogProperty data(@javax.annotation.Nonnull UpdateCatalogPropert * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateCatalogPropertyData getData() { return data; } - public void setData(@javax.annotation.Nonnull UpdateCatalogPropertyData data) { + public void setData(@jakarta.annotation.Nonnull UpdateCatalogPropertyData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogPropertyData.java b/src/main/java/com/rootly/client/model/UpdateCatalogPropertyData.java index bdcfde49..cf7bf192 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogPropertyData.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogPropertyData.java @@ -49,7 +49,7 @@ /** * UpdateCatalogPropertyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogPropertyData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateCatalogPropertyDataAttributes attributes; public UpdateCatalogPropertyData() { } - public UpdateCatalogPropertyData type(@javax.annotation.Nonnull TypeEnum type) { + public UpdateCatalogPropertyData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public UpdateCatalogPropertyData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public UpdateCatalogPropertyData attributes(@javax.annotation.Nonnull UpdateCatalogPropertyDataAttributes attributes) { + public UpdateCatalogPropertyData attributes(@jakarta.annotation.Nonnull UpdateCatalogPropertyDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public UpdateCatalogPropertyData attributes(@javax.annotation.Nonnull UpdateCata * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateCatalogPropertyDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull UpdateCatalogPropertyDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull UpdateCatalogPropertyDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributes.java index d8bcdffb..2f7e64f9 100644 --- a/src/main/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributes.java @@ -49,11 +49,17 @@ /** * UpdateCatalogPropertyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCatalogPropertyDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; /** @@ -67,8 +73,6 @@ public enum KindEnum { BOOLEAN("boolean"), - REFERENCE2("reference"), - SERVICE("service"), FUNCTIONALITY("functionality"), @@ -128,22 +132,22 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_KIND = "kind"; @SerializedName(SERIALIZED_NAME_KIND) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private KindEnum kind; public static final String SERIALIZED_NAME_KIND_CATALOG_ID = "kind_catalog_id"; @SerializedName(SERIALIZED_NAME_KIND_CATALOG_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String kindCatalogId; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; public static final String SERIALIZED_NAME_REQUIRED = "required"; @SerializedName(SERIALIZED_NAME_REQUIRED) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean required; /** @@ -210,13 +214,41 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CATALOG_TYPE = "catalog_type"; @SerializedName(SERIALIZED_NAME_CATALOG_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CatalogTypeEnum catalogType; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public UpdateCatalogPropertyDataAttributes() { } - public UpdateCatalogPropertyDataAttributes name(@javax.annotation.Nullable String name) { + @Deprecated + public UpdateCatalogPropertyDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public UpdateCatalogPropertyDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -225,17 +257,17 @@ public UpdateCatalogPropertyDataAttributes name(@javax.annotation.Nullable Strin * Get name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public UpdateCatalogPropertyDataAttributes kind(@javax.annotation.Nullable KindEnum kind) { + public UpdateCatalogPropertyDataAttributes kind(@jakarta.annotation.Nullable KindEnum kind) { this.kind = kind; return this; } @@ -244,17 +276,17 @@ public UpdateCatalogPropertyDataAttributes kind(@javax.annotation.Nullable KindE * Get kind * @return kind */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public KindEnum getKind() { return kind; } - public void setKind(@javax.annotation.Nullable KindEnum kind) { + public void setKind(@jakarta.annotation.Nullable KindEnum kind) { this.kind = kind; } - public UpdateCatalogPropertyDataAttributes kindCatalogId(@javax.annotation.Nullable String kindCatalogId) { + public UpdateCatalogPropertyDataAttributes kindCatalogId(@jakarta.annotation.Nullable String kindCatalogId) { this.kindCatalogId = kindCatalogId; return this; } @@ -263,17 +295,17 @@ public UpdateCatalogPropertyDataAttributes kindCatalogId(@javax.annotation.Nulla * Restricts values to items of specified catalog. * @return kindCatalogId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getKindCatalogId() { return kindCatalogId; } - public void setKindCatalogId(@javax.annotation.Nullable String kindCatalogId) { + public void setKindCatalogId(@jakarta.annotation.Nullable String kindCatalogId) { this.kindCatalogId = kindCatalogId; } - public UpdateCatalogPropertyDataAttributes position(@javax.annotation.Nullable Integer position) { + public UpdateCatalogPropertyDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -282,17 +314,17 @@ public UpdateCatalogPropertyDataAttributes position(@javax.annotation.Nullable I * Default position of the item when displayed in a list. * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public UpdateCatalogPropertyDataAttributes required(@javax.annotation.Nullable Boolean required) { + public UpdateCatalogPropertyDataAttributes required(@jakarta.annotation.Nullable Boolean required) { this.required = required; return this; } @@ -301,17 +333,17 @@ public UpdateCatalogPropertyDataAttributes required(@javax.annotation.Nullable B * Whether the property is required. * @return required */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getRequired() { return required; } - public void setRequired(@javax.annotation.Nullable Boolean required) { + public void setRequired(@jakarta.annotation.Nullable Boolean required) { this.required = required; } - public UpdateCatalogPropertyDataAttributes catalogType(@javax.annotation.Nullable CatalogTypeEnum catalogType) { + public UpdateCatalogPropertyDataAttributes catalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { this.catalogType = catalogType; return this; } @@ -320,16 +352,35 @@ public UpdateCatalogPropertyDataAttributes catalogType(@javax.annotation.Nullabl * The type of catalog the property belongs to. * @return catalogType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CatalogTypeEnum getCatalogType() { return catalogType; } - public void setCatalogType(@javax.annotation.Nullable CatalogTypeEnum catalogType) { + public void setCatalogType(@jakarta.annotation.Nullable CatalogTypeEnum catalogType) { this.catalogType = catalogType; } + public UpdateCatalogPropertyDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * An external identifier for this catalog property. Must be unique within the scope. + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + @Override public boolean equals(Object o) { @@ -340,12 +391,14 @@ public boolean equals(Object o) { return false; } UpdateCatalogPropertyDataAttributes updateCatalogPropertyDataAttributes = (UpdateCatalogPropertyDataAttributes) o; - return Objects.equals(this.name, updateCatalogPropertyDataAttributes.name) && + return Objects.equals(this.slug, updateCatalogPropertyDataAttributes.slug) && + Objects.equals(this.name, updateCatalogPropertyDataAttributes.name) && Objects.equals(this.kind, updateCatalogPropertyDataAttributes.kind) && Objects.equals(this.kindCatalogId, updateCatalogPropertyDataAttributes.kindCatalogId) && Objects.equals(this.position, updateCatalogPropertyDataAttributes.position) && Objects.equals(this.required, updateCatalogPropertyDataAttributes.required) && - Objects.equals(this.catalogType, updateCatalogPropertyDataAttributes.catalogType); + Objects.equals(this.catalogType, updateCatalogPropertyDataAttributes.catalogType) && + Objects.equals(this.externalId, updateCatalogPropertyDataAttributes.externalId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -354,7 +407,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, kind, kindCatalogId, position, required, catalogType); + return Objects.hash(slug, name, kind, kindCatalogId, position, required, catalogType, externalId); } private static int hashCodeNullable(JsonNullable a) { @@ -368,12 +421,14 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCatalogPropertyDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" kindCatalogId: ").append(toIndentedString(kindCatalogId)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" required: ").append(toIndentedString(required)).append("\n"); sb.append(" catalogType: ").append(toIndentedString(catalogType)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -396,12 +451,14 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("kind"); openapiFields.add("kind_catalog_id"); openapiFields.add("position"); openapiFields.add("required"); openapiFields.add("catalog_type"); + openapiFields.add("external_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -428,6 +485,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -448,6 +508,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("catalog_type") != null && !jsonObj.get("catalog_type").isJsonNull()) { CatalogTypeEnum.validateJsonElement(jsonObj.get("catalog_type")); } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateCause.java b/src/main/java/com/rootly/client/model/UpdateCause.java index ed899c29..ea9cb939 100644 --- a/src/main/java/com/rootly/client/model/UpdateCause.java +++ b/src/main/java/com/rootly/client/model/UpdateCause.java @@ -49,7 +49,7 @@ /** * UpdateCause */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCause { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCauseData.java b/src/main/java/com/rootly/client/model/UpdateCauseData.java index cd660e9d..7a366008 100644 --- a/src/main/java/com/rootly/client/model/UpdateCauseData.java +++ b/src/main/java/com/rootly/client/model/UpdateCauseData.java @@ -49,7 +49,7 @@ /** * UpdateCauseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCauseData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCauseDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCauseDataAttributes.java index 8eb7649d..64ba9153 100644 --- a/src/main/java/com/rootly/client/model/UpdateCauseDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCauseDataAttributes.java @@ -19,8 +19,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,8 +52,14 @@ /** * UpdateCauseDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCauseDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -61,14 +70,47 @@ public class UpdateCauseDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public UpdateCauseDataAttributes() { } + @Deprecated + public UpdateCauseDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateCauseDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -107,6 +149,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public UpdateCauseDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the cause + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public UpdateCauseDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; @@ -126,6 +187,33 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public UpdateCauseDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public UpdateCauseDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this cause. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -136,9 +224,12 @@ public boolean equals(Object o) { return false; } UpdateCauseDataAttributes updateCauseDataAttributes = (UpdateCauseDataAttributes) o; - return Objects.equals(this.name, updateCauseDataAttributes.name) && + return Objects.equals(this.slug, updateCauseDataAttributes.slug) && + Objects.equals(this.name, updateCauseDataAttributes.name) && Objects.equals(this.description, updateCauseDataAttributes.description) && - Objects.equals(this.position, updateCauseDataAttributes.position); + Objects.equals(this.publicDescription, updateCauseDataAttributes.publicDescription) && + Objects.equals(this.position, updateCauseDataAttributes.position) && + Objects.equals(this.properties, updateCauseDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -147,7 +238,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(slug, name, description, publicDescription, position, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -161,9 +252,12 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCauseDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -186,9 +280,12 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("position"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -215,12 +312,32 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateClickupTaskTaskParams.java b/src/main/java/com/rootly/client/model/UpdateClickupTaskTaskParams.java index ecc03fa4..2c502559 100644 --- a/src/main/java/com/rootly/client/model/UpdateClickupTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateClickupTaskTaskParams.java @@ -50,7 +50,7 @@ /** * UpdateClickupTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateClickupTaskTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateCodaPageTaskParams.java b/src/main/java/com/rootly/client/model/UpdateCodaPageTaskParams.java index e5189c96..3e502959 100644 --- a/src/main/java/com/rootly/client/model/UpdateCodaPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateCodaPageTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateCodaPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCodaPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroup.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroup.java index 1bc383f2..91206356 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroup.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroup.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupData.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupData.java index 5d712db4..40670b82 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupData.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupData.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributes.java index 4f668ad2..08024621 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributes.java @@ -53,7 +53,7 @@ /** * UpdateCommunicationsGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsGroupDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java index b98856a1..ba96e79d 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsGroupDataAttributesCommunicationExternalGroupMembersInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java index 97233cb2..37521d8e 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsGroupDataAttributesCommunicationGroupConditionsInner.java @@ -51,7 +51,7 @@ /** * UpdateCommunicationsGroupDataAttributesCommunicationGroupConditionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsGroupDataAttributesCommunicationGroupConditionsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsStage.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsStage.java index 15931f89..4ed44c04 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsStage.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsStage.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsStage */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsStage { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsStageData.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsStageData.java index 8eca30da..d1266ba0 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsStageData.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsStageData.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsStageData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsStageData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributes.java index 7a8ffe11..dbe11b9b 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributes.java @@ -49,8 +49,14 @@ /** * UpdateCommunicationsStageDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsStageDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -69,6 +75,29 @@ public class UpdateCommunicationsStageDataAttributes { public UpdateCommunicationsStageDataAttributes() { } + @Deprecated + public UpdateCommunicationsStageDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateCommunicationsStageDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -136,7 +165,8 @@ public boolean equals(Object o) { return false; } UpdateCommunicationsStageDataAttributes updateCommunicationsStageDataAttributes = (UpdateCommunicationsStageDataAttributes) o; - return Objects.equals(this.name, updateCommunicationsStageDataAttributes.name) && + return Objects.equals(this.slug, updateCommunicationsStageDataAttributes.slug) && + Objects.equals(this.name, updateCommunicationsStageDataAttributes.name) && Objects.equals(this.description, updateCommunicationsStageDataAttributes.description) && Objects.equals(this.position, updateCommunicationsStageDataAttributes.position); } @@ -147,7 +177,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position); + return Objects.hash(slug, name, description, position); } private static int hashCodeNullable(JsonNullable a) { @@ -161,6 +191,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCommunicationsStageDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -186,6 +217,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); @@ -215,6 +247,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplate.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplate.java index bef336f7..7effa816 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplate.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplate.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateData.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateData.java index d031e684..15344374 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateData.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateData.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsTemplateData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributes.java index 77e956a9..5745932e 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributes.java @@ -52,7 +52,7 @@ /** * UpdateCommunicationsTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsTemplateDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java index fedc0d35..8d535db5 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsTemplateDataAttributesCommunicationTemplateStagesAttributesInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsType.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsType.java index d2feeeb7..fd91efd5 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsType.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsType.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsType */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsType { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeData.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeData.java index 910e519d..4711adc8 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeData.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeData.java @@ -49,7 +49,7 @@ /** * UpdateCommunicationsTypeData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsTypeData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributes.java index 92275361..6905632f 100644 --- a/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributes.java @@ -49,8 +49,14 @@ /** * UpdateCommunicationsTypeDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCommunicationsTypeDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -74,6 +80,29 @@ public class UpdateCommunicationsTypeDataAttributes { public UpdateCommunicationsTypeDataAttributes() { } + @Deprecated + public UpdateCommunicationsTypeDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateCommunicationsTypeDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -160,7 +189,8 @@ public boolean equals(Object o) { return false; } UpdateCommunicationsTypeDataAttributes updateCommunicationsTypeDataAttributes = (UpdateCommunicationsTypeDataAttributes) o; - return Objects.equals(this.name, updateCommunicationsTypeDataAttributes.name) && + return Objects.equals(this.slug, updateCommunicationsTypeDataAttributes.slug) && + Objects.equals(this.name, updateCommunicationsTypeDataAttributes.name) && Objects.equals(this.description, updateCommunicationsTypeDataAttributes.description) && Objects.equals(this.color, updateCommunicationsTypeDataAttributes.color) && Objects.equals(this.position, updateCommunicationsTypeDataAttributes.position); @@ -172,7 +202,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, color, position); + return Objects.hash(slug, name, description, color, position); } private static int hashCodeNullable(JsonNullable a) { @@ -186,6 +216,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCommunicationsTypeDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); @@ -212,6 +243,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("color"); @@ -242,6 +274,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParams.java b/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParams.java index fc584fe2..0cd5862d 100644 --- a/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParams.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateConfluencePageTaskParamsIntegration; import com.rootly.client.model.UpdateConfluencePageTaskParamsTemplate; import java.io.IOException; import java.util.Arrays; @@ -49,7 +50,7 @@ /** * UpdateConfluencePageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateConfluencePageTaskParams { /** * Gets or Sets taskType @@ -106,6 +107,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private TaskTypeEnum taskType; + public static final String SERIALIZED_NAME_INTEGRATION = "integration"; + @SerializedName(SERIALIZED_NAME_INTEGRATION) + @jakarta.annotation.Nullable + private CreateConfluencePageTaskParamsIntegration integration; + public static final String SERIALIZED_NAME_FILE_ID = "file_id"; @SerializedName(SERIALIZED_NAME_FILE_ID) @jakarta.annotation.Nonnull @@ -131,6 +137,21 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private UpdateConfluencePageTaskParamsTemplate template; + public static final String SERIALIZED_NAME_INCLUDE_OVERVIEW = "include_overview"; + @SerializedName(SERIALIZED_NAME_INCLUDE_OVERVIEW) + @jakarta.annotation.Nullable + private Boolean includeOverview = true; + + public static final String SERIALIZED_NAME_INCLUDE_TIMELINE = "include_timeline"; + @SerializedName(SERIALIZED_NAME_INCLUDE_TIMELINE) + @jakarta.annotation.Nullable + private Boolean includeTimeline = true; + + public static final String SERIALIZED_NAME_INCLUDE_FOLLOW_UPS = "include_follow_ups"; + @SerializedName(SERIALIZED_NAME_INCLUDE_FOLLOW_UPS) + @jakarta.annotation.Nullable + private Boolean includeFollowUps = true; + public UpdateConfluencePageTaskParams() { } @@ -153,6 +174,25 @@ public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { } + public UpdateConfluencePageTaskParams integration(@jakarta.annotation.Nullable CreateConfluencePageTaskParamsIntegration integration) { + this.integration = integration; + return this; + } + + /** + * Get integration + * @return integration + */ + @jakarta.annotation.Nullable + public CreateConfluencePageTaskParamsIntegration getIntegration() { + return integration; + } + + public void setIntegration(@jakarta.annotation.Nullable CreateConfluencePageTaskParamsIntegration integration) { + this.integration = integration; + } + + public UpdateConfluencePageTaskParams fileId(@jakarta.annotation.Nonnull String fileId) { this.fileId = fileId; return this; @@ -248,6 +288,63 @@ public void setTemplate(@jakarta.annotation.Nullable UpdateConfluencePageTaskPar } + public UpdateConfluencePageTaskParams includeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + return this; + } + + /** + * Get includeOverview + * @return includeOverview + */ + @jakarta.annotation.Nullable + public Boolean getIncludeOverview() { + return includeOverview; + } + + public void setIncludeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + } + + + public UpdateConfluencePageTaskParams includeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + return this; + } + + /** + * Get includeTimeline + * @return includeTimeline + */ + @jakarta.annotation.Nullable + public Boolean getIncludeTimeline() { + return includeTimeline; + } + + public void setIncludeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + } + + + public UpdateConfluencePageTaskParams includeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + return this; + } + + /** + * Get includeFollowUps + * @return includeFollowUps + */ + @jakarta.annotation.Nullable + public Boolean getIncludeFollowUps() { + return includeFollowUps; + } + + public void setIncludeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + } + + @Override public boolean equals(Object o) { @@ -259,16 +356,20 @@ public boolean equals(Object o) { } UpdateConfluencePageTaskParams updateConfluencePageTaskParams = (UpdateConfluencePageTaskParams) o; return Objects.equals(this.taskType, updateConfluencePageTaskParams.taskType) && + Objects.equals(this.integration, updateConfluencePageTaskParams.integration) && Objects.equals(this.fileId, updateConfluencePageTaskParams.fileId) && Objects.equals(this.title, updateConfluencePageTaskParams.title) && Objects.equals(this.content, updateConfluencePageTaskParams.content) && Objects.equals(this.postMortemTemplateId, updateConfluencePageTaskParams.postMortemTemplateId) && - Objects.equals(this.template, updateConfluencePageTaskParams.template); + Objects.equals(this.template, updateConfluencePageTaskParams.template) && + Objects.equals(this.includeOverview, updateConfluencePageTaskParams.includeOverview) && + Objects.equals(this.includeTimeline, updateConfluencePageTaskParams.includeTimeline) && + Objects.equals(this.includeFollowUps, updateConfluencePageTaskParams.includeFollowUps); } @Override public int hashCode() { - return Objects.hash(taskType, fileId, title, content, postMortemTemplateId, template); + return Objects.hash(taskType, integration, fileId, title, content, postMortemTemplateId, template, includeOverview, includeTimeline, includeFollowUps); } @Override @@ -276,11 +377,15 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateConfluencePageTaskParams {\n"); sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" integration: ").append(toIndentedString(integration)).append("\n"); sb.append(" fileId: ").append(toIndentedString(fileId)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" content: ").append(toIndentedString(content)).append("\n"); sb.append(" postMortemTemplateId: ").append(toIndentedString(postMortemTemplateId)).append("\n"); sb.append(" template: ").append(toIndentedString(template)).append("\n"); + sb.append(" includeOverview: ").append(toIndentedString(includeOverview)).append("\n"); + sb.append(" includeTimeline: ").append(toIndentedString(includeTimeline)).append("\n"); + sb.append(" includeFollowUps: ").append(toIndentedString(includeFollowUps)).append("\n"); sb.append("}"); return sb.toString(); } @@ -304,11 +409,15 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("task_type"); + openapiFields.add("integration"); openapiFields.add("file_id"); openapiFields.add("title"); openapiFields.add("content"); openapiFields.add("post_mortem_template_id"); openapiFields.add("template"); + openapiFields.add("include_overview"); + openapiFields.add("include_timeline"); + openapiFields.add("include_follow_ups"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -350,6 +459,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); } + // validate the optional field `integration` + if (jsonObj.get("integration") != null && !jsonObj.get("integration").isJsonNull()) { + CreateConfluencePageTaskParamsIntegration.validateJsonElement(jsonObj.get("integration")); + } if (!jsonObj.get("file_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `file_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("file_id").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTemplate.java b/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTemplate.java index 94ee3dce..b673c996 100644 --- a/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTemplate.java +++ b/src/main/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTemplate.java @@ -48,7 +48,7 @@ /** * The Confluence template to use */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateConfluencePageTaskParamsTemplate { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateCustomField.java b/src/main/java/com/rootly/client/model/UpdateCustomField.java index 86697d22..9c69173a 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomField.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomField.java @@ -49,7 +49,7 @@ /** * UpdateCustomField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCustomFieldData.java b/src/main/java/com/rootly/client/model/UpdateCustomFieldData.java index bf509585..1a49d86d 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomFieldData.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomFieldData.java @@ -49,7 +49,7 @@ /** * UpdateCustomFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomFieldData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCustomFieldDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCustomFieldDataAttributes.java index 0bccb2ae..2810b4a1 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomFieldDataAttributes.java @@ -51,18 +51,13 @@ /** * UpdateCustomFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomFieldDataAttributes { public static final String SERIALIZED_NAME_LABEL = "label"; @SerializedName(SERIALIZED_NAME_LABEL) @jakarta.annotation.Nullable private String label; - public static final String SERIALIZED_NAME_SLUG = "slug"; - @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nullable - private String slug; - public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -236,25 +231,6 @@ public void setLabel(@jakarta.annotation.Nullable String label) { } - public UpdateCustomFieldDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - - /** - * The slug of the custom_field - * @return slug - */ - @jakarta.annotation.Nullable - public String getSlug() { - return slug; - } - - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } - - public UpdateCustomFieldDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; @@ -377,7 +353,6 @@ public boolean equals(Object o) { } UpdateCustomFieldDataAttributes updateCustomFieldDataAttributes = (UpdateCustomFieldDataAttributes) o; return Objects.equals(this.label, updateCustomFieldDataAttributes.label) && - Objects.equals(this.slug, updateCustomFieldDataAttributes.slug) && Objects.equals(this.description, updateCustomFieldDataAttributes.description) && Objects.equals(this.shown, updateCustomFieldDataAttributes.shown) && Objects.equals(this.required, updateCustomFieldDataAttributes.required) && @@ -391,7 +366,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(label, slug, description, shown, required, _default, position); + return Objects.hash(label, description, shown, required, _default, position); } private static int hashCodeNullable(JsonNullable a) { @@ -406,7 +381,6 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCustomFieldDataAttributes {\n"); sb.append(" label: ").append(toIndentedString(label)).append("\n"); - sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" shown: ").append(toIndentedString(shown)).append("\n"); sb.append(" required: ").append(toIndentedString(required)).append("\n"); @@ -435,7 +409,6 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("label"); - openapiFields.add("slug"); openapiFields.add("description"); openapiFields.add("shown"); openapiFields.add("required"); @@ -470,9 +443,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("label") != null && !jsonObj.get("label").isJsonNull()) && !jsonObj.get("label").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `label` to be a primitive type in the JSON string but got `%s`", jsonObj.get("label").toString())); } - if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); - } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateCustomFieldOption.java b/src/main/java/com/rootly/client/model/UpdateCustomFieldOption.java index 28de5368..68d99f28 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomFieldOption.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomFieldOption.java @@ -49,7 +49,7 @@ /** * UpdateCustomFieldOption */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomFieldOption { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionData.java b/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionData.java index 637d3d17..4082a27b 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionData.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionData.java @@ -49,7 +49,7 @@ /** * UpdateCustomFieldOptionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomFieldOptionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionDataAttributes.java index 98dff6b9..e2c03417 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomFieldOptionDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateCustomFieldOptionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomFieldOptionDataAttributes { public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) diff --git a/src/main/java/com/rootly/client/model/UpdateCustomForm.java b/src/main/java/com/rootly/client/model/UpdateCustomForm.java index 34b2247f..c3ce3f7b 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomForm.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomForm.java @@ -49,7 +49,7 @@ /** * UpdateCustomForm */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomForm { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateCustomFormData.java b/src/main/java/com/rootly/client/model/UpdateCustomFormData.java index b844c246..cc83a53c 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomFormData.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomFormData.java @@ -49,7 +49,7 @@ /** * UpdateCustomFormData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomFormData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateCustomFormDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateCustomFormDataAttributes.java index 77c5199a..c18b9c35 100644 --- a/src/main/java/com/rootly/client/model/UpdateCustomFormDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateCustomFormDataAttributes.java @@ -49,18 +49,19 @@ /** * UpdateCustomFormDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateCustomFormDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nullable - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -79,41 +80,45 @@ public class UpdateCustomFormDataAttributes { public UpdateCustomFormDataAttributes() { } - public UpdateCustomFormDataAttributes name(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public UpdateCustomFormDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * The name of the custom form. - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable - public String getName() { - return name; + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public UpdateCustomFormDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public UpdateCustomFormDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; return this; } /** - * The custom form slug. Add this to form_field.shown or form_field.required to associate form fields with custom forms. - * @return slug + * The name of the custom form. + * @return name */ @jakarta.annotation.Nullable - public String getSlug() { - return slug; + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; } @@ -184,8 +189,8 @@ public boolean equals(Object o) { return false; } UpdateCustomFormDataAttributes updateCustomFormDataAttributes = (UpdateCustomFormDataAttributes) o; - return Objects.equals(this.name, updateCustomFormDataAttributes.name) && - Objects.equals(this.slug, updateCustomFormDataAttributes.slug) && + return Objects.equals(this.slug, updateCustomFormDataAttributes.slug) && + Objects.equals(this.name, updateCustomFormDataAttributes.name) && Objects.equals(this.description, updateCustomFormDataAttributes.description) && Objects.equals(this.enabled, updateCustomFormDataAttributes.enabled) && Objects.equals(this.command, updateCustomFormDataAttributes.command); @@ -197,7 +202,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, enabled, command); + return Objects.hash(slug, name, description, enabled, command); } private static int hashCodeNullable(JsonNullable a) { @@ -211,8 +216,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateCustomFormDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" command: ").append(toIndentedString(command)).append("\n"); @@ -238,8 +243,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("enabled"); openapiFields.add("command"); @@ -269,12 +274,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateDashboard.java b/src/main/java/com/rootly/client/model/UpdateDashboard.java index 57df6942..dceeee65 100644 --- a/src/main/java/com/rootly/client/model/UpdateDashboard.java +++ b/src/main/java/com/rootly/client/model/UpdateDashboard.java @@ -49,7 +49,7 @@ /** * UpdateDashboard */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDashboard { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateDashboardData.java b/src/main/java/com/rootly/client/model/UpdateDashboardData.java index f35af7a7..69c97763 100644 --- a/src/main/java/com/rootly/client/model/UpdateDashboardData.java +++ b/src/main/java/com/rootly/client/model/UpdateDashboardData.java @@ -49,7 +49,7 @@ /** * UpdateDashboardData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDashboardData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateDashboardDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateDashboardDataAttributes.java index fc8e071a..b8dc38d0 100644 --- a/src/main/java/com/rootly/client/model/UpdateDashboardDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateDashboardDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateDashboardDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDashboardDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateDashboardPanel.java b/src/main/java/com/rootly/client/model/UpdateDashboardPanel.java index 081e6fd5..3d32e022 100644 --- a/src/main/java/com/rootly/client/model/UpdateDashboardPanel.java +++ b/src/main/java/com/rootly/client/model/UpdateDashboardPanel.java @@ -49,7 +49,7 @@ /** * UpdateDashboardPanel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDashboardPanel { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateDashboardPanelData.java b/src/main/java/com/rootly/client/model/UpdateDashboardPanelData.java index b2fe7116..46dce13d 100644 --- a/src/main/java/com/rootly/client/model/UpdateDashboardPanelData.java +++ b/src/main/java/com/rootly/client/model/UpdateDashboardPanelData.java @@ -49,7 +49,7 @@ /** * UpdateDashboardPanelData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDashboardPanelData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateDashboardPanelDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateDashboardPanelDataAttributes.java index 1e991430..e92e0990 100644 --- a/src/main/java/com/rootly/client/model/UpdateDashboardPanelDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateDashboardPanelDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateDashboardPanelDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDashboardPanelDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParams.java b/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParams.java index 469dfa56..cebd8811 100644 --- a/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateDatadogNotebookTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDatadogNotebookTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParamsTemplate.java b/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParamsTemplate.java index 9cab33ad..9df7463b 100644 --- a/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParamsTemplate.java +++ b/src/main/java/com/rootly/client/model/UpdateDatadogNotebookTaskParamsTemplate.java @@ -48,7 +48,7 @@ /** * The Datadog notebook template to use */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDatadogNotebookTaskParamsTemplate { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateDropboxPaperPageTaskParams.java b/src/main/java/com/rootly/client/model/UpdateDropboxPaperPageTaskParams.java index 5f01be12..4471a2e9 100644 --- a/src/main/java/com/rootly/client/model/UpdateDropboxPaperPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateDropboxPaperPageTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateDropboxPaperPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateDropboxPaperPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnector.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnector.java index db60be49..b56ef8b7 100644 --- a/src/main/java/com/rootly/client/model/UpdateEdgeConnector.java +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnector.java @@ -19,7 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsIdPatchRequestEdgeConnector; +import com.rootly.client.model.UpdateEdgeConnectorEdgeConnector; import java.io.IOException; import java.util.Arrays; @@ -49,17 +49,17 @@ /** * UpdateEdgeConnector */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEdgeConnector { public static final String SERIALIZED_NAME_EDGE_CONNECTOR = "edge_connector"; @SerializedName(SERIALIZED_NAME_EDGE_CONNECTOR) @jakarta.annotation.Nonnull - private V1EdgeConnectorsIdPatchRequestEdgeConnector edgeConnector; + private UpdateEdgeConnectorEdgeConnector edgeConnector; public UpdateEdgeConnector() { } - public UpdateEdgeConnector edgeConnector(@jakarta.annotation.Nonnull V1EdgeConnectorsIdPatchRequestEdgeConnector edgeConnector) { + public UpdateEdgeConnector edgeConnector(@jakarta.annotation.Nonnull UpdateEdgeConnectorEdgeConnector edgeConnector) { this.edgeConnector = edgeConnector; return this; } @@ -69,11 +69,11 @@ public UpdateEdgeConnector edgeConnector(@jakarta.annotation.Nonnull V1EdgeConne * @return edgeConnector */ @jakarta.annotation.Nonnull - public V1EdgeConnectorsIdPatchRequestEdgeConnector getEdgeConnector() { + public UpdateEdgeConnectorEdgeConnector getEdgeConnector() { return edgeConnector; } - public void setEdgeConnector(@jakarta.annotation.Nonnull V1EdgeConnectorsIdPatchRequestEdgeConnector edgeConnector) { + public void setEdgeConnector(@jakarta.annotation.Nonnull UpdateEdgeConnectorEdgeConnector edgeConnector) { this.edgeConnector = edgeConnector; } @@ -159,7 +159,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `edge_connector` - V1EdgeConnectorsIdPatchRequestEdgeConnector.validateJsonElement(jsonObj.get("edge_connector")); + UpdateEdgeConnectorEdgeConnector.validateJsonElement(jsonObj.get("edge_connector")); } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorAction.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorAction.java index 4626431d..03ea2c57 100644 --- a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorAction.java +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorAction.java @@ -19,7 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction; +import com.rootly.client.model.UpdateEdgeConnectorActionRequestAction; import java.io.IOException; import java.util.Arrays; @@ -49,17 +49,17 @@ /** * UpdateEdgeConnectorAction */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEdgeConnectorAction { public static final String SERIALIZED_NAME_ACTION = "action"; @SerializedName(SERIALIZED_NAME_ACTION) @jakarta.annotation.Nonnull - private V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction action; + private UpdateEdgeConnectorActionRequestAction action; public UpdateEdgeConnectorAction() { } - public UpdateEdgeConnectorAction action(@jakarta.annotation.Nonnull V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction action) { + public UpdateEdgeConnectorAction action(@jakarta.annotation.Nonnull UpdateEdgeConnectorActionRequestAction action) { this.action = action; return this; } @@ -69,11 +69,11 @@ public UpdateEdgeConnectorAction action(@jakarta.annotation.Nonnull V1EdgeConnec * @return action */ @jakarta.annotation.Nonnull - public V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction getAction() { + public UpdateEdgeConnectorActionRequestAction getAction() { return action; } - public void setAction(@jakarta.annotation.Nonnull V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction action) { + public void setAction(@jakarta.annotation.Nonnull UpdateEdgeConnectorActionRequestAction action) { this.action = action; } @@ -159,7 +159,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `action` - V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction.validateJsonElement(jsonObj.get("action")); + UpdateEdgeConnectorActionRequestAction.validateJsonElement(jsonObj.get("action")); } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequest.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequest.java index bf964173..d3c9d7db 100644 --- a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequest.java +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequest.java @@ -49,17 +49,17 @@ /** * UpdateEdgeConnectorActionRequest */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEdgeConnectorActionRequest { public static final String SERIALIZED_NAME_ACTION = "action"; @SerializedName(SERIALIZED_NAME_ACTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UpdateEdgeConnectorActionRequestAction action; public UpdateEdgeConnectorActionRequest() { } - public UpdateEdgeConnectorActionRequest action(@javax.annotation.Nullable UpdateEdgeConnectorActionRequestAction action) { + public UpdateEdgeConnectorActionRequest action(@jakarta.annotation.Nullable UpdateEdgeConnectorActionRequestAction action) { this.action = action; return this; } @@ -68,12 +68,12 @@ public UpdateEdgeConnectorActionRequest action(@javax.annotation.Nullable Update * Get action * @return action */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UpdateEdgeConnectorActionRequestAction getAction() { return action; } - public void setAction(@javax.annotation.Nullable UpdateEdgeConnectorActionRequestAction action) { + public void setAction(@jakarta.annotation.Nullable UpdateEdgeConnectorActionRequestAction action) { this.action = action; } diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequestAction.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequestAction.java index c9feecfb..6a16a22e 100644 --- a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequestAction.java +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorActionRequestAction.java @@ -48,11 +48,11 @@ /** * UpdateEdgeConnectorActionRequestAction */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEdgeConnectorActionRequestAction { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; /** @@ -109,18 +109,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ACTION_TYPE = "action_type"; @SerializedName(SERIALIZED_NAME_ACTION_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private ActionTypeEnum actionType; public static final String SERIALIZED_NAME_METADATA = "metadata"; @SerializedName(SERIALIZED_NAME_METADATA) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Object metadata; public UpdateEdgeConnectorActionRequestAction() { } - public UpdateEdgeConnectorActionRequestAction name(@javax.annotation.Nullable String name) { + public UpdateEdgeConnectorActionRequestAction name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -129,17 +129,17 @@ public UpdateEdgeConnectorActionRequestAction name(@javax.annotation.Nullable St * Get name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public UpdateEdgeConnectorActionRequestAction actionType(@javax.annotation.Nullable ActionTypeEnum actionType) { + public UpdateEdgeConnectorActionRequestAction actionType(@jakarta.annotation.Nullable ActionTypeEnum actionType) { this.actionType = actionType; return this; } @@ -148,17 +148,17 @@ public UpdateEdgeConnectorActionRequestAction actionType(@javax.annotation.Nulla * Get actionType * @return actionType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public ActionTypeEnum getActionType() { return actionType; } - public void setActionType(@javax.annotation.Nullable ActionTypeEnum actionType) { + public void setActionType(@jakarta.annotation.Nullable ActionTypeEnum actionType) { this.actionType = actionType; } - public UpdateEdgeConnectorActionRequestAction metadata(@javax.annotation.Nullable Object metadata) { + public UpdateEdgeConnectorActionRequestAction metadata(@jakarta.annotation.Nullable Object metadata) { this.metadata = metadata; return this; } @@ -167,12 +167,12 @@ public UpdateEdgeConnectorActionRequestAction metadata(@javax.annotation.Nullabl * Get metadata * @return metadata */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Object getMetadata() { return metadata; } - public void setMetadata(@javax.annotation.Nullable Object metadata) { + public void setMetadata(@jakarta.annotation.Nullable Object metadata) { this.metadata = metadata; } diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnector.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnector.java new file mode 100644 index 00000000..b9dc7d33 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnector.java @@ -0,0 +1,363 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateEdgeConnectorEdgeConnector + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateEdgeConnectorEdgeConnector { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + /** + * Gets or Sets status + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + ACTIVE("active"), + + PAUSED("paused"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nullable + private StatusEnum status; + + public static final String SERIALIZED_NAME_SUBSCRIPTIONS = "subscriptions"; + @SerializedName(SERIALIZED_NAME_SUBSCRIPTIONS) + @jakarta.annotation.Nullable + private List subscriptions = new ArrayList<>(); + + public UpdateEdgeConnectorEdgeConnector() { + } + + public UpdateEdgeConnectorEdgeConnector name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Get name + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public UpdateEdgeConnectorEdgeConnector description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Get description + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public UpdateEdgeConnectorEdgeConnector status(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + return this; + } + + /** + * Get status + * @return status + */ + @jakarta.annotation.Nullable + public StatusEnum getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { + this.status = status; + } + + + public UpdateEdgeConnectorEdgeConnector subscriptions(@jakarta.annotation.Nullable List subscriptions) { + this.subscriptions = subscriptions; + return this; + } + + public UpdateEdgeConnectorEdgeConnector addSubscriptionsItem(String subscriptionsItem) { + if (this.subscriptions == null) { + this.subscriptions = new ArrayList<>(); + } + this.subscriptions.add(subscriptionsItem); + return this; + } + + /** + * Get subscriptions + * @return subscriptions + */ + @jakarta.annotation.Nullable + public List getSubscriptions() { + return subscriptions; + } + + public void setSubscriptions(@jakarta.annotation.Nullable List subscriptions) { + this.subscriptions = subscriptions; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateEdgeConnectorEdgeConnector updateEdgeConnectorEdgeConnector = (UpdateEdgeConnectorEdgeConnector) o; + return Objects.equals(this.name, updateEdgeConnectorEdgeConnector.name) && + Objects.equals(this.description, updateEdgeConnectorEdgeConnector.description) && + Objects.equals(this.status, updateEdgeConnectorEdgeConnector.status) && + Objects.equals(this.subscriptions, updateEdgeConnectorEdgeConnector.subscriptions); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, status, subscriptions); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateEdgeConnectorEdgeConnector {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" subscriptions: ").append(toIndentedString(subscriptions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("status"); + openapiFields.add("subscriptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateEdgeConnectorEdgeConnector + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateEdgeConnectorEdgeConnector.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateEdgeConnectorEdgeConnector is not found in the empty JSON string", UpdateEdgeConnectorEdgeConnector.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateEdgeConnectorEdgeConnector.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateEdgeConnectorEdgeConnector` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the optional field `status` + if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { + StatusEnum.validateJsonElement(jsonObj.get("status")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("subscriptions") != null && !jsonObj.get("subscriptions").isJsonNull() && !jsonObj.get("subscriptions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `subscriptions` to be an array in the JSON string but got `%s`", jsonObj.get("subscriptions").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateEdgeConnectorEdgeConnector.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateEdgeConnectorEdgeConnector' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateEdgeConnectorEdgeConnector.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateEdgeConnectorEdgeConnector value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateEdgeConnectorEdgeConnector read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateEdgeConnectorEdgeConnector given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateEdgeConnectorEdgeConnector + * @throws IOException if the JSON string is invalid with respect to UpdateEdgeConnectorEdgeConnector + */ + public static UpdateEdgeConnectorEdgeConnector fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateEdgeConnectorEdgeConnector.class); + } + + /** + * Convert an instance of UpdateEdgeConnectorEdgeConnector to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequest.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequest.java index cbc0d26f..31c47d06 100644 --- a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequest.java +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequest.java @@ -49,17 +49,17 @@ /** * UpdateEdgeConnectorRequest */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEdgeConnectorRequest { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UpdateEdgeConnectorRequestData data; public UpdateEdgeConnectorRequest() { } - public UpdateEdgeConnectorRequest data(@javax.annotation.Nullable UpdateEdgeConnectorRequestData data) { + public UpdateEdgeConnectorRequest data(@jakarta.annotation.Nullable UpdateEdgeConnectorRequestData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public UpdateEdgeConnectorRequest data(@javax.annotation.Nullable UpdateEdgeConn * Get data * @return data */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UpdateEdgeConnectorRequestData getData() { return data; } - public void setData(@javax.annotation.Nullable UpdateEdgeConnectorRequestData data) { + public void setData(@jakarta.annotation.Nullable UpdateEdgeConnectorRequestData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestData.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestData.java index e367a219..38e12344 100644 --- a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestData.java +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestData.java @@ -49,7 +49,7 @@ /** * UpdateEdgeConnectorRequestData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEdgeConnectorRequestData { /** * Gets or Sets type @@ -103,23 +103,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private TypeEnum type; public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UpdateEdgeConnectorRequestDataAttributes attributes; public UpdateEdgeConnectorRequestData() { } - public UpdateEdgeConnectorRequestData type(@javax.annotation.Nullable TypeEnum type) { + public UpdateEdgeConnectorRequestData type(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; return this; } @@ -128,17 +128,17 @@ public UpdateEdgeConnectorRequestData type(@javax.annotation.Nullable TypeEnum t * Get type * @return type */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nullable TypeEnum type) { this.type = type; } - public UpdateEdgeConnectorRequestData id(@javax.annotation.Nullable String id) { + public UpdateEdgeConnectorRequestData id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -147,17 +147,17 @@ public UpdateEdgeConnectorRequestData id(@javax.annotation.Nullable String id) { * Get id * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public UpdateEdgeConnectorRequestData attributes(@javax.annotation.Nullable UpdateEdgeConnectorRequestDataAttributes attributes) { + public UpdateEdgeConnectorRequestData attributes(@jakarta.annotation.Nullable UpdateEdgeConnectorRequestDataAttributes attributes) { this.attributes = attributes; return this; } @@ -166,12 +166,12 @@ public UpdateEdgeConnectorRequestData attributes(@javax.annotation.Nullable Upda * Get attributes * @return attributes */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UpdateEdgeConnectorRequestDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nullable UpdateEdgeConnectorRequestDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nullable UpdateEdgeConnectorRequestDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributes.java index 1fb3b447..26e771b3 100644 --- a/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributes.java @@ -50,16 +50,16 @@ /** * UpdateEdgeConnectorRequestDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEdgeConnectorRequestDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; /** @@ -116,18 +116,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private StatusEnum status; public static final String SERIALIZED_NAME_SUBSCRIPTIONS = "subscriptions"; @SerializedName(SERIALIZED_NAME_SUBSCRIPTIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List subscriptions = new ArrayList<>(); + public static final String SERIALIZED_NAME_FILTERS = "filters"; + @SerializedName(SERIALIZED_NAME_FILTERS) + @jakarta.annotation.Nullable + private Object filters; + public UpdateEdgeConnectorRequestDataAttributes() { } - public UpdateEdgeConnectorRequestDataAttributes name(@javax.annotation.Nullable String name) { + public UpdateEdgeConnectorRequestDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -136,17 +141,17 @@ public UpdateEdgeConnectorRequestDataAttributes name(@javax.annotation.Nullable * Get name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public UpdateEdgeConnectorRequestDataAttributes description(@javax.annotation.Nullable String description) { + public UpdateEdgeConnectorRequestDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -155,17 +160,17 @@ public UpdateEdgeConnectorRequestDataAttributes description(@javax.annotation.Nu * Get description * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public UpdateEdgeConnectorRequestDataAttributes status(@javax.annotation.Nullable StatusEnum status) { + public UpdateEdgeConnectorRequestDataAttributes status(@jakarta.annotation.Nullable StatusEnum status) { this.status = status; return this; } @@ -174,17 +179,17 @@ public UpdateEdgeConnectorRequestDataAttributes status(@javax.annotation.Nullabl * Get status * @return status */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public StatusEnum getStatus() { return status; } - public void setStatus(@javax.annotation.Nullable StatusEnum status) { + public void setStatus(@jakarta.annotation.Nullable StatusEnum status) { this.status = status; } - public UpdateEdgeConnectorRequestDataAttributes subscriptions(@javax.annotation.Nullable List subscriptions) { + public UpdateEdgeConnectorRequestDataAttributes subscriptions(@jakarta.annotation.Nullable List subscriptions) { this.subscriptions = subscriptions; return this; } @@ -201,16 +206,35 @@ public UpdateEdgeConnectorRequestDataAttributes addSubscriptionsItem(String subs * Get subscriptions * @return subscriptions */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getSubscriptions() { return subscriptions; } - public void setSubscriptions(@javax.annotation.Nullable List subscriptions) { + public void setSubscriptions(@jakarta.annotation.Nullable List subscriptions) { this.subscriptions = subscriptions; } + public UpdateEdgeConnectorRequestDataAttributes filters(@jakarta.annotation.Nullable Object filters) { + this.filters = filters; + return this; + } + + /** + * Event filters + * @return filters + */ + @jakarta.annotation.Nullable + public Object getFilters() { + return filters; + } + + public void setFilters(@jakarta.annotation.Nullable Object filters) { + this.filters = filters; + } + + @Override public boolean equals(Object o) { @@ -224,12 +248,13 @@ public boolean equals(Object o) { return Objects.equals(this.name, updateEdgeConnectorRequestDataAttributes.name) && Objects.equals(this.description, updateEdgeConnectorRequestDataAttributes.description) && Objects.equals(this.status, updateEdgeConnectorRequestDataAttributes.status) && - Objects.equals(this.subscriptions, updateEdgeConnectorRequestDataAttributes.subscriptions); + Objects.equals(this.subscriptions, updateEdgeConnectorRequestDataAttributes.subscriptions) && + Objects.equals(this.filters, updateEdgeConnectorRequestDataAttributes.filters); } @Override public int hashCode() { - return Objects.hash(name, description, status, subscriptions); + return Objects.hash(name, description, status, subscriptions, filters); } @Override @@ -240,6 +265,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" subscriptions: ").append(toIndentedString(subscriptions)).append("\n"); + sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); sb.append("}"); return sb.toString(); } @@ -266,6 +292,7 @@ private String toIndentedString(Object o) { openapiFields.add("description"); openapiFields.add("status"); openapiFields.add("subscriptions"); + openapiFields.add("filters"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/UpdateEnvironment.java b/src/main/java/com/rootly/client/model/UpdateEnvironment.java index a125acaa..3c8a2994 100644 --- a/src/main/java/com/rootly/client/model/UpdateEnvironment.java +++ b/src/main/java/com/rootly/client/model/UpdateEnvironment.java @@ -49,7 +49,7 @@ /** * UpdateEnvironment */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEnvironment { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateEnvironmentData.java b/src/main/java/com/rootly/client/model/UpdateEnvironmentData.java index 5a0f5735..187f014d 100644 --- a/src/main/java/com/rootly/client/model/UpdateEnvironmentData.java +++ b/src/main/java/com/rootly/client/model/UpdateEnvironmentData.java @@ -49,7 +49,7 @@ /** * UpdateEnvironmentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEnvironmentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateEnvironmentDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateEnvironmentDataAttributes.java index fe688197..7e3236bb 100644 --- a/src/main/java/com/rootly/client/model/UpdateEnvironmentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateEnvironmentDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,8 +54,14 @@ /** * UpdateEnvironmentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEnvironmentDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -65,6 +72,11 @@ public class UpdateEnvironmentDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_COLOR = "color"; @SerializedName(SERIALIZED_NAME_COLOR) @jakarta.annotation.Nullable @@ -75,6 +87,11 @@ public class UpdateEnvironmentDataAttributes { @jakarta.annotation.Nullable private Integer position; + public static final String SERIALIZED_NAME_EXTERNAL_ID = "external_id"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_ID) + @jakarta.annotation.Nullable + private String externalId; + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) @jakarta.annotation.Nullable @@ -90,9 +107,37 @@ public class UpdateEnvironmentDataAttributes { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public UpdateEnvironmentDataAttributes() { } + @Deprecated + public UpdateEnvironmentDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateEnvironmentDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -131,6 +176,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public UpdateEnvironmentDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the environment + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public UpdateEnvironmentDataAttributes color(@jakarta.annotation.Nullable String color) { this.color = color; return this; @@ -169,6 +233,25 @@ public void setPosition(@jakarta.annotation.Nullable Integer position) { } + public UpdateEnvironmentDataAttributes externalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + return this; + } + + /** + * The external id associated to this environment + * @return externalId + */ + @jakarta.annotation.Nullable + public String getExternalId() { + return externalId; + } + + public void setExternalId(@jakarta.annotation.Nullable String externalId) { + this.externalId = externalId; + } + + public UpdateEnvironmentDataAttributes notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { this.notifyEmails = notifyEmails; return this; @@ -250,6 +333,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public UpdateEnvironmentDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this environment. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -260,13 +370,17 @@ public boolean equals(Object o) { return false; } UpdateEnvironmentDataAttributes updateEnvironmentDataAttributes = (UpdateEnvironmentDataAttributes) o; - return Objects.equals(this.name, updateEnvironmentDataAttributes.name) && + return Objects.equals(this.slug, updateEnvironmentDataAttributes.slug) && + Objects.equals(this.name, updateEnvironmentDataAttributes.name) && Objects.equals(this.description, updateEnvironmentDataAttributes.description) && + Objects.equals(this.publicDescription, updateEnvironmentDataAttributes.publicDescription) && Objects.equals(this.color, updateEnvironmentDataAttributes.color) && Objects.equals(this.position, updateEnvironmentDataAttributes.position) && + Objects.equals(this.externalId, updateEnvironmentDataAttributes.externalId) && Objects.equals(this.notifyEmails, updateEnvironmentDataAttributes.notifyEmails) && Objects.equals(this.slackChannels, updateEnvironmentDataAttributes.slackChannels) && - Objects.equals(this.slackAliases, updateEnvironmentDataAttributes.slackAliases); + Objects.equals(this.slackAliases, updateEnvironmentDataAttributes.slackAliases) && + Objects.equals(this.properties, updateEnvironmentDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -275,7 +389,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, color, position, notifyEmails, slackChannels, slackAliases); + return Objects.hash(slug, name, description, publicDescription, color, position, externalId, notifyEmails, slackChannels, slackAliases, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -289,13 +403,17 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateEnvironmentDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" externalId: ").append(toIndentedString(externalId)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -318,13 +436,17 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("color"); openapiFields.add("position"); + openapiFields.add("external_id"); openapiFields.add("notify_emails"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -351,15 +473,24 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); } + if ((jsonObj.get("external_id") != null && !jsonObj.get("external_id").isJsonNull()) && !jsonObj.get("external_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `external_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("external_id").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); @@ -392,6 +523,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicy.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicy.java index 37ea719e..2c0d9c81 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicy.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicy.java @@ -49,7 +49,7 @@ /** * UpdateEscalationPolicy */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicy { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyData.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyData.java index 02f78392..55744db9 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyData.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyData.java @@ -49,7 +49,7 @@ /** * UpdateEscalationPolicyData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyDataAttributes.java index def74641..dabc5854 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyDataAttributes.java @@ -52,7 +52,7 @@ /** * UpdateEscalationPolicyDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -80,6 +80,7 @@ public class UpdateEscalationPolicyDataAttributes { private List serviceIds = new ArrayList<>(); public static final String SERIALIZED_NAME_BUSINESS_HOURS = "business_hours"; + @Deprecated @SerializedName(SERIALIZED_NAME_BUSINESS_HOURS) @jakarta.annotation.Nullable private NewEscalationPolicyDataAttributesBusinessHours businessHours; @@ -198,6 +199,7 @@ public void setServiceIds(@jakarta.annotation.Nullable List serviceIds) } + @Deprecated public UpdateEscalationPolicyDataAttributes businessHours(@jakarta.annotation.Nullable NewEscalationPolicyDataAttributesBusinessHours businessHours) { this.businessHours = businessHours; return this; @@ -206,12 +208,15 @@ public UpdateEscalationPolicyDataAttributes businessHours(@jakarta.annotation.Nu /** * Get businessHours * @return businessHours + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable public NewEscalationPolicyDataAttributesBusinessHours getBusinessHours() { return businessHours; } + @Deprecated public void setBusinessHours(@jakarta.annotation.Nullable NewEscalationPolicyDataAttributesBusinessHours businessHours) { this.businessHours = businessHours; } diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevel.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevel.java index ca95de15..a47cec71 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevel.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevel.java @@ -49,7 +49,7 @@ /** * UpdateEscalationPolicyLevel */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyLevel { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelData.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelData.java index 874cf56d..185df8dd 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelData.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelData.java @@ -49,7 +49,7 @@ /** * UpdateEscalationPolicyLevelData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyLevelData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributes.java index 69704863..ea444bc9 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributes.java @@ -52,7 +52,7 @@ /** * UpdateEscalationPolicyLevelDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyLevelDataAttributes { public static final String SERIALIZED_NAME_DELAY = "delay"; @SerializedName(SERIALIZED_NAME_DELAY) @@ -128,7 +128,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_STRATEGY = "paging_strategy_configuration_strategy"; @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_STRATEGY) @jakarta.annotation.Nullable - private PagingStrategyConfigurationStrategyEnum pagingStrategyConfigurationStrategy; + private PagingStrategyConfigurationStrategyEnum pagingStrategyConfigurationStrategy = PagingStrategyConfigurationStrategyEnum.DEFAULT; /** * Gets or Sets pagingStrategyConfigurationScheduleStrategy @@ -185,7 +185,131 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_SCHEDULE_STRATEGY = "paging_strategy_configuration_schedule_strategy"; @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_SCHEDULE_STRATEGY) @jakarta.annotation.Nullable - private PagingStrategyConfigurationScheduleStrategyEnum pagingStrategyConfigurationScheduleStrategy; + private PagingStrategyConfigurationScheduleStrategyEnum pagingStrategyConfigurationScheduleStrategy = PagingStrategyConfigurationScheduleStrategyEnum.ON_CALL_ONLY; + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS = "paging_strategy_configuration_repeats"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS) + @jakarta.annotation.Nullable + private Integer pagingStrategyConfigurationRepeats; + + /** + * Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. + */ + @JsonAdapter(PagingStrategyConfigurationRepeatsModeEnum.Adapter.class) + public enum PagingStrategyConfigurationRepeatsModeEnum { + USERS("users"), + + ALL("all"); + + private String value; + + PagingStrategyConfigurationRepeatsModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingStrategyConfigurationRepeatsModeEnum fromValue(String value) { + for (PagingStrategyConfigurationRepeatsModeEnum b : PagingStrategyConfigurationRepeatsModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingStrategyConfigurationRepeatsModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingStrategyConfigurationRepeatsModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingStrategyConfigurationRepeatsModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingStrategyConfigurationRepeatsModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS_MODE = "paging_strategy_configuration_repeats_mode"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_REPEATS_MODE) + @jakarta.annotation.Nullable + private PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode; + + /** + * Scope of rotation ordering: active rotation members only, or entire schedule. + */ + @JsonAdapter(PagingStrategyConfigurationRotationScopeEnum.Adapter.class) + public enum PagingStrategyConfigurationRotationScopeEnum { + ACTIVE_ROTATION("active_rotation"), + + ENTIRE_SCHEDULE("entire_schedule"); + + private String value; + + PagingStrategyConfigurationRotationScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingStrategyConfigurationRotationScopeEnum fromValue(String value) { + for (PagingStrategyConfigurationRotationScopeEnum b : PagingStrategyConfigurationRotationScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingStrategyConfigurationRotationScopeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingStrategyConfigurationRotationScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingStrategyConfigurationRotationScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingStrategyConfigurationRotationScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_ROTATION_SCOPE = "paging_strategy_configuration_rotation_scope"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_ROTATION_SCOPE) + @jakarta.annotation.Nullable + private PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope; + + public static final String SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_PAGE_USERS_COUNT = "paging_strategy_configuration_page_users_count"; + @SerializedName(SERIALIZED_NAME_PAGING_STRATEGY_CONFIGURATION_PAGE_USERS_COUNT) + @jakarta.annotation.Nullable + private Integer pagingStrategyConfigurationPageUsersCount; public static final String SERIALIZED_NAME_NOTIFICATION_TARGET_PARAMS = "notification_target_params"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TARGET_PARAMS) @@ -201,7 +325,7 @@ public UpdateEscalationPolicyLevelDataAttributes delay(@jakarta.annotation.Nulla } /** - * Delay before notification targets will be alerted. + * Delay before notifying targets in the next Escalation Level. * @return delay */ @jakarta.annotation.Nullable @@ -290,6 +414,82 @@ public void setPagingStrategyConfigurationScheduleStrategy(@jakarta.annotation.N } + public UpdateEscalationPolicyLevelDataAttributes pagingStrategyConfigurationRepeats(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationRepeats) { + this.pagingStrategyConfigurationRepeats = pagingStrategyConfigurationRepeats; + return this; + } + + /** + * Number of times to rotate through the roster (cycle-based round robin). + * @return pagingStrategyConfigurationRepeats + */ + @jakarta.annotation.Nullable + public Integer getPagingStrategyConfigurationRepeats() { + return pagingStrategyConfigurationRepeats; + } + + public void setPagingStrategyConfigurationRepeats(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationRepeats) { + this.pagingStrategyConfigurationRepeats = pagingStrategyConfigurationRepeats; + } + + + public UpdateEscalationPolicyLevelDataAttributes pagingStrategyConfigurationRepeatsMode(@jakarta.annotation.Nullable PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode) { + this.pagingStrategyConfigurationRepeatsMode = pagingStrategyConfigurationRepeatsMode; + return this; + } + + /** + * Controls how repeats are interpreted: 'users' pages exactly N users, 'all' pages everyone once. + * @return pagingStrategyConfigurationRepeatsMode + */ + @jakarta.annotation.Nullable + public PagingStrategyConfigurationRepeatsModeEnum getPagingStrategyConfigurationRepeatsMode() { + return pagingStrategyConfigurationRepeatsMode; + } + + public void setPagingStrategyConfigurationRepeatsMode(@jakarta.annotation.Nullable PagingStrategyConfigurationRepeatsModeEnum pagingStrategyConfigurationRepeatsMode) { + this.pagingStrategyConfigurationRepeatsMode = pagingStrategyConfigurationRepeatsMode; + } + + + public UpdateEscalationPolicyLevelDataAttributes pagingStrategyConfigurationRotationScope(@jakarta.annotation.Nullable PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope) { + this.pagingStrategyConfigurationRotationScope = pagingStrategyConfigurationRotationScope; + return this; + } + + /** + * Scope of rotation ordering: active rotation members only, or entire schedule. + * @return pagingStrategyConfigurationRotationScope + */ + @jakarta.annotation.Nullable + public PagingStrategyConfigurationRotationScopeEnum getPagingStrategyConfigurationRotationScope() { + return pagingStrategyConfigurationRotationScope; + } + + public void setPagingStrategyConfigurationRotationScope(@jakarta.annotation.Nullable PagingStrategyConfigurationRotationScopeEnum pagingStrategyConfigurationRotationScope) { + this.pagingStrategyConfigurationRotationScope = pagingStrategyConfigurationRotationScope; + } + + + public UpdateEscalationPolicyLevelDataAttributes pagingStrategyConfigurationPageUsersCount(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationPageUsersCount) { + this.pagingStrategyConfigurationPageUsersCount = pagingStrategyConfigurationPageUsersCount; + return this; + } + + /** + * Number of users to page at a time (cycle-based round robin). + * @return pagingStrategyConfigurationPageUsersCount + */ + @jakarta.annotation.Nullable + public Integer getPagingStrategyConfigurationPageUsersCount() { + return pagingStrategyConfigurationPageUsersCount; + } + + public void setPagingStrategyConfigurationPageUsersCount(@jakarta.annotation.Nullable Integer pagingStrategyConfigurationPageUsersCount) { + this.pagingStrategyConfigurationPageUsersCount = pagingStrategyConfigurationPageUsersCount; + } + + public UpdateEscalationPolicyLevelDataAttributes notificationTargetParams(@jakarta.annotation.Nullable List notificationTargetParams) { this.notificationTargetParams = notificationTargetParams; return this; @@ -332,6 +532,10 @@ public boolean equals(Object o) { Objects.equals(this.escalationPolicyPathId, updateEscalationPolicyLevelDataAttributes.escalationPolicyPathId) && Objects.equals(this.pagingStrategyConfigurationStrategy, updateEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationStrategy) && Objects.equals(this.pagingStrategyConfigurationScheduleStrategy, updateEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationScheduleStrategy) && + Objects.equals(this.pagingStrategyConfigurationRepeats, updateEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationRepeats) && + Objects.equals(this.pagingStrategyConfigurationRepeatsMode, updateEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationRepeatsMode) && + Objects.equals(this.pagingStrategyConfigurationRotationScope, updateEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationRotationScope) && + Objects.equals(this.pagingStrategyConfigurationPageUsersCount, updateEscalationPolicyLevelDataAttributes.pagingStrategyConfigurationPageUsersCount) && Objects.equals(this.notificationTargetParams, updateEscalationPolicyLevelDataAttributes.notificationTargetParams); } @@ -341,7 +545,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(delay, position, escalationPolicyPathId, pagingStrategyConfigurationStrategy, pagingStrategyConfigurationScheduleStrategy, notificationTargetParams); + return Objects.hash(delay, position, escalationPolicyPathId, pagingStrategyConfigurationStrategy, pagingStrategyConfigurationScheduleStrategy, pagingStrategyConfigurationRepeats, pagingStrategyConfigurationRepeatsMode, pagingStrategyConfigurationRotationScope, pagingStrategyConfigurationPageUsersCount, notificationTargetParams); } private static int hashCodeNullable(JsonNullable a) { @@ -360,6 +564,10 @@ public String toString() { sb.append(" escalationPolicyPathId: ").append(toIndentedString(escalationPolicyPathId)).append("\n"); sb.append(" pagingStrategyConfigurationStrategy: ").append(toIndentedString(pagingStrategyConfigurationStrategy)).append("\n"); sb.append(" pagingStrategyConfigurationScheduleStrategy: ").append(toIndentedString(pagingStrategyConfigurationScheduleStrategy)).append("\n"); + sb.append(" pagingStrategyConfigurationRepeats: ").append(toIndentedString(pagingStrategyConfigurationRepeats)).append("\n"); + sb.append(" pagingStrategyConfigurationRepeatsMode: ").append(toIndentedString(pagingStrategyConfigurationRepeatsMode)).append("\n"); + sb.append(" pagingStrategyConfigurationRotationScope: ").append(toIndentedString(pagingStrategyConfigurationRotationScope)).append("\n"); + sb.append(" pagingStrategyConfigurationPageUsersCount: ").append(toIndentedString(pagingStrategyConfigurationPageUsersCount)).append("\n"); sb.append(" notificationTargetParams: ").append(toIndentedString(notificationTargetParams)).append("\n"); sb.append("}"); return sb.toString(); @@ -388,6 +596,10 @@ private String toIndentedString(Object o) { openapiFields.add("escalation_policy_path_id"); openapiFields.add("paging_strategy_configuration_strategy"); openapiFields.add("paging_strategy_configuration_schedule_strategy"); + openapiFields.add("paging_strategy_configuration_repeats"); + openapiFields.add("paging_strategy_configuration_repeats_mode"); + openapiFields.add("paging_strategy_configuration_rotation_scope"); + openapiFields.add("paging_strategy_configuration_page_users_count"); openapiFields.add("notification_target_params"); // a set of required properties/fields (JSON key names) @@ -432,6 +644,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("paging_strategy_configuration_schedule_strategy") != null && !jsonObj.get("paging_strategy_configuration_schedule_strategy").isJsonNull()) { PagingStrategyConfigurationScheduleStrategyEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_schedule_strategy")); } + if ((jsonObj.get("paging_strategy_configuration_repeats_mode") != null && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonNull()) && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_strategy_configuration_repeats_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("paging_strategy_configuration_repeats_mode").toString())); + } + // validate the optional field `paging_strategy_configuration_repeats_mode` + if (jsonObj.get("paging_strategy_configuration_repeats_mode") != null && !jsonObj.get("paging_strategy_configuration_repeats_mode").isJsonNull()) { + PagingStrategyConfigurationRepeatsModeEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_repeats_mode")); + } + if ((jsonObj.get("paging_strategy_configuration_rotation_scope") != null && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonNull()) && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_strategy_configuration_rotation_scope` to be a primitive type in the JSON string but got `%s`", jsonObj.get("paging_strategy_configuration_rotation_scope").toString())); + } + // validate the optional field `paging_strategy_configuration_rotation_scope` + if (jsonObj.get("paging_strategy_configuration_rotation_scope") != null && !jsonObj.get("paging_strategy_configuration_rotation_scope").isJsonNull()) { + PagingStrategyConfigurationRotationScopeEnum.validateJsonElement(jsonObj.get("paging_strategy_configuration_rotation_scope")); + } if (jsonObj.get("notification_target_params") != null && !jsonObj.get("notification_target_params").isJsonNull()) { JsonArray jsonArraynotificationTargetParams = jsonObj.getAsJsonArray("notification_target_params"); if (jsonArraynotificationTargetParams != null) { diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java index bc429ab6..68891521 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner.java @@ -49,7 +49,7 @@ /** * UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyLevelDataAttributesNotificationTargetParamsInner { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -69,6 +69,8 @@ public enum TypeEnum { SLACK_CHANNEL("slack_channel"), + MICROSOFT_TEAMS_CHANNEL("microsoft_teams_channel"), + SERVICE("service"); private String value; diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPath.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPath.java index 979e93d9..244029a7 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPath.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPath.java @@ -49,7 +49,7 @@ /** * UpdateEscalationPolicyPath */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyPath { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathData.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathData.java index 89335ea0..e4fd5f81 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathData.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathData.java @@ -49,7 +49,7 @@ /** * UpdateEscalationPolicyPathData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyPathData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributes.java index d8b01779..52c70433 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributes.java @@ -53,7 +53,7 @@ /** * UpdateEscalationPolicyPathDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyPathDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -117,6 +117,125 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private NotificationTypeEnum notificationType = NotificationTypeEnum.AUDIBLE; + /** + * The type of escalation path. Cannot be changed after creation. + */ + @JsonAdapter(PathTypeEnum.Adapter.class) + public enum PathTypeEnum { + ESCALATION("escalation"), + + DEFERRAL("deferral"); + + private String value; + + PathTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PathTypeEnum fromValue(String value) { + for (PathTypeEnum b : PathTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PathTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PathTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PathTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PathTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PATH_TYPE = "path_type"; + @SerializedName(SERIALIZED_NAME_PATH_TYPE) + @jakarta.annotation.Nullable + private PathTypeEnum pathType; + + /** + * What happens after a deferral path finishes. + */ + @JsonAdapter(AfterDeferralBehaviorEnum.Adapter.class) + public enum AfterDeferralBehaviorEnum { + RE_EVALUATE("re_evaluate"), + + EXECUTE_PATH("execute_path"); + + private String value; + + AfterDeferralBehaviorEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AfterDeferralBehaviorEnum fromValue(String value) { + for (AfterDeferralBehaviorEnum b : AfterDeferralBehaviorEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AfterDeferralBehaviorEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AfterDeferralBehaviorEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AfterDeferralBehaviorEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AfterDeferralBehaviorEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_AFTER_DEFERRAL_BEHAVIOR = "after_deferral_behavior"; + @SerializedName(SERIALIZED_NAME_AFTER_DEFERRAL_BEHAVIOR) + @jakarta.annotation.Nullable + private AfterDeferralBehaviorEnum afterDeferralBehavior; + + public static final String SERIALIZED_NAME_AFTER_DEFERRAL_PATH_ID = "after_deferral_path_id"; + @SerializedName(SERIALIZED_NAME_AFTER_DEFERRAL_PATH_ID) + @jakarta.annotation.Nullable + private String afterDeferralPathId; + public static final String SERIALIZED_NAME_DEFAULT = "default"; @SerializedName(SERIALIZED_NAME_DEFAULT) @jakarta.annotation.Nullable @@ -199,6 +318,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Integer initialDelay; + public static final String SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES = "retrigger_timeout_minutes"; + @SerializedName(SERIALIZED_NAME_RETRIGGER_TIMEOUT_MINUTES) + @jakarta.annotation.Nullable + private Integer retriggerTimeoutMinutes; + public static final String SERIALIZED_NAME_RULES = "rules"; @SerializedName(SERIALIZED_NAME_RULES) @jakarta.annotation.Nullable @@ -267,8 +391,6 @@ public enum TimeRestrictionTimeZoneEnum { MEXICO_CITY("Mexico City"), - AMERICA_MEXICO_CITY2("America/Mexico_City"), - MONTERREY("Monterrey"), AMERICA_MONTERREY("America/Monterrey"), @@ -295,8 +417,6 @@ public enum TimeRestrictionTimeZoneEnum { QUITO("Quito"), - AMERICA_LIMA2("America/Lima"), - ATLANTIC_TIME_CANADA_("Atlantic Time (Canada)"), AMERICA_HALIFAX("America/Halifax"), @@ -357,14 +477,6 @@ public enum TimeRestrictionTimeZoneEnum { ATLANTIC_CAPE_VERDE("Atlantic/Cape_Verde"), - CASABLANCA("Casablanca"), - - AFRICA_CASABLANCA("Africa/Casablanca"), - - DUBLIN("Dublin"), - - EUROPE_DUBLIN("Europe/Dublin"), - EDINBURGH("Edinburgh"), EUROPE_LONDON("Europe/London"), @@ -375,8 +487,6 @@ public enum TimeRestrictionTimeZoneEnum { LONDON("London"), - EUROPE_LONDON2("Europe/London"), - MONROVIA("Monrovia"), AFRICA_MONROVIA("Africa/Monrovia"), @@ -413,10 +523,18 @@ public enum TimeRestrictionTimeZoneEnum { EUROPE_BUDAPEST("Europe/Budapest"), + CASABLANCA("Casablanca"), + + AFRICA_CASABLANCA("Africa/Casablanca"), + COPENHAGEN("Copenhagen"), EUROPE_COPENHAGEN("Europe/Copenhagen"), + DUBLIN("Dublin"), + + EUROPE_DUBLIN("Europe/Dublin"), + LJUBLJANA("Ljubljana"), EUROPE_LJUBLJANA("Europe/Ljubljana"), @@ -467,8 +585,6 @@ public enum TimeRestrictionTimeZoneEnum { ZURICH("Zurich"), - EUROPE_ZURICH2("Europe/Zurich"), - ATHENS("Athens"), EUROPE_ATHENS("Europe/Athens"), @@ -551,8 +667,6 @@ public enum TimeRestrictionTimeZoneEnum { ST_PETERSBURG("St. Petersburg"), - EUROPE_MOSCOW2("Europe/Moscow"), - VOLGOGRAD("Volgograd"), EUROPE_VOLGOGRAD("Europe/Volgograd"), @@ -571,8 +685,6 @@ public enum TimeRestrictionTimeZoneEnum { MUSCAT("Muscat"), - ASIA_MUSCAT2("Asia/Muscat"), - SAMARA("Samara"), EUROPE_SAMARA("Europe/Samara"), @@ -595,8 +707,6 @@ public enum TimeRestrictionTimeZoneEnum { ASTANA("Astana"), - ASIA_ALMATY2("Asia/Almaty"), - EKATERINBURG("Ekaterinburg"), ASIA_YEKATERINBURG("Asia/Yekaterinburg"), @@ -607,8 +717,6 @@ public enum TimeRestrictionTimeZoneEnum { KARACHI("Karachi"), - ASIA_KARACHI2("Asia/Karachi"), - TASHKENT("Tashkent"), ASIA_TASHKENT("Asia/Tashkent"), @@ -619,16 +727,10 @@ public enum TimeRestrictionTimeZoneEnum { KOLKATA("Kolkata"), - ASIA_KOLKATA2("Asia/Kolkata"), - MUMBAI("Mumbai"), - ASIA_KOLKATA3("Asia/Kolkata"), - NEW_DELHI("New Delhi"), - ASIA_KOLKATA4("Asia/Kolkata"), - SRI_JAYAWARDENEPURA("Sri Jayawardenepura"), ASIA_COLOMBO("Asia/Colombo"), @@ -655,8 +757,6 @@ public enum TimeRestrictionTimeZoneEnum { HANOI("Hanoi"), - ASIA_BANGKOK2("Asia/Bangkok"), - JAKARTA("Jakarta"), ASIA_JAKARTA("Asia/Jakarta"), @@ -711,16 +811,12 @@ public enum TimeRestrictionTimeZoneEnum { SAPPORO("Sapporo"), - ASIA_TOKYO2("Asia/Tokyo"), - SEOUL("Seoul"), ASIA_SEOUL("Asia/Seoul"), TOKYO("Tokyo"), - ASIA_TOKYO3("Asia/Tokyo"), - YAKUTSK("Yakutsk"), ASIA_YAKUTSK("Asia/Yakutsk"), @@ -799,8 +895,6 @@ public enum TimeRestrictionTimeZoneEnum { WELLINGTON("Wellington"), - PACIFIC_AUCKLAND2("Pacific/Auckland"), - CHATHAM_IS_("Chatham Is."), PACIFIC_CHATHAM("Pacific/Chatham"), @@ -815,7 +909,39 @@ public enum TimeRestrictionTimeZoneEnum { TOKELAU_IS_("Tokelau Is."), - PACIFIC_FAKAOFO("Pacific/Fakaofo"); + PACIFIC_FAKAOFO("Pacific/Fakaofo"), + + AMERICA_ADAK("America/Adak"), + + AMERICA_ATKA("America/Atka"), + + US_ALEUTIAN("US/Aleutian"), + + AMERICA_VANCOUVER("America/Vancouver"), + + CANADA_PACIFIC("Canada/Pacific"), + + AMERICA_MIQUELON("America/Miquelon"), + + AUSTRALIA_EUCLA("Australia/Eucla"), + + AUSTRALIA_LHI("Australia/LHI"), + + AUSTRALIA_LORD_HOWE("Australia/Lord_Howe"), + + CHILE_EASTER_ISLAND("Chile/EasterIsland"), + + PACIFIC_EASTER("Pacific/Easter"), + + PACIFIC_GAMBIER("Pacific/Gambier"), + + PACIFIC_PITCAIRN("Pacific/Pitcairn"), + + PACIFIC_MARQUESAS("Pacific/Marquesas"), + + PACIFIC_KIRITIMATI("Pacific/Kiritimati"), + + PACIFIC_NORFOLK("Pacific/Norfolk"); private String value; @@ -911,6 +1037,63 @@ public void setNotificationType(@jakarta.annotation.Nullable NotificationTypeEnu } + public UpdateEscalationPolicyPathDataAttributes pathType(@jakarta.annotation.Nullable PathTypeEnum pathType) { + this.pathType = pathType; + return this; + } + + /** + * The type of escalation path. Cannot be changed after creation. + * @return pathType + */ + @jakarta.annotation.Nullable + public PathTypeEnum getPathType() { + return pathType; + } + + public void setPathType(@jakarta.annotation.Nullable PathTypeEnum pathType) { + this.pathType = pathType; + } + + + public UpdateEscalationPolicyPathDataAttributes afterDeferralBehavior(@jakarta.annotation.Nullable AfterDeferralBehaviorEnum afterDeferralBehavior) { + this.afterDeferralBehavior = afterDeferralBehavior; + return this; + } + + /** + * What happens after a deferral path finishes. + * @return afterDeferralBehavior + */ + @jakarta.annotation.Nullable + public AfterDeferralBehaviorEnum getAfterDeferralBehavior() { + return afterDeferralBehavior; + } + + public void setAfterDeferralBehavior(@jakarta.annotation.Nullable AfterDeferralBehaviorEnum afterDeferralBehavior) { + this.afterDeferralBehavior = afterDeferralBehavior; + } + + + public UpdateEscalationPolicyPathDataAttributes afterDeferralPathId(@jakarta.annotation.Nullable String afterDeferralPathId) { + this.afterDeferralPathId = afterDeferralPathId; + return this; + } + + /** + * The escalation path to execute after this deferral path when after_deferral_behavior is execute_path. + * @return afterDeferralPathId + */ + @jakarta.annotation.Nullable + public String getAfterDeferralPathId() { + return afterDeferralPathId; + } + + public void setAfterDeferralPathId(@jakarta.annotation.Nullable String afterDeferralPathId) { + this.afterDeferralPathId = afterDeferralPathId; + } + + public UpdateEscalationPolicyPathDataAttributes _default(@jakarta.annotation.Nullable Boolean _default) { this._default = _default; return this; @@ -1025,6 +1208,25 @@ public void setInitialDelay(@jakarta.annotation.Nullable Integer initialDelay) { } + public UpdateEscalationPolicyPathDataAttributes retriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + return this; + } + + /** + * Re-trigger acknowledged alerts on this path after N minutes; null inherits the urgency/workspace default, negative = never. + * @return retriggerTimeoutMinutes + */ + @jakarta.annotation.Nullable + public Integer getRetriggerTimeoutMinutes() { + return retriggerTimeoutMinutes; + } + + public void setRetriggerTimeoutMinutes(@jakarta.annotation.Nullable Integer retriggerTimeoutMinutes) { + this.retriggerTimeoutMinutes = retriggerTimeoutMinutes; + } + + public UpdateEscalationPolicyPathDataAttributes rules(@jakarta.annotation.Nullable List rules) { this.rules = rules; return this; @@ -1110,12 +1312,16 @@ public boolean equals(Object o) { UpdateEscalationPolicyPathDataAttributes updateEscalationPolicyPathDataAttributes = (UpdateEscalationPolicyPathDataAttributes) o; return Objects.equals(this.name, updateEscalationPolicyPathDataAttributes.name) && Objects.equals(this.notificationType, updateEscalationPolicyPathDataAttributes.notificationType) && + Objects.equals(this.pathType, updateEscalationPolicyPathDataAttributes.pathType) && + Objects.equals(this.afterDeferralBehavior, updateEscalationPolicyPathDataAttributes.afterDeferralBehavior) && + Objects.equals(this.afterDeferralPathId, updateEscalationPolicyPathDataAttributes.afterDeferralPathId) && Objects.equals(this._default, updateEscalationPolicyPathDataAttributes._default) && Objects.equals(this.matchMode, updateEscalationPolicyPathDataAttributes.matchMode) && Objects.equals(this.position, updateEscalationPolicyPathDataAttributes.position) && Objects.equals(this.repeat, updateEscalationPolicyPathDataAttributes.repeat) && Objects.equals(this.repeatCount, updateEscalationPolicyPathDataAttributes.repeatCount) && Objects.equals(this.initialDelay, updateEscalationPolicyPathDataAttributes.initialDelay) && + Objects.equals(this.retriggerTimeoutMinutes, updateEscalationPolicyPathDataAttributes.retriggerTimeoutMinutes) && Objects.equals(this.rules, updateEscalationPolicyPathDataAttributes.rules) && Objects.equals(this.timeRestrictionTimeZone, updateEscalationPolicyPathDataAttributes.timeRestrictionTimeZone) && Objects.equals(this.timeRestrictions, updateEscalationPolicyPathDataAttributes.timeRestrictions); @@ -1127,7 +1333,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, notificationType, _default, matchMode, position, repeat, repeatCount, initialDelay, rules, timeRestrictionTimeZone, timeRestrictions); + return Objects.hash(name, notificationType, pathType, afterDeferralBehavior, afterDeferralPathId, _default, matchMode, position, repeat, repeatCount, initialDelay, retriggerTimeoutMinutes, rules, timeRestrictionTimeZone, timeRestrictions); } private static int hashCodeNullable(JsonNullable a) { @@ -1143,12 +1349,16 @@ public String toString() { sb.append("class UpdateEscalationPolicyPathDataAttributes {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" pathType: ").append(toIndentedString(pathType)).append("\n"); + sb.append(" afterDeferralBehavior: ").append(toIndentedString(afterDeferralBehavior)).append("\n"); + sb.append(" afterDeferralPathId: ").append(toIndentedString(afterDeferralPathId)).append("\n"); sb.append(" _default: ").append(toIndentedString(_default)).append("\n"); sb.append(" matchMode: ").append(toIndentedString(matchMode)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" repeat: ").append(toIndentedString(repeat)).append("\n"); sb.append(" repeatCount: ").append(toIndentedString(repeatCount)).append("\n"); sb.append(" initialDelay: ").append(toIndentedString(initialDelay)).append("\n"); + sb.append(" retriggerTimeoutMinutes: ").append(toIndentedString(retriggerTimeoutMinutes)).append("\n"); sb.append(" rules: ").append(toIndentedString(rules)).append("\n"); sb.append(" timeRestrictionTimeZone: ").append(toIndentedString(timeRestrictionTimeZone)).append("\n"); sb.append(" timeRestrictions: ").append(toIndentedString(timeRestrictions)).append("\n"); @@ -1176,12 +1386,16 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("name"); openapiFields.add("notification_type"); + openapiFields.add("path_type"); + openapiFields.add("after_deferral_behavior"); + openapiFields.add("after_deferral_path_id"); openapiFields.add("default"); openapiFields.add("match_mode"); openapiFields.add("position"); openapiFields.add("repeat"); openapiFields.add("repeat_count"); openapiFields.add("initial_delay"); + openapiFields.add("retrigger_timeout_minutes"); openapiFields.add("rules"); openapiFields.add("time_restriction_time_zone"); openapiFields.add("time_restrictions"); @@ -1221,6 +1435,23 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("notification_type") != null && !jsonObj.get("notification_type").isJsonNull()) { NotificationTypeEnum.validateJsonElement(jsonObj.get("notification_type")); } + if ((jsonObj.get("path_type") != null && !jsonObj.get("path_type").isJsonNull()) && !jsonObj.get("path_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `path_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path_type").toString())); + } + // validate the optional field `path_type` + if (jsonObj.get("path_type") != null && !jsonObj.get("path_type").isJsonNull()) { + PathTypeEnum.validateJsonElement(jsonObj.get("path_type")); + } + if ((jsonObj.get("after_deferral_behavior") != null && !jsonObj.get("after_deferral_behavior").isJsonNull()) && !jsonObj.get("after_deferral_behavior").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `after_deferral_behavior` to be a primitive type in the JSON string but got `%s`", jsonObj.get("after_deferral_behavior").toString())); + } + // validate the optional field `after_deferral_behavior` + if (jsonObj.get("after_deferral_behavior") != null && !jsonObj.get("after_deferral_behavior").isJsonNull()) { + AfterDeferralBehaviorEnum.validateJsonElement(jsonObj.get("after_deferral_behavior")); + } + if ((jsonObj.get("after_deferral_path_id") != null && !jsonObj.get("after_deferral_path_id").isJsonNull()) && !jsonObj.get("after_deferral_path_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `after_deferral_path_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("after_deferral_path_id").toString())); + } if ((jsonObj.get("match_mode") != null && !jsonObj.get("match_mode").isJsonNull()) && !jsonObj.get("match_mode").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `match_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("match_mode").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInner.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInner.java index 901b7221..1168c81e 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInner.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInner.java @@ -19,13 +19,20 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf1; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf3; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf4; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf6; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf7; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; @@ -62,7 +69,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyPathDataAttributesRulesInner extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(UpdateEscalationPolicyPathDataAttributesRulesInner.class.getName()); @@ -74,9 +81,14 @@ public TypeAdapter create(Gson gson, TypeToken type) { return null; // this class only serializes 'UpdateEscalationPolicyPathDataAttributesRulesInner' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.class)); - final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.class)); - final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf1 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf2 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf3 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf4 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf5 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf6 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.class)); + final TypeAdapter adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf7 = gson.getDelegateAdapter(this, TypeToken.get(NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.class)); return (TypeAdapter) new TypeAdapter() { @Override @@ -86,25 +98,55 @@ public void write(JsonWriter out, UpdateEscalationPolicyPathDataAttributesRulesI return; } - // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf` - if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf) { - JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerAnyOf)value.getActualInstance()); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf)value.getActualInstance()); elementAdapter.write(out, element); return; } - // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1` - if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1) { - JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1)value.getActualInstance()); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf1) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf1.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf1)value.getActualInstance()); elementAdapter.write(out, element); return; } - // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2` - if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2) { - JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2)value.getActualInstance()); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf2) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf2.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf2)value.getActualInstance()); elementAdapter.write(out, element); return; } - throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2"); + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf3) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf3.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf3)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf4) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf4.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf4)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf5) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf5.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf5)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf6) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf6.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf6)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7` + if (value.getActualInstance() instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf7) { + JsonElement element = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf7.toJsonTree((NewEscalationPolicyPathDataAttributesRulesInnerOneOf7)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match oneOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7"); } @Override @@ -112,71 +154,140 @@ public UpdateEscalationPolicyPathDataAttributesRulesInner read(JsonReader in) th Object deserialized = null; JsonElement jsonElement = elementAdapter.read(in); + int match = 0; ArrayList errorMessages = new ArrayList<>(); TypeAdapter actualAdapter = elementAdapter; - // deserialize NewEscalationPolicyPathDataAttributesRulesInnerAnyOf + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf try { // validate the JSON object to see if any exception is thrown - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.validateJsonElement(jsonElement); - actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf; - UpdateEscalationPolicyPathDataAttributesRulesInner ret = new UpdateEscalationPolicyPathDataAttributesRulesInner(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf'"); } catch (Exception e) { // deserialization failed, continue - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerAnyOf'", e); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf'", e); } - // deserialize NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 try { // validate the JSON object to see if any exception is thrown - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.validateJsonElement(jsonElement); - actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1; - UpdateEscalationPolicyPathDataAttributesRulesInner ret = new UpdateEscalationPolicyPathDataAttributesRulesInner(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf1; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf1'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf1'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf2; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf2'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf2'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf3; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf3'"); } catch (Exception e) { // deserialization failed, continue - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1'", e); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf3'", e); } - // deserialize NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 try { // validate the JSON object to see if any exception is thrown - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.validateJsonElement(jsonElement); - actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf4; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf4'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf4'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf5; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf5'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf5'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf6; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf6'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf6'", e); + } + // deserialize NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + try { + // validate the JSON object to see if any exception is thrown + NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.validateJsonElement(jsonElement); + actualAdapter = adapterNewEscalationPolicyPathDataAttributesRulesInnerOneOf7; + match++; + log.log(Level.FINER, "Input data matches schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf7'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerOneOf7'", e); + } + + if (match == 1) { UpdateEscalationPolicyPathDataAttributesRulesInner ret = new UpdateEscalationPolicyPathDataAttributesRulesInner(); ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); return ret; - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2'", e); } - throw new IOException(String.format("Failed deserialization for UpdateEscalationPolicyPathDataAttributesRulesInner: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + throw new IOException(String.format("Failed deserialization for UpdateEscalationPolicyPathDataAttributesRulesInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", match, errorMessages, jsonElement.toString())); } }.nullSafe(); } } - // store a list of schema names defined in anyOf + // store a list of schema names defined in oneOf public static final Map> schemas = new HashMap>(); public UpdateEscalationPolicyPathDataAttributesRulesInner() { - super("anyOf", Boolean.TRUE); + super("oneOf", Boolean.TRUE); } public UpdateEscalationPolicyPathDataAttributesRulesInner(Object o) { - super("anyOf", Boolean.TRUE); + super("oneOf", Boolean.TRUE); setActualInstance(o); } static { - schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerAnyOf", NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.class); - schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1", NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.class); - schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2", NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf", NewEscalationPolicyPathDataAttributesRulesInnerOneOf.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf1", NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf2", NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf3", NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf4", NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf5", NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf6", NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.class); + schemas.put("NewEscalationPolicyPathDataAttributesRulesInnerOneOf7", NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.class); } @Override @@ -185,11 +296,11 @@ public Map> getSchemas() { } /** - * Set the instance that matches the anyOf child schema, check - * the instance parameter is valid against the anyOf child schemas: - * NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + * Set the instance that matches the oneOf child schema, check + * the instance parameter is valid against the oneOf child schemas: + * NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 * - * It could be an instance of the 'anyOf' schemas. + * It could be an instance of the 'oneOf' schemas. */ @Override public void setActualInstance(Object instance) { @@ -198,29 +309,54 @@ public void setActualInstance(Object instance) { return; } - if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf) { + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf1) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf2) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf3) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf4) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf5) { super.setActualInstance(instance); return; } - if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1) { + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf6) { super.setActualInstance(instance); return; } - if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2) { + if (instance instanceof NewEscalationPolicyPathDataAttributesRulesInnerOneOf7) { super.setActualInstance(instance); return; } - throw new RuntimeException("Invalid instance type. Must be NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2"); + throw new RuntimeException("Invalid instance type. Must be NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7"); } /** * Get the actual instance, which can be the following: - * NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + * NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 * - * @return The actual instance (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2) + * @return The actual instance (NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7) */ @SuppressWarnings("unchecked") @Override @@ -229,36 +365,91 @@ public Object getActualInstance() { } /** - * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf`, + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf getNewEscalationPolicyPathDataAttributesRulesInnerOneOf() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf1` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf1() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf1)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf2` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf2() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf2)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3`, * the ClassCastException will be thrown. * - * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf` - * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf` + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf3` */ - public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf getNewEscalationPolicyPathDataAttributesRulesInnerAnyOf() throws ClassCastException { - return (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf)super.getActualInstance(); + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf3() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf3)super.getActualInstance(); } /** - * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1`, + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4`, * the ClassCastException will be thrown. * - * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1` - * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1` + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf4` */ - public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 getNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1() throws ClassCastException { - return (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1)super.getActualInstance(); + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf4() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf4)super.getActualInstance(); } /** - * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2`, + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5`, * the ClassCastException will be thrown. * - * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2` - * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2` + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf5` */ - public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 getNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2() throws ClassCastException { - return (NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2)super.getActualInstance(); + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf5() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf5)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf6` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf6() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf6)super.getActualInstance(); + } + + /** + * Get the actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7`. If the actual instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7` + * @throws ClassCastException if the instance is not `NewEscalationPolicyPathDataAttributesRulesInnerOneOf7` + */ + public NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 getNewEscalationPolicyPathDataAttributesRulesInnerOneOf7() throws ClassCastException { + return (NewEscalationPolicyPathDataAttributesRulesInnerOneOf7)super.getActualInstance(); } /** @@ -268,33 +459,76 @@ public NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 getNewEscalationPol * @throws IOException if the JSON Element is invalid with respect to UpdateEscalationPolicyPathDataAttributesRulesInner */ public static void validateJsonElement(JsonElement jsonElement) throws IOException { - // validate anyOf schemas one by one + // validate oneOf schemas one by one + int validCount = 0; ArrayList errorMessages = new ArrayList<>(); - // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerAnyOf + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf try { - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf.validateJsonElement(jsonElement); - return; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf.validateJsonElement(jsonElement); + validCount++; } catch (Exception e) { - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf failed with `%s`.", e.getMessage())); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf failed with `%s`.", e.getMessage())); // continue to the next one } - // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 try { - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1.validateJsonElement(jsonElement); - return; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf1.validateJsonElement(jsonElement); + validCount++; } catch (Exception e) { - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 failed with `%s`.", e.getMessage())); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf1 failed with `%s`.", e.getMessage())); // continue to the next one } - // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 try { - NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2.validateJsonElement(jsonElement); - return; + NewEscalationPolicyPathDataAttributesRulesInnerOneOf2.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf2 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf3.validateJsonElement(jsonElement); + validCount++; } catch (Exception e) { - errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 failed with `%s`.", e.getMessage())); + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf3 failed with `%s`.", e.getMessage())); // continue to the next one } - throw new IOException(String.format("The JSON string is invalid for UpdateEscalationPolicyPathDataAttributesRulesInner with anyOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerAnyOf, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1, NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf4.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf4 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf5.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf5 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf6.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 + try { + NewEscalationPolicyPathDataAttributesRulesInnerOneOf7.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException(String.format("The JSON string is invalid for UpdateEscalationPolicyPathDataAttributesRulesInner with oneOf schemas: NewEscalationPolicyPathDataAttributesRulesInnerOneOf, NewEscalationPolicyPathDataAttributesRulesInnerOneOf1, NewEscalationPolicyPathDataAttributesRulesInnerOneOf2, NewEscalationPolicyPathDataAttributesRulesInnerOneOf3, NewEscalationPolicyPathDataAttributesRulesInnerOneOf4, NewEscalationPolicyPathDataAttributesRulesInnerOneOf5, NewEscalationPolicyPathDataAttributesRulesInnerOneOf6, NewEscalationPolicyPathDataAttributesRulesInnerOneOf7. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); + } } /** diff --git a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner.java b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner.java index fa4f34b9..70ef7089 100644 --- a/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner.java +++ b/src/main/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner.java @@ -48,7 +48,7 @@ /** * UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner { /** * Gets or Sets startDay diff --git a/src/main/java/com/rootly/client/model/UpdateFormField.java b/src/main/java/com/rootly/client/model/UpdateFormField.java index f85c2935..d8249b71 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormField.java +++ b/src/main/java/com/rootly/client/model/UpdateFormField.java @@ -49,7 +49,7 @@ /** * UpdateFormField */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormField { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldData.java b/src/main/java/com/rootly/client/model/UpdateFormFieldData.java index afd8df85..a0e05590 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldData.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldData.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFormFieldDataAttributes.java index fc923c98..1e1b3142 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldDataAttributes.java @@ -51,8 +51,14 @@ /** * UpdateFormFieldDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + /** * The kind of the form field */ @@ -82,6 +88,8 @@ public enum KindEnum { TEAMS("teams"), + STATUS("status"), + VISIBILITY("visibility"), MARK_AS_TEST("mark_as_test"), @@ -254,7 +262,13 @@ public enum ValueKindEnum { USER("user"), - CATALOG_ENTITY("catalog_entity"); + CATALOG_ENTITY("catalog_entity"), + + ENVIRONMENT("environment"), + + CAUSE("cause"), + + INCIDENT_TYPE("incident_type"); private String value; @@ -344,9 +358,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List defaultValues = new ArrayList<>(); + public static final String SERIALIZED_NAME_AUTO_SET_BY_CATALOG_PROPERTY_ID = "auto_set_by_catalog_property_id"; + @SerializedName(SERIALIZED_NAME_AUTO_SET_BY_CATALOG_PROPERTY_ID) + @jakarta.annotation.Nullable + private String autoSetByCatalogPropertyId; + public UpdateFormFieldDataAttributes() { } + @Deprecated + public UpdateFormFieldDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateFormFieldDataAttributes kind(@jakarta.annotation.Nullable KindEnum kind) { this.kind = kind; return this; @@ -580,6 +622,25 @@ public void setDefaultValues(@jakarta.annotation.Nullable List defaultVa } + public UpdateFormFieldDataAttributes autoSetByCatalogPropertyId(@jakarta.annotation.Nullable String autoSetByCatalogPropertyId) { + this.autoSetByCatalogPropertyId = autoSetByCatalogPropertyId; + return this; + } + + /** + * Catalog property ID to auto-set this form field. Only reference-kind catalog properties are supported. + * @return autoSetByCatalogPropertyId + */ + @jakarta.annotation.Nullable + public String getAutoSetByCatalogPropertyId() { + return autoSetByCatalogPropertyId; + } + + public void setAutoSetByCatalogPropertyId(@jakarta.annotation.Nullable String autoSetByCatalogPropertyId) { + this.autoSetByCatalogPropertyId = autoSetByCatalogPropertyId; + } + + @Override public boolean equals(Object o) { @@ -590,7 +651,8 @@ public boolean equals(Object o) { return false; } UpdateFormFieldDataAttributes updateFormFieldDataAttributes = (UpdateFormFieldDataAttributes) o; - return Objects.equals(this.kind, updateFormFieldDataAttributes.kind) && + return Objects.equals(this.slug, updateFormFieldDataAttributes.slug) && + Objects.equals(this.kind, updateFormFieldDataAttributes.kind) && Objects.equals(this.inputKind, updateFormFieldDataAttributes.inputKind) && Objects.equals(this.valueKind, updateFormFieldDataAttributes.valueKind) && Objects.equals(this.valueKindCatalogId, updateFormFieldDataAttributes.valueKindCatalogId) && @@ -600,7 +662,8 @@ public boolean equals(Object o) { Objects.equals(this.required, updateFormFieldDataAttributes.required) && Objects.equals(this.showOnIncidentDetails, updateFormFieldDataAttributes.showOnIncidentDetails) && Objects.equals(this.enabled, updateFormFieldDataAttributes.enabled) && - Objects.equals(this.defaultValues, updateFormFieldDataAttributes.defaultValues); + Objects.equals(this.defaultValues, updateFormFieldDataAttributes.defaultValues) && + Objects.equals(this.autoSetByCatalogPropertyId, updateFormFieldDataAttributes.autoSetByCatalogPropertyId); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -609,7 +672,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(kind, inputKind, valueKind, valueKindCatalogId, name, description, shown, required, showOnIncidentDetails, enabled, defaultValues); + return Objects.hash(slug, kind, inputKind, valueKind, valueKindCatalogId, name, description, shown, required, showOnIncidentDetails, enabled, defaultValues, autoSetByCatalogPropertyId); } private static int hashCodeNullable(JsonNullable a) { @@ -623,6 +686,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateFormFieldDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" inputKind: ").append(toIndentedString(inputKind)).append("\n"); sb.append(" valueKind: ").append(toIndentedString(valueKind)).append("\n"); @@ -634,6 +698,7 @@ public String toString() { sb.append(" showOnIncidentDetails: ").append(toIndentedString(showOnIncidentDetails)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append(" defaultValues: ").append(toIndentedString(defaultValues)).append("\n"); + sb.append(" autoSetByCatalogPropertyId: ").append(toIndentedString(autoSetByCatalogPropertyId)).append("\n"); sb.append("}"); return sb.toString(); } @@ -656,6 +721,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("kind"); openapiFields.add("input_kind"); openapiFields.add("value_kind"); @@ -667,6 +733,7 @@ private String toIndentedString(Object o) { openapiFields.add("show_on_incident_details"); openapiFields.add("enabled"); openapiFields.add("default_values"); + openapiFields.add("auto_set_by_catalog_property_id"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -693,6 +760,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("kind") != null && !jsonObj.get("kind").isJsonNull()) && !jsonObj.get("kind").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); } @@ -735,6 +805,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("default_values") != null && !jsonObj.get("default_values").isJsonNull() && !jsonObj.get("default_values").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `default_values` to be an array in the JSON string but got `%s`", jsonObj.get("default_values").toString())); } + if ((jsonObj.get("auto_set_by_catalog_property_id") != null && !jsonObj.get("auto_set_by_catalog_property_id").isJsonNull()) && !jsonObj.get("auto_set_by_catalog_property_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `auto_set_by_catalog_property_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("auto_set_by_catalog_property_id").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldOption.java b/src/main/java/com/rootly/client/model/UpdateFormFieldOption.java index aa94f9f7..489ae075 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldOption.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldOption.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldOption */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldOption { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldOptionData.java b/src/main/java/com/rootly/client/model/UpdateFormFieldOptionData.java index 3bf58f15..dfb26fc6 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldOptionData.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldOptionData.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldOptionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldOptionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldOptionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFormFieldOptionDataAttributes.java index 82f0e643..56a81634 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldOptionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldOptionDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateFormFieldOptionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldOptionDataAttributes { public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacement.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacement.java index 6d74fcc3..1fc7e8c1 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacement.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacement.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldPlacement */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPlacement { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementCondition.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementCondition.java index 52444935..f07b2363 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementCondition.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementCondition.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldPlacementCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPlacementCondition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionData.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionData.java index dea6188c..382e2404 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionData.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionData.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldPlacementConditionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPlacementConditionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionDataAttributes.java index 873df698..55359665 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementConditionDataAttributes.java @@ -50,7 +50,7 @@ /** * UpdateFormFieldPlacementConditionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPlacementConditionDataAttributes { /** * The resource or attribute the condition applies. diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementData.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementData.java index 34d5c8ee..6ed9feed 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementData.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementData.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldPlacementData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPlacementData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementDataAttributes.java index 13d23361..19f17ba5 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPlacementDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateFormFieldPlacementDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPlacementDataAttributes { public static final String SERIALIZED_NAME_FORM_SET_ID = "form_set_id"; @SerializedName(SERIALIZED_NAME_FORM_SET_ID) @@ -198,7 +198,7 @@ public UpdateFormFieldPlacementDataAttributes formSetId(@jakarta.annotation.Null } /** - * The form set this field is placed in. + * The form set this field is placed in. The form set must have the same `resource_type` as the form field, otherwise the request is rejected with 422. * @return formSetId */ @jakarta.annotation.Nullable diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPosition.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPosition.java index 408a8a33..1be967e8 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPosition.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPosition.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldPosition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPosition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPositionData.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPositionData.java index 4ca53703..5b112774 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPositionData.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPositionData.java @@ -49,7 +49,7 @@ /** * UpdateFormFieldPositionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPositionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFormFieldPositionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFormFieldPositionDataAttributes.java index 2bdc851f..da543f6d 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormFieldPositionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFormFieldPositionDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateFormFieldPositionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormFieldPositionDataAttributes { public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) @@ -92,7 +92,15 @@ public enum FormEnum { SLACK_SCHEDULED_INCIDENT_FORM("slack_scheduled_incident_form"), - SLACK_UPDATE_SCHEDULED_INCIDENT_FORM("slack_update_scheduled_incident_form"); + SLACK_UPDATE_SCHEDULED_INCIDENT_FORM("slack_update_scheduled_incident_form"), + + WEB_ACTION_ITEM_FORM("web_action_item_form"), + + SLACK_ACTION_ITEM_FORM("slack_action_item_form"), + + WEB_TASK_FORM("web_task_form"), + + SLACK_TASK_FORM("slack_task_form"); private String value; diff --git a/src/main/java/com/rootly/client/model/UpdateFormSet.java b/src/main/java/com/rootly/client/model/UpdateFormSet.java index d778223b..39f250aa 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormSet.java +++ b/src/main/java/com/rootly/client/model/UpdateFormSet.java @@ -49,7 +49,7 @@ /** * UpdateFormSet */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormSet { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFormSetCondition.java b/src/main/java/com/rootly/client/model/UpdateFormSetCondition.java index fe937256..0666b24f 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormSetCondition.java +++ b/src/main/java/com/rootly/client/model/UpdateFormSetCondition.java @@ -49,7 +49,7 @@ /** * UpdateFormSetCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormSetCondition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFormSetConditionData.java b/src/main/java/com/rootly/client/model/UpdateFormSetConditionData.java index 63ee72ab..8ab0250a 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormSetConditionData.java +++ b/src/main/java/com/rootly/client/model/UpdateFormSetConditionData.java @@ -49,7 +49,7 @@ /** * UpdateFormSetConditionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormSetConditionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFormSetConditionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFormSetConditionDataAttributes.java index 367f9c6c..95517280 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormSetConditionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFormSetConditionDataAttributes.java @@ -50,7 +50,7 @@ /** * UpdateFormSetConditionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormSetConditionDataAttributes { public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateFormSetData.java b/src/main/java/com/rootly/client/model/UpdateFormSetData.java index 1bb96ef3..f9f8dc51 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormSetData.java +++ b/src/main/java/com/rootly/client/model/UpdateFormSetData.java @@ -49,7 +49,7 @@ /** * UpdateFormSetData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormSetData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFormSetDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFormSetDataAttributes.java index e669df3d..268519e2 100644 --- a/src/main/java/com/rootly/client/model/UpdateFormSetDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFormSetDataAttributes.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,8 +51,14 @@ /** * UpdateFormSetDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFormSetDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -65,6 +72,29 @@ public class UpdateFormSetDataAttributes { public UpdateFormSetDataAttributes() { } + @Deprecated + public UpdateFormSetDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateFormSetDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -98,7 +128,7 @@ public UpdateFormSetDataAttributes addFormsItem(String formsItem) { } /** - * The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form` + * The forms included in the form set. Add custom forms using the custom form's `slug` field. Or choose a built-in form: `web_new_incident_form`, `web_update_incident_form`, `web_incident_post_mortem_form`, `web_incident_mitigation_form`, `web_incident_resolution_form`, `web_incident_cancellation_form`, `web_scheduled_incident_form`, `web_update_scheduled_incident_form`, `slack_new_incident_form`, `slack_update_incident_form`, `slack_update_incident_status_form`, `slack_incident_mitigation_form`, `slack_incident_resolution_form`, `slack_incident_cancellation_form`, `slack_scheduled_incident_form`, `slack_update_scheduled_incident_form`, `google_chat_new_incident_form`, `google_chat_update_incident_form`, `microsoft_teams_new_incident_form` * @return forms */ @jakarta.annotation.Nullable @@ -121,19 +151,32 @@ public boolean equals(Object o) { return false; } UpdateFormSetDataAttributes updateFormSetDataAttributes = (UpdateFormSetDataAttributes) o; - return Objects.equals(this.name, updateFormSetDataAttributes.name) && + return Objects.equals(this.slug, updateFormSetDataAttributes.slug) && + Objects.equals(this.name, updateFormSetDataAttributes.name) && Objects.equals(this.forms, updateFormSetDataAttributes.forms); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(name, forms); + return Objects.hash(slug, name, forms); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateFormSetDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" forms: ").append(toIndentedString(forms)).append("\n"); sb.append("}"); @@ -158,6 +201,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("forms"); @@ -186,6 +230,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateFunctionality.java b/src/main/java/com/rootly/client/model/UpdateFunctionality.java index 97fc832f..c86b9e5e 100644 --- a/src/main/java/com/rootly/client/model/UpdateFunctionality.java +++ b/src/main/java/com/rootly/client/model/UpdateFunctionality.java @@ -49,7 +49,7 @@ /** * UpdateFunctionality */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFunctionality { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateFunctionalityData.java b/src/main/java/com/rootly/client/model/UpdateFunctionalityData.java index 6108d848..b9c13cbe 100644 --- a/src/main/java/com/rootly/client/model/UpdateFunctionalityData.java +++ b/src/main/java/com/rootly/client/model/UpdateFunctionalityData.java @@ -49,7 +49,7 @@ /** * UpdateFunctionalityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFunctionalityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateFunctionalityDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateFunctionalityDataAttributes.java index d59fd206..18c0117b 100644 --- a/src/main/java/com/rootly/client/model/UpdateFunctionalityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateFunctionalityDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,8 +54,14 @@ /** * UpdateFunctionalityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateFunctionalityDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -140,6 +147,11 @@ public class UpdateFunctionalityDataAttributes { @jakarta.annotation.Nullable private List ownerUserIds; + public static final String SERIALIZED_NAME_ESCALATION_POLICY_ID = "escalation_policy_id"; + @SerializedName(SERIALIZED_NAME_ESCALATION_POLICY_ID) + @jakarta.annotation.Nullable + private String escalationPolicyId; + public static final String SERIALIZED_NAME_SLACK_CHANNELS = "slack_channels"; @SerializedName(SERIALIZED_NAME_SLACK_CHANNELS) @jakarta.annotation.Nullable @@ -150,9 +162,37 @@ public class UpdateFunctionalityDataAttributes { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public UpdateFunctionalityDataAttributes() { } + @Deprecated + public UpdateFunctionalityDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateFunctionalityDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -197,7 +237,7 @@ public UpdateFunctionalityDataAttributes publicDescription(@jakarta.annotation.N } /** - * The public description of the functionality + * The status page description of the functionality * @return publicDescription */ @jakarta.annotation.Nullable @@ -476,7 +516,7 @@ public UpdateFunctionalityDataAttributes addOwnerGroupIdsItem(String ownerGroupI } /** - * Owner Teams associated with this functionality + * Owner Teams associated with this functionality. Empty array removes all; omitting or null leaves unchanged. * @return ownerGroupIds */ @jakarta.annotation.Nullable @@ -503,7 +543,7 @@ public UpdateFunctionalityDataAttributes addOwnerUserIdsItem(Integer ownerUserId } /** - * Owner Users associated with this functionality + * Owner Users associated with this functionality. Empty array removes all; omitting or null leaves unchanged. * @return ownerUserIds */ @jakarta.annotation.Nullable @@ -516,6 +556,25 @@ public void setOwnerUserIds(@jakarta.annotation.Nullable List ownerUser } + public UpdateFunctionalityDataAttributes escalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + return this; + } + + /** + * The escalation policy id of the functionality + * @return escalationPolicyId + */ + @jakarta.annotation.Nullable + public String getEscalationPolicyId() { + return escalationPolicyId; + } + + public void setEscalationPolicyId(@jakarta.annotation.Nullable String escalationPolicyId) { + this.escalationPolicyId = escalationPolicyId; + } + + public UpdateFunctionalityDataAttributes slackChannels(@jakarta.annotation.Nullable List slackChannels) { this.slackChannels = slackChannels; return this; @@ -570,6 +629,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public UpdateFunctionalityDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this functionality. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -580,7 +666,8 @@ public boolean equals(Object o) { return false; } UpdateFunctionalityDataAttributes updateFunctionalityDataAttributes = (UpdateFunctionalityDataAttributes) o; - return Objects.equals(this.name, updateFunctionalityDataAttributes.name) && + return Objects.equals(this.slug, updateFunctionalityDataAttributes.slug) && + Objects.equals(this.name, updateFunctionalityDataAttributes.name) && Objects.equals(this.description, updateFunctionalityDataAttributes.description) && Objects.equals(this.publicDescription, updateFunctionalityDataAttributes.publicDescription) && Objects.equals(this.notifyEmails, updateFunctionalityDataAttributes.notifyEmails) && @@ -597,8 +684,10 @@ public boolean equals(Object o) { Objects.equals(this.serviceIds, updateFunctionalityDataAttributes.serviceIds) && Objects.equals(this.ownerGroupIds, updateFunctionalityDataAttributes.ownerGroupIds) && Objects.equals(this.ownerUserIds, updateFunctionalityDataAttributes.ownerUserIds) && + Objects.equals(this.escalationPolicyId, updateFunctionalityDataAttributes.escalationPolicyId) && Objects.equals(this.slackChannels, updateFunctionalityDataAttributes.slackChannels) && - Objects.equals(this.slackAliases, updateFunctionalityDataAttributes.slackAliases); + Objects.equals(this.slackAliases, updateFunctionalityDataAttributes.slackAliases) && + Objects.equals(this.properties, updateFunctionalityDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -607,7 +696,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, slackChannels, slackAliases); + return Objects.hash(slug, name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, opsgenieTeamId, cortexId, serviceNowCiSysId, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, escalationPolicyId, slackChannels, slackAliases, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -621,6 +710,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateFunctionalityDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); @@ -638,8 +728,10 @@ public String toString() { sb.append(" serviceIds: ").append(toIndentedString(serviceIds)).append("\n"); sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" ownerUserIds: ").append(toIndentedString(ownerUserIds)).append("\n"); + sb.append(" escalationPolicyId: ").append(toIndentedString(escalationPolicyId)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -662,6 +754,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("public_description"); @@ -679,8 +772,10 @@ private String toIndentedString(Object o) { openapiFields.add("service_ids"); openapiFields.add("owner_group_ids"); openapiFields.add("owner_user_ids"); + openapiFields.add("escalation_policy_id"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -707,6 +802,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -760,6 +858,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("owner_user_ids") != null && !jsonObj.get("owner_user_ids").isJsonNull() && !jsonObj.get("owner_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `owner_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_user_ids").toString())); } + if ((jsonObj.get("escalation_policy_id") != null && !jsonObj.get("escalation_policy_id").isJsonNull()) && !jsonObj.get("escalation_policy_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `escalation_policy_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("escalation_policy_id").toString())); + } if (jsonObj.get("slack_channels") != null && !jsonObj.get("slack_channels").isJsonNull()) { JsonArray jsonArrayslackChannels = jsonObj.getAsJsonArray("slack_channels"); if (jsonArrayslackChannels != null) { @@ -788,6 +889,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParams.java b/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParams.java index 15b97569..f5e5df1f 100644 --- a/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParams.java @@ -20,8 +20,13 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.CreateGithubIssueTaskParamsIssueType; +import com.rootly.client.model.UpdateGithubIssueTaskParamsRepository; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,7 +54,7 @@ /** * UpdateGithubIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateGithubIssueTaskParams { /** * Gets or Sets taskType @@ -111,6 +116,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private String issueId; + public static final String SERIALIZED_NAME_REPOSITORY = "repository"; + @SerializedName(SERIALIZED_NAME_REPOSITORY) + @jakarta.annotation.Nullable + private UpdateGithubIssueTaskParamsRepository repository; + public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) @jakarta.annotation.Nullable @@ -121,11 +131,83 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String body; + public static final String SERIALIZED_NAME_LABELS = "labels"; + @SerializedName(SERIALIZED_NAME_LABELS) + @jakarta.annotation.Nullable + private List labels = new ArrayList<>(); + + /** + * How to apply labels. 'replace' (default) overwrites all existing labels. 'append' adds to existing labels without removing them. + */ + @JsonAdapter(LabelsModeEnum.Adapter.class) + public enum LabelsModeEnum { + REPLACE("replace"), + + APPEND("append"); + + private String value; + + LabelsModeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LabelsModeEnum fromValue(String value) { + for (LabelsModeEnum b : LabelsModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LabelsModeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LabelsModeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LabelsModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LabelsModeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_LABELS_MODE = "labels_mode"; + @SerializedName(SERIALIZED_NAME_LABELS_MODE) + @jakarta.annotation.Nullable + private LabelsModeEnum labelsMode = LabelsModeEnum.REPLACE; + + public static final String SERIALIZED_NAME_ISSUE_TYPE = "issue_type"; + @SerializedName(SERIALIZED_NAME_ISSUE_TYPE) + @jakarta.annotation.Nullable + private CreateGithubIssueTaskParamsIssueType issueType; + public static final String SERIALIZED_NAME_COMPLETION = "completion"; @SerializedName(SERIALIZED_NAME_COMPLETION) @jakarta.annotation.Nonnull private AddActionItemTaskParamsPostToSlackChannelsInner completion; + public static final String SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING = "custom_fields_mapping"; + @SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING) + @jakarta.annotation.Nullable + private String customFieldsMapping; + public UpdateGithubIssueTaskParams() { } @@ -167,6 +249,25 @@ public void setIssueId(@jakarta.annotation.Nonnull String issueId) { } + public UpdateGithubIssueTaskParams repository(@jakarta.annotation.Nullable UpdateGithubIssueTaskParamsRepository repository) { + this.repository = repository; + return this; + } + + /** + * Get repository + * @return repository + */ + @jakarta.annotation.Nullable + public UpdateGithubIssueTaskParamsRepository getRepository() { + return repository; + } + + public void setRepository(@jakarta.annotation.Nullable UpdateGithubIssueTaskParamsRepository repository) { + this.repository = repository; + } + + public UpdateGithubIssueTaskParams title(@jakarta.annotation.Nullable String title) { this.title = title; return this; @@ -205,6 +306,71 @@ public void setBody(@jakarta.annotation.Nullable String body) { } + public UpdateGithubIssueTaskParams labels(@jakarta.annotation.Nullable List labels) { + this.labels = labels; + return this; + } + + public UpdateGithubIssueTaskParams addLabelsItem(AddActionItemTaskParamsPostToSlackChannelsInner labelsItem) { + if (this.labels == null) { + this.labels = new ArrayList<>(); + } + this.labels.add(labelsItem); + return this; + } + + /** + * The issue labels + * @return labels + */ + @jakarta.annotation.Nullable + public List getLabels() { + return labels; + } + + public void setLabels(@jakarta.annotation.Nullable List labels) { + this.labels = labels; + } + + + public UpdateGithubIssueTaskParams labelsMode(@jakarta.annotation.Nullable LabelsModeEnum labelsMode) { + this.labelsMode = labelsMode; + return this; + } + + /** + * How to apply labels. 'replace' (default) overwrites all existing labels. 'append' adds to existing labels without removing them. + * @return labelsMode + */ + @jakarta.annotation.Nullable + public LabelsModeEnum getLabelsMode() { + return labelsMode; + } + + public void setLabelsMode(@jakarta.annotation.Nullable LabelsModeEnum labelsMode) { + this.labelsMode = labelsMode; + } + + + public UpdateGithubIssueTaskParams issueType(@jakarta.annotation.Nullable CreateGithubIssueTaskParamsIssueType issueType) { + this.issueType = issueType; + return this; + } + + /** + * Get issueType + * @return issueType + */ + @jakarta.annotation.Nullable + public CreateGithubIssueTaskParamsIssueType getIssueType() { + return issueType; + } + + public void setIssueType(@jakarta.annotation.Nullable CreateGithubIssueTaskParamsIssueType issueType) { + this.issueType = issueType; + } + + public UpdateGithubIssueTaskParams completion(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner completion) { this.completion = completion; return this; @@ -224,6 +390,25 @@ public void setCompletion(@jakarta.annotation.Nonnull AddActionItemTaskParamsPos } + public UpdateGithubIssueTaskParams customFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + return this; + } + + /** + * Custom field mappings. Can contain liquid markup and need to be valid JSON + * @return customFieldsMapping + */ + @jakarta.annotation.Nullable + public String getCustomFieldsMapping() { + return customFieldsMapping; + } + + public void setCustomFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + } + + @Override public boolean equals(Object o) { @@ -236,14 +421,30 @@ public boolean equals(Object o) { UpdateGithubIssueTaskParams updateGithubIssueTaskParams = (UpdateGithubIssueTaskParams) o; return Objects.equals(this.taskType, updateGithubIssueTaskParams.taskType) && Objects.equals(this.issueId, updateGithubIssueTaskParams.issueId) && + Objects.equals(this.repository, updateGithubIssueTaskParams.repository) && Objects.equals(this.title, updateGithubIssueTaskParams.title) && Objects.equals(this.body, updateGithubIssueTaskParams.body) && - Objects.equals(this.completion, updateGithubIssueTaskParams.completion); + Objects.equals(this.labels, updateGithubIssueTaskParams.labels) && + Objects.equals(this.labelsMode, updateGithubIssueTaskParams.labelsMode) && + Objects.equals(this.issueType, updateGithubIssueTaskParams.issueType) && + Objects.equals(this.completion, updateGithubIssueTaskParams.completion) && + Objects.equals(this.customFieldsMapping, updateGithubIssueTaskParams.customFieldsMapping); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(taskType, issueId, title, body, completion); + return Objects.hash(taskType, issueId, repository, title, body, labels, labelsMode, issueType, completion, customFieldsMapping); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -252,9 +453,14 @@ public String toString() { sb.append("class UpdateGithubIssueTaskParams {\n"); sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); sb.append(" issueId: ").append(toIndentedString(issueId)).append("\n"); + sb.append(" repository: ").append(toIndentedString(repository)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" body: ").append(toIndentedString(body)).append("\n"); + sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); + sb.append(" labelsMode: ").append(toIndentedString(labelsMode)).append("\n"); + sb.append(" issueType: ").append(toIndentedString(issueType)).append("\n"); sb.append(" completion: ").append(toIndentedString(completion)).append("\n"); + sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append("}"); return sb.toString(); } @@ -279,9 +485,14 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("task_type"); openapiFields.add("issue_id"); + openapiFields.add("repository"); openapiFields.add("title"); openapiFields.add("body"); + openapiFields.add("labels"); + openapiFields.add("labels_mode"); + openapiFields.add("issue_type"); openapiFields.add("completion"); + openapiFields.add("custom_fields_mapping"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -327,14 +538,46 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("issue_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `issue_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("issue_id").toString())); } + // validate the optional field `repository` + if (jsonObj.get("repository") != null && !jsonObj.get("repository").isJsonNull()) { + UpdateGithubIssueTaskParamsRepository.validateJsonElement(jsonObj.get("repository")); + } if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } if ((jsonObj.get("body") != null && !jsonObj.get("body").isJsonNull()) && !jsonObj.get("body").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("body").toString())); } + if (jsonObj.get("labels") != null && !jsonObj.get("labels").isJsonNull()) { + JsonArray jsonArraylabels = jsonObj.getAsJsonArray("labels"); + if (jsonArraylabels != null) { + // ensure the json data is an array + if (!jsonObj.get("labels").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `labels` to be an array in the JSON string but got `%s`", jsonObj.get("labels").toString())); + } + + // validate the optional field `labels` (array) + for (int i = 0; i < jsonArraylabels.size(); i++) { + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonArraylabels.get(i)); + }; + } + } + if ((jsonObj.get("labels_mode") != null && !jsonObj.get("labels_mode").isJsonNull()) && !jsonObj.get("labels_mode").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `labels_mode` to be a primitive type in the JSON string but got `%s`", jsonObj.get("labels_mode").toString())); + } + // validate the optional field `labels_mode` + if (jsonObj.get("labels_mode") != null && !jsonObj.get("labels_mode").isJsonNull()) { + LabelsModeEnum.validateJsonElement(jsonObj.get("labels_mode")); + } + // validate the optional field `issue_type` + if (jsonObj.get("issue_type") != null && !jsonObj.get("issue_type").isJsonNull()) { + CreateGithubIssueTaskParamsIssueType.validateJsonElement(jsonObj.get("issue_type")); + } // validate the required field `completion` AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("completion")); + if ((jsonObj.get("custom_fields_mapping") != null && !jsonObj.get("custom_fields_mapping").isJsonNull()) && !jsonObj.get("custom_fields_mapping").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_fields_mapping` to be a primitive type in the JSON string but got `%s`", jsonObj.get("custom_fields_mapping").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParamsRepository.java b/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParamsRepository.java index ba5625fc..61873441 100644 --- a/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParamsRepository.java +++ b/src/main/java/com/rootly/client/model/UpdateGithubIssueTaskParamsRepository.java @@ -48,22 +48,22 @@ /** * The repository (used for loading labels and issue types) */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateGithubIssueTaskParamsRepository { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String id; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public UpdateGithubIssueTaskParamsRepository() { } - public UpdateGithubIssueTaskParamsRepository id(@javax.annotation.Nullable String id) { + public UpdateGithubIssueTaskParamsRepository id(@jakarta.annotation.Nullable String id) { this.id = id; return this; } @@ -72,17 +72,17 @@ public UpdateGithubIssueTaskParamsRepository id(@javax.annotation.Nullable Strin * Get id * @return id */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getId() { return id; } - public void setId(@javax.annotation.Nullable String id) { + public void setId(@jakarta.annotation.Nullable String id) { this.id = id; } - public UpdateGithubIssueTaskParamsRepository name(@javax.annotation.Nullable String name) { + public UpdateGithubIssueTaskParamsRepository name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -91,12 +91,12 @@ public UpdateGithubIssueTaskParamsRepository name(@javax.annotation.Nullable Str * Get name * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } diff --git a/src/main/java/com/rootly/client/model/UpdateGitlabIssueTaskParams.java b/src/main/java/com/rootly/client/model/UpdateGitlabIssueTaskParams.java index f46285bd..a03a9242 100644 --- a/src/main/java/com/rootly/client/model/UpdateGitlabIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateGitlabIssueTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateGitlabIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateGitlabIssueTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateGoogleCalendarEventTaskParams.java b/src/main/java/com/rootly/client/model/UpdateGoogleCalendarEventTaskParams.java index bb995ce9..697eca12 100644 --- a/src/main/java/com/rootly/client/model/UpdateGoogleCalendarEventTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateGoogleCalendarEventTaskParams.java @@ -52,7 +52,7 @@ /** * UpdateGoogleCalendarEventTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateGoogleCalendarEventTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParams.java b/src/main/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParams.java new file mode 100644 index 00000000..36796268 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParams.java @@ -0,0 +1,329 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateGoogleChatSpaceDescriptionTaskParams + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateGoogleChatSpaceDescriptionTaskParams { + /** + * Gets or Sets taskType + */ + @JsonAdapter(TaskTypeEnum.Adapter.class) + public enum TaskTypeEnum { + UPDATE_GOOGLE_CHAT_SPACE_DESCRIPTION("update_google_chat_space_description"); + + private String value; + + TaskTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TaskTypeEnum fromValue(String value) { + for (TaskTypeEnum b : TaskTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TaskTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TaskTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TaskTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TaskTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TASK_TYPE = "task_type"; + @SerializedName(SERIALIZED_NAME_TASK_TYPE) + @jakarta.annotation.Nullable + private TaskTypeEnum taskType; + + public static final String SERIALIZED_NAME_SPACE = "space"; + @SerializedName(SERIALIZED_NAME_SPACE) + @jakarta.annotation.Nonnull + private AddActionItemTaskParamsPostToSlackChannelsInner space; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nonnull + private String description; + + public UpdateGoogleChatSpaceDescriptionTaskParams() { + } + + public UpdateGoogleChatSpaceDescriptionTaskParams taskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + return this; + } + + /** + * Get taskType + * @return taskType + */ + @jakarta.annotation.Nullable + public TaskTypeEnum getTaskType() { + return taskType; + } + + public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { + this.taskType = taskType; + } + + + public UpdateGoogleChatSpaceDescriptionTaskParams space(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + return this; + } + + /** + * Get space + * @return space + */ + @jakarta.annotation.Nonnull + public AddActionItemTaskParamsPostToSlackChannelsInner getSpace() { + return space; + } + + public void setSpace(@jakarta.annotation.Nonnull AddActionItemTaskParamsPostToSlackChannelsInner space) { + this.space = space; + } + + + public UpdateGoogleChatSpaceDescriptionTaskParams description(@jakarta.annotation.Nonnull String description) { + this.description = description; + return this; + } + + /** + * The space description. Supports liquid markup + * @return description + */ + @jakarta.annotation.Nonnull + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nonnull String description) { + this.description = description; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateGoogleChatSpaceDescriptionTaskParams updateGoogleChatSpaceDescriptionTaskParams = (UpdateGoogleChatSpaceDescriptionTaskParams) o; + return Objects.equals(this.taskType, updateGoogleChatSpaceDescriptionTaskParams.taskType) && + Objects.equals(this.space, updateGoogleChatSpaceDescriptionTaskParams.space) && + Objects.equals(this.description, updateGoogleChatSpaceDescriptionTaskParams.description); + } + + @Override + public int hashCode() { + return Objects.hash(taskType, space, description); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateGoogleChatSpaceDescriptionTaskParams {\n"); + sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" space: ").append(toIndentedString(space)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("task_type"); + openapiFields.add("space"); + openapiFields.add("description"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("space"); + openapiRequiredFields.add("description"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateGoogleChatSpaceDescriptionTaskParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateGoogleChatSpaceDescriptionTaskParams.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateGoogleChatSpaceDescriptionTaskParams is not found in the empty JSON string", UpdateGoogleChatSpaceDescriptionTaskParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateGoogleChatSpaceDescriptionTaskParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateGoogleChatSpaceDescriptionTaskParams` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateGoogleChatSpaceDescriptionTaskParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) && !jsonObj.get("task_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `task_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("task_type").toString())); + } + // validate the optional field `task_type` + if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { + TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); + } + // validate the required field `space` + AddActionItemTaskParamsPostToSlackChannelsInner.validateJsonElement(jsonObj.get("space")); + if (!jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateGoogleChatSpaceDescriptionTaskParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateGoogleChatSpaceDescriptionTaskParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateGoogleChatSpaceDescriptionTaskParams.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateGoogleChatSpaceDescriptionTaskParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateGoogleChatSpaceDescriptionTaskParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateGoogleChatSpaceDescriptionTaskParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateGoogleChatSpaceDescriptionTaskParams + * @throws IOException if the JSON string is invalid with respect to UpdateGoogleChatSpaceDescriptionTaskParams + */ + public static UpdateGoogleChatSpaceDescriptionTaskParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateGoogleChatSpaceDescriptionTaskParams.class); + } + + /** + * Convert an instance of UpdateGoogleChatSpaceDescriptionTaskParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParams.java b/src/main/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParams.java index 880b2bc0..603b1d7f 100644 --- a/src/main/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateGoogleDocsPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateGoogleDocsPageTaskParams { /** * Gets or Sets taskType @@ -130,6 +130,21 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String templateId; + public static final String SERIALIZED_NAME_INCLUDE_OVERVIEW = "include_overview"; + @SerializedName(SERIALIZED_NAME_INCLUDE_OVERVIEW) + @jakarta.annotation.Nullable + private Boolean includeOverview = true; + + public static final String SERIALIZED_NAME_INCLUDE_TIMELINE = "include_timeline"; + @SerializedName(SERIALIZED_NAME_INCLUDE_TIMELINE) + @jakarta.annotation.Nullable + private Boolean includeTimeline = true; + + public static final String SERIALIZED_NAME_INCLUDE_FOLLOW_UPS = "include_follow_ups"; + @SerializedName(SERIALIZED_NAME_INCLUDE_FOLLOW_UPS) + @jakarta.annotation.Nullable + private Boolean includeFollowUps = true; + public UpdateGoogleDocsPageTaskParams() { } @@ -247,6 +262,63 @@ public void setTemplateId(@jakarta.annotation.Nullable String templateId) { } + public UpdateGoogleDocsPageTaskParams includeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + return this; + } + + /** + * Get includeOverview + * @return includeOverview + */ + @jakarta.annotation.Nullable + public Boolean getIncludeOverview() { + return includeOverview; + } + + public void setIncludeOverview(@jakarta.annotation.Nullable Boolean includeOverview) { + this.includeOverview = includeOverview; + } + + + public UpdateGoogleDocsPageTaskParams includeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + return this; + } + + /** + * Get includeTimeline + * @return includeTimeline + */ + @jakarta.annotation.Nullable + public Boolean getIncludeTimeline() { + return includeTimeline; + } + + public void setIncludeTimeline(@jakarta.annotation.Nullable Boolean includeTimeline) { + this.includeTimeline = includeTimeline; + } + + + public UpdateGoogleDocsPageTaskParams includeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + return this; + } + + /** + * Get includeFollowUps + * @return includeFollowUps + */ + @jakarta.annotation.Nullable + public Boolean getIncludeFollowUps() { + return includeFollowUps; + } + + public void setIncludeFollowUps(@jakarta.annotation.Nullable Boolean includeFollowUps) { + this.includeFollowUps = includeFollowUps; + } + + @Override public boolean equals(Object o) { @@ -262,12 +334,15 @@ public boolean equals(Object o) { Objects.equals(this.title, updateGoogleDocsPageTaskParams.title) && Objects.equals(this.content, updateGoogleDocsPageTaskParams.content) && Objects.equals(this.postMortemTemplateId, updateGoogleDocsPageTaskParams.postMortemTemplateId) && - Objects.equals(this.templateId, updateGoogleDocsPageTaskParams.templateId); + Objects.equals(this.templateId, updateGoogleDocsPageTaskParams.templateId) && + Objects.equals(this.includeOverview, updateGoogleDocsPageTaskParams.includeOverview) && + Objects.equals(this.includeTimeline, updateGoogleDocsPageTaskParams.includeTimeline) && + Objects.equals(this.includeFollowUps, updateGoogleDocsPageTaskParams.includeFollowUps); } @Override public int hashCode() { - return Objects.hash(taskType, fileId, title, content, postMortemTemplateId, templateId); + return Objects.hash(taskType, fileId, title, content, postMortemTemplateId, templateId, includeOverview, includeTimeline, includeFollowUps); } @Override @@ -280,6 +355,9 @@ public String toString() { sb.append(" content: ").append(toIndentedString(content)).append("\n"); sb.append(" postMortemTemplateId: ").append(toIndentedString(postMortemTemplateId)).append("\n"); sb.append(" templateId: ").append(toIndentedString(templateId)).append("\n"); + sb.append(" includeOverview: ").append(toIndentedString(includeOverview)).append("\n"); + sb.append(" includeTimeline: ").append(toIndentedString(includeTimeline)).append("\n"); + sb.append(" includeFollowUps: ").append(toIndentedString(includeFollowUps)).append("\n"); sb.append("}"); return sb.toString(); } @@ -308,6 +386,9 @@ private String toIndentedString(Object o) { openapiFields.add("content"); openapiFields.add("post_mortem_template_id"); openapiFields.add("template_id"); + openapiFields.add("include_overview"); + openapiFields.add("include_timeline"); + openapiFields.add("include_follow_ups"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/UpdateHeartbeat.java b/src/main/java/com/rootly/client/model/UpdateHeartbeat.java index bcd1fd30..344c5bf2 100644 --- a/src/main/java/com/rootly/client/model/UpdateHeartbeat.java +++ b/src/main/java/com/rootly/client/model/UpdateHeartbeat.java @@ -49,7 +49,7 @@ /** * UpdateHeartbeat */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateHeartbeat { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateHeartbeatData.java b/src/main/java/com/rootly/client/model/UpdateHeartbeatData.java index edda03ac..01fa12fd 100644 --- a/src/main/java/com/rootly/client/model/UpdateHeartbeatData.java +++ b/src/main/java/com/rootly/client/model/UpdateHeartbeatData.java @@ -49,7 +49,7 @@ /** * UpdateHeartbeatData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateHeartbeatData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateHeartbeatDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateHeartbeatDataAttributes.java index 1eaaa791..c1942d58 100644 --- a/src/main/java/com/rootly/client/model/UpdateHeartbeatDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateHeartbeatDataAttributes.java @@ -20,7 +20,9 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; @@ -49,7 +51,7 @@ /** * UpdateHeartbeatDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateHeartbeatDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -146,7 +148,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti private String notificationTargetId; /** - * Gets or Sets notificationTargetType + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(NotificationTargetTypeEnum.Adapter.class) public enum NotificationTargetTypeEnum { @@ -156,7 +158,9 @@ public enum NotificationTargetTypeEnum { SERVICE("Service"), - ESCALATION_POLICY("EscalationPolicy"); + ESCALATION_POLICY("EscalationPolicy"), + + FUNCTIONALITY("Functionality"); private String value; @@ -206,6 +210,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private NotificationTargetTypeEnum notificationTargetType; + public static final String SERIALIZED_NAME_OWNER_GROUP_IDS = "owner_group_ids"; + @SerializedName(SERIALIZED_NAME_OWNER_GROUP_IDS) + @jakarta.annotation.Nullable + private List ownerGroupIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_ENABLED = "enabled"; @SerializedName(SERIALIZED_NAME_ENABLED) @jakarta.annotation.Nullable @@ -372,7 +381,7 @@ public UpdateHeartbeatDataAttributes notificationTargetType(@jakarta.annotation. } /** - * Get notificationTargetType + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. * @return notificationTargetType */ @jakarta.annotation.Nullable @@ -385,6 +394,33 @@ public void setNotificationTargetType(@jakarta.annotation.Nullable NotificationT } + public UpdateHeartbeatDataAttributes ownerGroupIds(@jakarta.annotation.Nullable List ownerGroupIds) { + this.ownerGroupIds = ownerGroupIds; + return this; + } + + public UpdateHeartbeatDataAttributes addOwnerGroupIdsItem(String ownerGroupIdsItem) { + if (this.ownerGroupIds == null) { + this.ownerGroupIds = new ArrayList<>(); + } + this.ownerGroupIds.add(ownerGroupIdsItem); + return this; + } + + /** + * List of team IDs that own this heartbeat + * @return ownerGroupIds + */ + @jakarta.annotation.Nullable + public List getOwnerGroupIds() { + return ownerGroupIds; + } + + public void setOwnerGroupIds(@jakarta.annotation.Nullable List ownerGroupIds) { + this.ownerGroupIds = ownerGroupIds; + } + + public UpdateHeartbeatDataAttributes enabled(@jakarta.annotation.Nullable Boolean enabled) { this.enabled = enabled; return this; @@ -423,6 +459,7 @@ public boolean equals(Object o) { Objects.equals(this.intervalUnit, updateHeartbeatDataAttributes.intervalUnit) && Objects.equals(this.notificationTargetId, updateHeartbeatDataAttributes.notificationTargetId) && Objects.equals(this.notificationTargetType, updateHeartbeatDataAttributes.notificationTargetType) && + Objects.equals(this.ownerGroupIds, updateHeartbeatDataAttributes.ownerGroupIds) && Objects.equals(this.enabled, updateHeartbeatDataAttributes.enabled); } @@ -432,7 +469,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, alertSummary, alertDescription, alertUrgencyId, interval, intervalUnit, notificationTargetId, notificationTargetType, enabled); + return Objects.hash(name, description, alertSummary, alertDescription, alertUrgencyId, interval, intervalUnit, notificationTargetId, notificationTargetType, ownerGroupIds, enabled); } private static int hashCodeNullable(JsonNullable a) { @@ -455,6 +492,7 @@ public String toString() { sb.append(" intervalUnit: ").append(toIndentedString(intervalUnit)).append("\n"); sb.append(" notificationTargetId: ").append(toIndentedString(notificationTargetId)).append("\n"); sb.append(" notificationTargetType: ").append(toIndentedString(notificationTargetType)).append("\n"); + sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); sb.append("}"); return sb.toString(); @@ -487,6 +525,7 @@ private String toIndentedString(Object o) { openapiFields.add("interval_unit"); openapiFields.add("notification_target_id"); openapiFields.add("notification_target_type"); + openapiFields.add("owner_group_ids"); openapiFields.add("enabled"); // a set of required properties/fields (JSON key names) @@ -546,6 +585,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("notification_target_type") != null && !jsonObj.get("notification_target_type").isJsonNull()) { NotificationTargetTypeEnum.validateJsonElement(jsonObj.get("notification_target_type")); } + // ensure the optional json data is an array if present + if (jsonObj.get("owner_group_ids") != null && !jsonObj.get("owner_group_ids").isJsonNull() && !jsonObj.get("owner_group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `owner_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_group_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateIncident.java b/src/main/java/com/rootly/client/model/UpdateIncident.java index 8e12f31a..30ddd2b1 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncident.java +++ b/src/main/java/com/rootly/client/model/UpdateIncident.java @@ -49,7 +49,7 @@ /** * UpdateIncident */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncident { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentActionItem.java b/src/main/java/com/rootly/client/model/UpdateIncidentActionItem.java index 061c9706..b28ca030 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentActionItem.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentActionItem.java @@ -49,7 +49,7 @@ /** * UpdateIncidentActionItem */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentActionItem { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentActionItemData.java b/src/main/java/com/rootly/client/model/UpdateIncidentActionItemData.java index 345c295f..a305bcd8 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentActionItemData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentActionItemData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentActionItemData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentActionItemData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributes.java index 27c45d4c..9810f175 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -51,7 +52,7 @@ /** * UpdateIncidentActionItemDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentActionItemDataAttributes { public static final String SERIALIZED_NAME_SUMMARY = "summary"; @SerializedName(SERIALIZED_NAME_SUMMARY) @@ -270,6 +271,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String jiraIssueUrl; + public static final String SERIALIZED_NAME_FORM_FIELD_SELECTIONS = "form_field_selections"; + @SerializedName(SERIALIZED_NAME_FORM_FIELD_SELECTIONS) + @jakarta.annotation.Nullable + private List formFieldSelections; + public UpdateIncidentActionItemDataAttributes() { } @@ -490,6 +496,33 @@ public void setJiraIssueUrl(@jakarta.annotation.Nullable String jiraIssueUrl) { } + public UpdateIncidentActionItemDataAttributes formFieldSelections(@jakarta.annotation.Nullable List formFieldSelections) { + this.formFieldSelections = formFieldSelections; + return this; + } + + public UpdateIncidentActionItemDataAttributes addFormFieldSelectionsItem(NewIncidentActionItemDataAttributesFormFieldSelectionsInner formFieldSelectionsItem) { + if (this.formFieldSelections == null) { + this.formFieldSelections = new ArrayList<>(); + } + this.formFieldSelections.add(formFieldSelectionsItem); + return this; + } + + /** + * Custom field values to set on the action item. Ignored unless custom fields for action items are enabled for the organization. + * @return formFieldSelections + */ + @jakarta.annotation.Nullable + public List getFormFieldSelections() { + return formFieldSelections; + } + + public void setFormFieldSelections(@jakarta.annotation.Nullable List formFieldSelections) { + this.formFieldSelections = formFieldSelections; + } + + @Override public boolean equals(Object o) { @@ -510,7 +543,8 @@ public boolean equals(Object o) { Objects.equals(this.dueDate, updateIncidentActionItemDataAttributes.dueDate) && Objects.equals(this.jiraIssueId, updateIncidentActionItemDataAttributes.jiraIssueId) && Objects.equals(this.jiraIssueKey, updateIncidentActionItemDataAttributes.jiraIssueKey) && - Objects.equals(this.jiraIssueUrl, updateIncidentActionItemDataAttributes.jiraIssueUrl); + Objects.equals(this.jiraIssueUrl, updateIncidentActionItemDataAttributes.jiraIssueUrl) && + Objects.equals(this.formFieldSelections, updateIncidentActionItemDataAttributes.formFieldSelections); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -519,7 +553,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(summary, description, kind, assignedToUserId, assignedToGroupIds, priority, status, dueDate, jiraIssueId, jiraIssueKey, jiraIssueUrl); + return Objects.hash(summary, description, kind, assignedToUserId, assignedToGroupIds, priority, status, dueDate, jiraIssueId, jiraIssueKey, jiraIssueUrl, formFieldSelections); } private static int hashCodeNullable(JsonNullable a) { @@ -544,6 +578,7 @@ public String toString() { sb.append(" jiraIssueId: ").append(toIndentedString(jiraIssueId)).append("\n"); sb.append(" jiraIssueKey: ").append(toIndentedString(jiraIssueKey)).append("\n"); sb.append(" jiraIssueUrl: ").append(toIndentedString(jiraIssueUrl)).append("\n"); + sb.append(" formFieldSelections: ").append(toIndentedString(formFieldSelections)).append("\n"); sb.append("}"); return sb.toString(); } @@ -577,6 +612,7 @@ private String toIndentedString(Object o) { openapiFields.add("jira_issue_id"); openapiFields.add("jira_issue_key"); openapiFields.add("jira_issue_url"); + openapiFields.add("form_field_selections"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -646,6 +682,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("jira_issue_url") != null && !jsonObj.get("jira_issue_url").isJsonNull()) && !jsonObj.get("jira_issue_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `jira_issue_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("jira_issue_url").toString())); } + if (jsonObj.get("form_field_selections") != null && !jsonObj.get("form_field_selections").isJsonNull()) { + JsonArray jsonArrayformFieldSelections = jsonObj.getAsJsonArray("form_field_selections"); + if (jsonArrayformFieldSelections != null) { + // ensure the json data is an array + if (!jsonObj.get("form_field_selections").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `form_field_selections` to be an array in the JSON string but got `%s`", jsonObj.get("form_field_selections").toString())); + } + + // validate the optional field `form_field_selections` (array) + for (int i = 0; i < jsonArrayformFieldSelections.size(); i++) { + NewIncidentActionItemDataAttributesFormFieldSelectionsInner.validateJsonElement(jsonArrayformFieldSelections.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelection.java b/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelection.java index 6d6489d4..b76feb1b 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelection.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelection.java @@ -49,7 +49,7 @@ /** * UpdateIncidentCustomFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentCustomFieldSelection { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionData.java b/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionData.java index 23fb1be9..f1ed656b 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentCustomFieldSelectionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentCustomFieldSelectionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionDataAttributes.java index 485c3b04..aa76860a 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentCustomFieldSelectionDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateIncidentCustomFieldSelectionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentCustomFieldSelectionDataAttributes { public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentData.java b/src/main/java/com/rootly/client/model/UpdateIncidentData.java index 476179e2..bda58a8c 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentDataAttributes.java index 8c322acb..bde69c43 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateIncidentDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentDataAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEvent.java b/src/main/java/com/rootly/client/model/UpdateIncidentEvent.java index d73465c1..bebd347b 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEvent.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEvent.java @@ -49,7 +49,7 @@ /** * UpdateIncidentEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEvent { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventData.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventData.java index 136d758e..feec715c 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentEventData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventDataAttributes.java index 7a58c8d3..f69caec4 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateIncidentEventDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventDataAttributes { public static final String SERIALIZED_NAME_EVENT = "event"; @SerializedName(SERIALIZED_NAME_EVENT) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionality.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionality.java index 84a88d28..90513f02 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionality.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionality.java @@ -49,7 +49,7 @@ /** * UpdateIncidentEventFunctionality */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventFunctionality { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityData.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityData.java index 919556ac..b1580c8d 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentEventFunctionalityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventFunctionalityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityDataAttributes.java index 2551d310..19fd900a 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventFunctionalityDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateIncidentEventFunctionalityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventFunctionalityDataAttributes { /** * The status of the affected functionality diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventService.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventService.java index d6c9ce9d..ca2d4862 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventService.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventService.java @@ -49,7 +49,7 @@ /** * UpdateIncidentEventService */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventService { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceData.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceData.java index b8b28c39..bf273317 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentEventServiceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventServiceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceDataAttributes.java index 66de8a21..c1026cc6 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentEventServiceDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateIncidentEventServiceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentEventServiceDataAttributes { /** * The status of the affected service diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentFeedback.java b/src/main/java/com/rootly/client/model/UpdateIncidentFeedback.java index 0a6c18d3..4d8b36bb 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentFeedback.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentFeedback.java @@ -49,7 +49,7 @@ /** * UpdateIncidentFeedback */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentFeedback { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackData.java b/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackData.java index 0a6bfeb7..3b7b074f 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentFeedbackData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentFeedbackData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackDataAttributes.java index f6116c5a..fb93aca1 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentFeedbackDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateIncidentFeedbackDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentFeedbackDataAttributes { public static final String SERIALIZED_NAME_FEEDBACK = "feedback"; @SerializedName(SERIALIZED_NAME_FEEDBACK) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelection.java b/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelection.java index f8aa5a1a..186ae963 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelection.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelection.java @@ -49,7 +49,7 @@ /** * UpdateIncidentFormFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentFormFieldSelection { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionData.java b/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionData.java index 4c9fb9cf..c1e34be0 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentFormFieldSelectionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentFormFieldSelectionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributes.java index 1d195638..8eb2a334 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateIncidentFormFieldSelectionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentFormFieldSelectionDataAttributes { public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) @@ -88,6 +88,21 @@ public class UpdateIncidentFormFieldSelectionDataAttributes { @jakarta.annotation.Nullable private List selectedUserIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + public UpdateIncidentFormFieldSelectionDataAttributes() { } @@ -272,6 +287,87 @@ public void setSelectedUserIds(@jakarta.annotation.Nullable List select } + public UpdateIncidentFormFieldSelectionDataAttributes selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public UpdateIncidentFormFieldSelectionDataAttributes addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public UpdateIncidentFormFieldSelectionDataAttributes selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public UpdateIncidentFormFieldSelectionDataAttributes addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public UpdateIncidentFormFieldSelectionDataAttributes selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public UpdateIncidentFormFieldSelectionDataAttributes addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + @Override public boolean equals(Object o) { @@ -288,7 +384,10 @@ public boolean equals(Object o) { Objects.equals(this.selectedOptionIds, updateIncidentFormFieldSelectionDataAttributes.selectedOptionIds) && Objects.equals(this.selectedServiceIds, updateIncidentFormFieldSelectionDataAttributes.selectedServiceIds) && Objects.equals(this.selectedFunctionalityIds, updateIncidentFormFieldSelectionDataAttributes.selectedFunctionalityIds) && - Objects.equals(this.selectedUserIds, updateIncidentFormFieldSelectionDataAttributes.selectedUserIds); + Objects.equals(this.selectedUserIds, updateIncidentFormFieldSelectionDataAttributes.selectedUserIds) && + Objects.equals(this.selectedEnvironmentIds, updateIncidentFormFieldSelectionDataAttributes.selectedEnvironmentIds) && + Objects.equals(this.selectedCauseIds, updateIncidentFormFieldSelectionDataAttributes.selectedCauseIds) && + Objects.equals(this.selectedIncidentTypeIds, updateIncidentFormFieldSelectionDataAttributes.selectedIncidentTypeIds); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -297,7 +396,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(value, selectedCatalogEntityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedFunctionalityIds, selectedUserIds); + return Objects.hash(value, selectedCatalogEntityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedFunctionalityIds, selectedUserIds, selectedEnvironmentIds, selectedCauseIds, selectedIncidentTypeIds); } private static int hashCodeNullable(JsonNullable a) { @@ -318,6 +417,9 @@ public String toString() { sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); sb.append(" selectedFunctionalityIds: ").append(toIndentedString(selectedFunctionalityIds)).append("\n"); sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -347,6 +449,9 @@ private String toIndentedString(Object o) { openapiFields.add("selected_service_ids"); openapiFields.add("selected_functionality_ids"); openapiFields.add("selected_user_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_incident_type_ids"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -400,6 +505,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSet.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSet.java index 6cac5504..55ce2f08 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSet.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSet.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSet */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSet { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBoolean.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBoolean.java index 7243d24a..e9e202ae 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBoolean.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBoolean.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSetBoolean */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetBoolean { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanData.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanData.java index 9b7de15a..c83e7d43 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSetBooleanData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetBooleanData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributes.java index 53fc183a..cc7c0636 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSetBooleanDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetBooleanDataAttributes { /** * Gets or Sets kind diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributesSeverityParams.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributesSeverityParams.java index abae5056..e8829d06 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributesSeverityParams.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetBooleanDataAttributesSeverityParams.java @@ -51,7 +51,7 @@ /** * UpdateIncidentPermissionSetBooleanDataAttributesSeverityParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetBooleanDataAttributesSeverityParams { public static final String SERIALIZED_NAME_FULLY_ENABLED = "fully_enabled"; @SerializedName(SERIALIZED_NAME_FULLY_ENABLED) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetData.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetData.java index c93e6059..38dc9e4d 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSetData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributes.java index 17c5b49c..3550a0be 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributes.java @@ -51,18 +51,19 @@ /** * UpdateIncidentPermissionSetDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nullable - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -193,41 +194,45 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdateIncidentPermissionSetDataAttributes() { } - public UpdateIncidentPermissionSetDataAttributes name(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public UpdateIncidentPermissionSetDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * The incident permission set name. - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable - public String getName() { - return name; + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public UpdateIncidentPermissionSetDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public UpdateIncidentPermissionSetDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; return this; } /** - * The incident permission set slug. - * @return slug + * The incident permission set name. + * @return name */ @jakarta.annotation.Nullable - public String getSlug() { - return slug; + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; } @@ -314,8 +319,8 @@ public boolean equals(Object o) { return false; } UpdateIncidentPermissionSetDataAttributes updateIncidentPermissionSetDataAttributes = (UpdateIncidentPermissionSetDataAttributes) o; - return Objects.equals(this.name, updateIncidentPermissionSetDataAttributes.name) && - Objects.equals(this.slug, updateIncidentPermissionSetDataAttributes.slug) && + return Objects.equals(this.slug, updateIncidentPermissionSetDataAttributes.slug) && + Objects.equals(this.name, updateIncidentPermissionSetDataAttributes.name) && Objects.equals(this.description, updateIncidentPermissionSetDataAttributes.description) && Objects.equals(this.privateIncidentPermissions, updateIncidentPermissionSetDataAttributes.privateIncidentPermissions) && Objects.equals(this.publicIncidentPermissions, updateIncidentPermissionSetDataAttributes.publicIncidentPermissions); @@ -327,7 +332,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, privateIncidentPermissions, publicIncidentPermissions); + return Objects.hash(slug, name, description, privateIncidentPermissions, publicIncidentPermissions); } private static int hashCodeNullable(JsonNullable a) { @@ -341,8 +346,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateIncidentPermissionSetDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" privateIncidentPermissions: ").append(toIndentedString(privateIncidentPermissions)).append("\n"); sb.append(" publicIncidentPermissions: ").append(toIndentedString(publicIncidentPermissions)).append("\n"); @@ -368,8 +373,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("private_incident_permissions"); openapiFields.add("public_incident_permissions"); @@ -399,12 +404,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResource.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResource.java index 35437314..a6df7307 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResource.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResource.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSetResource */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetResource { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceData.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceData.java index ace07c70..0de434be 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSetResourceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetResourceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceDataAttributes.java index 5d9d6cc9..378377f6 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPermissionSetResourceDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPermissionSetResourceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPermissionSetResourceDataAttributes { /** * Gets or Sets kind diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPostMortem.java b/src/main/java/com/rootly/client/model/UpdateIncidentPostMortem.java index e025fc2c..c81ff6ee 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPostMortem.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPostMortem.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPostMortem */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPostMortem { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemData.java b/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemData.java index c208f6d8..b10230d7 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPostMortemData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPostMortemData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemDataAttributes.java index e015d21b..039b6001 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPostMortemDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateIncidentPostMortemDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPostMortemDataAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentPostmortemTaskParams.java b/src/main/java/com/rootly/client/model/UpdateIncidentPostmortemTaskParams.java index e9996790..7944eaee 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentPostmortemTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentPostmortemTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateIncidentPostmortemTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentPostmortemTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStep.java b/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStep.java index 2c8737ae..c10589cb 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStep.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStep.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRetrospectiveStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRetrospectiveStep { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepData.java b/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepData.java index 78419503..a00b84f2 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRetrospectiveStepData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRetrospectiveStepData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepDataAttributes.java index 8ef90e6c..8c9f6922 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRetrospectiveStepDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRetrospectiveStepDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRetrospectiveStepDataAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRole.java b/src/main/java/com/rootly/client/model/UpdateIncidentRole.java index da730f6e..3f636b98 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRole.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRole.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRole { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRoleData.java b/src/main/java/com/rootly/client/model/UpdateIncidentRoleData.java index 27bb4889..05fb67ba 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRoleData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRoleData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRoleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRoleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRoleDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentRoleDataAttributes.java index bcb70c4c..13c7a1f2 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRoleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRoleDataAttributes.java @@ -49,8 +49,14 @@ /** * UpdateIncidentRoleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRoleDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -89,6 +95,29 @@ public class UpdateIncidentRoleDataAttributes { public UpdateIncidentRoleDataAttributes() { } + @Deprecated + public UpdateIncidentRoleDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateIncidentRoleDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -232,7 +261,8 @@ public boolean equals(Object o) { return false; } UpdateIncidentRoleDataAttributes updateIncidentRoleDataAttributes = (UpdateIncidentRoleDataAttributes) o; - return Objects.equals(this.name, updateIncidentRoleDataAttributes.name) && + return Objects.equals(this.slug, updateIncidentRoleDataAttributes.slug) && + Objects.equals(this.name, updateIncidentRoleDataAttributes.name) && Objects.equals(this.summary, updateIncidentRoleDataAttributes.summary) && Objects.equals(this.description, updateIncidentRoleDataAttributes.description) && Objects.equals(this.position, updateIncidentRoleDataAttributes.position) && @@ -247,7 +277,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, summary, description, position, optional, enabled, allowMultiUserAssignment); + return Objects.hash(slug, name, summary, description, position, optional, enabled, allowMultiUserAssignment); } private static int hashCodeNullable(JsonNullable a) { @@ -261,6 +291,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateIncidentRoleDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" summary: ").append(toIndentedString(summary)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); @@ -290,6 +321,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("summary"); openapiFields.add("description"); @@ -323,6 +355,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRoleTask.java b/src/main/java/com/rootly/client/model/UpdateIncidentRoleTask.java index 7c02d177..76226563 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRoleTask.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRoleTask.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRoleTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRoleTask { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskData.java b/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskData.java index 4efcac0c..0b73dda4 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRoleTaskData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRoleTaskData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskDataAttributes.java index 4fdac776..144795f6 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentRoleTaskDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateIncidentRoleTaskDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentRoleTaskDataAttributes { public static final String SERIALIZED_NAME_TASK = "task"; @SerializedName(SERIALIZED_NAME_TASK) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEvent.java b/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEvent.java index a9b18fae..b37cd7af 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEvent.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEvent.java @@ -49,7 +49,7 @@ /** * UpdateIncidentStatusPageEvent */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentStatusPageEvent { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventData.java b/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventData.java index 4eef20d7..e5acfeff 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentStatusPageEventData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentStatusPageEventData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributes.java index 14206083..59889d29 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributes.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.Arrays; import org.openapitools.jackson.nullable.JsonNullable; @@ -49,7 +50,7 @@ /** * UpdateIncidentStatusPageEventDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentStatusPageEventDataAttributes { public static final String SERIALIZED_NAME_EVENT = "event"; @SerializedName(SERIALIZED_NAME_EVENT) @@ -138,6 +139,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean shouldTweet = false; + public static final String SERIALIZED_NAME_STARTED_AT = "started_at"; + @SerializedName(SERIALIZED_NAME_STARTED_AT) + @jakarta.annotation.Nullable + private OffsetDateTime startedAt; + public UpdateIncidentStatusPageEventDataAttributes() { } @@ -236,6 +242,25 @@ public void setShouldTweet(@jakarta.annotation.Nullable Boolean shouldTweet) { } + public UpdateIncidentStatusPageEventDataAttributes startedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + return this; + } + + /** + * When the event started. + * @return startedAt + */ + @jakarta.annotation.Nullable + public OffsetDateTime getStartedAt() { + return startedAt; + } + + public void setStartedAt(@jakarta.annotation.Nullable OffsetDateTime startedAt) { + this.startedAt = startedAt; + } + + @Override public boolean equals(Object o) { @@ -250,7 +275,8 @@ public boolean equals(Object o) { Objects.equals(this.statusPageId, updateIncidentStatusPageEventDataAttributes.statusPageId) && Objects.equals(this.status, updateIncidentStatusPageEventDataAttributes.status) && Objects.equals(this.notifySubscribers, updateIncidentStatusPageEventDataAttributes.notifySubscribers) && - Objects.equals(this.shouldTweet, updateIncidentStatusPageEventDataAttributes.shouldTweet); + Objects.equals(this.shouldTweet, updateIncidentStatusPageEventDataAttributes.shouldTweet) && + Objects.equals(this.startedAt, updateIncidentStatusPageEventDataAttributes.startedAt); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -259,7 +285,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(event, statusPageId, status, notifySubscribers, shouldTweet); + return Objects.hash(event, statusPageId, status, notifySubscribers, shouldTweet, startedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -278,6 +304,7 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" notifySubscribers: ").append(toIndentedString(notifySubscribers)).append("\n"); sb.append(" shouldTweet: ").append(toIndentedString(shouldTweet)).append("\n"); + sb.append(" startedAt: ").append(toIndentedString(startedAt)).append("\n"); sb.append("}"); return sb.toString(); } @@ -305,6 +332,7 @@ private String toIndentedString(Object o) { openapiFields.add("status"); openapiFields.add("notify_subscribers"); openapiFields.add("should_tweet"); + openapiFields.add("started_at"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentStatusTimestampTaskParams.java b/src/main/java/com/rootly/client/model/UpdateIncidentStatusTimestampTaskParams.java index 07e5ba64..aa508d9f 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentStatusTimestampTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentStatusTimestampTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateIncidentStatusTimestampTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentStatusTimestampTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentSubStatus.java b/src/main/java/com/rootly/client/model/UpdateIncidentSubStatus.java index ade6a3a2..26088f04 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentSubStatus.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentSubStatus.java @@ -49,7 +49,7 @@ /** * UpdateIncidentSubStatus */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentSubStatus { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusData.java b/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusData.java index dc2ae902..302140a5 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentSubStatusData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentSubStatusData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusDataAttributes.java index d14b1a1b..84a6b2f1 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentSubStatusDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateIncidentSubStatusDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentSubStatusDataAttributes { public static final String SERIALIZED_NAME_SUB_STATUS_ID = "sub_status_id"; @SerializedName(SERIALIZED_NAME_SUB_STATUS_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentTaskParams.java b/src/main/java/com/rootly/client/model/UpdateIncidentTaskParams.java index 89c9d473..72e425dc 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentTaskParams.java @@ -51,7 +51,7 @@ /** * UpdateIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentType.java b/src/main/java/com/rootly/client/model/UpdateIncidentType.java index 47a3d69d..a08775b8 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentType.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentType.java @@ -49,7 +49,7 @@ /** * UpdateIncidentType */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentType { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentTypeData.java b/src/main/java/com/rootly/client/model/UpdateIncidentTypeData.java index 0811f6a1..ad498339 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentTypeData.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentTypeData.java @@ -49,7 +49,7 @@ /** * UpdateIncidentTypeData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentTypeData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateIncidentTypeDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateIncidentTypeDataAttributes.java index 707148b4..41202544 100644 --- a/src/main/java/com/rootly/client/model/UpdateIncidentTypeDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateIncidentTypeDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -53,8 +54,14 @@ /** * UpdateIncidentTypeDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateIncidentTypeDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -65,6 +72,11 @@ public class UpdateIncidentTypeDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_COLOR = "color"; @SerializedName(SERIALIZED_NAME_COLOR) @jakarta.annotation.Nullable @@ -90,9 +102,37 @@ public class UpdateIncidentTypeDataAttributes { @jakarta.annotation.Nullable private List slackAliases; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public UpdateIncidentTypeDataAttributes() { } + @Deprecated + public UpdateIncidentTypeDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateIncidentTypeDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -131,6 +171,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public UpdateIncidentTypeDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the incident type + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public UpdateIncidentTypeDataAttributes color(@jakarta.annotation.Nullable String color) { this.color = color; return this; @@ -250,6 +309,33 @@ public void setSlackAliases(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public UpdateIncidentTypeDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this incident type. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -260,13 +346,16 @@ public boolean equals(Object o) { return false; } UpdateIncidentTypeDataAttributes updateIncidentTypeDataAttributes = (UpdateIncidentTypeDataAttributes) o; - return Objects.equals(this.name, updateIncidentTypeDataAttributes.name) && + return Objects.equals(this.slug, updateIncidentTypeDataAttributes.slug) && + Objects.equals(this.name, updateIncidentTypeDataAttributes.name) && Objects.equals(this.description, updateIncidentTypeDataAttributes.description) && + Objects.equals(this.publicDescription, updateIncidentTypeDataAttributes.publicDescription) && Objects.equals(this.color, updateIncidentTypeDataAttributes.color) && Objects.equals(this.position, updateIncidentTypeDataAttributes.position) && Objects.equals(this.notifyEmails, updateIncidentTypeDataAttributes.notifyEmails) && Objects.equals(this.slackChannels, updateIncidentTypeDataAttributes.slackChannels) && - Objects.equals(this.slackAliases, updateIncidentTypeDataAttributes.slackAliases); + Objects.equals(this.slackAliases, updateIncidentTypeDataAttributes.slackAliases) && + Objects.equals(this.properties, updateIncidentTypeDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -275,7 +364,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, color, position, notifyEmails, slackChannels, slackAliases); + return Objects.hash(slug, name, description, publicDescription, color, position, notifyEmails, slackChannels, slackAliases, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -289,13 +378,16 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateIncidentTypeDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" slackChannels: ").append(toIndentedString(slackChannels)).append("\n"); sb.append(" slackAliases: ").append(toIndentedString(slackAliases)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -318,13 +410,16 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("color"); openapiFields.add("position"); openapiFields.add("notify_emails"); openapiFields.add("slack_channels"); openapiFields.add("slack_aliases"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -351,12 +446,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString())); } @@ -392,6 +493,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateJiraIssueTaskParams.java b/src/main/java/com/rootly/client/model/UpdateJiraIssueTaskParams.java index 64b16669..762b257b 100644 --- a/src/main/java/com/rootly/client/model/UpdateJiraIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateJiraIssueTaskParams.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateJiraIssueTaskParamsIntegration; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import com.rootly.client.model.CreateJiraIssueTaskParamsStatus; import java.io.IOException; @@ -51,7 +52,7 @@ /** * UpdateJiraIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateJiraIssueTaskParams { /** * Gets or Sets taskType @@ -108,6 +109,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private TaskTypeEnum taskType; + public static final String SERIALIZED_NAME_INTEGRATION = "integration"; + @SerializedName(SERIALIZED_NAME_INTEGRATION) + @jakarta.annotation.Nullable + private CreateJiraIssueTaskParamsIntegration integration; + public static final String SERIALIZED_NAME_ISSUE_ID = "issue_id"; @SerializedName(SERIALIZED_NAME_ISSUE_ID) @jakarta.annotation.Nonnull @@ -168,6 +174,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String updatePayload; + public static final String SERIALIZED_NAME_RETRY_COUNT = "retry_count"; + @SerializedName(SERIALIZED_NAME_RETRY_COUNT) + @jakarta.annotation.Nullable + private Integer retryCount = 0; + + public static final String SERIALIZED_NAME_RETRY_WAIT_TIME = "retry_wait_time"; + @SerializedName(SERIALIZED_NAME_RETRY_WAIT_TIME) + @jakarta.annotation.Nullable + private Integer retryWaitTime = 1; + public UpdateJiraIssueTaskParams() { } @@ -190,6 +206,25 @@ public void setTaskType(@jakarta.annotation.Nullable TaskTypeEnum taskType) { } + public UpdateJiraIssueTaskParams integration(@jakarta.annotation.Nullable CreateJiraIssueTaskParamsIntegration integration) { + this.integration = integration; + return this; + } + + /** + * Get integration + * @return integration + */ + @jakarta.annotation.Nullable + public CreateJiraIssueTaskParamsIntegration getIntegration() { + return integration; + } + + public void setIntegration(@jakarta.annotation.Nullable CreateJiraIssueTaskParamsIntegration integration) { + this.integration = integration; + } + + public UpdateJiraIssueTaskParams issueId(@jakarta.annotation.Nonnull String issueId) { this.issueId = issueId; return this; @@ -418,6 +453,44 @@ public void setUpdatePayload(@jakarta.annotation.Nullable String updatePayload) } + public UpdateJiraIssueTaskParams retryCount(@jakarta.annotation.Nullable Integer retryCount) { + this.retryCount = retryCount; + return this; + } + + /** + * Number of times to retry on rate-limit (HTTP 429) responses (0-4). 0 disables retry. + * @return retryCount + */ + @jakarta.annotation.Nullable + public Integer getRetryCount() { + return retryCount; + } + + public void setRetryCount(@jakarta.annotation.Nullable Integer retryCount) { + this.retryCount = retryCount; + } + + + public UpdateJiraIssueTaskParams retryWaitTime(@jakarta.annotation.Nullable Integer retryWaitTime) { + this.retryWaitTime = retryWaitTime; + return this; + } + + /** + * Seconds to wait before each retry (1-15). Retry-After header is honored when present and <= 90s, taking the larger of retry_wait_time and the header value. + * @return retryWaitTime + */ + @jakarta.annotation.Nullable + public Integer getRetryWaitTime() { + return retryWaitTime; + } + + public void setRetryWaitTime(@jakarta.annotation.Nullable Integer retryWaitTime) { + this.retryWaitTime = retryWaitTime; + } + + @Override public boolean equals(Object o) { @@ -429,6 +502,7 @@ public boolean equals(Object o) { } UpdateJiraIssueTaskParams updateJiraIssueTaskParams = (UpdateJiraIssueTaskParams) o; return Objects.equals(this.taskType, updateJiraIssueTaskParams.taskType) && + Objects.equals(this.integration, updateJiraIssueTaskParams.integration) && Objects.equals(this.issueId, updateJiraIssueTaskParams.issueId) && Objects.equals(this.title, updateJiraIssueTaskParams.title) && Objects.equals(this.description, updateJiraIssueTaskParams.description) && @@ -440,7 +514,9 @@ public boolean equals(Object o) { Objects.equals(this.priority, updateJiraIssueTaskParams.priority) && Objects.equals(this.status, updateJiraIssueTaskParams.status) && Objects.equals(this.customFieldsMapping, updateJiraIssueTaskParams.customFieldsMapping) && - Objects.equals(this.updatePayload, updateJiraIssueTaskParams.updatePayload); + Objects.equals(this.updatePayload, updateJiraIssueTaskParams.updatePayload) && + Objects.equals(this.retryCount, updateJiraIssueTaskParams.retryCount) && + Objects.equals(this.retryWaitTime, updateJiraIssueTaskParams.retryWaitTime); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -449,7 +525,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(taskType, issueId, title, description, labels, assignUserEmail, reporterUserEmail, projectKey, dueDate, priority, status, customFieldsMapping, updatePayload); + return Objects.hash(taskType, integration, issueId, title, description, labels, assignUserEmail, reporterUserEmail, projectKey, dueDate, priority, status, customFieldsMapping, updatePayload, retryCount, retryWaitTime); } private static int hashCodeNullable(JsonNullable a) { @@ -464,6 +540,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateJiraIssueTaskParams {\n"); sb.append(" taskType: ").append(toIndentedString(taskType)).append("\n"); + sb.append(" integration: ").append(toIndentedString(integration)).append("\n"); sb.append(" issueId: ").append(toIndentedString(issueId)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); @@ -476,6 +553,8 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append(" updatePayload: ").append(toIndentedString(updatePayload)).append("\n"); + sb.append(" retryCount: ").append(toIndentedString(retryCount)).append("\n"); + sb.append(" retryWaitTime: ").append(toIndentedString(retryWaitTime)).append("\n"); sb.append("}"); return sb.toString(); } @@ -499,6 +578,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("task_type"); + openapiFields.add("integration"); openapiFields.add("issue_id"); openapiFields.add("title"); openapiFields.add("description"); @@ -511,6 +591,8 @@ private String toIndentedString(Object o) { openapiFields.add("status"); openapiFields.add("custom_fields_mapping"); openapiFields.add("update_payload"); + openapiFields.add("retry_count"); + openapiFields.add("retry_wait_time"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -553,6 +635,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("task_type") != null && !jsonObj.get("task_type").isJsonNull()) { TaskTypeEnum.validateJsonElement(jsonObj.get("task_type")); } + // validate the optional field `integration` + if (jsonObj.get("integration") != null && !jsonObj.get("integration").isJsonNull()) { + CreateJiraIssueTaskParamsIntegration.validateJsonElement(jsonObj.get("integration")); + } if (!jsonObj.get("issue_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `issue_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("issue_id").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParams.java b/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParams.java index b44b2a02..6b4a4a6a 100644 --- a/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParams.java @@ -55,7 +55,7 @@ /** * UpdateLinearIssueTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateLinearIssueTaskParams { /** * Gets or Sets taskType @@ -152,6 +152,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String assignUserEmail; + public static final String SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING = "custom_fields_mapping"; + @SerializedName(SERIALIZED_NAME_CUSTOM_FIELDS_MAPPING) + @jakarta.annotation.Nullable + private String customFieldsMapping; + public UpdateLinearIssueTaskParams() { } @@ -334,6 +339,25 @@ public void setAssignUserEmail(@jakarta.annotation.Nullable String assignUserEma } + public UpdateLinearIssueTaskParams customFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + return this; + } + + /** + * Custom field mappings. Can contain liquid markup and need to be valid JSON + * @return customFieldsMapping + */ + @jakarta.annotation.Nullable + public String getCustomFieldsMapping() { + return customFieldsMapping; + } + + public void setCustomFieldsMapping(@jakarta.annotation.Nullable String customFieldsMapping) { + this.customFieldsMapping = customFieldsMapping; + } + + @Override public boolean equals(Object o) { @@ -352,7 +376,8 @@ public boolean equals(Object o) { Objects.equals(this.project, updateLinearIssueTaskParams.project) && Objects.equals(this.labels, updateLinearIssueTaskParams.labels) && Objects.equals(this.priority, updateLinearIssueTaskParams.priority) && - Objects.equals(this.assignUserEmail, updateLinearIssueTaskParams.assignUserEmail); + Objects.equals(this.assignUserEmail, updateLinearIssueTaskParams.assignUserEmail) && + Objects.equals(this.customFieldsMapping, updateLinearIssueTaskParams.customFieldsMapping); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -361,7 +386,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(taskType, issueId, title, description, state, project, labels, priority, assignUserEmail); + return Objects.hash(taskType, issueId, title, description, state, project, labels, priority, assignUserEmail, customFieldsMapping); } private static int hashCodeNullable(JsonNullable a) { @@ -384,6 +409,7 @@ public String toString() { sb.append(" labels: ").append(toIndentedString(labels)).append("\n"); sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); sb.append(" assignUserEmail: ").append(toIndentedString(assignUserEmail)).append("\n"); + sb.append(" customFieldsMapping: ").append(toIndentedString(customFieldsMapping)).append("\n"); sb.append("}"); return sb.toString(); } @@ -415,6 +441,7 @@ private String toIndentedString(Object o) { openapiFields.add("labels"); openapiFields.add("priority"); openapiFields.add("assign_user_email"); + openapiFields.add("custom_fields_mapping"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -494,6 +521,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("assign_user_email") != null && !jsonObj.get("assign_user_email").isJsonNull()) && !jsonObj.get("assign_user_email").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `assign_user_email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("assign_user_email").toString())); } + if ((jsonObj.get("custom_fields_mapping") != null && !jsonObj.get("custom_fields_mapping").isJsonNull()) && !jsonObj.get("custom_fields_mapping").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_fields_mapping` to be a primitive type in the JSON string but got `%s`", jsonObj.get("custom_fields_mapping").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParamsState.java b/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParamsState.java index a3e52116..c1325449 100644 --- a/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParamsState.java +++ b/src/main/java/com/rootly/client/model/UpdateLinearIssueTaskParamsState.java @@ -48,7 +48,7 @@ /** * The state id and display name */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateLinearIssueTaskParamsState { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateLiveCallRouter.java b/src/main/java/com/rootly/client/model/UpdateLiveCallRouter.java index d4e632b6..afcaf89b 100644 --- a/src/main/java/com/rootly/client/model/UpdateLiveCallRouter.java +++ b/src/main/java/com/rootly/client/model/UpdateLiveCallRouter.java @@ -49,7 +49,7 @@ /** * UpdateLiveCallRouter */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateLiveCallRouter { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateLiveCallRouterData.java b/src/main/java/com/rootly/client/model/UpdateLiveCallRouterData.java index d5afbcb6..54a78bcc 100644 --- a/src/main/java/com/rootly/client/model/UpdateLiveCallRouterData.java +++ b/src/main/java/com/rootly/client/model/UpdateLiveCallRouterData.java @@ -49,7 +49,7 @@ /** * UpdateLiveCallRouterData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateLiveCallRouterData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributes.java index a9a673f0..1287c9cc 100644 --- a/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributes.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -52,7 +53,7 @@ /** * UpdateLiveCallRouterDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateLiveCallRouterDataAttributes { /** * The kind of the live_call_router @@ -136,6 +137,10 @@ public enum CountryCodeEnum { NZ("NZ"), + SE("SE"), + + CH("CH"), + GB("GB"), US("US"); @@ -257,6 +262,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private String callerGreeting; + public static final String SERIALIZED_NAME_UNAVAILABLE_RESPONDER_MESSAGE = "unavailable_responder_message"; + @SerializedName(SERIALIZED_NAME_UNAVAILABLE_RESPONDER_MESSAGE) + @jakarta.annotation.Nullable + private String unavailableResponderMessage; + /** * The waiting music URL of the live_call_router */ @@ -344,11 +354,31 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean shouldAutoResolveAlertOnCallEnd; + public static final String SERIALIZED_NAME_NOTIFY_VIA_SMS = "notify_via_sms"; + @SerializedName(SERIALIZED_NAME_NOTIFY_VIA_SMS) + @jakarta.annotation.Nullable + private Boolean notifyViaSms; + + public static final String SERIALIZED_NAME_NOTIFY_VIA_PUSH_NOTIFICATION = "notify_via_push_notification"; + @SerializedName(SERIALIZED_NAME_NOTIFY_VIA_PUSH_NOTIFICATION) + @jakarta.annotation.Nullable + private Boolean notifyViaPushNotification; + + public static final String SERIALIZED_NAME_INFORMATIONAL_NOTIFICATION_MESSAGE = "informational_notification_message"; + @SerializedName(SERIALIZED_NAME_INFORMATIONAL_NOTIFICATION_MESSAGE) + @jakarta.annotation.Nullable + private String informationalNotificationMessage; + public static final String SERIALIZED_NAME_ALERT_URGENCY_ID = "alert_urgency_id"; @SerializedName(SERIALIZED_NAME_ALERT_URGENCY_ID) @jakarta.annotation.Nullable private String alertUrgencyId; + public static final String SERIALIZED_NAME_CALLING_TREE_ENABLED = "calling_tree_enabled"; + @SerializedName(SERIALIZED_NAME_CALLING_TREE_ENABLED) + @jakarta.annotation.Nullable + private Boolean callingTreeEnabled; + public static final String SERIALIZED_NAME_CALLING_TREE_PROMPT = "calling_tree_prompt"; @SerializedName(SERIALIZED_NAME_CALLING_TREE_PROMPT) @jakarta.annotation.Nullable @@ -500,6 +530,25 @@ public void setCallerGreeting(@jakarta.annotation.Nullable String callerGreeting } + public UpdateLiveCallRouterDataAttributes unavailableResponderMessage(@jakarta.annotation.Nullable String unavailableResponderMessage) { + this.unavailableResponderMessage = unavailableResponderMessage; + return this; + } + + /** + * The message played to the caller when a responder doesn't answer and the call moves on to the next person in the escalation. Leave blank to use the default message. + * @return unavailableResponderMessage + */ + @jakarta.annotation.Nullable + public String getUnavailableResponderMessage() { + return unavailableResponderMessage; + } + + public void setUnavailableResponderMessage(@jakarta.annotation.Nullable String unavailableResponderMessage) { + this.unavailableResponderMessage = unavailableResponderMessage; + } + + public UpdateLiveCallRouterDataAttributes waitingMusicUrl(@jakarta.annotation.Nullable WaitingMusicUrlEnum waitingMusicUrl) { this.waitingMusicUrl = waitingMusicUrl; return this; @@ -595,6 +644,63 @@ public void setShouldAutoResolveAlertOnCallEnd(@jakarta.annotation.Nullable Bool } + public UpdateLiveCallRouterDataAttributes notifyViaSms(@jakarta.annotation.Nullable Boolean notifyViaSms) { + this.notifyViaSms = notifyViaSms; + return this; + } + + /** + * Whether responders are also notified via SMS when this router pages them + * @return notifyViaSms + */ + @jakarta.annotation.Nullable + public Boolean getNotifyViaSms() { + return notifyViaSms; + } + + public void setNotifyViaSms(@jakarta.annotation.Nullable Boolean notifyViaSms) { + this.notifyViaSms = notifyViaSms; + } + + + public UpdateLiveCallRouterDataAttributes notifyViaPushNotification(@jakarta.annotation.Nullable Boolean notifyViaPushNotification) { + this.notifyViaPushNotification = notifyViaPushNotification; + return this; + } + + /** + * Whether responders are also notified via push notification when this router pages them + * @return notifyViaPushNotification + */ + @jakarta.annotation.Nullable + public Boolean getNotifyViaPushNotification() { + return notifyViaPushNotification; + } + + public void setNotifyViaPushNotification(@jakarta.annotation.Nullable Boolean notifyViaPushNotification) { + this.notifyViaPushNotification = notifyViaPushNotification; + } + + + public UpdateLiveCallRouterDataAttributes informationalNotificationMessage(@jakarta.annotation.Nullable String informationalNotificationMessage) { + this.informationalNotificationMessage = informationalNotificationMessage; + return this; + } + + /** + * Optional message included in the SMS/push notification. Supports variables such as {{ alert.url }}, {{ alert.data.* }}, and {{ alert.alert_urgency.name }}. + * @return informationalNotificationMessage + */ + @jakarta.annotation.Nullable + public String getInformationalNotificationMessage() { + return informationalNotificationMessage; + } + + public void setInformationalNotificationMessage(@jakarta.annotation.Nullable String informationalNotificationMessage) { + this.informationalNotificationMessage = informationalNotificationMessage; + } + + public UpdateLiveCallRouterDataAttributes alertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId) { this.alertUrgencyId = alertUrgencyId; return this; @@ -614,6 +720,25 @@ public void setAlertUrgencyId(@jakarta.annotation.Nullable String alertUrgencyId } + public UpdateLiveCallRouterDataAttributes callingTreeEnabled(@jakarta.annotation.Nullable Boolean callingTreeEnabled) { + this.callingTreeEnabled = callingTreeEnabled; + return this; + } + + /** + * Whether the live call router is configured as a phone tree, requiring callers to press a key before being connected + * @return callingTreeEnabled + */ + @jakarta.annotation.Nullable + public Boolean getCallingTreeEnabled() { + return callingTreeEnabled; + } + + public void setCallingTreeEnabled(@jakarta.annotation.Nullable Boolean callingTreeEnabled) { + this.callingTreeEnabled = callingTreeEnabled; + } + + public UpdateLiveCallRouterDataAttributes callingTreePrompt(@jakarta.annotation.Nullable String callingTreePrompt) { this.callingTreePrompt = callingTreePrompt; return this; @@ -696,20 +821,36 @@ public boolean equals(Object o) { Objects.equals(this.phoneType, updateLiveCallRouterDataAttributes.phoneType) && Objects.equals(this.voicemailGreeting, updateLiveCallRouterDataAttributes.voicemailGreeting) && Objects.equals(this.callerGreeting, updateLiveCallRouterDataAttributes.callerGreeting) && + Objects.equals(this.unavailableResponderMessage, updateLiveCallRouterDataAttributes.unavailableResponderMessage) && Objects.equals(this.waitingMusicUrl, updateLiveCallRouterDataAttributes.waitingMusicUrl) && Objects.equals(this.sentToVoicemailDelay, updateLiveCallRouterDataAttributes.sentToVoicemailDelay) && Objects.equals(this.shouldRedirectToVoicemailOnNoAnswer, updateLiveCallRouterDataAttributes.shouldRedirectToVoicemailOnNoAnswer) && Objects.equals(this.escalationLevelDelayInSeconds, updateLiveCallRouterDataAttributes.escalationLevelDelayInSeconds) && Objects.equals(this.shouldAutoResolveAlertOnCallEnd, updateLiveCallRouterDataAttributes.shouldAutoResolveAlertOnCallEnd) && + Objects.equals(this.notifyViaSms, updateLiveCallRouterDataAttributes.notifyViaSms) && + Objects.equals(this.notifyViaPushNotification, updateLiveCallRouterDataAttributes.notifyViaPushNotification) && + Objects.equals(this.informationalNotificationMessage, updateLiveCallRouterDataAttributes.informationalNotificationMessage) && Objects.equals(this.alertUrgencyId, updateLiveCallRouterDataAttributes.alertUrgencyId) && + Objects.equals(this.callingTreeEnabled, updateLiveCallRouterDataAttributes.callingTreeEnabled) && Objects.equals(this.callingTreePrompt, updateLiveCallRouterDataAttributes.callingTreePrompt) && Objects.equals(this.pagingTargets, updateLiveCallRouterDataAttributes.pagingTargets) && Objects.equals(this.escalationPolicyTriggerParams, updateLiveCallRouterDataAttributes.escalationPolicyTriggerParams); } + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + @Override public int hashCode() { - return Objects.hash(kind, enabled, name, countryCode, phoneType, voicemailGreeting, callerGreeting, waitingMusicUrl, sentToVoicemailDelay, shouldRedirectToVoicemailOnNoAnswer, escalationLevelDelayInSeconds, shouldAutoResolveAlertOnCallEnd, alertUrgencyId, callingTreePrompt, pagingTargets, escalationPolicyTriggerParams); + return Objects.hash(kind, enabled, name, countryCode, phoneType, voicemailGreeting, callerGreeting, unavailableResponderMessage, waitingMusicUrl, sentToVoicemailDelay, shouldRedirectToVoicemailOnNoAnswer, escalationLevelDelayInSeconds, shouldAutoResolveAlertOnCallEnd, notifyViaSms, notifyViaPushNotification, informationalNotificationMessage, alertUrgencyId, callingTreeEnabled, callingTreePrompt, pagingTargets, escalationPolicyTriggerParams); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override @@ -723,12 +864,17 @@ public String toString() { sb.append(" phoneType: ").append(toIndentedString(phoneType)).append("\n"); sb.append(" voicemailGreeting: ").append(toIndentedString(voicemailGreeting)).append("\n"); sb.append(" callerGreeting: ").append(toIndentedString(callerGreeting)).append("\n"); + sb.append(" unavailableResponderMessage: ").append(toIndentedString(unavailableResponderMessage)).append("\n"); sb.append(" waitingMusicUrl: ").append(toIndentedString(waitingMusicUrl)).append("\n"); sb.append(" sentToVoicemailDelay: ").append(toIndentedString(sentToVoicemailDelay)).append("\n"); sb.append(" shouldRedirectToVoicemailOnNoAnswer: ").append(toIndentedString(shouldRedirectToVoicemailOnNoAnswer)).append("\n"); sb.append(" escalationLevelDelayInSeconds: ").append(toIndentedString(escalationLevelDelayInSeconds)).append("\n"); sb.append(" shouldAutoResolveAlertOnCallEnd: ").append(toIndentedString(shouldAutoResolveAlertOnCallEnd)).append("\n"); + sb.append(" notifyViaSms: ").append(toIndentedString(notifyViaSms)).append("\n"); + sb.append(" notifyViaPushNotification: ").append(toIndentedString(notifyViaPushNotification)).append("\n"); + sb.append(" informationalNotificationMessage: ").append(toIndentedString(informationalNotificationMessage)).append("\n"); sb.append(" alertUrgencyId: ").append(toIndentedString(alertUrgencyId)).append("\n"); + sb.append(" callingTreeEnabled: ").append(toIndentedString(callingTreeEnabled)).append("\n"); sb.append(" callingTreePrompt: ").append(toIndentedString(callingTreePrompt)).append("\n"); sb.append(" pagingTargets: ").append(toIndentedString(pagingTargets)).append("\n"); sb.append(" escalationPolicyTriggerParams: ").append(toIndentedString(escalationPolicyTriggerParams)).append("\n"); @@ -761,12 +907,17 @@ private String toIndentedString(Object o) { openapiFields.add("phone_type"); openapiFields.add("voicemail_greeting"); openapiFields.add("caller_greeting"); + openapiFields.add("unavailable_responder_message"); openapiFields.add("waiting_music_url"); openapiFields.add("sent_to_voicemail_delay"); openapiFields.add("should_redirect_to_voicemail_on_no_answer"); openapiFields.add("escalation_level_delay_in_seconds"); openapiFields.add("should_auto_resolve_alert_on_call_end"); + openapiFields.add("notify_via_sms"); + openapiFields.add("notify_via_push_notification"); + openapiFields.add("informational_notification_message"); openapiFields.add("alert_urgency_id"); + openapiFields.add("calling_tree_enabled"); openapiFields.add("calling_tree_prompt"); openapiFields.add("paging_targets"); openapiFields.add("escalation_policy_trigger_params"); @@ -826,6 +977,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("caller_greeting") != null && !jsonObj.get("caller_greeting").isJsonNull()) && !jsonObj.get("caller_greeting").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `caller_greeting` to be a primitive type in the JSON string but got `%s`", jsonObj.get("caller_greeting").toString())); } + if ((jsonObj.get("unavailable_responder_message") != null && !jsonObj.get("unavailable_responder_message").isJsonNull()) && !jsonObj.get("unavailable_responder_message").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `unavailable_responder_message` to be a primitive type in the JSON string but got `%s`", jsonObj.get("unavailable_responder_message").toString())); + } if ((jsonObj.get("waiting_music_url") != null && !jsonObj.get("waiting_music_url").isJsonNull()) && !jsonObj.get("waiting_music_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `waiting_music_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("waiting_music_url").toString())); } @@ -833,6 +987,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("waiting_music_url") != null && !jsonObj.get("waiting_music_url").isJsonNull()) { WaitingMusicUrlEnum.validateJsonElement(jsonObj.get("waiting_music_url")); } + if ((jsonObj.get("informational_notification_message") != null && !jsonObj.get("informational_notification_message").isJsonNull()) && !jsonObj.get("informational_notification_message").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `informational_notification_message` to be a primitive type in the JSON string but got `%s`", jsonObj.get("informational_notification_message").toString())); + } if ((jsonObj.get("alert_urgency_id") != null && !jsonObj.get("alert_urgency_id").isJsonNull()) && !jsonObj.get("alert_urgency_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `alert_urgency_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("alert_urgency_id").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java b/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java index 55959674..e20da48a 100644 --- a/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java +++ b/src/main/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams.java @@ -48,7 +48,7 @@ /** * UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @@ -56,7 +56,7 @@ public class UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams { private String id; /** - * The type of the notification target + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. */ @JsonAdapter(TypeEnum.Adapter.class) public enum TypeEnum { @@ -64,7 +64,9 @@ public enum TypeEnum { GROUP("Group"), - ESCALATION_POLICY("EscalationPolicy"); + ESCALATION_POLICY("EscalationPolicy"), + + FUNCTIONALITY("Functionality"); private String value; @@ -142,7 +144,7 @@ public UpdateLiveCallRouterDataAttributesEscalationPolicyTriggerParams type(@jak } /** - * The type of the notification target + * The type of the notification target. Please contact support if you encounter issues using `Functionality` as a target type. * @return type */ @jakarta.annotation.Nonnull diff --git a/src/main/java/com/rootly/client/model/UpdateMotionTaskTaskParams.java b/src/main/java/com/rootly/client/model/UpdateMotionTaskTaskParams.java index 778810d1..e542154a 100644 --- a/src/main/java/com/rootly/client/model/UpdateMotionTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateMotionTaskTaskParams.java @@ -51,7 +51,7 @@ /** * UpdateMotionTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateMotionTaskTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateNotionPageTaskParams.java b/src/main/java/com/rootly/client/model/UpdateNotionPageTaskParams.java index 7d33c7e1..c050005b 100644 --- a/src/main/java/com/rootly/client/model/UpdateNotionPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateNotionPageTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateNotionPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateNotionPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallPayReport.java b/src/main/java/com/rootly/client/model/UpdateOnCallPayReport.java index ffc0bb66..b5d4d233 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallPayReport.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallPayReport.java @@ -49,17 +49,17 @@ /** * UpdateOnCallPayReport */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallPayReport { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateOnCallPayReportData data; public UpdateOnCallPayReport() { } - public UpdateOnCallPayReport data(@javax.annotation.Nonnull UpdateOnCallPayReportData data) { + public UpdateOnCallPayReport data(@jakarta.annotation.Nonnull UpdateOnCallPayReportData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public UpdateOnCallPayReport data(@javax.annotation.Nonnull UpdateOnCallPayRepor * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateOnCallPayReportData getData() { return data; } - public void setData(@javax.annotation.Nonnull UpdateOnCallPayReportData data) { + public void setData(@jakarta.annotation.Nonnull UpdateOnCallPayReportData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallPayReportData.java b/src/main/java/com/rootly/client/model/UpdateOnCallPayReportData.java index a75f21af..893a3dbc 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallPayReportData.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallPayReportData.java @@ -49,7 +49,7 @@ /** * UpdateOnCallPayReportData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallPayReportData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateOnCallPayReportDataAttributes attributes; public UpdateOnCallPayReportData() { } - public UpdateOnCallPayReportData type(@javax.annotation.Nonnull TypeEnum type) { + public UpdateOnCallPayReportData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public UpdateOnCallPayReportData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public UpdateOnCallPayReportData attributes(@javax.annotation.Nonnull UpdateOnCallPayReportDataAttributes attributes) { + public UpdateOnCallPayReportData attributes(@jakarta.annotation.Nonnull UpdateOnCallPayReportDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public UpdateOnCallPayReportData attributes(@javax.annotation.Nonnull UpdateOnCa * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateOnCallPayReportDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull UpdateOnCallPayReportDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull UpdateOnCallPayReportDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributes.java index 6dcd2814..4ab3ff53 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributes.java @@ -51,27 +51,37 @@ /** * UpdateOnCallPayReportDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallPayReportDataAttributes { public static final String SERIALIZED_NAME_START_DATE = "start_date"; @SerializedName(SERIALIZED_NAME_START_DATE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private LocalDate startDate; public static final String SERIALIZED_NAME_END_DATE = "end_date"; @SerializedName(SERIALIZED_NAME_END_DATE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private LocalDate endDate; public static final String SERIALIZED_NAME_SCHEDULE_IDS = "schedule_ids"; @SerializedName(SERIALIZED_NAME_SCHEDULE_IDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List scheduleIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_TIME_ZONE = "time_zone"; + @SerializedName(SERIALIZED_NAME_TIME_ZONE) + @jakarta.annotation.Nullable + private String timeZone; + + public static final String SERIALIZED_NAME_USE_RESPONDERS_TIME_ZONE = "use_responders_time_zone"; + @SerializedName(SERIALIZED_NAME_USE_RESPONDERS_TIME_ZONE) + @jakarta.annotation.Nullable + private Boolean useRespondersTimeZone; + public UpdateOnCallPayReportDataAttributes() { } - public UpdateOnCallPayReportDataAttributes startDate(@javax.annotation.Nullable LocalDate startDate) { + public UpdateOnCallPayReportDataAttributes startDate(@jakarta.annotation.Nullable LocalDate startDate) { this.startDate = startDate; return this; } @@ -80,17 +90,17 @@ public UpdateOnCallPayReportDataAttributes startDate(@javax.annotation.Nullable * The start date for the report period. * @return startDate */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public LocalDate getStartDate() { return startDate; } - public void setStartDate(@javax.annotation.Nullable LocalDate startDate) { + public void setStartDate(@jakarta.annotation.Nullable LocalDate startDate) { this.startDate = startDate; } - public UpdateOnCallPayReportDataAttributes endDate(@javax.annotation.Nullable LocalDate endDate) { + public UpdateOnCallPayReportDataAttributes endDate(@jakarta.annotation.Nullable LocalDate endDate) { this.endDate = endDate; return this; } @@ -99,17 +109,17 @@ public UpdateOnCallPayReportDataAttributes endDate(@javax.annotation.Nullable Lo * The end date for the report period. * @return endDate */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public LocalDate getEndDate() { return endDate; } - public void setEndDate(@javax.annotation.Nullable LocalDate endDate) { + public void setEndDate(@jakarta.annotation.Nullable LocalDate endDate) { this.endDate = endDate; } - public UpdateOnCallPayReportDataAttributes scheduleIds(@javax.annotation.Nullable List scheduleIds) { + public UpdateOnCallPayReportDataAttributes scheduleIds(@jakarta.annotation.Nullable List scheduleIds) { this.scheduleIds = scheduleIds; return this; } @@ -126,16 +136,54 @@ public UpdateOnCallPayReportDataAttributes addScheduleIdsItem(String scheduleIds * List of schedule UUIDs to scope the report. * @return scheduleIds */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getScheduleIds() { return scheduleIds; } - public void setScheduleIds(@javax.annotation.Nullable List scheduleIds) { + public void setScheduleIds(@jakarta.annotation.Nullable List scheduleIds) { this.scheduleIds = scheduleIds; } + public UpdateOnCallPayReportDataAttributes timeZone(@jakarta.annotation.Nullable String timeZone) { + this.timeZone = timeZone; + return this; + } + + /** + * IANA timezone used to compute day and weekend boundaries. + * @return timeZone + */ + @jakarta.annotation.Nullable + public String getTimeZone() { + return timeZone; + } + + public void setTimeZone(@jakarta.annotation.Nullable String timeZone) { + this.timeZone = timeZone; + } + + + public UpdateOnCallPayReportDataAttributes useRespondersTimeZone(@jakarta.annotation.Nullable Boolean useRespondersTimeZone) { + this.useRespondersTimeZone = useRespondersTimeZone; + return this; + } + + /** + * When true, day and weekend boundaries are computed in each responder's personal timezone instead of the report-wide timezone. + * @return useRespondersTimeZone + */ + @jakarta.annotation.Nullable + public Boolean getUseRespondersTimeZone() { + return useRespondersTimeZone; + } + + public void setUseRespondersTimeZone(@jakarta.annotation.Nullable Boolean useRespondersTimeZone) { + this.useRespondersTimeZone = useRespondersTimeZone; + } + + @Override public boolean equals(Object o) { @@ -148,12 +196,14 @@ public boolean equals(Object o) { UpdateOnCallPayReportDataAttributes updateOnCallPayReportDataAttributes = (UpdateOnCallPayReportDataAttributes) o; return Objects.equals(this.startDate, updateOnCallPayReportDataAttributes.startDate) && Objects.equals(this.endDate, updateOnCallPayReportDataAttributes.endDate) && - Objects.equals(this.scheduleIds, updateOnCallPayReportDataAttributes.scheduleIds); + Objects.equals(this.scheduleIds, updateOnCallPayReportDataAttributes.scheduleIds) && + Objects.equals(this.timeZone, updateOnCallPayReportDataAttributes.timeZone) && + Objects.equals(this.useRespondersTimeZone, updateOnCallPayReportDataAttributes.useRespondersTimeZone); } @Override public int hashCode() { - return Objects.hash(startDate, endDate, scheduleIds); + return Objects.hash(startDate, endDate, scheduleIds, timeZone, useRespondersTimeZone); } @Override @@ -163,6 +213,8 @@ public String toString() { sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); sb.append(" endDate: ").append(toIndentedString(endDate)).append("\n"); sb.append(" scheduleIds: ").append(toIndentedString(scheduleIds)).append("\n"); + sb.append(" timeZone: ").append(toIndentedString(timeZone)).append("\n"); + sb.append(" useRespondersTimeZone: ").append(toIndentedString(useRespondersTimeZone)).append("\n"); sb.append("}"); return sb.toString(); } @@ -188,6 +240,8 @@ private String toIndentedString(Object o) { openapiFields.add("start_date"); openapiFields.add("end_date"); openapiFields.add("schedule_ids"); + openapiFields.add("time_zone"); + openapiFields.add("use_responders_time_zone"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -218,6 +272,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("schedule_ids") != null && !jsonObj.get("schedule_ids").isJsonNull() && !jsonObj.get("schedule_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `schedule_ids` to be an array in the JSON string but got `%s`", jsonObj.get("schedule_ids").toString())); } + if ((jsonObj.get("time_zone") != null && !jsonObj.get("time_zone").isJsonNull()) && !jsonObj.get("time_zone").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `time_zone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("time_zone").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallRole.java b/src/main/java/com/rootly/client/model/UpdateOnCallRole.java index 0bb29e92..a64c6faf 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallRole.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallRole.java @@ -49,7 +49,7 @@ /** * UpdateOnCallRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallRole { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallRoleData.java b/src/main/java/com/rootly/client/model/UpdateOnCallRoleData.java index 95c27f44..bb12e4f4 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallRoleData.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallRoleData.java @@ -49,7 +49,7 @@ /** * UpdateOnCallRoleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallRoleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallRoleDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateOnCallRoleDataAttributes.java index 5e05d57f..7efd753d 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallRoleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallRoleDataAttributes.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,18 +51,19 @@ /** * UpdateOnCallRoleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallRoleDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nullable - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + /** * Gets or Sets systemRole */ @@ -555,7 +557,9 @@ public enum AlertsPermissionsEnum { UPDATE("update"), - READ("read"); + READ("read"), + + DELETE("delete"); private String value; @@ -1327,6 +1331,67 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List servicesPermissions = new ArrayList<>(); + /** + * Gets or Sets functionalitiesPermissions + */ + @JsonAdapter(FunctionalitiesPermissionsEnum.Adapter.class) + public enum FunctionalitiesPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + FunctionalitiesPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static FunctionalitiesPermissionsEnum fromValue(String value) { + for (FunctionalitiesPermissionsEnum b : FunctionalitiesPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final FunctionalitiesPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public FunctionalitiesPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return FunctionalitiesPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + FunctionalitiesPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_FUNCTIONALITIES_PERMISSIONS = "functionalities_permissions"; + @SerializedName(SERIALIZED_NAME_FUNCTIONALITIES_PERMISSIONS) + @jakarta.annotation.Nullable + private List functionalitiesPermissions = new ArrayList<>(); + /** * Gets or Sets webhooksPermissions */ @@ -1449,47 +1514,112 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List workflowsPermissions = new ArrayList<>(); - public UpdateOnCallRoleDataAttributes() { - } + /** + * Gets or Sets catalogsPermissions + */ + @JsonAdapter(CatalogsPermissionsEnum.Adapter.class) + public enum CatalogsPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); - public UpdateOnCallRoleDataAttributes name(@jakarta.annotation.Nullable String name) { - this.name = name; - return this; + private String value; + + CatalogsPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CatalogsPermissionsEnum fromValue(String value) { + for (CatalogsPermissionsEnum b : CatalogsPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogsPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CatalogsPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogsPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogsPermissionsEnum.fromValue(value); + } } - /** - * The role name. - * @return name - */ + public static final String SERIALIZED_NAME_CATALOGS_PERMISSIONS = "catalogs_permissions"; + @SerializedName(SERIALIZED_NAME_CATALOGS_PERMISSIONS) @jakarta.annotation.Nullable - public String getName() { - return name; - } + private List catalogsPermissions = new ArrayList<>(); - public void setName(@jakarta.annotation.Nullable String name) { - this.name = name; + public UpdateOnCallRoleDataAttributes() { } - + @Deprecated public UpdateOnCallRoleDataAttributes slug(@jakarta.annotation.Nullable String slug) { this.slug = slug; return this; } /** - * The role slug. + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable public String getSlug() { return slug; } + @Deprecated public void setSlug(@jakarta.annotation.Nullable String slug) { this.slug = slug; } + public UpdateOnCallRoleDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * The role name. + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + public UpdateOnCallRoleDataAttributes systemRole(@jakarta.annotation.Nullable List systemRole) { this.systemRole = systemRole; return this; @@ -2057,6 +2187,33 @@ public void setServicesPermissions(@jakarta.annotation.Nullable List functionalitiesPermissions) { + this.functionalitiesPermissions = functionalitiesPermissions; + return this; + } + + public UpdateOnCallRoleDataAttributes addFunctionalitiesPermissionsItem(FunctionalitiesPermissionsEnum functionalitiesPermissionsItem) { + if (this.functionalitiesPermissions == null) { + this.functionalitiesPermissions = new ArrayList<>(); + } + this.functionalitiesPermissions.add(functionalitiesPermissionsItem); + return this; + } + + /** + * Get functionalitiesPermissions + * @return functionalitiesPermissions + */ + @jakarta.annotation.Nullable + public List getFunctionalitiesPermissions() { + return functionalitiesPermissions; + } + + public void setFunctionalitiesPermissions(@jakarta.annotation.Nullable List functionalitiesPermissions) { + this.functionalitiesPermissions = functionalitiesPermissions; + } + + public UpdateOnCallRoleDataAttributes webhooksPermissions(@jakarta.annotation.Nullable List webhooksPermissions) { this.webhooksPermissions = webhooksPermissions; return this; @@ -2111,6 +2268,33 @@ public void setWorkflowsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + return this; + } + + public UpdateOnCallRoleDataAttributes addCatalogsPermissionsItem(CatalogsPermissionsEnum catalogsPermissionsItem) { + if (this.catalogsPermissions == null) { + this.catalogsPermissions = new ArrayList<>(); + } + this.catalogsPermissions.add(catalogsPermissionsItem); + return this; + } + + /** + * Get catalogsPermissions + * @return catalogsPermissions + */ + @jakarta.annotation.Nullable + public List getCatalogsPermissions() { + return catalogsPermissions; + } + + public void setCatalogsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + } + + @Override public boolean equals(Object o) { @@ -2121,8 +2305,8 @@ public boolean equals(Object o) { return false; } UpdateOnCallRoleDataAttributes updateOnCallRoleDataAttributes = (UpdateOnCallRoleDataAttributes) o; - return Objects.equals(this.name, updateOnCallRoleDataAttributes.name) && - Objects.equals(this.slug, updateOnCallRoleDataAttributes.slug) && + return Objects.equals(this.slug, updateOnCallRoleDataAttributes.slug) && + Objects.equals(this.name, updateOnCallRoleDataAttributes.name) && Objects.equals(this.systemRole, updateOnCallRoleDataAttributes.systemRole) && Objects.equals(this.alertSourcesPermissions, updateOnCallRoleDataAttributes.alertSourcesPermissions) && Objects.equals(this.alertUrgencyPermissions, updateOnCallRoleDataAttributes.alertUrgencyPermissions) && @@ -2144,21 +2328,34 @@ public boolean equals(Object o) { Objects.equals(this.scheduleOverridePermissions, updateOnCallRoleDataAttributes.scheduleOverridePermissions) && Objects.equals(this.schedulesPermissions, updateOnCallRoleDataAttributes.schedulesPermissions) && Objects.equals(this.servicesPermissions, updateOnCallRoleDataAttributes.servicesPermissions) && + Objects.equals(this.functionalitiesPermissions, updateOnCallRoleDataAttributes.functionalitiesPermissions) && Objects.equals(this.webhooksPermissions, updateOnCallRoleDataAttributes.webhooksPermissions) && - Objects.equals(this.workflowsPermissions, updateOnCallRoleDataAttributes.workflowsPermissions); + Objects.equals(this.workflowsPermissions, updateOnCallRoleDataAttributes.workflowsPermissions) && + Objects.equals(this.catalogsPermissions, updateOnCallRoleDataAttributes.catalogsPermissions); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(name, slug, systemRole, alertSourcesPermissions, alertUrgencyPermissions, alertFieldsPermissions, alertGroupsPermissions, alertRoutingRulesPermissions, onCallReadinessReportPermissions, onCallRolesPermissions, alertsPermissions, apiKeysPermissions, auditsPermissions, contactsPermissions, escalationPoliciesPermissions, groupsPermissions, heartbeatsPermissions, integrationsPermissions, invitationsPermissions, liveCallRoutingPermissions, scheduleOverridePermissions, schedulesPermissions, servicesPermissions, webhooksPermissions, workflowsPermissions); + return Objects.hash(slug, name, systemRole, alertSourcesPermissions, alertUrgencyPermissions, alertFieldsPermissions, alertGroupsPermissions, alertRoutingRulesPermissions, onCallReadinessReportPermissions, onCallRolesPermissions, alertsPermissions, apiKeysPermissions, auditsPermissions, contactsPermissions, escalationPoliciesPermissions, groupsPermissions, heartbeatsPermissions, integrationsPermissions, invitationsPermissions, liveCallRoutingPermissions, scheduleOverridePermissions, schedulesPermissions, servicesPermissions, functionalitiesPermissions, webhooksPermissions, workflowsPermissions, catalogsPermissions); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateOnCallRoleDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" systemRole: ").append(toIndentedString(systemRole)).append("\n"); sb.append(" alertSourcesPermissions: ").append(toIndentedString(alertSourcesPermissions)).append("\n"); sb.append(" alertUrgencyPermissions: ").append(toIndentedString(alertUrgencyPermissions)).append("\n"); @@ -2180,8 +2377,10 @@ public String toString() { sb.append(" scheduleOverridePermissions: ").append(toIndentedString(scheduleOverridePermissions)).append("\n"); sb.append(" schedulesPermissions: ").append(toIndentedString(schedulesPermissions)).append("\n"); sb.append(" servicesPermissions: ").append(toIndentedString(servicesPermissions)).append("\n"); + sb.append(" functionalitiesPermissions: ").append(toIndentedString(functionalitiesPermissions)).append("\n"); sb.append(" webhooksPermissions: ").append(toIndentedString(webhooksPermissions)).append("\n"); sb.append(" workflowsPermissions: ").append(toIndentedString(workflowsPermissions)).append("\n"); + sb.append(" catalogsPermissions: ").append(toIndentedString(catalogsPermissions)).append("\n"); sb.append("}"); return sb.toString(); } @@ -2204,8 +2403,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("system_role"); openapiFields.add("alert_sources_permissions"); openapiFields.add("alert_urgency_permissions"); @@ -2227,8 +2426,10 @@ private String toIndentedString(Object o) { openapiFields.add("schedule_override_permissions"); openapiFields.add("schedules_permissions"); openapiFields.add("services_permissions"); + openapiFields.add("functionalities_permissions"); openapiFields.add("webhooks_permissions"); openapiFields.add("workflows_permissions"); + openapiFields.add("catalogs_permissions"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -2255,12 +2456,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("system_role") != null && !jsonObj.get("system_role").isJsonNull() && !jsonObj.get("system_role").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `system_role` to be an array in the JSON string but got `%s`", jsonObj.get("system_role").toString())); @@ -2346,6 +2547,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti throw new IllegalArgumentException(String.format("Expected the field `services_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("services_permissions").toString())); } // ensure the optional json data is an array if present + if (jsonObj.get("functionalities_permissions") != null && !jsonObj.get("functionalities_permissions").isJsonNull() && !jsonObj.get("functionalities_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `functionalities_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("functionalities_permissions").toString())); + } + // ensure the optional json data is an array if present if (jsonObj.get("webhooks_permissions") != null && !jsonObj.get("webhooks_permissions").isJsonNull() && !jsonObj.get("webhooks_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `webhooks_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("webhooks_permissions").toString())); } @@ -2353,6 +2558,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("workflows_permissions") != null && !jsonObj.get("workflows_permissions").isJsonNull() && !jsonObj.get("workflows_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `workflows_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("workflows_permissions").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("catalogs_permissions") != null && !jsonObj.get("catalogs_permissions").isJsonNull() && !jsonObj.get("catalogs_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `catalogs_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("catalogs_permissions").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallShadow.java b/src/main/java/com/rootly/client/model/UpdateOnCallShadow.java index 69868428..523ea3b0 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallShadow.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallShadow.java @@ -49,7 +49,7 @@ /** * UpdateOnCallShadow */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallShadow { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallShadowData.java b/src/main/java/com/rootly/client/model/UpdateOnCallShadowData.java index 62cc4945..51f7e8da 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallShadowData.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallShadowData.java @@ -49,7 +49,7 @@ /** * UpdateOnCallShadowData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallShadowData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateOnCallShadowDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateOnCallShadowDataAttributes.java index 5eaa2695..3a07d690 100644 --- a/src/main/java/com/rootly/client/model/UpdateOnCallShadowDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateOnCallShadowDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateOnCallShadowDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOnCallShadowDataAttributes { public static final String SERIALIZED_NAME_SCHEDULE_ID = "schedule_id"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateOpsgenieAlertTaskParams.java b/src/main/java/com/rootly/client/model/UpdateOpsgenieAlertTaskParams.java index a38395a5..a70c2a3e 100644 --- a/src/main/java/com/rootly/client/model/UpdateOpsgenieAlertTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateOpsgenieAlertTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateOpsgenieAlertTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOpsgenieAlertTaskParams { public static final String SERIALIZED_NAME_ALERT_ID = "alert_id"; @SerializedName(SERIALIZED_NAME_ALERT_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateOpsgenieIncidentTaskParams.java b/src/main/java/com/rootly/client/model/UpdateOpsgenieIncidentTaskParams.java index 22c64d71..53b7d4f5 100644 --- a/src/main/java/com/rootly/client/model/UpdateOpsgenieIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateOpsgenieIncidentTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateOpsgenieIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOpsgenieIncidentTaskParams { /** * Gets or Sets taskType @@ -197,7 +197,9 @@ public enum PriorityEnum { P5("P5"), - AUTO("auto"); + AUTO("auto"), + + EMPTY(""); private String value; diff --git a/src/main/java/com/rootly/client/model/UpdateOverrideShift.java b/src/main/java/com/rootly/client/model/UpdateOverrideShift.java index f6f4c41f..47d394d9 100644 --- a/src/main/java/com/rootly/client/model/UpdateOverrideShift.java +++ b/src/main/java/com/rootly/client/model/UpdateOverrideShift.java @@ -49,7 +49,7 @@ /** * UpdateOverrideShift */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOverrideShift { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateOverrideShiftData.java b/src/main/java/com/rootly/client/model/UpdateOverrideShiftData.java index 965bc4a4..56b228b6 100644 --- a/src/main/java/com/rootly/client/model/UpdateOverrideShiftData.java +++ b/src/main/java/com/rootly/client/model/UpdateOverrideShiftData.java @@ -49,7 +49,7 @@ /** * UpdateOverrideShiftData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOverrideShiftData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateOverrideShiftDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateOverrideShiftDataAttributes.java index ee2d9e7f..b9dcf7d4 100644 --- a/src/main/java/com/rootly/client/model/UpdateOverrideShiftDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateOverrideShiftDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateOverrideShiftDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateOverrideShiftDataAttributes { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/UpdatePagerdutyIncidentTaskParams.java b/src/main/java/com/rootly/client/model/UpdatePagerdutyIncidentTaskParams.java index fe0423a6..855c8eb6 100644 --- a/src/main/java/com/rootly/client/model/UpdatePagerdutyIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdatePagerdutyIncidentTaskParams.java @@ -48,7 +48,7 @@ /** * UpdatePagerdutyIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePagerdutyIncidentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdatePagertreeAlertTaskParams.java b/src/main/java/com/rootly/client/model/UpdatePagertreeAlertTaskParams.java index 332315c8..4f5e2c19 100644 --- a/src/main/java/com/rootly/client/model/UpdatePagertreeAlertTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdatePagertreeAlertTaskParams.java @@ -51,7 +51,7 @@ /** * UpdatePagertreeAlertTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePagertreeAlertTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdatePlaybook.java b/src/main/java/com/rootly/client/model/UpdatePlaybook.java index 3aa078a2..08186c02 100644 --- a/src/main/java/com/rootly/client/model/UpdatePlaybook.java +++ b/src/main/java/com/rootly/client/model/UpdatePlaybook.java @@ -49,7 +49,7 @@ /** * UpdatePlaybook */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePlaybook { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdatePlaybookData.java b/src/main/java/com/rootly/client/model/UpdatePlaybookData.java index 4a50cfcd..6d561e34 100644 --- a/src/main/java/com/rootly/client/model/UpdatePlaybookData.java +++ b/src/main/java/com/rootly/client/model/UpdatePlaybookData.java @@ -49,7 +49,7 @@ /** * UpdatePlaybookData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePlaybookData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdatePlaybookDataAttributes.java b/src/main/java/com/rootly/client/model/UpdatePlaybookDataAttributes.java index 16417e93..7d0bc21c 100644 --- a/src/main/java/com/rootly/client/model/UpdatePlaybookDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdatePlaybookDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdatePlaybookDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePlaybookDataAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) diff --git a/src/main/java/com/rootly/client/model/UpdatePlaybookTask.java b/src/main/java/com/rootly/client/model/UpdatePlaybookTask.java index cc1ec2d3..04fa3f2c 100644 --- a/src/main/java/com/rootly/client/model/UpdatePlaybookTask.java +++ b/src/main/java/com/rootly/client/model/UpdatePlaybookTask.java @@ -49,7 +49,7 @@ /** * UpdatePlaybookTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePlaybookTask { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdatePlaybookTaskData.java b/src/main/java/com/rootly/client/model/UpdatePlaybookTaskData.java index e087c6a5..50885a11 100644 --- a/src/main/java/com/rootly/client/model/UpdatePlaybookTaskData.java +++ b/src/main/java/com/rootly/client/model/UpdatePlaybookTaskData.java @@ -49,7 +49,7 @@ /** * UpdatePlaybookTaskData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePlaybookTaskData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdatePlaybookTaskDataAttributes.java b/src/main/java/com/rootly/client/model/UpdatePlaybookTaskDataAttributes.java index b250660b..b469547b 100644 --- a/src/main/java/com/rootly/client/model/UpdatePlaybookTaskDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdatePlaybookTaskDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdatePlaybookTaskDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePlaybookTaskDataAttributes { public static final String SERIALIZED_NAME_TASK = "task"; @SerializedName(SERIALIZED_NAME_TASK) diff --git a/src/main/java/com/rootly/client/model/UpdatePostMortemTemplate.java b/src/main/java/com/rootly/client/model/UpdatePostMortemTemplate.java index 81723456..7ef31dbd 100644 --- a/src/main/java/com/rootly/client/model/UpdatePostMortemTemplate.java +++ b/src/main/java/com/rootly/client/model/UpdatePostMortemTemplate.java @@ -49,7 +49,7 @@ /** * UpdatePostMortemTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePostMortemTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateData.java b/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateData.java index f6ec5814..68bcdbb2 100644 --- a/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateData.java +++ b/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateData.java @@ -49,7 +49,7 @@ /** * UpdatePostMortemTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePostMortemTemplateData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributes.java index 0d22c5c1..f72632fe 100644 --- a/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributes.java @@ -49,8 +49,14 @@ /** * UpdatePostMortemTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePostMortemTemplateDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -126,6 +132,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdatePostMortemTemplateDataAttributes() { } + @Deprecated + public UpdatePostMortemTemplateDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdatePostMortemTemplateDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -212,7 +241,8 @@ public boolean equals(Object o) { return false; } UpdatePostMortemTemplateDataAttributes updatePostMortemTemplateDataAttributes = (UpdatePostMortemTemplateDataAttributes) o; - return Objects.equals(this.name, updatePostMortemTemplateDataAttributes.name) && + return Objects.equals(this.slug, updatePostMortemTemplateDataAttributes.slug) && + Objects.equals(this.name, updatePostMortemTemplateDataAttributes.name) && Objects.equals(this._default, updatePostMortemTemplateDataAttributes._default) && Objects.equals(this.content, updatePostMortemTemplateDataAttributes.content) && Objects.equals(this.format, updatePostMortemTemplateDataAttributes.format); @@ -224,7 +254,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, _default, content, format); + return Objects.hash(slug, name, _default, content, format); } private static int hashCodeNullable(JsonNullable a) { @@ -238,6 +268,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdatePostMortemTemplateDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" _default: ").append(toIndentedString(_default)).append("\n"); sb.append(" content: ").append(toIndentedString(content)).append("\n"); @@ -264,6 +295,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("default"); openapiFields.add("content"); @@ -294,6 +326,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdatePulse.java b/src/main/java/com/rootly/client/model/UpdatePulse.java index 98156169..ab16ffd2 100644 --- a/src/main/java/com/rootly/client/model/UpdatePulse.java +++ b/src/main/java/com/rootly/client/model/UpdatePulse.java @@ -49,7 +49,7 @@ /** * UpdatePulse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePulse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdatePulseData.java b/src/main/java/com/rootly/client/model/UpdatePulseData.java index a655b612..27c9921e 100644 --- a/src/main/java/com/rootly/client/model/UpdatePulseData.java +++ b/src/main/java/com/rootly/client/model/UpdatePulseData.java @@ -49,7 +49,7 @@ /** * UpdatePulseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePulseData { /** * Gets or Sets type @@ -103,7 +103,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @@ -114,7 +114,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdatePulseData() { } - public UpdatePulseData type(@jakarta.annotation.Nullable TypeEnum type) { + public UpdatePulseData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,12 +123,12 @@ public UpdatePulseData type(@jakarta.annotation.Nullable TypeEnum type) { * Get type * @return type */ - @jakarta.annotation.Nullable + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@jakarta.annotation.Nullable TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } @@ -204,6 +204,7 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); openapiRequiredFields.add("attributes"); } @@ -235,13 +236,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + if (!jsonObj.get("type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); } - // validate the optional field `type` - if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) { - TypeEnum.validateJsonElement(jsonObj.get("type")); - } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); // validate the required field `attributes` UpdatePulseDataAttributes.validateJsonElement(jsonObj.get("attributes")); } diff --git a/src/main/java/com/rootly/client/model/UpdatePulseDataAttributes.java b/src/main/java/com/rootly/client/model/UpdatePulseDataAttributes.java index 053c82e7..627883e2 100644 --- a/src/main/java/com/rootly/client/model/UpdatePulseDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdatePulseDataAttributes.java @@ -54,7 +54,7 @@ /** * UpdatePulseDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdatePulseDataAttributes { public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) diff --git a/src/main/java/com/rootly/client/model/UpdateQuipPageTaskParams.java b/src/main/java/com/rootly/client/model/UpdateQuipPageTaskParams.java index 2da81476..7a28cc96 100644 --- a/src/main/java/com/rootly/client/model/UpdateQuipPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateQuipPageTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateQuipPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateQuipPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfiguration.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfiguration.java index 9f98cdab..eb2987e1 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfiguration.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfiguration.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveConfiguration */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveConfiguration { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationData.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationData.java index 5c3b34c3..02f4ed92 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationData.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationData.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveConfigurationData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveConfigurationData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationDataAttributes.java index 254142f3..51695c56 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveConfigurationDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateRetrospectiveConfigurationDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveConfigurationDataAttributes { public static final String SERIALIZED_NAME_SEVERITY_IDS = "severity_ids"; @SerializedName(SERIALIZED_NAME_SEVERITY_IDS) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcess.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcess.java index 894b3d9c..b80751cb 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcess.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcess.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveProcess */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcess { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessData.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessData.java index e7105024..a05594af 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessData.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessData.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveProcessData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessDataAttributes.java index c5c16c29..8b8b1826 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessDataAttributes.java @@ -50,7 +50,7 @@ /** * UpdateRetrospectiveProcessDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroup.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroup.java index ca6776e4..0b095cb7 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroup.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroup.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveProcessGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupData.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupData.java index cc1f54eb..edd1b0ef 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupData.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupData.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveProcessGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupDataAttributes.java index 9c652263..d9d0e410 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateRetrospectiveProcessGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessGroupDataAttributes { public static final String SERIALIZED_NAME_SUB_STATUS_ID = "sub_status_id"; @SerializedName(SERIALIZED_NAME_SUB_STATUS_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStep.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStep.java index 9b5bef51..bbb82352 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStep.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStep.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveProcessGroupStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessGroupStep { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepData.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepData.java index 62137af3..22bf8689 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepData.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepData.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveProcessGroupStepData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessGroupStepData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepDataAttributes.java index be6302ed..939f2b06 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveProcessGroupStepDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateRetrospectiveProcessGroupStepDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveProcessGroupStepDataAttributes { public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveStep.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveStep.java index bbde506d..af2b458b 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveStep.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveStep.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveStep */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveStep { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepData.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepData.java index 90583f31..bc10575a 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepData.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepData.java @@ -49,7 +49,7 @@ /** * UpdateRetrospectiveStepData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveStepData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributes.java index f2c134e6..2cf8d5f6 100644 --- a/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributes.java @@ -49,8 +49,14 @@ /** * UpdateRetrospectiveStepDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRetrospectiveStepDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) @jakarta.annotation.Nullable @@ -84,6 +90,29 @@ public class UpdateRetrospectiveStepDataAttributes { public UpdateRetrospectiveStepDataAttributes() { } + @Deprecated + public UpdateRetrospectiveStepDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateRetrospectiveStepDataAttributes title(@jakarta.annotation.Nullable String title) { this.title = title; return this; @@ -208,7 +237,8 @@ public boolean equals(Object o) { return false; } UpdateRetrospectiveStepDataAttributes updateRetrospectiveStepDataAttributes = (UpdateRetrospectiveStepDataAttributes) o; - return Objects.equals(this.title, updateRetrospectiveStepDataAttributes.title) && + return Objects.equals(this.slug, updateRetrospectiveStepDataAttributes.slug) && + Objects.equals(this.title, updateRetrospectiveStepDataAttributes.title) && Objects.equals(this.description, updateRetrospectiveStepDataAttributes.description) && Objects.equals(this.incidentRoleId, updateRetrospectiveStepDataAttributes.incidentRoleId) && Objects.equals(this.dueAfterDays, updateRetrospectiveStepDataAttributes.dueAfterDays) && @@ -222,7 +252,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(title, description, incidentRoleId, dueAfterDays, position, skippable); + return Objects.hash(slug, title, description, incidentRoleId, dueAfterDays, position, skippable); } private static int hashCodeNullable(JsonNullable a) { @@ -236,6 +266,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateRetrospectiveStepDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" incidentRoleId: ").append(toIndentedString(incidentRoleId)).append("\n"); @@ -264,6 +295,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("title"); openapiFields.add("description"); openapiFields.add("incident_role_id"); @@ -296,6 +328,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateRole.java b/src/main/java/com/rootly/client/model/UpdateRole.java index c9730d20..5da05878 100644 --- a/src/main/java/com/rootly/client/model/UpdateRole.java +++ b/src/main/java/com/rootly/client/model/UpdateRole.java @@ -49,7 +49,7 @@ /** * UpdateRole */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRole { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateRoleData.java b/src/main/java/com/rootly/client/model/UpdateRoleData.java index c625a586..ce3bf892 100644 --- a/src/main/java/com/rootly/client/model/UpdateRoleData.java +++ b/src/main/java/com/rootly/client/model/UpdateRoleData.java @@ -49,7 +49,7 @@ /** * UpdateRoleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRoleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateRoleDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateRoleDataAttributes.java index 12ce7cd6..d63468e6 100644 --- a/src/main/java/com/rootly/client/model/UpdateRoleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateRoleDataAttributes.java @@ -51,23 +51,34 @@ /** * UpdateRoleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateRoleDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nullable - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + public static final String SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID = "incident_permission_set_id"; @SerializedName(SERIALIZED_NAME_INCIDENT_PERMISSION_SET_ID) @jakarta.annotation.Nullable private String incidentPermissionSetId; + public static final String SERIALIZED_NAME_IS_DELETABLE = "is_deletable"; + @SerializedName(SERIALIZED_NAME_IS_DELETABLE) + @jakarta.annotation.Nullable + private Boolean isDeletable; + + public static final String SERIALIZED_NAME_IS_EDITABLE = "is_editable"; + @SerializedName(SERIALIZED_NAME_IS_EDITABLE) + @jakarta.annotation.Nullable + private Boolean isEditable; + /** * Gets or Sets apiKeysPermissions */ @@ -1532,178 +1543,649 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List workflowsPermissions = new ArrayList<>(); - public UpdateRoleDataAttributes() { - } - - public UpdateRoleDataAttributes name(@jakarta.annotation.Nullable String name) { - this.name = name; - return this; - } - /** - * The role name. - * @return name + * Gets or Sets catalogsPermissions */ - @jakarta.annotation.Nullable - public String getName() { - return name; - } + @JsonAdapter(CatalogsPermissionsEnum.Adapter.class) + public enum CatalogsPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); - public void setName(@jakarta.annotation.Nullable String name) { - this.name = name; - } + private String value; + CatalogsPermissionsEnum(String value) { + this.value = value; + } - public UpdateRoleDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } + public String getValue() { + return value; + } - /** - * The role slug. - * @return slug - */ - @jakarta.annotation.Nullable - public String getSlug() { - return slug; - } + @Override + public String toString() { + return String.valueOf(value); + } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } + public static CatalogsPermissionsEnum fromValue(String value) { + for (CatalogsPermissionsEnum b : CatalogsPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CatalogsPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } - public UpdateRoleDataAttributes incidentPermissionSetId(@jakarta.annotation.Nullable String incidentPermissionSetId) { - this.incidentPermissionSetId = incidentPermissionSetId; - return this; + @Override + public CatalogsPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CatalogsPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CatalogsPermissionsEnum.fromValue(value); + } } - /** - * Associated incident permissions set. - * @return incidentPermissionSetId - */ + public static final String SERIALIZED_NAME_CATALOGS_PERMISSIONS = "catalogs_permissions"; + @SerializedName(SERIALIZED_NAME_CATALOGS_PERMISSIONS) @jakarta.annotation.Nullable - public String getIncidentPermissionSetId() { - return incidentPermissionSetId; - } + private List catalogsPermissions = new ArrayList<>(); - public void setIncidentPermissionSetId(@jakarta.annotation.Nullable String incidentPermissionSetId) { - this.incidentPermissionSetId = incidentPermissionSetId; - } + /** + * Gets or Sets subStatusesPermissions + */ + @JsonAdapter(SubStatusesPermissionsEnum.Adapter.class) + public enum SubStatusesPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + private String value; - public UpdateRoleDataAttributes apiKeysPermissions(@jakarta.annotation.Nullable List apiKeysPermissions) { - this.apiKeysPermissions = apiKeysPermissions; - return this; - } + SubStatusesPermissionsEnum(String value) { + this.value = value; + } - public UpdateRoleDataAttributes addApiKeysPermissionsItem(ApiKeysPermissionsEnum apiKeysPermissionsItem) { - if (this.apiKeysPermissions == null) { - this.apiKeysPermissions = new ArrayList<>(); + public String getValue() { + return value; } - this.apiKeysPermissions.add(apiKeysPermissionsItem); - return this; - } - /** - * Get apiKeysPermissions - * @return apiKeysPermissions - */ - @jakarta.annotation.Nullable - public List getApiKeysPermissions() { - return apiKeysPermissions; - } + @Override + public String toString() { + return String.valueOf(value); + } - public void setApiKeysPermissions(@jakarta.annotation.Nullable List apiKeysPermissions) { - this.apiKeysPermissions = apiKeysPermissions; - } + public static SubStatusesPermissionsEnum fromValue(String value) { + for (SubStatusesPermissionsEnum b : SubStatusesPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SubStatusesPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } - public UpdateRoleDataAttributes auditsPermissions(@jakarta.annotation.Nullable List auditsPermissions) { - this.auditsPermissions = auditsPermissions; - return this; - } + @Override + public SubStatusesPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SubStatusesPermissionsEnum.fromValue(value); + } + } - public UpdateRoleDataAttributes addAuditsPermissionsItem(AuditsPermissionsEnum auditsPermissionsItem) { - if (this.auditsPermissions == null) { - this.auditsPermissions = new ArrayList<>(); + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SubStatusesPermissionsEnum.fromValue(value); } - this.auditsPermissions.add(auditsPermissionsItem); - return this; } - /** - * Get auditsPermissions - * @return auditsPermissions - */ + public static final String SERIALIZED_NAME_SUB_STATUSES_PERMISSIONS = "sub_statuses_permissions"; + @SerializedName(SERIALIZED_NAME_SUB_STATUSES_PERMISSIONS) @jakarta.annotation.Nullable - public List getAuditsPermissions() { - return auditsPermissions; - } + private List subStatusesPermissions = new ArrayList<>(); - public void setAuditsPermissions(@jakarta.annotation.Nullable List auditsPermissions) { - this.auditsPermissions = auditsPermissions; - } + /** + * Gets or Sets edgeConnectorPermissions + */ + @JsonAdapter(EdgeConnectorPermissionsEnum.Adapter.class) + public enum EdgeConnectorPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + private String value; - public UpdateRoleDataAttributes billingPermissions(@jakarta.annotation.Nullable List billingPermissions) { - this.billingPermissions = billingPermissions; - return this; - } + EdgeConnectorPermissionsEnum(String value) { + this.value = value; + } - public UpdateRoleDataAttributes addBillingPermissionsItem(BillingPermissionsEnum billingPermissionsItem) { - if (this.billingPermissions == null) { - this.billingPermissions = new ArrayList<>(); + public String getValue() { + return value; } - this.billingPermissions.add(billingPermissionsItem); - return this; - } - /** - * Get billingPermissions - * @return billingPermissions - */ - @jakarta.annotation.Nullable - public List getBillingPermissions() { - return billingPermissions; - } + @Override + public String toString() { + return String.valueOf(value); + } - public void setBillingPermissions(@jakarta.annotation.Nullable List billingPermissions) { - this.billingPermissions = billingPermissions; - } + public static EdgeConnectorPermissionsEnum fromValue(String value) { + for (EdgeConnectorPermissionsEnum b : EdgeConnectorPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EdgeConnectorPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } - public UpdateRoleDataAttributes environmentsPermissions(@jakarta.annotation.Nullable List environmentsPermissions) { - this.environmentsPermissions = environmentsPermissions; - return this; - } + @Override + public EdgeConnectorPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EdgeConnectorPermissionsEnum.fromValue(value); + } + } - public UpdateRoleDataAttributes addEnvironmentsPermissionsItem(EnvironmentsPermissionsEnum environmentsPermissionsItem) { - if (this.environmentsPermissions == null) { - this.environmentsPermissions = new ArrayList<>(); + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + EdgeConnectorPermissionsEnum.fromValue(value); } - this.environmentsPermissions.add(environmentsPermissionsItem); - return this; } + public static final String SERIALIZED_NAME_EDGE_CONNECTOR_PERMISSIONS = "edge_connector_permissions"; + @SerializedName(SERIALIZED_NAME_EDGE_CONNECTOR_PERMISSIONS) + @jakarta.annotation.Nullable + private List edgeConnectorPermissions = new ArrayList<>(); + /** - * Get environmentsPermissions - * @return environmentsPermissions + * Gets or Sets slasPermissions */ - @jakarta.annotation.Nullable - public List getEnvironmentsPermissions() { - return environmentsPermissions; - } + @JsonAdapter(SlasPermissionsEnum.Adapter.class) + public enum SlasPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); - public void setEnvironmentsPermissions(@jakarta.annotation.Nullable List environmentsPermissions) { - this.environmentsPermissions = environmentsPermissions; - } + private String value; + SlasPermissionsEnum(String value) { + this.value = value; + } - public UpdateRoleDataAttributes formFieldsPermissions(@jakarta.annotation.Nullable List formFieldsPermissions) { - this.formFieldsPermissions = formFieldsPermissions; - return this; - } + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SlasPermissionsEnum fromValue(String value) { + for (SlasPermissionsEnum b : SlasPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SlasPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SlasPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SlasPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SlasPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SLAS_PERMISSIONS = "slas_permissions"; + @SerializedName(SERIALIZED_NAME_SLAS_PERMISSIONS) + @jakarta.annotation.Nullable + private List slasPermissions = new ArrayList<>(); + + /** + * Gets or Sets pagingPermissions + */ + @JsonAdapter(PagingPermissionsEnum.Adapter.class) + public enum PagingPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + PagingPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static PagingPermissionsEnum fromValue(String value) { + for (PagingPermissionsEnum b : PagingPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final PagingPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public PagingPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return PagingPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PagingPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PAGING_PERMISSIONS = "paging_permissions"; + @SerializedName(SERIALIZED_NAME_PAGING_PERMISSIONS) + @jakarta.annotation.Nullable + private List pagingPermissions = new ArrayList<>(); + + /** + * Gets or Sets incidentCommunicationPermissions + */ + @JsonAdapter(IncidentCommunicationPermissionsEnum.Adapter.class) + public enum IncidentCommunicationPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"), + + SEND("send"); + + private String value; + + IncidentCommunicationPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static IncidentCommunicationPermissionsEnum fromValue(String value) { + for (IncidentCommunicationPermissionsEnum b : IncidentCommunicationPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final IncidentCommunicationPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public IncidentCommunicationPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return IncidentCommunicationPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + IncidentCommunicationPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_INCIDENT_COMMUNICATION_PERMISSIONS = "incident_communication_permissions"; + @SerializedName(SERIALIZED_NAME_INCIDENT_COMMUNICATION_PERMISSIONS) + @jakarta.annotation.Nullable + private List incidentCommunicationPermissions = new ArrayList<>(); + + /** + * Gets or Sets communicationPermissions + */ + @JsonAdapter(CommunicationPermissionsEnum.Adapter.class) + public enum CommunicationPermissionsEnum { + CREATE("create"), + + READ("read"), + + UPDATE("update"), + + DELETE("delete"); + + private String value; + + CommunicationPermissionsEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CommunicationPermissionsEnum fromValue(String value) { + for (CommunicationPermissionsEnum b : CommunicationPermissionsEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CommunicationPermissionsEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CommunicationPermissionsEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return CommunicationPermissionsEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + CommunicationPermissionsEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_COMMUNICATION_PERMISSIONS = "communication_permissions"; + @SerializedName(SERIALIZED_NAME_COMMUNICATION_PERMISSIONS) + @jakarta.annotation.Nullable + private List communicationPermissions = new ArrayList<>(); + + public UpdateRoleDataAttributes() { + } + + @Deprecated + public UpdateRoleDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. Custom role slugs remain accepted temporarily. Stop setting `slug`; it will become read-only and be derived from `name` when this property is removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public UpdateRoleDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * The role name. + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public UpdateRoleDataAttributes incidentPermissionSetId(@jakarta.annotation.Nullable String incidentPermissionSetId) { + this.incidentPermissionSetId = incidentPermissionSetId; + return this; + } + + /** + * Associated incident permissions set. + * @return incidentPermissionSetId + */ + @jakarta.annotation.Nullable + public String getIncidentPermissionSetId() { + return incidentPermissionSetId; + } + + public void setIncidentPermissionSetId(@jakarta.annotation.Nullable String incidentPermissionSetId) { + this.incidentPermissionSetId = incidentPermissionSetId; + } + + + public UpdateRoleDataAttributes isDeletable(@jakarta.annotation.Nullable Boolean isDeletable) { + this.isDeletable = isDeletable; + return this; + } + + /** + * Whether the role can be deleted. + * @return isDeletable + */ + @jakarta.annotation.Nullable + public Boolean getIsDeletable() { + return isDeletable; + } + + public void setIsDeletable(@jakarta.annotation.Nullable Boolean isDeletable) { + this.isDeletable = isDeletable; + } + + + public UpdateRoleDataAttributes isEditable(@jakarta.annotation.Nullable Boolean isEditable) { + this.isEditable = isEditable; + return this; + } + + /** + * Whether the role can be edited. + * @return isEditable + */ + @jakarta.annotation.Nullable + public Boolean getIsEditable() { + return isEditable; + } + + public void setIsEditable(@jakarta.annotation.Nullable Boolean isEditable) { + this.isEditable = isEditable; + } + + + public UpdateRoleDataAttributes apiKeysPermissions(@jakarta.annotation.Nullable List apiKeysPermissions) { + this.apiKeysPermissions = apiKeysPermissions; + return this; + } + + public UpdateRoleDataAttributes addApiKeysPermissionsItem(ApiKeysPermissionsEnum apiKeysPermissionsItem) { + if (this.apiKeysPermissions == null) { + this.apiKeysPermissions = new ArrayList<>(); + } + this.apiKeysPermissions.add(apiKeysPermissionsItem); + return this; + } + + /** + * Get apiKeysPermissions + * @return apiKeysPermissions + */ + @jakarta.annotation.Nullable + public List getApiKeysPermissions() { + return apiKeysPermissions; + } + + public void setApiKeysPermissions(@jakarta.annotation.Nullable List apiKeysPermissions) { + this.apiKeysPermissions = apiKeysPermissions; + } + + + public UpdateRoleDataAttributes auditsPermissions(@jakarta.annotation.Nullable List auditsPermissions) { + this.auditsPermissions = auditsPermissions; + return this; + } + + public UpdateRoleDataAttributes addAuditsPermissionsItem(AuditsPermissionsEnum auditsPermissionsItem) { + if (this.auditsPermissions == null) { + this.auditsPermissions = new ArrayList<>(); + } + this.auditsPermissions.add(auditsPermissionsItem); + return this; + } + + /** + * Get auditsPermissions + * @return auditsPermissions + */ + @jakarta.annotation.Nullable + public List getAuditsPermissions() { + return auditsPermissions; + } + + public void setAuditsPermissions(@jakarta.annotation.Nullable List auditsPermissions) { + this.auditsPermissions = auditsPermissions; + } + + + public UpdateRoleDataAttributes billingPermissions(@jakarta.annotation.Nullable List billingPermissions) { + this.billingPermissions = billingPermissions; + return this; + } + + public UpdateRoleDataAttributes addBillingPermissionsItem(BillingPermissionsEnum billingPermissionsItem) { + if (this.billingPermissions == null) { + this.billingPermissions = new ArrayList<>(); + } + this.billingPermissions.add(billingPermissionsItem); + return this; + } + + /** + * Get billingPermissions + * @return billingPermissions + */ + @jakarta.annotation.Nullable + public List getBillingPermissions() { + return billingPermissions; + } + + public void setBillingPermissions(@jakarta.annotation.Nullable List billingPermissions) { + this.billingPermissions = billingPermissions; + } + + + public UpdateRoleDataAttributes environmentsPermissions(@jakarta.annotation.Nullable List environmentsPermissions) { + this.environmentsPermissions = environmentsPermissions; + return this; + } + + public UpdateRoleDataAttributes addEnvironmentsPermissionsItem(EnvironmentsPermissionsEnum environmentsPermissionsItem) { + if (this.environmentsPermissions == null) { + this.environmentsPermissions = new ArrayList<>(); + } + this.environmentsPermissions.add(environmentsPermissionsItem); + return this; + } + + /** + * Get environmentsPermissions + * @return environmentsPermissions + */ + @jakarta.annotation.Nullable + public List getEnvironmentsPermissions() { + return environmentsPermissions; + } + + public void setEnvironmentsPermissions(@jakarta.annotation.Nullable List environmentsPermissions) { + this.environmentsPermissions = environmentsPermissions; + } + + + public UpdateRoleDataAttributes formFieldsPermissions(@jakarta.annotation.Nullable List formFieldsPermissions) { + this.formFieldsPermissions = formFieldsPermissions; + return this; + } public UpdateRoleDataAttributes addFormFieldsPermissionsItem(FormFieldsPermissionsEnum formFieldsPermissionsItem) { if (this.formFieldsPermissions == null) { @@ -2240,6 +2722,195 @@ public void setWorkflowsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + return this; + } + + public UpdateRoleDataAttributes addCatalogsPermissionsItem(CatalogsPermissionsEnum catalogsPermissionsItem) { + if (this.catalogsPermissions == null) { + this.catalogsPermissions = new ArrayList<>(); + } + this.catalogsPermissions.add(catalogsPermissionsItem); + return this; + } + + /** + * Get catalogsPermissions + * @return catalogsPermissions + */ + @jakarta.annotation.Nullable + public List getCatalogsPermissions() { + return catalogsPermissions; + } + + public void setCatalogsPermissions(@jakarta.annotation.Nullable List catalogsPermissions) { + this.catalogsPermissions = catalogsPermissions; + } + + + public UpdateRoleDataAttributes subStatusesPermissions(@jakarta.annotation.Nullable List subStatusesPermissions) { + this.subStatusesPermissions = subStatusesPermissions; + return this; + } + + public UpdateRoleDataAttributes addSubStatusesPermissionsItem(SubStatusesPermissionsEnum subStatusesPermissionsItem) { + if (this.subStatusesPermissions == null) { + this.subStatusesPermissions = new ArrayList<>(); + } + this.subStatusesPermissions.add(subStatusesPermissionsItem); + return this; + } + + /** + * Get subStatusesPermissions + * @return subStatusesPermissions + */ + @jakarta.annotation.Nullable + public List getSubStatusesPermissions() { + return subStatusesPermissions; + } + + public void setSubStatusesPermissions(@jakarta.annotation.Nullable List subStatusesPermissions) { + this.subStatusesPermissions = subStatusesPermissions; + } + + + public UpdateRoleDataAttributes edgeConnectorPermissions(@jakarta.annotation.Nullable List edgeConnectorPermissions) { + this.edgeConnectorPermissions = edgeConnectorPermissions; + return this; + } + + public UpdateRoleDataAttributes addEdgeConnectorPermissionsItem(EdgeConnectorPermissionsEnum edgeConnectorPermissionsItem) { + if (this.edgeConnectorPermissions == null) { + this.edgeConnectorPermissions = new ArrayList<>(); + } + this.edgeConnectorPermissions.add(edgeConnectorPermissionsItem); + return this; + } + + /** + * Get edgeConnectorPermissions + * @return edgeConnectorPermissions + */ + @jakarta.annotation.Nullable + public List getEdgeConnectorPermissions() { + return edgeConnectorPermissions; + } + + public void setEdgeConnectorPermissions(@jakarta.annotation.Nullable List edgeConnectorPermissions) { + this.edgeConnectorPermissions = edgeConnectorPermissions; + } + + + public UpdateRoleDataAttributes slasPermissions(@jakarta.annotation.Nullable List slasPermissions) { + this.slasPermissions = slasPermissions; + return this; + } + + public UpdateRoleDataAttributes addSlasPermissionsItem(SlasPermissionsEnum slasPermissionsItem) { + if (this.slasPermissions == null) { + this.slasPermissions = new ArrayList<>(); + } + this.slasPermissions.add(slasPermissionsItem); + return this; + } + + /** + * Get slasPermissions + * @return slasPermissions + */ + @jakarta.annotation.Nullable + public List getSlasPermissions() { + return slasPermissions; + } + + public void setSlasPermissions(@jakarta.annotation.Nullable List slasPermissions) { + this.slasPermissions = slasPermissions; + } + + + public UpdateRoleDataAttributes pagingPermissions(@jakarta.annotation.Nullable List pagingPermissions) { + this.pagingPermissions = pagingPermissions; + return this; + } + + public UpdateRoleDataAttributes addPagingPermissionsItem(PagingPermissionsEnum pagingPermissionsItem) { + if (this.pagingPermissions == null) { + this.pagingPermissions = new ArrayList<>(); + } + this.pagingPermissions.add(pagingPermissionsItem); + return this; + } + + /** + * Get pagingPermissions + * @return pagingPermissions + */ + @jakarta.annotation.Nullable + public List getPagingPermissions() { + return pagingPermissions; + } + + public void setPagingPermissions(@jakarta.annotation.Nullable List pagingPermissions) { + this.pagingPermissions = pagingPermissions; + } + + + public UpdateRoleDataAttributes incidentCommunicationPermissions(@jakarta.annotation.Nullable List incidentCommunicationPermissions) { + this.incidentCommunicationPermissions = incidentCommunicationPermissions; + return this; + } + + public UpdateRoleDataAttributes addIncidentCommunicationPermissionsItem(IncidentCommunicationPermissionsEnum incidentCommunicationPermissionsItem) { + if (this.incidentCommunicationPermissions == null) { + this.incidentCommunicationPermissions = new ArrayList<>(); + } + this.incidentCommunicationPermissions.add(incidentCommunicationPermissionsItem); + return this; + } + + /** + * Get incidentCommunicationPermissions + * @return incidentCommunicationPermissions + */ + @jakarta.annotation.Nullable + public List getIncidentCommunicationPermissions() { + return incidentCommunicationPermissions; + } + + public void setIncidentCommunicationPermissions(@jakarta.annotation.Nullable List incidentCommunicationPermissions) { + this.incidentCommunicationPermissions = incidentCommunicationPermissions; + } + + + public UpdateRoleDataAttributes communicationPermissions(@jakarta.annotation.Nullable List communicationPermissions) { + this.communicationPermissions = communicationPermissions; + return this; + } + + public UpdateRoleDataAttributes addCommunicationPermissionsItem(CommunicationPermissionsEnum communicationPermissionsItem) { + if (this.communicationPermissions == null) { + this.communicationPermissions = new ArrayList<>(); + } + this.communicationPermissions.add(communicationPermissionsItem); + return this; + } + + /** + * Get communicationPermissions + * @return communicationPermissions + */ + @jakarta.annotation.Nullable + public List getCommunicationPermissions() { + return communicationPermissions; + } + + public void setCommunicationPermissions(@jakarta.annotation.Nullable List communicationPermissions) { + this.communicationPermissions = communicationPermissions; + } + + @Override public boolean equals(Object o) { @@ -2250,9 +2921,11 @@ public boolean equals(Object o) { return false; } UpdateRoleDataAttributes updateRoleDataAttributes = (UpdateRoleDataAttributes) o; - return Objects.equals(this.name, updateRoleDataAttributes.name) && - Objects.equals(this.slug, updateRoleDataAttributes.slug) && + return Objects.equals(this.slug, updateRoleDataAttributes.slug) && + Objects.equals(this.name, updateRoleDataAttributes.name) && Objects.equals(this.incidentPermissionSetId, updateRoleDataAttributes.incidentPermissionSetId) && + Objects.equals(this.isDeletable, updateRoleDataAttributes.isDeletable) && + Objects.equals(this.isEditable, updateRoleDataAttributes.isEditable) && Objects.equals(this.apiKeysPermissions, updateRoleDataAttributes.apiKeysPermissions) && Objects.equals(this.auditsPermissions, updateRoleDataAttributes.auditsPermissions) && Objects.equals(this.billingPermissions, updateRoleDataAttributes.billingPermissions) && @@ -2276,7 +2949,14 @@ public boolean equals(Object o) { Objects.equals(this.severitiesPermissions, updateRoleDataAttributes.severitiesPermissions) && Objects.equals(this.statusPagesPermissions, updateRoleDataAttributes.statusPagesPermissions) && Objects.equals(this.webhooksPermissions, updateRoleDataAttributes.webhooksPermissions) && - Objects.equals(this.workflowsPermissions, updateRoleDataAttributes.workflowsPermissions); + Objects.equals(this.workflowsPermissions, updateRoleDataAttributes.workflowsPermissions) && + Objects.equals(this.catalogsPermissions, updateRoleDataAttributes.catalogsPermissions) && + Objects.equals(this.subStatusesPermissions, updateRoleDataAttributes.subStatusesPermissions) && + Objects.equals(this.edgeConnectorPermissions, updateRoleDataAttributes.edgeConnectorPermissions) && + Objects.equals(this.slasPermissions, updateRoleDataAttributes.slasPermissions) && + Objects.equals(this.pagingPermissions, updateRoleDataAttributes.pagingPermissions) && + Objects.equals(this.incidentCommunicationPermissions, updateRoleDataAttributes.incidentCommunicationPermissions) && + Objects.equals(this.communicationPermissions, updateRoleDataAttributes.communicationPermissions); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -2285,7 +2965,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, incidentPermissionSetId, apiKeysPermissions, auditsPermissions, billingPermissions, environmentsPermissions, formFieldsPermissions, functionalitiesPermissions, groupsPermissions, incidentCausesPermissions, incidentFeedbacksPermissions, incidentRolesPermissions, incidentTypesPermissions, incidentsPermissions, integrationsPermissions, invitationsPermissions, playbooksPermissions, privateIncidentsPermissions, retrospectivePermissions, rolesPermissions, secretsPermissions, servicesPermissions, severitiesPermissions, statusPagesPermissions, webhooksPermissions, workflowsPermissions); + return Objects.hash(slug, name, incidentPermissionSetId, isDeletable, isEditable, apiKeysPermissions, auditsPermissions, billingPermissions, environmentsPermissions, formFieldsPermissions, functionalitiesPermissions, groupsPermissions, incidentCausesPermissions, incidentFeedbacksPermissions, incidentRolesPermissions, incidentTypesPermissions, incidentsPermissions, integrationsPermissions, invitationsPermissions, playbooksPermissions, privateIncidentsPermissions, retrospectivePermissions, rolesPermissions, secretsPermissions, servicesPermissions, severitiesPermissions, statusPagesPermissions, webhooksPermissions, workflowsPermissions, catalogsPermissions, subStatusesPermissions, edgeConnectorPermissions, slasPermissions, pagingPermissions, incidentCommunicationPermissions, communicationPermissions); } private static int hashCodeNullable(JsonNullable a) { @@ -2299,9 +2979,11 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateRoleDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" incidentPermissionSetId: ").append(toIndentedString(incidentPermissionSetId)).append("\n"); + sb.append(" isDeletable: ").append(toIndentedString(isDeletable)).append("\n"); + sb.append(" isEditable: ").append(toIndentedString(isEditable)).append("\n"); sb.append(" apiKeysPermissions: ").append(toIndentedString(apiKeysPermissions)).append("\n"); sb.append(" auditsPermissions: ").append(toIndentedString(auditsPermissions)).append("\n"); sb.append(" billingPermissions: ").append(toIndentedString(billingPermissions)).append("\n"); @@ -2326,6 +3008,13 @@ public String toString() { sb.append(" statusPagesPermissions: ").append(toIndentedString(statusPagesPermissions)).append("\n"); sb.append(" webhooksPermissions: ").append(toIndentedString(webhooksPermissions)).append("\n"); sb.append(" workflowsPermissions: ").append(toIndentedString(workflowsPermissions)).append("\n"); + sb.append(" catalogsPermissions: ").append(toIndentedString(catalogsPermissions)).append("\n"); + sb.append(" subStatusesPermissions: ").append(toIndentedString(subStatusesPermissions)).append("\n"); + sb.append(" edgeConnectorPermissions: ").append(toIndentedString(edgeConnectorPermissions)).append("\n"); + sb.append(" slasPermissions: ").append(toIndentedString(slasPermissions)).append("\n"); + sb.append(" pagingPermissions: ").append(toIndentedString(pagingPermissions)).append("\n"); + sb.append(" incidentCommunicationPermissions: ").append(toIndentedString(incidentCommunicationPermissions)).append("\n"); + sb.append(" communicationPermissions: ").append(toIndentedString(communicationPermissions)).append("\n"); sb.append("}"); return sb.toString(); } @@ -2348,9 +3037,11 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("incident_permission_set_id"); + openapiFields.add("is_deletable"); + openapiFields.add("is_editable"); openapiFields.add("api_keys_permissions"); openapiFields.add("audits_permissions"); openapiFields.add("billing_permissions"); @@ -2375,6 +3066,13 @@ private String toIndentedString(Object o) { openapiFields.add("status_pages_permissions"); openapiFields.add("webhooks_permissions"); openapiFields.add("workflows_permissions"); + openapiFields.add("catalogs_permissions"); + openapiFields.add("sub_statuses_permissions"); + openapiFields.add("edge_connector_permissions"); + openapiFields.add("slas_permissions"); + openapiFields.add("paging_permissions"); + openapiFields.add("incident_communication_permissions"); + openapiFields.add("communication_permissions"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -2401,12 +3099,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("incident_permission_set_id") != null && !jsonObj.get("incident_permission_set_id").isJsonNull()) && !jsonObj.get("incident_permission_set_id").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `incident_permission_set_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("incident_permission_set_id").toString())); } @@ -2506,6 +3204,34 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("workflows_permissions") != null && !jsonObj.get("workflows_permissions").isJsonNull() && !jsonObj.get("workflows_permissions").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `workflows_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("workflows_permissions").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("catalogs_permissions") != null && !jsonObj.get("catalogs_permissions").isJsonNull() && !jsonObj.get("catalogs_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `catalogs_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("catalogs_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("sub_statuses_permissions") != null && !jsonObj.get("sub_statuses_permissions").isJsonNull() && !jsonObj.get("sub_statuses_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `sub_statuses_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("sub_statuses_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("edge_connector_permissions") != null && !jsonObj.get("edge_connector_permissions").isJsonNull() && !jsonObj.get("edge_connector_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `edge_connector_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("edge_connector_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("slas_permissions") != null && !jsonObj.get("slas_permissions").isJsonNull() && !jsonObj.get("slas_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `slas_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("slas_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("paging_permissions") != null && !jsonObj.get("paging_permissions").isJsonNull() && !jsonObj.get("paging_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `paging_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("paging_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("incident_communication_permissions") != null && !jsonObj.get("incident_communication_permissions").isJsonNull() && !jsonObj.get("incident_communication_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `incident_communication_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("incident_communication_permissions").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("communication_permissions") != null && !jsonObj.get("communication_permissions").isJsonNull() && !jsonObj.get("communication_permissions").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `communication_permissions` to be an array in the JSON string but got `%s`", jsonObj.get("communication_permissions").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateSchedule.java b/src/main/java/com/rootly/client/model/UpdateSchedule.java index c862fce8..683b7306 100644 --- a/src/main/java/com/rootly/client/model/UpdateSchedule.java +++ b/src/main/java/com/rootly/client/model/UpdateSchedule.java @@ -49,7 +49,7 @@ /** * UpdateSchedule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSchedule { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleData.java b/src/main/java/com/rootly/client/model/UpdateScheduleData.java index 534889ca..4591f33a 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleData.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleData.java @@ -49,7 +49,7 @@ /** * UpdateScheduleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateScheduleDataAttributes.java index f0be8282..c795e538 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleDataAttributes.java @@ -53,7 +53,7 @@ /** * UpdateScheduleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -90,6 +90,108 @@ public class UpdateScheduleDataAttributes { @jakarta.annotation.Nullable private Integer ownerUserId; + public static final String SERIALIZED_NAME_SYNC_LINEAR_ENABLED = "sync_linear_enabled"; + @SerializedName(SERIALIZED_NAME_SYNC_LINEAR_ENABLED) + @jakarta.annotation.Nullable + private Boolean syncLinearEnabled; + + public static final String SERIALIZED_NAME_INCLUDE_SHADOWS_IN_SLACK_NOTIFICATIONS = "include_shadows_in_slack_notifications"; + @SerializedName(SERIALIZED_NAME_INCLUDE_SHADOWS_IN_SLACK_NOTIFICATIONS) + @jakarta.annotation.Nullable + private Boolean includeShadowsInSlackNotifications; + + public static final String SERIALIZED_NAME_SHIFT_START_NOTIFICATIONS_ENABLED = "shift_start_notifications_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_START_NOTIFICATIONS_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftStartNotificationsEnabled; + + public static final String SERIALIZED_NAME_SHIFT_UPDATE_NOTIFICATIONS_ENABLED = "shift_update_notifications_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_UPDATE_NOTIFICATIONS_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftUpdateNotificationsEnabled; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_ENABLED = "shift_report_enabled"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_ENABLED) + @jakarta.annotation.Nullable + private Boolean shiftReportEnabled; + + /** + * Day of week the weekly shift summary is sent + */ + @JsonAdapter(ShiftReportDayOfWeekEnum.Adapter.class) + public enum ShiftReportDayOfWeekEnum { + MONDAY("monday"), + + TUESDAY("tuesday"), + + WEDNESDAY("wednesday"), + + THURSDAY("thursday"), + + FRIDAY("friday"), + + SATURDAY("saturday"), + + SUNDAY("sunday"); + + private String value; + + ShiftReportDayOfWeekEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ShiftReportDayOfWeekEnum fromValue(String value) { + for (ShiftReportDayOfWeekEnum b : ShiftReportDayOfWeekEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ShiftReportDayOfWeekEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ShiftReportDayOfWeekEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ShiftReportDayOfWeekEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ShiftReportDayOfWeekEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SHIFT_REPORT_DAY_OF_WEEK = "shift_report_day_of_week"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_DAY_OF_WEEK) + @jakarta.annotation.Nullable + private ShiftReportDayOfWeekEnum shiftReportDayOfWeek; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_TIME_OF_DAY = "shift_report_time_of_day"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_TIME_OF_DAY) + @jakarta.annotation.Nullable + private String shiftReportTimeOfDay; + + public static final String SERIALIZED_NAME_SHIFT_REPORT_TIME_ZONE = "shift_report_time_zone"; + @SerializedName(SERIALIZED_NAME_SHIFT_REPORT_TIME_ZONE) + @jakarta.annotation.Nullable + private String shiftReportTimeZone; + public UpdateScheduleDataAttributes() { } @@ -234,6 +336,158 @@ public void setOwnerUserId(@jakarta.annotation.Nullable Integer ownerUserId) { } + public UpdateScheduleDataAttributes syncLinearEnabled(@jakarta.annotation.Nullable Boolean syncLinearEnabled) { + this.syncLinearEnabled = syncLinearEnabled; + return this; + } + + /** + * Whether the schedule is synced with Linear + * @return syncLinearEnabled + */ + @jakarta.annotation.Nullable + public Boolean getSyncLinearEnabled() { + return syncLinearEnabled; + } + + public void setSyncLinearEnabled(@jakarta.annotation.Nullable Boolean syncLinearEnabled) { + this.syncLinearEnabled = syncLinearEnabled; + } + + + public UpdateScheduleDataAttributes includeShadowsInSlackNotifications(@jakarta.annotation.Nullable Boolean includeShadowsInSlackNotifications) { + this.includeShadowsInSlackNotifications = includeShadowsInSlackNotifications; + return this; + } + + /** + * Whether shadow users are included in Slack notifications and user group syncing. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return includeShadowsInSlackNotifications + */ + @jakarta.annotation.Nullable + public Boolean getIncludeShadowsInSlackNotifications() { + return includeShadowsInSlackNotifications; + } + + public void setIncludeShadowsInSlackNotifications(@jakarta.annotation.Nullable Boolean includeShadowsInSlackNotifications) { + this.includeShadowsInSlackNotifications = includeShadowsInSlackNotifications; + } + + + public UpdateScheduleDataAttributes shiftStartNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftStartNotificationsEnabled) { + this.shiftStartNotificationsEnabled = shiftStartNotificationsEnabled; + return this; + } + + /** + * Whether shift-start notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftStartNotificationsEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftStartNotificationsEnabled() { + return shiftStartNotificationsEnabled; + } + + public void setShiftStartNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftStartNotificationsEnabled) { + this.shiftStartNotificationsEnabled = shiftStartNotificationsEnabled; + } + + + public UpdateScheduleDataAttributes shiftUpdateNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftUpdateNotificationsEnabled) { + this.shiftUpdateNotificationsEnabled = shiftUpdateNotificationsEnabled; + return this; + } + + /** + * Whether shift-update notifications are enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftUpdateNotificationsEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftUpdateNotificationsEnabled() { + return shiftUpdateNotificationsEnabled; + } + + public void setShiftUpdateNotificationsEnabled(@jakarta.annotation.Nullable Boolean shiftUpdateNotificationsEnabled) { + this.shiftUpdateNotificationsEnabled = shiftUpdateNotificationsEnabled; + } + + + public UpdateScheduleDataAttributes shiftReportEnabled(@jakarta.annotation.Nullable Boolean shiftReportEnabled) { + this.shiftReportEnabled = shiftReportEnabled; + return this; + } + + /** + * Whether the weekly shift summary report is enabled. Requires `slack_channel` to be set; otherwise this value is forced to false on save. + * @return shiftReportEnabled + */ + @jakarta.annotation.Nullable + public Boolean getShiftReportEnabled() { + return shiftReportEnabled; + } + + public void setShiftReportEnabled(@jakarta.annotation.Nullable Boolean shiftReportEnabled) { + this.shiftReportEnabled = shiftReportEnabled; + } + + + public UpdateScheduleDataAttributes shiftReportDayOfWeek(@jakarta.annotation.Nullable ShiftReportDayOfWeekEnum shiftReportDayOfWeek) { + this.shiftReportDayOfWeek = shiftReportDayOfWeek; + return this; + } + + /** + * Day of week the weekly shift summary is sent + * @return shiftReportDayOfWeek + */ + @jakarta.annotation.Nullable + public ShiftReportDayOfWeekEnum getShiftReportDayOfWeek() { + return shiftReportDayOfWeek; + } + + public void setShiftReportDayOfWeek(@jakarta.annotation.Nullable ShiftReportDayOfWeekEnum shiftReportDayOfWeek) { + this.shiftReportDayOfWeek = shiftReportDayOfWeek; + } + + + public UpdateScheduleDataAttributes shiftReportTimeOfDay(@jakarta.annotation.Nullable String shiftReportTimeOfDay) { + this.shiftReportTimeOfDay = shiftReportTimeOfDay; + return this; + } + + /** + * Time of day the weekly shift summary is sent, in HH:MM 24-hour format + * @return shiftReportTimeOfDay + */ + @jakarta.annotation.Nullable + public String getShiftReportTimeOfDay() { + return shiftReportTimeOfDay; + } + + public void setShiftReportTimeOfDay(@jakarta.annotation.Nullable String shiftReportTimeOfDay) { + this.shiftReportTimeOfDay = shiftReportTimeOfDay; + } + + + public UpdateScheduleDataAttributes shiftReportTimeZone(@jakarta.annotation.Nullable String shiftReportTimeZone) { + this.shiftReportTimeZone = shiftReportTimeZone; + return this; + } + + /** + * IANA time zone used for the weekly shift summary + * @return shiftReportTimeZone + */ + @jakarta.annotation.Nullable + public String getShiftReportTimeZone() { + return shiftReportTimeZone; + } + + public void setShiftReportTimeZone(@jakarta.annotation.Nullable String shiftReportTimeZone) { + this.shiftReportTimeZone = shiftReportTimeZone; + } + + @Override public boolean equals(Object o) { @@ -250,7 +504,15 @@ public boolean equals(Object o) { Objects.equals(this.slackUserGroup, updateScheduleDataAttributes.slackUserGroup) && Objects.equals(this.slackChannel, updateScheduleDataAttributes.slackChannel) && Objects.equals(this.ownerGroupIds, updateScheduleDataAttributes.ownerGroupIds) && - Objects.equals(this.ownerUserId, updateScheduleDataAttributes.ownerUserId); + Objects.equals(this.ownerUserId, updateScheduleDataAttributes.ownerUserId) && + Objects.equals(this.syncLinearEnabled, updateScheduleDataAttributes.syncLinearEnabled) && + Objects.equals(this.includeShadowsInSlackNotifications, updateScheduleDataAttributes.includeShadowsInSlackNotifications) && + Objects.equals(this.shiftStartNotificationsEnabled, updateScheduleDataAttributes.shiftStartNotificationsEnabled) && + Objects.equals(this.shiftUpdateNotificationsEnabled, updateScheduleDataAttributes.shiftUpdateNotificationsEnabled) && + Objects.equals(this.shiftReportEnabled, updateScheduleDataAttributes.shiftReportEnabled) && + Objects.equals(this.shiftReportDayOfWeek, updateScheduleDataAttributes.shiftReportDayOfWeek) && + Objects.equals(this.shiftReportTimeOfDay, updateScheduleDataAttributes.shiftReportTimeOfDay) && + Objects.equals(this.shiftReportTimeZone, updateScheduleDataAttributes.shiftReportTimeZone); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -259,7 +521,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, allTimeCoverage, slackUserGroup, slackChannel, ownerGroupIds, ownerUserId); + return Objects.hash(name, description, allTimeCoverage, slackUserGroup, slackChannel, ownerGroupIds, ownerUserId, syncLinearEnabled, includeShadowsInSlackNotifications, shiftStartNotificationsEnabled, shiftUpdateNotificationsEnabled, shiftReportEnabled, shiftReportDayOfWeek, shiftReportTimeOfDay, shiftReportTimeZone); } private static int hashCodeNullable(JsonNullable a) { @@ -280,6 +542,14 @@ public String toString() { sb.append(" slackChannel: ").append(toIndentedString(slackChannel)).append("\n"); sb.append(" ownerGroupIds: ").append(toIndentedString(ownerGroupIds)).append("\n"); sb.append(" ownerUserId: ").append(toIndentedString(ownerUserId)).append("\n"); + sb.append(" syncLinearEnabled: ").append(toIndentedString(syncLinearEnabled)).append("\n"); + sb.append(" includeShadowsInSlackNotifications: ").append(toIndentedString(includeShadowsInSlackNotifications)).append("\n"); + sb.append(" shiftStartNotificationsEnabled: ").append(toIndentedString(shiftStartNotificationsEnabled)).append("\n"); + sb.append(" shiftUpdateNotificationsEnabled: ").append(toIndentedString(shiftUpdateNotificationsEnabled)).append("\n"); + sb.append(" shiftReportEnabled: ").append(toIndentedString(shiftReportEnabled)).append("\n"); + sb.append(" shiftReportDayOfWeek: ").append(toIndentedString(shiftReportDayOfWeek)).append("\n"); + sb.append(" shiftReportTimeOfDay: ").append(toIndentedString(shiftReportTimeOfDay)).append("\n"); + sb.append(" shiftReportTimeZone: ").append(toIndentedString(shiftReportTimeZone)).append("\n"); sb.append("}"); return sb.toString(); } @@ -309,6 +579,14 @@ private String toIndentedString(Object o) { openapiFields.add("slack_channel"); openapiFields.add("owner_group_ids"); openapiFields.add("owner_user_id"); + openapiFields.add("sync_linear_enabled"); + openapiFields.add("include_shadows_in_slack_notifications"); + openapiFields.add("shift_start_notifications_enabled"); + openapiFields.add("shift_update_notifications_enabled"); + openapiFields.add("shift_report_enabled"); + openapiFields.add("shift_report_day_of_week"); + openapiFields.add("shift_report_time_of_day"); + openapiFields.add("shift_report_time_zone"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -353,6 +631,19 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("owner_group_ids") != null && !jsonObj.get("owner_group_ids").isJsonNull() && !jsonObj.get("owner_group_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `owner_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("owner_group_ids").toString())); } + if ((jsonObj.get("shift_report_day_of_week") != null && !jsonObj.get("shift_report_day_of_week").isJsonNull()) && !jsonObj.get("shift_report_day_of_week").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_day_of_week` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_day_of_week").toString())); + } + // validate the optional field `shift_report_day_of_week` + if (jsonObj.get("shift_report_day_of_week") != null && !jsonObj.get("shift_report_day_of_week").isJsonNull()) { + ShiftReportDayOfWeekEnum.validateJsonElement(jsonObj.get("shift_report_day_of_week")); + } + if ((jsonObj.get("shift_report_time_of_day") != null && !jsonObj.get("shift_report_time_of_day").isJsonNull()) && !jsonObj.get("shift_report_time_of_day").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_time_of_day` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_time_of_day").toString())); + } + if ((jsonObj.get("shift_report_time_zone") != null && !jsonObj.get("shift_report_time_zone").isJsonNull()) && !jsonObj.get("shift_report_time_zone").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `shift_report_time_zone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shift_report_time_zone").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotation.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotation.java index 55094a9e..a92a4e4d 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotation.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotation.java @@ -49,7 +49,7 @@ /** * UpdateScheduleRotation */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotation { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDay.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDay.java index b19c4962..50b47e57 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDay.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDay.java @@ -49,7 +49,7 @@ /** * UpdateScheduleRotationActiveDay */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationActiveDay { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayData.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayData.java index a57f4e79..0e3a99ea 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayData.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayData.java @@ -49,7 +49,7 @@ /** * UpdateScheduleRotationActiveDayData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationActiveDayData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayDataAttributes.java index d0fb5458..149e2116 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationActiveDayDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateScheduleRotationActiveDayDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationActiveDayDataAttributes { /** * Schedule rotation day name for which active times to be created diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationData.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationData.java index ad0114dd..7edf3fa3 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationData.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationData.java @@ -49,7 +49,7 @@ /** * UpdateScheduleRotationData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationDataAttributes.java index f655ffc3..9315ec4b 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationDataAttributes.java @@ -23,6 +23,7 @@ import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationMembersInner; import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationableAttributes; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -54,7 +55,7 @@ /** * UpdateScheduleRotationDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -278,12 +279,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_START_TIME = "start_time"; @SerializedName(SERIALIZED_NAME_START_TIME) @jakarta.annotation.Nullable - private String startTime; + private OffsetDateTime startTime; public static final String SERIALIZED_NAME_END_TIME = "end_time"; @SerializedName(SERIALIZED_NAME_END_TIME) @jakarta.annotation.Nullable - private String endTime; + private OffsetDateTime endTime; public static final String SERIALIZED_NAME_SCHEDULE_ROTATION_MEMBERS = "schedule_rotation_members"; @SerializedName(SERIALIZED_NAME_SCHEDULE_ROTATION_MEMBERS) @@ -488,40 +489,40 @@ public void setScheduleRotationableAttributes(@jakarta.annotation.Nullable NewSc } - public UpdateScheduleRotationDataAttributes startTime(@jakarta.annotation.Nullable String startTime) { + public UpdateScheduleRotationDataAttributes startTime(@jakarta.annotation.Nullable OffsetDateTime startTime) { this.startTime = startTime; return this; } /** - * ISO8601 date and time when rotation starts. Shifts will only be created after this time. + * RFC3339 date-time when rotation starts. Shifts will only be created after this time. * @return startTime */ @jakarta.annotation.Nullable - public String getStartTime() { + public OffsetDateTime getStartTime() { return startTime; } - public void setStartTime(@jakarta.annotation.Nullable String startTime) { + public void setStartTime(@jakarta.annotation.Nullable OffsetDateTime startTime) { this.startTime = startTime; } - public UpdateScheduleRotationDataAttributes endTime(@jakarta.annotation.Nullable String endTime) { + public UpdateScheduleRotationDataAttributes endTime(@jakarta.annotation.Nullable OffsetDateTime endTime) { this.endTime = endTime; return this; } /** - * ISO8601 date and time when rotation ends. Shifts will only be created before this time. + * RFC3339 date-time when rotation ends. Shifts will only be created before this time. * @return endTime */ @jakarta.annotation.Nullable - public String getEndTime() { + public OffsetDateTime getEndTime() { return endTime; } - public void setEndTime(@jakarta.annotation.Nullable String endTime) { + public void setEndTime(@jakarta.annotation.Nullable OffsetDateTime endTime) { this.endTime = endTime; } @@ -714,12 +715,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("schedule_rotationable_attributes") != null && !jsonObj.get("schedule_rotationable_attributes").isJsonNull()) { NewScheduleRotationDataAttributesScheduleRotationableAttributes.validateJsonElement(jsonObj.get("schedule_rotationable_attributes")); } - if ((jsonObj.get("start_time") != null && !jsonObj.get("start_time").isJsonNull()) && !jsonObj.get("start_time").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `start_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("start_time").toString())); - } - if ((jsonObj.get("end_time") != null && !jsonObj.get("end_time").isJsonNull()) && !jsonObj.get("end_time").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `end_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("end_time").toString())); - } if (jsonObj.get("schedule_rotation_members") != null && !jsonObj.get("schedule_rotation_members").isJsonNull()) { JsonArray jsonArrayscheduleRotationMembers = jsonObj.getAsJsonArray("schedule_rotation_members"); if (jsonArrayscheduleRotationMembers != null) { diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationUser.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationUser.java index 1b106e94..69fd3c9f 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationUser.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationUser.java @@ -49,7 +49,7 @@ /** * UpdateScheduleRotationUser */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationUser { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserData.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserData.java index 45a26307..8d5d41dd 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserData.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserData.java @@ -49,7 +49,7 @@ /** * UpdateScheduleRotationUserData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationUserData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserDataAttributes.java index 2986f567..2623d7f8 100644 --- a/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateScheduleRotationUserDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateScheduleRotationUserDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateScheduleRotationUserDataAttributes { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/UpdateSecret.java b/src/main/java/com/rootly/client/model/UpdateSecret.java index 68d77b0c..d767a8ef 100644 --- a/src/main/java/com/rootly/client/model/UpdateSecret.java +++ b/src/main/java/com/rootly/client/model/UpdateSecret.java @@ -49,7 +49,7 @@ /** * UpdateSecret */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSecret { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateSecretData.java b/src/main/java/com/rootly/client/model/UpdateSecretData.java index edfff440..d08c7cdf 100644 --- a/src/main/java/com/rootly/client/model/UpdateSecretData.java +++ b/src/main/java/com/rootly/client/model/UpdateSecretData.java @@ -49,7 +49,7 @@ /** * UpdateSecretData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSecretData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateSecretDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateSecretDataAttributes.java index efa22717..71d88743 100644 --- a/src/main/java/com/rootly/client/model/UpdateSecretDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateSecretDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateSecretDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSecretDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateService.java b/src/main/java/com/rootly/client/model/UpdateService.java index 4ff7df73..e5a6ad9f 100644 --- a/src/main/java/com/rootly/client/model/UpdateService.java +++ b/src/main/java/com/rootly/client/model/UpdateService.java @@ -49,7 +49,7 @@ /** * UpdateService */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateService { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateServiceData.java b/src/main/java/com/rootly/client/model/UpdateServiceData.java index 862c1bf0..83b4d455 100644 --- a/src/main/java/com/rootly/client/model/UpdateServiceData.java +++ b/src/main/java/com/rootly/client/model/UpdateServiceData.java @@ -49,7 +49,7 @@ /** * UpdateServiceData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateServiceData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateServiceDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateServiceDataAttributes.java index 0efbb25a..8c821f68 100644 --- a/src/main/java/com/rootly/client/model/UpdateServiceDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateServiceDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -55,8 +56,14 @@ /** * UpdateServiceDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateServiceDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -207,9 +214,37 @@ public class UpdateServiceDataAttributes { @jakarta.annotation.Nullable private NewServiceDataAttributesIncidentBroadcastChannel incidentBroadcastChannel; + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public UpdateServiceDataAttributes() { } + @Deprecated + public UpdateServiceDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateServiceDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -254,7 +289,7 @@ public UpdateServiceDataAttributes publicDescription(@jakarta.annotation.Nullabl } /** - * The public description of the service + * The status page description of the service * @return publicDescription */ @jakarta.annotation.Nullable @@ -590,7 +625,7 @@ public UpdateServiceDataAttributes addOwnerGroupIdsItem(String ownerGroupIdsItem } /** - * Owner Teams associated with this service + * Owner Teams associated with this service. Empty array removes all; omitting or null leaves unchanged. * @return ownerGroupIds */ @jakarta.annotation.Nullable @@ -617,7 +652,7 @@ public UpdateServiceDataAttributes addOwnerUserIdsItem(Integer ownerUserIdsItem) } /** - * Owner Users associated with this service + * Owner Users associated with this service. Empty array removes all; omitting or null leaves unchanged. * @return ownerUserIds */ @jakarta.annotation.Nullable @@ -836,6 +871,33 @@ public void setIncidentBroadcastChannel(@jakarta.annotation.Nullable NewServiceD } + public UpdateServiceDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public UpdateServiceDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this service. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -846,7 +908,8 @@ public boolean equals(Object o) { return false; } UpdateServiceDataAttributes updateServiceDataAttributes = (UpdateServiceDataAttributes) o; - return Objects.equals(this.name, updateServiceDataAttributes.name) && + return Objects.equals(this.slug, updateServiceDataAttributes.slug) && + Objects.equals(this.name, updateServiceDataAttributes.name) && Objects.equals(this.description, updateServiceDataAttributes.description) && Objects.equals(this.publicDescription, updateServiceDataAttributes.publicDescription) && Objects.equals(this.notifyEmails, updateServiceDataAttributes.notifyEmails) && @@ -875,7 +938,8 @@ public boolean equals(Object o) { Objects.equals(this.alertBroadcastEnabled, updateServiceDataAttributes.alertBroadcastEnabled) && Objects.equals(this.alertBroadcastChannel, updateServiceDataAttributes.alertBroadcastChannel) && Objects.equals(this.incidentBroadcastEnabled, updateServiceDataAttributes.incidentBroadcastEnabled) && - Objects.equals(this.incidentBroadcastChannel, updateServiceDataAttributes.incidentBroadcastChannel); + Objects.equals(this.incidentBroadcastChannel, updateServiceDataAttributes.incidentBroadcastChannel) && + Objects.equals(this.properties, updateServiceDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -884,7 +948,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, cortexId, serviceNowCiSysId, githubRepositoryName, githubRepositoryBranch, gitlabRepositoryName, gitlabRepositoryBranch, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, alertsEmailEnabled, alertUrgencyId, escalationPolicyId, kubernetesDeploymentName, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel); + return Objects.hash(slug, name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, opsgenieId, cortexId, serviceNowCiSysId, githubRepositoryName, githubRepositoryBranch, gitlabRepositoryName, gitlabRepositoryBranch, environmentIds, serviceIds, ownerGroupIds, ownerUserIds, alertsEmailEnabled, alertUrgencyId, escalationPolicyId, kubernetesDeploymentName, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -898,6 +962,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateServiceDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); @@ -928,6 +993,7 @@ public String toString() { sb.append(" alertBroadcastChannel: ").append(toIndentedString(alertBroadcastChannel)).append("\n"); sb.append(" incidentBroadcastEnabled: ").append(toIndentedString(incidentBroadcastEnabled)).append("\n"); sb.append(" incidentBroadcastChannel: ").append(toIndentedString(incidentBroadcastChannel)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -950,6 +1016,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("public_description"); @@ -980,6 +1047,7 @@ private String toIndentedString(Object o) { openapiFields.add("alert_broadcast_channel"); openapiFields.add("incident_broadcast_enabled"); openapiFields.add("incident_broadcast_channel"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -1006,6 +1074,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -1113,6 +1184,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_broadcast_channel") != null && !jsonObj.get("incident_broadcast_channel").isJsonNull()) { NewServiceDataAttributesIncidentBroadcastChannel.validateJsonElement(jsonObj.get("incident_broadcast_channel")); } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateServiceNowIncidentTaskParams.java b/src/main/java/com/rootly/client/model/UpdateServiceNowIncidentTaskParams.java index b2ac780a..2e4bf905 100644 --- a/src/main/java/com/rootly/client/model/UpdateServiceNowIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateServiceNowIncidentTaskParams.java @@ -51,7 +51,7 @@ /** * UpdateServiceNowIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateServiceNowIncidentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateSeverity.java b/src/main/java/com/rootly/client/model/UpdateSeverity.java index ed685597..ef3fd627 100644 --- a/src/main/java/com/rootly/client/model/UpdateSeverity.java +++ b/src/main/java/com/rootly/client/model/UpdateSeverity.java @@ -49,7 +49,7 @@ /** * UpdateSeverity */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSeverity { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateSeverityData.java b/src/main/java/com/rootly/client/model/UpdateSeverityData.java index 87bf8607..a611eb6d 100644 --- a/src/main/java/com/rootly/client/model/UpdateSeverityData.java +++ b/src/main/java/com/rootly/client/model/UpdateSeverityData.java @@ -49,7 +49,7 @@ /** * UpdateSeverityData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSeverityData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateSeverityDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateSeverityDataAttributes.java index 09fa6547..167aab3f 100644 --- a/src/main/java/com/rootly/client/model/UpdateSeverityDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateSeverityDataAttributes.java @@ -53,8 +53,14 @@ /** * UpdateSeverityDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSeverityDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -154,6 +160,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdateSeverityDataAttributes() { } + @Deprecated + public UpdateSeverityDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateSeverityDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -340,7 +369,8 @@ public boolean equals(Object o) { return false; } UpdateSeverityDataAttributes updateSeverityDataAttributes = (UpdateSeverityDataAttributes) o; - return Objects.equals(this.name, updateSeverityDataAttributes.name) && + return Objects.equals(this.slug, updateSeverityDataAttributes.slug) && + Objects.equals(this.name, updateSeverityDataAttributes.name) && Objects.equals(this.description, updateSeverityDataAttributes.description) && Objects.equals(this.severity, updateSeverityDataAttributes.severity) && Objects.equals(this.color, updateSeverityDataAttributes.color) && @@ -356,7 +386,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, severity, color, position, notifyEmails, slackChannels, slackAliases); + return Objects.hash(slug, name, description, severity, color, position, notifyEmails, slackChannels, slackAliases); } private static int hashCodeNullable(JsonNullable a) { @@ -370,6 +400,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateSeverityDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" severity: ").append(toIndentedString(severity)).append("\n"); @@ -400,6 +431,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("severity"); @@ -434,6 +466,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateSharepointPageTaskParams.java b/src/main/java/com/rootly/client/model/UpdateSharepointPageTaskParams.java index 54b078d6..95465743 100644 --- a/src/main/java/com/rootly/client/model/UpdateSharepointPageTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateSharepointPageTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateSharepointPageTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSharepointPageTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateShortcutStoryTaskParams.java b/src/main/java/com/rootly/client/model/UpdateShortcutStoryTaskParams.java index b10b677e..702ba86a 100644 --- a/src/main/java/com/rootly/client/model/UpdateShortcutStoryTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateShortcutStoryTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateShortcutStoryTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateShortcutStoryTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateShortcutTaskTaskParams.java b/src/main/java/com/rootly/client/model/UpdateShortcutTaskTaskParams.java index 308d74cd..a51bc679 100644 --- a/src/main/java/com/rootly/client/model/UpdateShortcutTaskTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateShortcutTaskTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateShortcutTaskTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateShortcutTaskTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateSla.java b/src/main/java/com/rootly/client/model/UpdateSla.java index 7f8c7959..8e1fc24c 100644 --- a/src/main/java/com/rootly/client/model/UpdateSla.java +++ b/src/main/java/com/rootly/client/model/UpdateSla.java @@ -49,17 +49,17 @@ /** * UpdateSla */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSla { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateSlaData data; public UpdateSla() { } - public UpdateSla data(@javax.annotation.Nonnull UpdateSlaData data) { + public UpdateSla data(@jakarta.annotation.Nonnull UpdateSlaData data) { this.data = data; return this; } @@ -68,12 +68,12 @@ public UpdateSla data(@javax.annotation.Nonnull UpdateSlaData data) { * Get data * @return data */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateSlaData getData() { return data; } - public void setData(@javax.annotation.Nonnull UpdateSlaData data) { + public void setData(@jakarta.annotation.Nonnull UpdateSlaData data) { this.data = data; } diff --git a/src/main/java/com/rootly/client/model/UpdateSlaData.java b/src/main/java/com/rootly/client/model/UpdateSlaData.java index ca5b5066..04de6ff2 100644 --- a/src/main/java/com/rootly/client/model/UpdateSlaData.java +++ b/src/main/java/com/rootly/client/model/UpdateSlaData.java @@ -49,7 +49,7 @@ /** * UpdateSlaData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSlaData { /** * Gets or Sets type @@ -103,18 +103,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private TypeEnum type; public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull private UpdateSlaDataAttributes attributes; public UpdateSlaData() { } - public UpdateSlaData type(@javax.annotation.Nonnull TypeEnum type) { + public UpdateSlaData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; } @@ -123,17 +123,17 @@ public UpdateSlaData type(@javax.annotation.Nonnull TypeEnum type) { * Get type * @return type */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public TypeEnum getType() { return type; } - public void setType(@javax.annotation.Nonnull TypeEnum type) { + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; } - public UpdateSlaData attributes(@javax.annotation.Nonnull UpdateSlaDataAttributes attributes) { + public UpdateSlaData attributes(@jakarta.annotation.Nonnull UpdateSlaDataAttributes attributes) { this.attributes = attributes; return this; } @@ -142,12 +142,12 @@ public UpdateSlaData attributes(@javax.annotation.Nonnull UpdateSlaDataAttribute * Get attributes * @return attributes */ - @javax.annotation.Nonnull + @jakarta.annotation.Nonnull public UpdateSlaDataAttributes getAttributes() { return attributes; } - public void setAttributes(@javax.annotation.Nonnull UpdateSlaDataAttributes attributes) { + public void setAttributes(@jakarta.annotation.Nonnull UpdateSlaDataAttributes attributes) { this.attributes = attributes; } diff --git a/src/main/java/com/rootly/client/model/UpdateSlaDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateSlaDataAttributes.java index 7faaa585..342cfb4e 100644 --- a/src/main/java/com/rootly/client/model/UpdateSlaDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateSlaDataAttributes.java @@ -54,21 +54,27 @@ /** * UpdateSlaDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-07T08:36:28.586343560Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSlaDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String name; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private String description; public static final String SERIALIZED_NAME_POSITION = "position"; @SerializedName(SERIALIZED_NAME_POSITION) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer position; /** @@ -125,17 +131,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_CONDITION_MATCH_TYPE = "condition_match_type"; @SerializedName(SERIALIZED_NAME_CONDITION_MATCH_TYPE) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private ConditionMatchTypeEnum conditionMatchType; public static final String SERIALIZED_NAME_MANAGER_ROLE_ID = "manager_role_id"; @SerializedName(SERIALIZED_NAME_MANAGER_ROLE_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID managerRoleId; public static final String SERIALIZED_NAME_MANAGER_USER_ID = "manager_user_id"; @SerializedName(SERIALIZED_NAME_MANAGER_USER_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Integer managerUserId; /** @@ -208,7 +214,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_DAYS = "assignment_deadline_days"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_DAYS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private AssignmentDeadlineDaysEnum assignmentDeadlineDays; /** @@ -273,17 +279,17 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_PARENT_STATUS = "assignment_deadline_parent_status"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_PARENT_STATUS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus; public static final String SERIALIZED_NAME_ASSIGNMENT_DEADLINE_SUB_STATUS_ID = "assignment_deadline_sub_status_id"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_DEADLINE_SUB_STATUS_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID assignmentDeadlineSubStatusId; public static final String SERIALIZED_NAME_ASSIGNMENT_SKIP_WEEKENDS = "assignment_skip_weekends"; @SerializedName(SERIALIZED_NAME_ASSIGNMENT_SKIP_WEEKENDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean assignmentSkipWeekends; /** @@ -356,7 +362,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_DAYS = "completion_deadline_days"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_DAYS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CompletionDeadlineDaysEnum completionDeadlineDays; /** @@ -421,33 +427,56 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_PARENT_STATUS = "completion_deadline_parent_status"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_PARENT_STATUS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private CompletionDeadlineParentStatusEnum completionDeadlineParentStatus; public static final String SERIALIZED_NAME_COMPLETION_DEADLINE_SUB_STATUS_ID = "completion_deadline_sub_status_id"; @SerializedName(SERIALIZED_NAME_COMPLETION_DEADLINE_SUB_STATUS_ID) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private UUID completionDeadlineSubStatusId; public static final String SERIALIZED_NAME_COMPLETION_SKIP_WEEKENDS = "completion_skip_weekends"; @SerializedName(SERIALIZED_NAME_COMPLETION_SKIP_WEEKENDS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private Boolean completionSkipWeekends; public static final String SERIALIZED_NAME_CONDITIONS = "conditions"; @SerializedName(SERIALIZED_NAME_CONDITIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List conditions = new ArrayList<>(); public static final String SERIALIZED_NAME_NOTIFICATION_CONFIGURATIONS = "notification_configurations"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_CONFIGURATIONS) - @javax.annotation.Nullable + @jakarta.annotation.Nullable private List notificationConfigurations = new ArrayList<>(); public UpdateSlaDataAttributes() { } - public UpdateSlaDataAttributes name(@javax.annotation.Nullable String name) { + @Deprecated + public UpdateSlaDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + + public UpdateSlaDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; } @@ -456,17 +485,17 @@ public UpdateSlaDataAttributes name(@javax.annotation.Nullable String name) { * The name of the SLA * @return name */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getName() { return name; } - public void setName(@javax.annotation.Nullable String name) { + public void setName(@jakarta.annotation.Nullable String name) { this.name = name; } - public UpdateSlaDataAttributes description(@javax.annotation.Nullable String description) { + public UpdateSlaDataAttributes description(@jakarta.annotation.Nullable String description) { this.description = description; return this; } @@ -475,17 +504,17 @@ public UpdateSlaDataAttributes description(@javax.annotation.Nullable String des * A description of the SLA * @return description */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public String getDescription() { return description; } - public void setDescription(@javax.annotation.Nullable String description) { + public void setDescription(@jakarta.annotation.Nullable String description) { this.description = description; } - public UpdateSlaDataAttributes position(@javax.annotation.Nullable Integer position) { + public UpdateSlaDataAttributes position(@jakarta.annotation.Nullable Integer position) { this.position = position; return this; } @@ -494,17 +523,17 @@ public UpdateSlaDataAttributes position(@javax.annotation.Nullable Integer posit * Position of the SLA for ordering * @return position */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getPosition() { return position; } - public void setPosition(@javax.annotation.Nullable Integer position) { + public void setPosition(@jakarta.annotation.Nullable Integer position) { this.position = position; } - public UpdateSlaDataAttributes conditionMatchType(@javax.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { + public UpdateSlaDataAttributes conditionMatchType(@jakarta.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { this.conditionMatchType = conditionMatchType; return this; } @@ -513,17 +542,17 @@ public UpdateSlaDataAttributes conditionMatchType(@javax.annotation.Nullable Con * Whether all or any conditions must match * @return conditionMatchType */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public ConditionMatchTypeEnum getConditionMatchType() { return conditionMatchType; } - public void setConditionMatchType(@javax.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { + public void setConditionMatchType(@jakarta.annotation.Nullable ConditionMatchTypeEnum conditionMatchType) { this.conditionMatchType = conditionMatchType; } - public UpdateSlaDataAttributes managerRoleId(@javax.annotation.Nullable UUID managerRoleId) { + public UpdateSlaDataAttributes managerRoleId(@jakarta.annotation.Nullable UUID managerRoleId) { this.managerRoleId = managerRoleId; return this; } @@ -532,17 +561,17 @@ public UpdateSlaDataAttributes managerRoleId(@javax.annotation.Nullable UUID man * The ID of the incident role responsible for this SLA. Exactly one of `manager_role_id` or `manager_user_id` must be provided. * @return managerRoleId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getManagerRoleId() { return managerRoleId; } - public void setManagerRoleId(@javax.annotation.Nullable UUID managerRoleId) { + public void setManagerRoleId(@jakarta.annotation.Nullable UUID managerRoleId) { this.managerRoleId = managerRoleId; } - public UpdateSlaDataAttributes managerUserId(@javax.annotation.Nullable Integer managerUserId) { + public UpdateSlaDataAttributes managerUserId(@jakarta.annotation.Nullable Integer managerUserId) { this.managerUserId = managerUserId; return this; } @@ -551,17 +580,17 @@ public UpdateSlaDataAttributes managerUserId(@javax.annotation.Nullable Integer * The ID of the user responsible for this SLA. Exactly one of `manager_role_id` or `manager_user_id` must be provided. * @return managerUserId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Integer getManagerUserId() { return managerUserId; } - public void setManagerUserId(@javax.annotation.Nullable Integer managerUserId) { + public void setManagerUserId(@jakarta.annotation.Nullable Integer managerUserId) { this.managerUserId = managerUserId; } - public UpdateSlaDataAttributes assignmentDeadlineDays(@javax.annotation.Nullable AssignmentDeadlineDaysEnum assignmentDeadlineDays) { + public UpdateSlaDataAttributes assignmentDeadlineDays(@jakarta.annotation.Nullable AssignmentDeadlineDaysEnum assignmentDeadlineDays) { this.assignmentDeadlineDays = assignmentDeadlineDays; return this; } @@ -570,17 +599,17 @@ public UpdateSlaDataAttributes assignmentDeadlineDays(@javax.annotation.Nullable * Number of days for the assignment deadline * @return assignmentDeadlineDays */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public AssignmentDeadlineDaysEnum getAssignmentDeadlineDays() { return assignmentDeadlineDays; } - public void setAssignmentDeadlineDays(@javax.annotation.Nullable AssignmentDeadlineDaysEnum assignmentDeadlineDays) { + public void setAssignmentDeadlineDays(@jakarta.annotation.Nullable AssignmentDeadlineDaysEnum assignmentDeadlineDays) { this.assignmentDeadlineDays = assignmentDeadlineDays; } - public UpdateSlaDataAttributes assignmentDeadlineParentStatus(@javax.annotation.Nullable AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { + public UpdateSlaDataAttributes assignmentDeadlineParentStatus(@jakarta.annotation.Nullable AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { this.assignmentDeadlineParentStatus = assignmentDeadlineParentStatus; return this; } @@ -589,17 +618,17 @@ public UpdateSlaDataAttributes assignmentDeadlineParentStatus(@javax.annotation. * The incident parent status that triggers the assignment deadline * @return assignmentDeadlineParentStatus */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public AssignmentDeadlineParentStatusEnum getAssignmentDeadlineParentStatus() { return assignmentDeadlineParentStatus; } - public void setAssignmentDeadlineParentStatus(@javax.annotation.Nullable AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { + public void setAssignmentDeadlineParentStatus(@jakarta.annotation.Nullable AssignmentDeadlineParentStatusEnum assignmentDeadlineParentStatus) { this.assignmentDeadlineParentStatus = assignmentDeadlineParentStatus; } - public UpdateSlaDataAttributes assignmentDeadlineSubStatusId(@javax.annotation.Nullable UUID assignmentDeadlineSubStatusId) { + public UpdateSlaDataAttributes assignmentDeadlineSubStatusId(@jakarta.annotation.Nullable UUID assignmentDeadlineSubStatusId) { this.assignmentDeadlineSubStatusId = assignmentDeadlineSubStatusId; return this; } @@ -608,17 +637,17 @@ public UpdateSlaDataAttributes assignmentDeadlineSubStatusId(@javax.annotation.N * Sub-status for the assignment deadline. Required when custom lifecycle statuses are enabled on the team. * @return assignmentDeadlineSubStatusId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getAssignmentDeadlineSubStatusId() { return assignmentDeadlineSubStatusId; } - public void setAssignmentDeadlineSubStatusId(@javax.annotation.Nullable UUID assignmentDeadlineSubStatusId) { + public void setAssignmentDeadlineSubStatusId(@jakarta.annotation.Nullable UUID assignmentDeadlineSubStatusId) { this.assignmentDeadlineSubStatusId = assignmentDeadlineSubStatusId; } - public UpdateSlaDataAttributes assignmentSkipWeekends(@javax.annotation.Nullable Boolean assignmentSkipWeekends) { + public UpdateSlaDataAttributes assignmentSkipWeekends(@jakarta.annotation.Nullable Boolean assignmentSkipWeekends) { this.assignmentSkipWeekends = assignmentSkipWeekends; return this; } @@ -627,17 +656,17 @@ public UpdateSlaDataAttributes assignmentSkipWeekends(@javax.annotation.Nullable * Whether to skip weekends when calculating the assignment deadline * @return assignmentSkipWeekends */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getAssignmentSkipWeekends() { return assignmentSkipWeekends; } - public void setAssignmentSkipWeekends(@javax.annotation.Nullable Boolean assignmentSkipWeekends) { + public void setAssignmentSkipWeekends(@jakarta.annotation.Nullable Boolean assignmentSkipWeekends) { this.assignmentSkipWeekends = assignmentSkipWeekends; } - public UpdateSlaDataAttributes completionDeadlineDays(@javax.annotation.Nullable CompletionDeadlineDaysEnum completionDeadlineDays) { + public UpdateSlaDataAttributes completionDeadlineDays(@jakarta.annotation.Nullable CompletionDeadlineDaysEnum completionDeadlineDays) { this.completionDeadlineDays = completionDeadlineDays; return this; } @@ -646,17 +675,17 @@ public UpdateSlaDataAttributes completionDeadlineDays(@javax.annotation.Nullable * Number of days for the completion deadline * @return completionDeadlineDays */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CompletionDeadlineDaysEnum getCompletionDeadlineDays() { return completionDeadlineDays; } - public void setCompletionDeadlineDays(@javax.annotation.Nullable CompletionDeadlineDaysEnum completionDeadlineDays) { + public void setCompletionDeadlineDays(@jakarta.annotation.Nullable CompletionDeadlineDaysEnum completionDeadlineDays) { this.completionDeadlineDays = completionDeadlineDays; } - public UpdateSlaDataAttributes completionDeadlineParentStatus(@javax.annotation.Nullable CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { + public UpdateSlaDataAttributes completionDeadlineParentStatus(@jakarta.annotation.Nullable CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { this.completionDeadlineParentStatus = completionDeadlineParentStatus; return this; } @@ -665,17 +694,17 @@ public UpdateSlaDataAttributes completionDeadlineParentStatus(@javax.annotation. * The incident parent status that triggers the completion deadline * @return completionDeadlineParentStatus */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public CompletionDeadlineParentStatusEnum getCompletionDeadlineParentStatus() { return completionDeadlineParentStatus; } - public void setCompletionDeadlineParentStatus(@javax.annotation.Nullable CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { + public void setCompletionDeadlineParentStatus(@jakarta.annotation.Nullable CompletionDeadlineParentStatusEnum completionDeadlineParentStatus) { this.completionDeadlineParentStatus = completionDeadlineParentStatus; } - public UpdateSlaDataAttributes completionDeadlineSubStatusId(@javax.annotation.Nullable UUID completionDeadlineSubStatusId) { + public UpdateSlaDataAttributes completionDeadlineSubStatusId(@jakarta.annotation.Nullable UUID completionDeadlineSubStatusId) { this.completionDeadlineSubStatusId = completionDeadlineSubStatusId; return this; } @@ -684,17 +713,17 @@ public UpdateSlaDataAttributes completionDeadlineSubStatusId(@javax.annotation.N * Sub-status for the completion deadline. Required when custom lifecycle statuses are enabled on the team. * @return completionDeadlineSubStatusId */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public UUID getCompletionDeadlineSubStatusId() { return completionDeadlineSubStatusId; } - public void setCompletionDeadlineSubStatusId(@javax.annotation.Nullable UUID completionDeadlineSubStatusId) { + public void setCompletionDeadlineSubStatusId(@jakarta.annotation.Nullable UUID completionDeadlineSubStatusId) { this.completionDeadlineSubStatusId = completionDeadlineSubStatusId; } - public UpdateSlaDataAttributes completionSkipWeekends(@javax.annotation.Nullable Boolean completionSkipWeekends) { + public UpdateSlaDataAttributes completionSkipWeekends(@jakarta.annotation.Nullable Boolean completionSkipWeekends) { this.completionSkipWeekends = completionSkipWeekends; return this; } @@ -703,17 +732,17 @@ public UpdateSlaDataAttributes completionSkipWeekends(@javax.annotation.Nullable * Whether to skip weekends when calculating the completion deadline * @return completionSkipWeekends */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public Boolean getCompletionSkipWeekends() { return completionSkipWeekends; } - public void setCompletionSkipWeekends(@javax.annotation.Nullable Boolean completionSkipWeekends) { + public void setCompletionSkipWeekends(@jakarta.annotation.Nullable Boolean completionSkipWeekends) { this.completionSkipWeekends = completionSkipWeekends; } - public UpdateSlaDataAttributes conditions(@javax.annotation.Nullable List conditions) { + public UpdateSlaDataAttributes conditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; return this; } @@ -730,17 +759,17 @@ public UpdateSlaDataAttributes addConditionsItem(NewSlaDataAttributesConditionsI * Conditions that determine which incidents this SLA applies to. Replaces all existing conditions. * @return conditions */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getConditions() { return conditions; } - public void setConditions(@javax.annotation.Nullable List conditions) { + public void setConditions(@jakarta.annotation.Nullable List conditions) { this.conditions = conditions; } - public UpdateSlaDataAttributes notificationConfigurations(@javax.annotation.Nullable List notificationConfigurations) { + public UpdateSlaDataAttributes notificationConfigurations(@jakarta.annotation.Nullable List notificationConfigurations) { this.notificationConfigurations = notificationConfigurations; return this; } @@ -757,12 +786,12 @@ public UpdateSlaDataAttributes addNotificationConfigurationsItem(NewSlaDataAttri * Notification timing configurations. Replaces all existing configurations. * @return notificationConfigurations */ - @javax.annotation.Nullable + @jakarta.annotation.Nullable public List getNotificationConfigurations() { return notificationConfigurations; } - public void setNotificationConfigurations(@javax.annotation.Nullable List notificationConfigurations) { + public void setNotificationConfigurations(@jakarta.annotation.Nullable List notificationConfigurations) { this.notificationConfigurations = notificationConfigurations; } @@ -777,7 +806,8 @@ public boolean equals(Object o) { return false; } UpdateSlaDataAttributes updateSlaDataAttributes = (UpdateSlaDataAttributes) o; - return Objects.equals(this.name, updateSlaDataAttributes.name) && + return Objects.equals(this.slug, updateSlaDataAttributes.slug) && + Objects.equals(this.name, updateSlaDataAttributes.name) && Objects.equals(this.description, updateSlaDataAttributes.description) && Objects.equals(this.position, updateSlaDataAttributes.position) && Objects.equals(this.conditionMatchType, updateSlaDataAttributes.conditionMatchType) && @@ -801,7 +831,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, position, conditionMatchType, managerRoleId, managerUserId, assignmentDeadlineDays, assignmentDeadlineParentStatus, assignmentDeadlineSubStatusId, assignmentSkipWeekends, completionDeadlineDays, completionDeadlineParentStatus, completionDeadlineSubStatusId, completionSkipWeekends, conditions, notificationConfigurations); + return Objects.hash(slug, name, description, position, conditionMatchType, managerRoleId, managerUserId, assignmentDeadlineDays, assignmentDeadlineParentStatus, assignmentDeadlineSubStatusId, assignmentSkipWeekends, completionDeadlineDays, completionDeadlineParentStatus, completionDeadlineSubStatusId, completionSkipWeekends, conditions, notificationConfigurations); } private static int hashCodeNullable(JsonNullable a) { @@ -815,6 +845,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateSlaDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -853,6 +884,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); @@ -895,6 +927,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateSlackChannelTopicTaskParams.java b/src/main/java/com/rootly/client/model/UpdateSlackChannelTopicTaskParams.java index 3d8eabf4..5e30c12b 100644 --- a/src/main/java/com/rootly/client/model/UpdateSlackChannelTopicTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateSlackChannelTopicTaskParams.java @@ -49,7 +49,7 @@ /** * UpdateSlackChannelTopicTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSlackChannelTopicTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPage.java b/src/main/java/com/rootly/client/model/UpdateStatusPage.java index 3b66a4a0..f29ff0b4 100644 --- a/src/main/java/com/rootly/client/model/UpdateStatusPage.java +++ b/src/main/java/com/rootly/client/model/UpdateStatusPage.java @@ -49,7 +49,7 @@ /** * UpdateStatusPage */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateStatusPage { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncement.java b/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncement.java new file mode 100644 index 00000000..c09b0e06 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncement.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageAnnouncementData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageAnnouncement + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageAnnouncement { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private UpdateStatusPageAnnouncementData data; + + public UpdateStatusPageAnnouncement() { + } + + public UpdateStatusPageAnnouncement data(@jakarta.annotation.Nonnull UpdateStatusPageAnnouncementData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public UpdateStatusPageAnnouncementData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull UpdateStatusPageAnnouncementData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageAnnouncement updateStatusPageAnnouncement = (UpdateStatusPageAnnouncement) o; + return Objects.equals(this.data, updateStatusPageAnnouncement.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageAnnouncement {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageAnnouncement + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageAnnouncement.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageAnnouncement is not found in the empty JSON string", UpdateStatusPageAnnouncement.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageAnnouncement.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageAnnouncement` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateStatusPageAnnouncement.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + UpdateStatusPageAnnouncementData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageAnnouncement.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageAnnouncement' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageAnnouncement.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageAnnouncement value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageAnnouncement read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageAnnouncement given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageAnnouncement + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageAnnouncement + */ + public static UpdateStatusPageAnnouncement fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageAnnouncement.class); + } + + /** + * Convert an instance of UpdateStatusPageAnnouncement to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementData.java b/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementData.java new file mode 100644 index 00000000..1e6da9de --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageAnnouncementDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageAnnouncementData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageAnnouncementData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_ANNOUNCEMENTS("status_page_announcements"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private UpdateStatusPageAnnouncementDataAttributes attributes; + + public UpdateStatusPageAnnouncementData() { + } + + public UpdateStatusPageAnnouncementData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public UpdateStatusPageAnnouncementData attributes(@jakarta.annotation.Nonnull UpdateStatusPageAnnouncementDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public UpdateStatusPageAnnouncementDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull UpdateStatusPageAnnouncementDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageAnnouncementData updateStatusPageAnnouncementData = (UpdateStatusPageAnnouncementData) o; + return Objects.equals(this.type, updateStatusPageAnnouncementData.type) && + Objects.equals(this.attributes, updateStatusPageAnnouncementData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageAnnouncementData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageAnnouncementData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageAnnouncementData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageAnnouncementData is not found in the empty JSON string", UpdateStatusPageAnnouncementData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageAnnouncementData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageAnnouncementData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateStatusPageAnnouncementData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + UpdateStatusPageAnnouncementDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageAnnouncementData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageAnnouncementData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageAnnouncementData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageAnnouncementData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageAnnouncementData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageAnnouncementData given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageAnnouncementData + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageAnnouncementData + */ + public static UpdateStatusPageAnnouncementData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageAnnouncementData.class); + } + + /** + * Convert an instance of UpdateStatusPageAnnouncementData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributes.java new file mode 100644 index 00000000..ec5db18f --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributes.java @@ -0,0 +1,236 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageAnnouncementDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageAnnouncementDataAttributes { + public static final String SERIALIZED_NAME_TITLE = "title"; + @SerializedName(SERIALIZED_NAME_TITLE) + @jakarta.annotation.Nullable + private String title; + + public static final String SERIALIZED_NAME_BODY = "body"; + @SerializedName(SERIALIZED_NAME_BODY) + @jakarta.annotation.Nullable + private String body; + + public UpdateStatusPageAnnouncementDataAttributes() { + } + + public UpdateStatusPageAnnouncementDataAttributes title(@jakarta.annotation.Nullable String title) { + this.title = title; + return this; + } + + /** + * Title of the announcement + * @return title + */ + @jakarta.annotation.Nullable + public String getTitle() { + return title; + } + + public void setTitle(@jakarta.annotation.Nullable String title) { + this.title = title; + } + + + public UpdateStatusPageAnnouncementDataAttributes body(@jakarta.annotation.Nullable String body) { + this.body = body; + return this; + } + + /** + * Body of the announcement + * @return body + */ + @jakarta.annotation.Nullable + public String getBody() { + return body; + } + + public void setBody(@jakarta.annotation.Nullable String body) { + this.body = body; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageAnnouncementDataAttributes updateStatusPageAnnouncementDataAttributes = (UpdateStatusPageAnnouncementDataAttributes) o; + return Objects.equals(this.title, updateStatusPageAnnouncementDataAttributes.title) && + Objects.equals(this.body, updateStatusPageAnnouncementDataAttributes.body); + } + + @Override + public int hashCode() { + return Objects.hash(title, body); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageAnnouncementDataAttributes {\n"); + sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" body: ").append(toIndentedString(body)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("title"); + openapiFields.add("body"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageAnnouncementDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageAnnouncementDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageAnnouncementDataAttributes is not found in the empty JSON string", UpdateStatusPageAnnouncementDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageAnnouncementDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageAnnouncementDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); + } + if ((jsonObj.get("body") != null && !jsonObj.get("body").isJsonNull()) && !jsonObj.get("body").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("body").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageAnnouncementDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageAnnouncementDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageAnnouncementDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageAnnouncementDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageAnnouncementDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageAnnouncementDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageAnnouncementDataAttributes + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageAnnouncementDataAttributes + */ + public static UpdateStatusPageAnnouncementDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageAnnouncementDataAttributes.class); + } + + /** + * Convert an instance of UpdateStatusPageAnnouncementDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageComponent.java b/src/main/java/com/rootly/client/model/UpdateStatusPageComponent.java new file mode 100644 index 00000000..082c7bd6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageComponent.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageComponent + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageComponent { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private UpdateStatusPageComponentData data; + + public UpdateStatusPageComponent() { + } + + public UpdateStatusPageComponent data(@jakarta.annotation.Nonnull UpdateStatusPageComponentData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public UpdateStatusPageComponentData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull UpdateStatusPageComponentData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageComponent updateStatusPageComponent = (UpdateStatusPageComponent) o; + return Objects.equals(this.data, updateStatusPageComponent.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageComponent {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageComponent + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageComponent.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageComponent is not found in the empty JSON string", UpdateStatusPageComponent.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageComponent.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageComponent` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateStatusPageComponent.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + UpdateStatusPageComponentData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageComponent.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageComponent' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageComponent.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageComponent value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageComponent read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageComponent given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageComponent + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageComponent + */ + public static UpdateStatusPageComponent fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageComponent.class); + } + + /** + * Convert an instance of UpdateStatusPageComponent to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageComponentData.java b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentData.java new file mode 100644 index 00000000..cd094fb4 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageComponentData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageComponentData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_COMPONENTS("status_page_components"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private UpdateStatusPageComponentDataAttributes attributes; + + public UpdateStatusPageComponentData() { + } + + public UpdateStatusPageComponentData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public UpdateStatusPageComponentData attributes(@jakarta.annotation.Nonnull UpdateStatusPageComponentDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public UpdateStatusPageComponentDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull UpdateStatusPageComponentDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageComponentData updateStatusPageComponentData = (UpdateStatusPageComponentData) o; + return Objects.equals(this.type, updateStatusPageComponentData.type) && + Objects.equals(this.attributes, updateStatusPageComponentData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageComponentData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageComponentData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageComponentData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageComponentData is not found in the empty JSON string", UpdateStatusPageComponentData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageComponentData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageComponentData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateStatusPageComponentData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + UpdateStatusPageComponentDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageComponentData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageComponentData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageComponentData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageComponentData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageComponentData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageComponentData given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageComponentData + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageComponentData + */ + public static UpdateStatusPageComponentData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageComponentData.class); + } + + /** + * Convert an instance of UpdateStatusPageComponentData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributes.java new file mode 100644 index 00000000..9c397b8b --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributes.java @@ -0,0 +1,306 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageComponentDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageComponentDataAttributes { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_STATUS_PAGE_COMPONENT_GROUP_ID = "status_page_component_group_id"; + @SerializedName(SERIALIZED_NAME_STATUS_PAGE_COMPONENT_GROUP_ID) + @jakarta.annotation.Nullable + private String statusPageComponentGroupId; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public UpdateStatusPageComponentDataAttributes() { + } + + public UpdateStatusPageComponentDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Name of the component (ad-hoc components only) + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public UpdateStatusPageComponentDataAttributes description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Description of the component (ad-hoc components only) + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public UpdateStatusPageComponentDataAttributes statusPageComponentGroupId(@jakarta.annotation.Nullable String statusPageComponentGroupId) { + this.statusPageComponentGroupId = statusPageComponentGroupId; + return this; + } + + /** + * ID of the component group on the same status page (null moves the component to the top level) + * @return statusPageComponentGroupId + */ + @jakarta.annotation.Nullable + public String getStatusPageComponentGroupId() { + return statusPageComponentGroupId; + } + + public void setStatusPageComponentGroupId(@jakarta.annotation.Nullable String statusPageComponentGroupId) { + this.statusPageComponentGroupId = statusPageComponentGroupId; + } + + + public UpdateStatusPageComponentDataAttributes position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Position of the component (within its group, or on the page's top-level list when ungrouped) + * minimum: 1 + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageComponentDataAttributes updateStatusPageComponentDataAttributes = (UpdateStatusPageComponentDataAttributes) o; + return Objects.equals(this.name, updateStatusPageComponentDataAttributes.name) && + Objects.equals(this.description, updateStatusPageComponentDataAttributes.description) && + Objects.equals(this.statusPageComponentGroupId, updateStatusPageComponentDataAttributes.statusPageComponentGroupId) && + Objects.equals(this.position, updateStatusPageComponentDataAttributes.position); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, statusPageComponentGroupId, position); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageComponentDataAttributes {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" statusPageComponentGroupId: ").append(toIndentedString(statusPageComponentGroupId)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("status_page_component_group_id"); + openapiFields.add("position"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageComponentDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageComponentDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageComponentDataAttributes is not found in the empty JSON string", UpdateStatusPageComponentDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageComponentDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageComponentDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("status_page_component_group_id") != null && !jsonObj.get("status_page_component_group_id").isJsonNull()) && !jsonObj.get("status_page_component_group_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status_page_component_group_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status_page_component_group_id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageComponentDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageComponentDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageComponentDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageComponentDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageComponentDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageComponentDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageComponentDataAttributes + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageComponentDataAttributes + */ + public static UpdateStatusPageComponentDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageComponentDataAttributes.class); + } + + /** + * Convert an instance of UpdateStatusPageComponentDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroup.java b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroup.java new file mode 100644 index 00000000..ccfe39a5 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroup.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentGroupData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageComponentGroup + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageComponentGroup { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private UpdateStatusPageComponentGroupData data; + + public UpdateStatusPageComponentGroup() { + } + + public UpdateStatusPageComponentGroup data(@jakarta.annotation.Nonnull UpdateStatusPageComponentGroupData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public UpdateStatusPageComponentGroupData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull UpdateStatusPageComponentGroupData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageComponentGroup updateStatusPageComponentGroup = (UpdateStatusPageComponentGroup) o; + return Objects.equals(this.data, updateStatusPageComponentGroup.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageComponentGroup {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageComponentGroup + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageComponentGroup.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageComponentGroup is not found in the empty JSON string", UpdateStatusPageComponentGroup.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageComponentGroup.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageComponentGroup` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateStatusPageComponentGroup.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + UpdateStatusPageComponentGroupData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageComponentGroup.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageComponentGroup' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageComponentGroup.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageComponentGroup value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageComponentGroup read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageComponentGroup given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageComponentGroup + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageComponentGroup + */ + public static UpdateStatusPageComponentGroup fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageComponentGroup.class); + } + + /** + * Convert an instance of UpdateStatusPageComponentGroup to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupData.java b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupData.java new file mode 100644 index 00000000..63d84492 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentGroupDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageComponentGroupData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageComponentGroupData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + STATUS_PAGE_COMPONENT_GROUPS("status_page_component_groups"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private UpdateStatusPageComponentGroupDataAttributes attributes; + + public UpdateStatusPageComponentGroupData() { + } + + public UpdateStatusPageComponentGroupData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public UpdateStatusPageComponentGroupData attributes(@jakarta.annotation.Nonnull UpdateStatusPageComponentGroupDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public UpdateStatusPageComponentGroupDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull UpdateStatusPageComponentGroupDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageComponentGroupData updateStatusPageComponentGroupData = (UpdateStatusPageComponentGroupData) o; + return Objects.equals(this.type, updateStatusPageComponentGroupData.type) && + Objects.equals(this.attributes, updateStatusPageComponentGroupData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageComponentGroupData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageComponentGroupData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageComponentGroupData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageComponentGroupData is not found in the empty JSON string", UpdateStatusPageComponentGroupData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageComponentGroupData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageComponentGroupData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateStatusPageComponentGroupData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + UpdateStatusPageComponentGroupDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageComponentGroupData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageComponentGroupData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageComponentGroupData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageComponentGroupData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageComponentGroupData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageComponentGroupData given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageComponentGroupData + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageComponentGroupData + */ + public static UpdateStatusPageComponentGroupData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageComponentGroupData.class); + } + + /** + * Convert an instance of UpdateStatusPageComponentGroupData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributes.java new file mode 100644 index 00000000..edf9e86d --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributes.java @@ -0,0 +1,303 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateStatusPageComponentGroupDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateStatusPageComponentGroupDataAttributes { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @jakarta.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_POSITION = "position"; + @SerializedName(SERIALIZED_NAME_POSITION) + @jakarta.annotation.Nullable + private Integer position; + + public static final String SERIALIZED_NAME_COLLAPSED_BY_DEFAULT = "collapsed_by_default"; + @SerializedName(SERIALIZED_NAME_COLLAPSED_BY_DEFAULT) + @jakarta.annotation.Nullable + private Boolean collapsedByDefault; + + public UpdateStatusPageComponentGroupDataAttributes() { + } + + public UpdateStatusPageComponentGroupDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Name of the component group + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + + public UpdateStatusPageComponentGroupDataAttributes description(@jakarta.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Description of the component group + * @return description + */ + @jakarta.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@jakarta.annotation.Nullable String description) { + this.description = description; + } + + + public UpdateStatusPageComponentGroupDataAttributes position(@jakarta.annotation.Nullable Integer position) { + this.position = position; + return this; + } + + /** + * Position of the group on the status page's top-level list (shared with ungrouped components) + * minimum: 1 + * @return position + */ + @jakarta.annotation.Nullable + public Integer getPosition() { + return position; + } + + public void setPosition(@jakarta.annotation.Nullable Integer position) { + this.position = position; + } + + + public UpdateStatusPageComponentGroupDataAttributes collapsedByDefault(@jakarta.annotation.Nullable Boolean collapsedByDefault) { + this.collapsedByDefault = collapsedByDefault; + return this; + } + + /** + * Whether the group renders collapsed on the public page + * @return collapsedByDefault + */ + @jakarta.annotation.Nullable + public Boolean getCollapsedByDefault() { + return collapsedByDefault; + } + + public void setCollapsedByDefault(@jakarta.annotation.Nullable Boolean collapsedByDefault) { + this.collapsedByDefault = collapsedByDefault; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateStatusPageComponentGroupDataAttributes updateStatusPageComponentGroupDataAttributes = (UpdateStatusPageComponentGroupDataAttributes) o; + return Objects.equals(this.name, updateStatusPageComponentGroupDataAttributes.name) && + Objects.equals(this.description, updateStatusPageComponentGroupDataAttributes.description) && + Objects.equals(this.position, updateStatusPageComponentGroupDataAttributes.position) && + Objects.equals(this.collapsedByDefault, updateStatusPageComponentGroupDataAttributes.collapsedByDefault); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(name, description, position, collapsedByDefault); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateStatusPageComponentGroupDataAttributes {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" position: ").append(toIndentedString(position)).append("\n"); + sb.append(" collapsedByDefault: ").append(toIndentedString(collapsedByDefault)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("name"); + openapiFields.add("description"); + openapiFields.add("position"); + openapiFields.add("collapsed_by_default"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateStatusPageComponentGroupDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateStatusPageComponentGroupDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateStatusPageComponentGroupDataAttributes is not found in the empty JSON string", UpdateStatusPageComponentGroupDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateStatusPageComponentGroupDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateStatusPageComponentGroupDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateStatusPageComponentGroupDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateStatusPageComponentGroupDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateStatusPageComponentGroupDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateStatusPageComponentGroupDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateStatusPageComponentGroupDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateStatusPageComponentGroupDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateStatusPageComponentGroupDataAttributes + * @throws IOException if the JSON string is invalid with respect to UpdateStatusPageComponentGroupDataAttributes + */ + public static UpdateStatusPageComponentGroupDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateStatusPageComponentGroupDataAttributes.class); + } + + /** + * Convert an instance of UpdateStatusPageComponentGroupDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageData.java b/src/main/java/com/rootly/client/model/UpdateStatusPageData.java index 5ec81b3e..886d399e 100644 --- a/src/main/java/com/rootly/client/model/UpdateStatusPageData.java +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageData.java @@ -49,7 +49,7 @@ /** * UpdateStatusPageData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateStatusPageData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateStatusPageDataAttributes.java index 881c7727..14f141fb 100644 --- a/src/main/java/com/rootly/client/model/UpdateStatusPageDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageDataAttributes.java @@ -51,8 +51,14 @@ /** * UpdateStatusPageDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateStatusPageDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) @jakarta.annotation.Nullable @@ -308,6 +314,70 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private SamlNameIdentifierFormatEnum samlNameIdentifierFormat; + /** + * Gets or Sets sectionOrder + */ + @JsonAdapter(SectionOrderEnum.Adapter.class) + public enum SectionOrderEnum { + MAINTENANCE("maintenance"), + + SYSTEM_STATUS("system_status"), + + INCIDENTS("incidents"); + + private String value; + + SectionOrderEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SectionOrderEnum fromValue(String value) { + for (SectionOrderEnum b : SectionOrderEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SectionOrderEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SectionOrderEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SectionOrderEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SectionOrderEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SECTION_ORDER = "section_order"; + @SerializedName(SERIALIZED_NAME_SECTION_ORDER) + @jakarta.annotation.Nullable + private List sectionOrder; + + public static final String SERIALIZED_NAME_EXTERNAL_DOMAIN_NAMES = "external_domain_names"; + @SerializedName(SERIALIZED_NAME_EXTERNAL_DOMAIN_NAMES) + @jakarta.annotation.Nullable + private List externalDomainNames; + public static final String SERIALIZED_NAME_WEBSITE_URL = "website_url"; @SerializedName(SERIALIZED_NAME_WEBSITE_URL) @jakarta.annotation.Nullable @@ -356,6 +426,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdateStatusPageDataAttributes() { } + @Deprecated + public UpdateStatusPageDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `title`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateStatusPageDataAttributes title(@jakarta.annotation.Nullable String title) { this.title = title; return this; @@ -702,6 +795,60 @@ public void setSamlNameIdentifierFormat(@jakarta.annotation.Nullable SamlNameIde } + public UpdateStatusPageDataAttributes sectionOrder(@jakarta.annotation.Nullable List sectionOrder) { + this.sectionOrder = sectionOrder; + return this; + } + + public UpdateStatusPageDataAttributes addSectionOrderItem(SectionOrderEnum sectionOrderItem) { + if (this.sectionOrder == null) { + this.sectionOrder = new ArrayList<>(); + } + this.sectionOrder.add(sectionOrderItem); + return this; + } + + /** + * Order of sections on the status page + * @return sectionOrder + */ + @jakarta.annotation.Nullable + public List getSectionOrder() { + return sectionOrder; + } + + public void setSectionOrder(@jakarta.annotation.Nullable List sectionOrder) { + this.sectionOrder = sectionOrder; + } + + + public UpdateStatusPageDataAttributes externalDomainNames(@jakarta.annotation.Nullable List externalDomainNames) { + this.externalDomainNames = externalDomainNames; + return this; + } + + public UpdateStatusPageDataAttributes addExternalDomainNamesItem(String externalDomainNamesItem) { + if (this.externalDomainNames == null) { + this.externalDomainNames = new ArrayList<>(); + } + this.externalDomainNames.add(externalDomainNamesItem); + return this; + } + + /** + * External domain names attached to the status page + * @return externalDomainNames + */ + @jakarta.annotation.Nullable + public List getExternalDomainNames() { + return externalDomainNames; + } + + public void setExternalDomainNames(@jakarta.annotation.Nullable List externalDomainNames) { + this.externalDomainNames = externalDomainNames; + } + + public UpdateStatusPageDataAttributes websiteUrl(@jakarta.annotation.Nullable String websiteUrl) { this.websiteUrl = websiteUrl; return this; @@ -899,7 +1046,8 @@ public boolean equals(Object o) { return false; } UpdateStatusPageDataAttributes updateStatusPageDataAttributes = (UpdateStatusPageDataAttributes) o; - return Objects.equals(this.title, updateStatusPageDataAttributes.title) && + return Objects.equals(this.slug, updateStatusPageDataAttributes.slug) && + Objects.equals(this.title, updateStatusPageDataAttributes.title) && Objects.equals(this.publicTitle, updateStatusPageDataAttributes.publicTitle) && Objects.equals(this.description, updateStatusPageDataAttributes.description) && Objects.equals(this.publicDescription, updateStatusPageDataAttributes.publicDescription) && @@ -917,6 +1065,8 @@ public boolean equals(Object o) { Objects.equals(this.samlIdpSloServiceUrl, updateStatusPageDataAttributes.samlIdpSloServiceUrl) && Objects.equals(this.samlIdpCert, updateStatusPageDataAttributes.samlIdpCert) && Objects.equals(this.samlNameIdentifierFormat, updateStatusPageDataAttributes.samlNameIdentifierFormat) && + Objects.equals(this.sectionOrder, updateStatusPageDataAttributes.sectionOrder) && + Objects.equals(this.externalDomainNames, updateStatusPageDataAttributes.externalDomainNames) && Objects.equals(this.websiteUrl, updateStatusPageDataAttributes.websiteUrl) && Objects.equals(this.websitePrivacyUrl, updateStatusPageDataAttributes.websitePrivacyUrl) && Objects.equals(this.websiteSupportUrl, updateStatusPageDataAttributes.websiteSupportUrl) && @@ -934,7 +1084,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(title, publicTitle, description, publicDescription, headerColor, footerColor, allowSearchEngineIndex, showUptime, showUptimeLastDays, successMessage, failureMessage, authenticationMethod, authenticationEnabled, authenticationPassword, samlIdpSsoServiceUrl, samlIdpSloServiceUrl, samlIdpCert, samlNameIdentifierFormat, websiteUrl, websitePrivacyUrl, websiteSupportUrl, gaTrackingId, timeZone, _public, serviceIds, functionalityIds, enabled); + return Objects.hash(slug, title, publicTitle, description, publicDescription, headerColor, footerColor, allowSearchEngineIndex, showUptime, showUptimeLastDays, successMessage, failureMessage, authenticationMethod, authenticationEnabled, authenticationPassword, samlIdpSsoServiceUrl, samlIdpSloServiceUrl, samlIdpCert, samlNameIdentifierFormat, sectionOrder, externalDomainNames, websiteUrl, websitePrivacyUrl, websiteSupportUrl, gaTrackingId, timeZone, _public, serviceIds, functionalityIds, enabled); } private static int hashCodeNullable(JsonNullable a) { @@ -948,6 +1098,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateStatusPageDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); sb.append(" publicTitle: ").append(toIndentedString(publicTitle)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); @@ -966,6 +1117,8 @@ public String toString() { sb.append(" samlIdpSloServiceUrl: ").append(toIndentedString(samlIdpSloServiceUrl)).append("\n"); sb.append(" samlIdpCert: ").append(toIndentedString(samlIdpCert)).append("\n"); sb.append(" samlNameIdentifierFormat: ").append(toIndentedString(samlNameIdentifierFormat)).append("\n"); + sb.append(" sectionOrder: ").append(toIndentedString(sectionOrder)).append("\n"); + sb.append(" externalDomainNames: ").append(toIndentedString(externalDomainNames)).append("\n"); sb.append(" websiteUrl: ").append(toIndentedString(websiteUrl)).append("\n"); sb.append(" websitePrivacyUrl: ").append(toIndentedString(websitePrivacyUrl)).append("\n"); sb.append(" websiteSupportUrl: ").append(toIndentedString(websiteSupportUrl)).append("\n"); @@ -997,6 +1150,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("title"); openapiFields.add("public_title"); openapiFields.add("description"); @@ -1015,6 +1169,8 @@ private String toIndentedString(Object o) { openapiFields.add("saml_idp_slo_service_url"); openapiFields.add("saml_idp_cert"); openapiFields.add("saml_name_identifier_format"); + openapiFields.add("section_order"); + openapiFields.add("external_domain_names"); openapiFields.add("website_url"); openapiFields.add("website_privacy_url"); openapiFields.add("website_support_url"); @@ -1050,6 +1206,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("title") != null && !jsonObj.get("title").isJsonNull()) && !jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } @@ -1104,6 +1263,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("saml_name_identifier_format") != null && !jsonObj.get("saml_name_identifier_format").isJsonNull()) { SamlNameIdentifierFormatEnum.validateJsonElement(jsonObj.get("saml_name_identifier_format")); } + // ensure the optional json data is an array if present + if (jsonObj.get("section_order") != null && !jsonObj.get("section_order").isJsonNull() && !jsonObj.get("section_order").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `section_order` to be an array in the JSON string but got `%s`", jsonObj.get("section_order").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("external_domain_names") != null && !jsonObj.get("external_domain_names").isJsonNull() && !jsonObj.get("external_domain_names").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `external_domain_names` to be an array in the JSON string but got `%s`", jsonObj.get("external_domain_names").toString())); + } if ((jsonObj.get("website_url") != null && !jsonObj.get("website_url").isJsonNull()) && !jsonObj.get("website_url").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `website_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("website_url").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageTemplate.java b/src/main/java/com/rootly/client/model/UpdateStatusPageTemplate.java index 8d31de4e..29cdf543 100644 --- a/src/main/java/com/rootly/client/model/UpdateStatusPageTemplate.java +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageTemplate.java @@ -49,7 +49,7 @@ /** * UpdateStatusPageTemplate */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateStatusPageTemplate { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateData.java b/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateData.java index 3f796c7b..360496b8 100644 --- a/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateData.java +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateData.java @@ -49,7 +49,7 @@ /** * UpdateStatusPageTemplateData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateStatusPageTemplateData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributes.java index 147e23b0..097d97fc 100644 --- a/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributes.java @@ -49,13 +49,18 @@ /** * UpdateStatusPageTemplateDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateStatusPageTemplateDataAttributes { public static final String SERIALIZED_NAME_TITLE = "title"; @SerializedName(SERIALIZED_NAME_TITLE) @jakarta.annotation.Nonnull private String title; + public static final String SERIALIZED_NAME_UPDATE_TITLE = "update_title"; + @SerializedName(SERIALIZED_NAME_UPDATE_TITLE) + @jakarta.annotation.Nullable + private String updateTitle; + public static final String SERIALIZED_NAME_BODY = "body"; @SerializedName(SERIALIZED_NAME_BODY) @jakarta.annotation.Nonnull @@ -222,6 +227,25 @@ public void setTitle(@jakarta.annotation.Nonnull String title) { } + public UpdateStatusPageTemplateDataAttributes updateTitle(@jakarta.annotation.Nullable String updateTitle) { + this.updateTitle = updateTitle; + return this; + } + + /** + * Title that will be used for the status page update + * @return updateTitle + */ + @jakarta.annotation.Nullable + public String getUpdateTitle() { + return updateTitle; + } + + public void setUpdateTitle(@jakarta.annotation.Nullable String updateTitle) { + this.updateTitle = updateTitle; + } + + public UpdateStatusPageTemplateDataAttributes body(@jakarta.annotation.Nonnull String body) { this.body = body; return this; @@ -347,6 +371,7 @@ public boolean equals(Object o) { } UpdateStatusPageTemplateDataAttributes updateStatusPageTemplateDataAttributes = (UpdateStatusPageTemplateDataAttributes) o; return Objects.equals(this.title, updateStatusPageTemplateDataAttributes.title) && + Objects.equals(this.updateTitle, updateStatusPageTemplateDataAttributes.updateTitle) && Objects.equals(this.body, updateStatusPageTemplateDataAttributes.body) && Objects.equals(this.updateStatus, updateStatusPageTemplateDataAttributes.updateStatus) && Objects.equals(this.kind, updateStatusPageTemplateDataAttributes.kind) && @@ -361,7 +386,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(title, body, updateStatus, kind, shouldNotifySubscribers, position, enabled); + return Objects.hash(title, updateTitle, body, updateStatus, kind, shouldNotifySubscribers, position, enabled); } private static int hashCodeNullable(JsonNullable a) { @@ -376,6 +401,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateStatusPageTemplateDataAttributes {\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" updateTitle: ").append(toIndentedString(updateTitle)).append("\n"); sb.append(" body: ").append(toIndentedString(body)).append("\n"); sb.append(" updateStatus: ").append(toIndentedString(updateStatus)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); @@ -405,6 +431,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("title"); + openapiFields.add("update_title"); openapiFields.add("body"); openapiFields.add("update_status"); openapiFields.add("kind"); @@ -449,6 +476,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("title").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("title").toString())); } + if ((jsonObj.get("update_title") != null && !jsonObj.get("update_title").isJsonNull()) && !jsonObj.get("update_title").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `update_title` to be a primitive type in the JSON string but got `%s`", jsonObj.get("update_title").toString())); + } if (!jsonObj.get("body").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `body` to be a primitive type in the JSON string but got `%s`", jsonObj.get("body").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateStatusTaskParams.java b/src/main/java/com/rootly/client/model/UpdateStatusTaskParams.java index 64bc2d08..b423a2a1 100644 --- a/src/main/java/com/rootly/client/model/UpdateStatusTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateStatusTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateStatusTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateStatusTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateSubStatus.java b/src/main/java/com/rootly/client/model/UpdateSubStatus.java index 69c565a4..3cb8c590 100644 --- a/src/main/java/com/rootly/client/model/UpdateSubStatus.java +++ b/src/main/java/com/rootly/client/model/UpdateSubStatus.java @@ -49,7 +49,7 @@ /** * UpdateSubStatus */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSubStatus { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateSubStatusData.java b/src/main/java/com/rootly/client/model/UpdateSubStatusData.java index 299b8429..fbd4d2ee 100644 --- a/src/main/java/com/rootly/client/model/UpdateSubStatusData.java +++ b/src/main/java/com/rootly/client/model/UpdateSubStatusData.java @@ -49,7 +49,7 @@ /** * UpdateSubStatusData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSubStatusData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateSubStatusDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateSubStatusDataAttributes.java index 19f71f92..2b303b95 100644 --- a/src/main/java/com/rootly/client/model/UpdateSubStatusDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateSubStatusDataAttributes.java @@ -49,18 +49,19 @@ /** * UpdateSubStatusDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateSubStatusDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nullable - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -74,41 +75,45 @@ public class UpdateSubStatusDataAttributes { public UpdateSubStatusDataAttributes() { } - public UpdateSubStatusDataAttributes name(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public UpdateSubStatusDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * Get name - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable - public String getName() { - return name; + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public UpdateSubStatusDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public UpdateSubStatusDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; return this; } /** - * Get slug - * @return slug + * Get name + * @return name */ @jakarta.annotation.Nullable - public String getSlug() { - return slug; + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; } @@ -160,8 +165,8 @@ public boolean equals(Object o) { return false; } UpdateSubStatusDataAttributes updateSubStatusDataAttributes = (UpdateSubStatusDataAttributes) o; - return Objects.equals(this.name, updateSubStatusDataAttributes.name) && - Objects.equals(this.slug, updateSubStatusDataAttributes.slug) && + return Objects.equals(this.slug, updateSubStatusDataAttributes.slug) && + Objects.equals(this.name, updateSubStatusDataAttributes.name) && Objects.equals(this.description, updateSubStatusDataAttributes.description) && Objects.equals(this.position, updateSubStatusDataAttributes.position); } @@ -172,7 +177,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, position); + return Objects.hash(slug, name, description, position); } private static int hashCodeNullable(JsonNullable a) { @@ -186,8 +191,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateSubStatusDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append("}"); @@ -212,8 +217,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("position"); @@ -242,12 +247,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateTeam.java b/src/main/java/com/rootly/client/model/UpdateTeam.java index 31a75211..1a6b71de 100644 --- a/src/main/java/com/rootly/client/model/UpdateTeam.java +++ b/src/main/java/com/rootly/client/model/UpdateTeam.java @@ -49,7 +49,7 @@ /** * UpdateTeam */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateTeam { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateTeamData.java b/src/main/java/com/rootly/client/model/UpdateTeamData.java index e82771ce..a8d1f391 100644 --- a/src/main/java/com/rootly/client/model/UpdateTeamData.java +++ b/src/main/java/com/rootly/client/model/UpdateTeamData.java @@ -49,7 +49,7 @@ /** * UpdateTeamData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateTeamData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateTeamDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateTeamDataAttributes.java index 46a9d913..9335ab73 100644 --- a/src/main/java/com/rootly/client/model/UpdateTeamDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateTeamDataAttributes.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -55,8 +56,14 @@ /** * UpdateTeamDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateTeamDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -67,6 +74,11 @@ public class UpdateTeamDataAttributes { @jakarta.annotation.Nullable private String description; + public static final String SERIALIZED_NAME_PUBLIC_DESCRIPTION = "public_description"; + @SerializedName(SERIALIZED_NAME_PUBLIC_DESCRIPTION) + @jakarta.annotation.Nullable + private String publicDescription; + public static final String SERIALIZED_NAME_NOTIFY_EMAILS = "notify_emails"; @SerializedName(SERIALIZED_NAME_NOTIFY_EMAILS) @jakarta.annotation.Nullable @@ -182,9 +194,98 @@ public class UpdateTeamDataAttributes { @jakarta.annotation.Nullable private Boolean autoAddMembersWhenAttached; + /** + * Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. + */ + @JsonAdapter(AutoAddMembersScopeEnum.Adapter.class) + public enum AutoAddMembersScopeEnum { + OFF("off"), + + PUBLIC_ONLY("public_only"), + + PUBLIC_AND_TEST("public_and_test"), + + ALL("all"); + + private String value; + + AutoAddMembersScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AutoAddMembersScopeEnum fromValue(String value) { + for (AutoAddMembersScopeEnum b : AutoAddMembersScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + return null; + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AutoAddMembersScopeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AutoAddMembersScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return AutoAddMembersScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + AutoAddMembersScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_AUTO_ADD_MEMBERS_SCOPE = "auto_add_members_scope"; + @SerializedName(SERIALIZED_NAME_AUTO_ADD_MEMBERS_SCOPE) + @jakarta.annotation.Nullable + private AutoAddMembersScopeEnum autoAddMembersScope; + + public static final String SERIALIZED_NAME_PROPERTIES = "properties"; + @SerializedName(SERIALIZED_NAME_PROPERTIES) + @jakarta.annotation.Nullable + private List properties = new ArrayList<>(); + public UpdateTeamDataAttributes() { } + @Deprecated + public UpdateTeamDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateTeamDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -223,6 +324,25 @@ public void setDescription(@jakarta.annotation.Nullable String description) { } + public UpdateTeamDataAttributes publicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + return this; + } + + /** + * The status page description of the team + * @return publicDescription + */ + @jakarta.annotation.Nullable + public String getPublicDescription() { + return publicDescription; + } + + public void setPublicDescription(@jakarta.annotation.Nullable String publicDescription) { + this.publicDescription = publicDescription; + } + + public UpdateTeamDataAttributes notifyEmails(@jakarta.annotation.Nullable List notifyEmails) { this.notifyEmails = notifyEmails; return this; @@ -700,6 +820,52 @@ public void setAutoAddMembersWhenAttached(@jakarta.annotation.Nullable Boolean a } + public UpdateTeamDataAttributes autoAddMembersScope(@jakarta.annotation.Nullable AutoAddMembersScopeEnum autoAddMembersScope) { + this.autoAddMembersScope = autoAddMembersScope; + return this; + } + + /** + * Visibility-scoped auto-add behavior. Only present when the `enable_scoped_incident_channel_auto_add` feature flag is on for the organization. When set, it overrides `auto_add_members_when_attached`. + * @return autoAddMembersScope + */ + @jakarta.annotation.Nullable + public AutoAddMembersScopeEnum getAutoAddMembersScope() { + return autoAddMembersScope; + } + + public void setAutoAddMembersScope(@jakarta.annotation.Nullable AutoAddMembersScopeEnum autoAddMembersScope) { + this.autoAddMembersScope = autoAddMembersScope; + } + + + public UpdateTeamDataAttributes properties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + return this; + } + + public UpdateTeamDataAttributes addPropertiesItem(NewCauseDataAttributesPropertiesInner propertiesItem) { + if (this.properties == null) { + this.properties = new ArrayList<>(); + } + this.properties.add(propertiesItem); + return this; + } + + /** + * Array of property values for this team. + * @return properties + */ + @jakarta.annotation.Nullable + public List getProperties() { + return properties; + } + + public void setProperties(@jakarta.annotation.Nullable List properties) { + this.properties = properties; + } + + @Override public boolean equals(Object o) { @@ -710,8 +876,10 @@ public boolean equals(Object o) { return false; } UpdateTeamDataAttributes updateTeamDataAttributes = (UpdateTeamDataAttributes) o; - return Objects.equals(this.name, updateTeamDataAttributes.name) && + return Objects.equals(this.slug, updateTeamDataAttributes.slug) && + Objects.equals(this.name, updateTeamDataAttributes.name) && Objects.equals(this.description, updateTeamDataAttributes.description) && + Objects.equals(this.publicDescription, updateTeamDataAttributes.publicDescription) && Objects.equals(this.notifyEmails, updateTeamDataAttributes.notifyEmails) && Objects.equals(this.color, updateTeamDataAttributes.color) && Objects.equals(this.position, updateTeamDataAttributes.position) && @@ -734,7 +902,9 @@ public boolean equals(Object o) { Objects.equals(this.alertBroadcastChannel, updateTeamDataAttributes.alertBroadcastChannel) && Objects.equals(this.incidentBroadcastEnabled, updateTeamDataAttributes.incidentBroadcastEnabled) && Objects.equals(this.incidentBroadcastChannel, updateTeamDataAttributes.incidentBroadcastChannel) && - Objects.equals(this.autoAddMembersWhenAttached, updateTeamDataAttributes.autoAddMembersWhenAttached); + Objects.equals(this.autoAddMembersWhenAttached, updateTeamDataAttributes.autoAddMembersWhenAttached) && + Objects.equals(this.autoAddMembersScope, updateTeamDataAttributes.autoAddMembersScope) && + Objects.equals(this.properties, updateTeamDataAttributes.properties); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -743,7 +913,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, description, notifyEmails, color, position, backstageId, externalId, pagerdutyId, pagerdutyServiceId, opsgenieId, victorOpsId, pagertreeId, cortexId, serviceNowCiSysId, userIds, adminIds, alertsEmailEnabled, alertUrgencyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, autoAddMembersWhenAttached); + return Objects.hash(slug, name, description, publicDescription, notifyEmails, color, position, backstageId, externalId, pagerdutyId, pagerdutyServiceId, opsgenieId, victorOpsId, pagertreeId, cortexId, serviceNowCiSysId, userIds, adminIds, alertsEmailEnabled, alertUrgencyId, slackChannels, slackAliases, alertBroadcastEnabled, alertBroadcastChannel, incidentBroadcastEnabled, incidentBroadcastChannel, autoAddMembersWhenAttached, autoAddMembersScope, properties); } private static int hashCodeNullable(JsonNullable a) { @@ -757,8 +927,10 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateTeamDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" publicDescription: ").append(toIndentedString(publicDescription)).append("\n"); sb.append(" notifyEmails: ").append(toIndentedString(notifyEmails)).append("\n"); sb.append(" color: ").append(toIndentedString(color)).append("\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); @@ -782,6 +954,8 @@ public String toString() { sb.append(" incidentBroadcastEnabled: ").append(toIndentedString(incidentBroadcastEnabled)).append("\n"); sb.append(" incidentBroadcastChannel: ").append(toIndentedString(incidentBroadcastChannel)).append("\n"); sb.append(" autoAddMembersWhenAttached: ").append(toIndentedString(autoAddMembersWhenAttached)).append("\n"); + sb.append(" autoAddMembersScope: ").append(toIndentedString(autoAddMembersScope)).append("\n"); + sb.append(" properties: ").append(toIndentedString(properties)).append("\n"); sb.append("}"); return sb.toString(); } @@ -804,8 +978,10 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("description"); + openapiFields.add("public_description"); openapiFields.add("notify_emails"); openapiFields.add("color"); openapiFields.add("position"); @@ -829,6 +1005,8 @@ private String toIndentedString(Object o) { openapiFields.add("incident_broadcast_enabled"); openapiFields.add("incident_broadcast_channel"); openapiFields.add("auto_add_members_when_attached"); + openapiFields.add("auto_add_members_scope"); + openapiFields.add("properties"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -855,12 +1033,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + if ((jsonObj.get("public_description") != null && !jsonObj.get("public_description").isJsonNull()) && !jsonObj.get("public_description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `public_description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("public_description").toString())); + } // ensure the optional json data is an array if present if (jsonObj.get("notify_emails") != null && !jsonObj.get("notify_emails").isJsonNull() && !jsonObj.get("notify_emails").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `notify_emails` to be an array in the JSON string but got `%s`", jsonObj.get("notify_emails").toString())); @@ -942,6 +1126,27 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("incident_broadcast_channel") != null && !jsonObj.get("incident_broadcast_channel").isJsonNull()) { NewServiceDataAttributesIncidentBroadcastChannel.validateJsonElement(jsonObj.get("incident_broadcast_channel")); } + if ((jsonObj.get("auto_add_members_scope") != null && !jsonObj.get("auto_add_members_scope").isJsonNull()) && !jsonObj.get("auto_add_members_scope").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `auto_add_members_scope` to be a primitive type in the JSON string but got `%s`", jsonObj.get("auto_add_members_scope").toString())); + } + // validate the optional field `auto_add_members_scope` + if (jsonObj.get("auto_add_members_scope") != null && !jsonObj.get("auto_add_members_scope").isJsonNull()) { + AutoAddMembersScopeEnum.validateJsonElement(jsonObj.get("auto_add_members_scope")); + } + if (jsonObj.get("properties") != null && !jsonObj.get("properties").isJsonNull()) { + JsonArray jsonArrayproperties = jsonObj.getAsJsonArray("properties"); + if (jsonArrayproperties != null) { + // ensure the json data is an array + if (!jsonObj.get("properties").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `properties` to be an array in the JSON string but got `%s`", jsonObj.get("properties").toString())); + } + + // validate the optional field `properties` (array) + for (int i = 0; i < jsonArrayproperties.size(); i++) { + NewCauseDataAttributesPropertiesInner.validateJsonElement(jsonArrayproperties.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateTrelloCardTaskParams.java b/src/main/java/com/rootly/client/model/UpdateTrelloCardTaskParams.java index efe33704..c9632e7b 100644 --- a/src/main/java/com/rootly/client/model/UpdateTrelloCardTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateTrelloCardTaskParams.java @@ -54,7 +54,7 @@ /** * UpdateTrelloCardTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateTrelloCardTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateUser.java b/src/main/java/com/rootly/client/model/UpdateUser.java index f1504e3a..4b0f70d8 100644 --- a/src/main/java/com/rootly/client/model/UpdateUser.java +++ b/src/main/java/com/rootly/client/model/UpdateUser.java @@ -49,7 +49,7 @@ /** * UpdateUser */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUser { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateUserData.java b/src/main/java/com/rootly/client/model/UpdateUserData.java index 3bca2fdb..b562ce7c 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserData.java +++ b/src/main/java/com/rootly/client/model/UpdateUserData.java @@ -49,7 +49,7 @@ /** * UpdateUserData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateUserDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateUserDataAttributes.java index 5f30548e..bef62d49 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateUserDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateUserDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserDataAttributes { public static final String SERIALIZED_NAME_FIRST_NAME = "first_name"; @SerializedName(SERIALIZED_NAME_FIRST_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateUserEmailAddress.java b/src/main/java/com/rootly/client/model/UpdateUserEmailAddress.java index 075bf111..284c0629 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserEmailAddress.java +++ b/src/main/java/com/rootly/client/model/UpdateUserEmailAddress.java @@ -49,7 +49,7 @@ /** * UpdateUserEmailAddress */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserEmailAddress { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateUserEmailAddressData.java b/src/main/java/com/rootly/client/model/UpdateUserEmailAddressData.java index eb10307f..fbde43d3 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserEmailAddressData.java +++ b/src/main/java/com/rootly/client/model/UpdateUserEmailAddressData.java @@ -49,7 +49,7 @@ /** * UpdateUserEmailAddressData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserEmailAddressData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateUserEmailAddressDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateUserEmailAddressDataAttributes.java index 8d100efe..331fcc0d 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserEmailAddressDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateUserEmailAddressDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateUserEmailAddressDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserEmailAddressDataAttributes { public static final String SERIALIZED_NAME_EMAIL = "email"; @SerializedName(SERIALIZED_NAME_EMAIL) diff --git a/src/main/java/com/rootly/client/model/UpdateUserNotificationRule.java b/src/main/java/com/rootly/client/model/UpdateUserNotificationRule.java index 3534d16c..645ff2cc 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserNotificationRule.java +++ b/src/main/java/com/rootly/client/model/UpdateUserNotificationRule.java @@ -49,7 +49,7 @@ /** * UpdateUserNotificationRule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserNotificationRule { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleData.java b/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleData.java index 4605343b..9b2483a9 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleData.java +++ b/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleData.java @@ -49,7 +49,7 @@ /** * UpdateUserNotificationRuleData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserNotificationRuleData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleDataAttributes.java index 6fed6b1c..f0154f97 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateUserNotificationRuleDataAttributes.java @@ -51,7 +51,7 @@ /** * UpdateUserNotificationRuleDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserNotificationRuleDataAttributes { public static final String SERIALIZED_NAME_DELAY = "delay"; @SerializedName(SERIALIZED_NAME_DELAY) @@ -98,7 +98,11 @@ public enum EnabledContactTypesEnum { NON_CRITICAL_DEVICE("non_critical_device"), - SLACK("slack"); + SLACK("slack"), + + GOOGLE_CHAT("google_chat"), + + MICROSOFT_TEAMS("microsoft_teams"); private String value; diff --git a/src/main/java/com/rootly/client/model/UpdateUserPhoneNumber.java b/src/main/java/com/rootly/client/model/UpdateUserPhoneNumber.java index 8775d135..667c84c2 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserPhoneNumber.java +++ b/src/main/java/com/rootly/client/model/UpdateUserPhoneNumber.java @@ -49,7 +49,7 @@ /** * UpdateUserPhoneNumber */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserPhoneNumber { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberData.java b/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberData.java index a886d40b..2a4b211b 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberData.java +++ b/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberData.java @@ -49,7 +49,7 @@ /** * UpdateUserPhoneNumberData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserPhoneNumberData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberDataAttributes.java index eb07149e..0742642e 100644 --- a/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateUserPhoneNumberDataAttributes.java @@ -48,7 +48,7 @@ /** * UpdateUserPhoneNumberDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateUserPhoneNumberDataAttributes { public static final String SERIALIZED_NAME_PHONE = "phone"; @SerializedName(SERIALIZED_NAME_PHONE) diff --git a/src/main/java/com/rootly/client/model/UpdateVictorOpsIncidentTaskParams.java b/src/main/java/com/rootly/client/model/UpdateVictorOpsIncidentTaskParams.java index 3f5a7cd0..dcce64fa 100644 --- a/src/main/java/com/rootly/client/model/UpdateVictorOpsIncidentTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateVictorOpsIncidentTaskParams.java @@ -48,7 +48,7 @@ /** * UpdateVictorOpsIncidentTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateVictorOpsIncidentTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UpdateWebhooksEndpoint.java b/src/main/java/com/rootly/client/model/UpdateWebhooksEndpoint.java index 42d24b66..126fe300 100644 --- a/src/main/java/com/rootly/client/model/UpdateWebhooksEndpoint.java +++ b/src/main/java/com/rootly/client/model/UpdateWebhooksEndpoint.java @@ -49,7 +49,7 @@ /** * UpdateWebhooksEndpoint */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWebhooksEndpoint { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointData.java b/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointData.java index 648edfff..8d668ecc 100644 --- a/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointData.java +++ b/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointData.java @@ -49,7 +49,7 @@ /** * UpdateWebhooksEndpointData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWebhooksEndpointData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributes.java index 5c3f2645..749c5276 100644 --- a/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributes.java @@ -19,10 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWebhooksEndpointDataAttributesCustomHeadersInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,8 +52,14 @@ /** * UpdateWebhooksEndpointDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWebhooksEndpointDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @jakarta.annotation.Nullable @@ -108,8 +116,12 @@ public enum EventTypesEnum { ALERT_CREATED("alert.created"), + ALERT_UPDATED("alert.updated"), + PULSE_CREATED("pulse.created"), + SHIFT_STARTED("shift.started"), + GENIUS_WORKFLOW_RUN_QUEUED("genius_workflow_run.queued"), GENIUS_WORKFLOW_RUN_STARTED("genius_workflow_run.started"), @@ -118,7 +130,9 @@ public enum EventTypesEnum { GENIUS_WORKFLOW_RUN_FAILED("genius_workflow_run.failed"), - GENIUS_WORKFLOW_RUN_CANCELED("genius_workflow_run.canceled"); + GENIUS_WORKFLOW_RUN_CANCELED("genius_workflow_run.canceled"), + + AUDIT_LOG_CREATED("audit_log.created"); private String value; @@ -173,9 +187,37 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private Boolean enabled; + public static final String SERIALIZED_NAME_CUSTOM_HEADERS = "custom_headers"; + @SerializedName(SERIALIZED_NAME_CUSTOM_HEADERS) + @jakarta.annotation.Nullable + private List customHeaders = new ArrayList<>(); + public UpdateWebhooksEndpointDataAttributes() { } + @Deprecated + public UpdateWebhooksEndpointDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateWebhooksEndpointDataAttributes name(@jakarta.annotation.Nullable String name) { this.name = name; return this; @@ -241,6 +283,33 @@ public void setEnabled(@jakarta.annotation.Nullable Boolean enabled) { } + public UpdateWebhooksEndpointDataAttributes customHeaders(@jakarta.annotation.Nullable List customHeaders) { + this.customHeaders = customHeaders; + return this; + } + + public UpdateWebhooksEndpointDataAttributes addCustomHeadersItem(NewWebhooksEndpointDataAttributesCustomHeadersInner customHeadersItem) { + if (this.customHeaders == null) { + this.customHeaders = new ArrayList<>(); + } + this.customHeaders.add(customHeadersItem); + return this; + } + + /** + * Custom HTTP headers sent with each delivery. Max 10. Reserved names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected. + * @return customHeaders + */ + @jakarta.annotation.Nullable + public List getCustomHeaders() { + return customHeaders; + } + + public void setCustomHeaders(@jakarta.annotation.Nullable List customHeaders) { + this.customHeaders = customHeaders; + } + + @Override public boolean equals(Object o) { @@ -251,23 +320,38 @@ public boolean equals(Object o) { return false; } UpdateWebhooksEndpointDataAttributes updateWebhooksEndpointDataAttributes = (UpdateWebhooksEndpointDataAttributes) o; - return Objects.equals(this.name, updateWebhooksEndpointDataAttributes.name) && + return Objects.equals(this.slug, updateWebhooksEndpointDataAttributes.slug) && + Objects.equals(this.name, updateWebhooksEndpointDataAttributes.name) && Objects.equals(this.eventTypes, updateWebhooksEndpointDataAttributes.eventTypes) && - Objects.equals(this.enabled, updateWebhooksEndpointDataAttributes.enabled); + Objects.equals(this.enabled, updateWebhooksEndpointDataAttributes.enabled) && + Objects.equals(this.customHeaders, updateWebhooksEndpointDataAttributes.customHeaders); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); } @Override public int hashCode() { - return Objects.hash(name, eventTypes, enabled); + return Objects.hash(slug, name, eventTypes, enabled, customHeaders); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateWebhooksEndpointDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" eventTypes: ").append(toIndentedString(eventTypes)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" customHeaders: ").append(toIndentedString(customHeaders)).append("\n"); sb.append("}"); return sb.toString(); } @@ -290,9 +374,11 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("name"); openapiFields.add("event_types"); openapiFields.add("enabled"); + openapiFields.add("custom_headers"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -319,6 +405,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } @@ -326,6 +415,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("event_types") != null && !jsonObj.get("event_types").isJsonNull() && !jsonObj.get("event_types").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `event_types` to be an array in the JSON string but got `%s`", jsonObj.get("event_types").toString())); } + if (jsonObj.get("custom_headers") != null && !jsonObj.get("custom_headers").isJsonNull()) { + JsonArray jsonArraycustomHeaders = jsonObj.getAsJsonArray("custom_headers"); + if (jsonArraycustomHeaders != null) { + // ensure the json data is an array + if (!jsonObj.get("custom_headers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_headers` to be an array in the JSON string but got `%s`", jsonObj.get("custom_headers").toString())); + } + + // validate the optional field `custom_headers` (array) + for (int i = 0; i < jsonArraycustomHeaders.size(); i++) { + NewWebhooksEndpointDataAttributesCustomHeadersInner.validateJsonElement(jsonArraycustomHeaders.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflow.java b/src/main/java/com/rootly/client/model/UpdateWorkflow.java index bf562a88..78416840 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflow.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflow.java @@ -49,7 +49,7 @@ /** * UpdateWorkflow */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflow { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldCondition.java b/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldCondition.java new file mode 100644 index 00000000..e714c471 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldCondition.java @@ -0,0 +1,214 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateWorkflowActionItemFormFieldConditionData; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateWorkflowActionItemFormFieldCondition + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateWorkflowActionItemFormFieldCondition { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private UpdateWorkflowActionItemFormFieldConditionData data; + + public UpdateWorkflowActionItemFormFieldCondition() { + } + + public UpdateWorkflowActionItemFormFieldCondition data(@jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldConditionData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public UpdateWorkflowActionItemFormFieldConditionData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldConditionData data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition = (UpdateWorkflowActionItemFormFieldCondition) o; + return Objects.equals(this.data, updateWorkflowActionItemFormFieldCondition.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateWorkflowActionItemFormFieldCondition {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateWorkflowActionItemFormFieldCondition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateWorkflowActionItemFormFieldCondition.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateWorkflowActionItemFormFieldCondition is not found in the empty JSON string", UpdateWorkflowActionItemFormFieldCondition.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateWorkflowActionItemFormFieldCondition.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateWorkflowActionItemFormFieldCondition` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateWorkflowActionItemFormFieldCondition.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + UpdateWorkflowActionItemFormFieldConditionData.validateJsonElement(jsonObj.get("data")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateWorkflowActionItemFormFieldCondition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateWorkflowActionItemFormFieldCondition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateWorkflowActionItemFormFieldCondition.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateWorkflowActionItemFormFieldCondition value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateWorkflowActionItemFormFieldCondition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateWorkflowActionItemFormFieldCondition given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateWorkflowActionItemFormFieldCondition + * @throws IOException if the JSON string is invalid with respect to UpdateWorkflowActionItemFormFieldCondition + */ + public static UpdateWorkflowActionItemFormFieldCondition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateWorkflowActionItemFormFieldCondition.class); + } + + /** + * Convert an instance of UpdateWorkflowActionItemFormFieldCondition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionData.java b/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionData.java new file mode 100644 index 00000000..6191e8be --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionData.java @@ -0,0 +1,297 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateWorkflowActionItemFormFieldConditionDataAttributes; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateWorkflowActionItemFormFieldConditionData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateWorkflowActionItemFormFieldConditionData { + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + WORKFLOW_ACTION_ITEM_FORM_FIELD_CONDITIONS("workflow_action_item_form_field_conditions"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private UpdateWorkflowActionItemFormFieldConditionDataAttributes attributes; + + public UpdateWorkflowActionItemFormFieldConditionData() { + } + + public UpdateWorkflowActionItemFormFieldConditionData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public UpdateWorkflowActionItemFormFieldConditionData attributes(@jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldConditionDataAttributes attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public UpdateWorkflowActionItemFormFieldConditionDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull UpdateWorkflowActionItemFormFieldConditionDataAttributes attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWorkflowActionItemFormFieldConditionData updateWorkflowActionItemFormFieldConditionData = (UpdateWorkflowActionItemFormFieldConditionData) o; + return Objects.equals(this.type, updateWorkflowActionItemFormFieldConditionData.type) && + Objects.equals(this.attributes, updateWorkflowActionItemFormFieldConditionData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateWorkflowActionItemFormFieldConditionData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateWorkflowActionItemFormFieldConditionData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateWorkflowActionItemFormFieldConditionData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateWorkflowActionItemFormFieldConditionData is not found in the empty JSON string", UpdateWorkflowActionItemFormFieldConditionData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateWorkflowActionItemFormFieldConditionData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateWorkflowActionItemFormFieldConditionData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UpdateWorkflowActionItemFormFieldConditionData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + UpdateWorkflowActionItemFormFieldConditionDataAttributes.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateWorkflowActionItemFormFieldConditionData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateWorkflowActionItemFormFieldConditionData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateWorkflowActionItemFormFieldConditionData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateWorkflowActionItemFormFieldConditionData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateWorkflowActionItemFormFieldConditionData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateWorkflowActionItemFormFieldConditionData given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateWorkflowActionItemFormFieldConditionData + * @throws IOException if the JSON string is invalid with respect to UpdateWorkflowActionItemFormFieldConditionData + */ + public static UpdateWorkflowActionItemFormFieldConditionData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateWorkflowActionItemFormFieldConditionData.class); + } + + /** + * Convert an instance of UpdateWorkflowActionItemFormFieldConditionData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributes.java new file mode 100644 index 00000000..a32ad874 --- /dev/null +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributes.java @@ -0,0 +1,668 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UpdateWorkflowActionItemFormFieldConditionDataAttributes + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UpdateWorkflowActionItemFormFieldConditionDataAttributes { + /** + * The trigger condition + */ + @JsonAdapter(ActionItemConditionEnum.Adapter.class) + public enum ActionItemConditionEnum { + IS("IS"), + + IS_NOT("IS NOT"), + + ANY("ANY"), + + CONTAINS("CONTAINS"), + + CONTAINS_ALL("CONTAINS_ALL"), + + CONTAINS_NONE("CONTAINS_NONE"), + + NONE("NONE"), + + SET("SET"), + + UNSET("UNSET"); + + private String value; + + ActionItemConditionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ActionItemConditionEnum fromValue(String value) { + for (ActionItemConditionEnum b : ActionItemConditionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ActionItemConditionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ActionItemConditionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ActionItemConditionEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ActionItemConditionEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_ACTION_ITEM_CONDITION = "action_item_condition"; + @SerializedName(SERIALIZED_NAME_ACTION_ITEM_CONDITION) + @jakarta.annotation.Nullable + private ActionItemConditionEnum actionItemCondition = ActionItemConditionEnum.ANY; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @jakarta.annotation.Nullable + private List values = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS = "selected_catalog_entity_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS) + @jakarta.annotation.Nullable + private List selectedCatalogEntityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS = "selected_functionality_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List selectedFunctionalityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_GROUP_IDS = "selected_group_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_GROUP_IDS) + @jakarta.annotation.Nullable + private List selectedGroupIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_OPTION_IDS = "selected_option_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_OPTION_IDS) + @jakarta.annotation.Nullable + private List selectedOptionIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_SERVICE_IDS = "selected_service_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_SERVICE_IDS) + @jakarta.annotation.Nullable + private List selectedServiceIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_USER_IDS = "selected_user_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_USER_IDS) + @jakarta.annotation.Nullable + private List selectedUserIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes() { + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes actionItemCondition(@jakarta.annotation.Nullable ActionItemConditionEnum actionItemCondition) { + this.actionItemCondition = actionItemCondition; + return this; + } + + /** + * The trigger condition + * @return actionItemCondition + */ + @jakarta.annotation.Nullable + public ActionItemConditionEnum getActionItemCondition() { + return actionItemCondition; + } + + public void setActionItemCondition(@jakarta.annotation.Nullable ActionItemConditionEnum actionItemCondition) { + this.actionItemCondition = actionItemCondition; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes values(@jakarta.annotation.Nullable List values) { + this.values = values; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addValuesItem(String valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); + } + this.values.add(valuesItem); + return this; + } + + /** + * Get values + * @return values + */ + @jakarta.annotation.Nullable + public List getValues() { + return values; + } + + public void setValues(@jakarta.annotation.Nullable List values) { + this.values = values; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedCatalogEntityIds(@jakarta.annotation.Nullable List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedCatalogEntityIdsItem(String selectedCatalogEntityIdsItem) { + if (this.selectedCatalogEntityIds == null) { + this.selectedCatalogEntityIds = new ArrayList<>(); + } + this.selectedCatalogEntityIds.add(selectedCatalogEntityIdsItem); + return this; + } + + /** + * Get selectedCatalogEntityIds + * @return selectedCatalogEntityIds + */ + @jakarta.annotation.Nullable + public List getSelectedCatalogEntityIds() { + return selectedCatalogEntityIds; + } + + public void setSelectedCatalogEntityIds(@jakarta.annotation.Nullable List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedFunctionalityIdsItem(String selectedFunctionalityIdsItem) { + if (this.selectedFunctionalityIds == null) { + this.selectedFunctionalityIds = new ArrayList<>(); + } + this.selectedFunctionalityIds.add(selectedFunctionalityIdsItem); + return this; + } + + /** + * Get selectedFunctionalityIds + * @return selectedFunctionalityIds + */ + @jakarta.annotation.Nullable + public List getSelectedFunctionalityIds() { + return selectedFunctionalityIds; + } + + public void setSelectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedGroupIdsItem(String selectedGroupIdsItem) { + if (this.selectedGroupIds == null) { + this.selectedGroupIds = new ArrayList<>(); + } + this.selectedGroupIds.add(selectedGroupIdsItem); + return this; + } + + /** + * Get selectedGroupIds + * @return selectedGroupIds + */ + @jakarta.annotation.Nullable + public List getSelectedGroupIds() { + return selectedGroupIds; + } + + public void setSelectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedOptionIds(@jakarta.annotation.Nullable List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedOptionIdsItem(String selectedOptionIdsItem) { + if (this.selectedOptionIds == null) { + this.selectedOptionIds = new ArrayList<>(); + } + this.selectedOptionIds.add(selectedOptionIdsItem); + return this; + } + + /** + * Get selectedOptionIds + * @return selectedOptionIds + */ + @jakarta.annotation.Nullable + public List getSelectedOptionIds() { + return selectedOptionIds; + } + + public void setSelectedOptionIds(@jakarta.annotation.Nullable List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedServiceIdsItem(String selectedServiceIdsItem) { + if (this.selectedServiceIds == null) { + this.selectedServiceIds = new ArrayList<>(); + } + this.selectedServiceIds.add(selectedServiceIdsItem); + return this; + } + + /** + * Get selectedServiceIds + * @return selectedServiceIds + */ + @jakarta.annotation.Nullable + public List getSelectedServiceIds() { + return selectedServiceIds; + } + + public void setSelectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedUserIds(@jakarta.annotation.Nullable List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedUserIdsItem(Integer selectedUserIdsItem) { + if (this.selectedUserIds == null) { + this.selectedUserIds = new ArrayList<>(); + } + this.selectedUserIds.add(selectedUserIdsItem); + return this; + } + + /** + * Get selectedUserIds + * @return selectedUserIds + */ + @jakarta.annotation.Nullable + public List getSelectedUserIds() { + return selectedUserIds; + } + + public void setSelectedUserIds(@jakarta.annotation.Nullable List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public UpdateWorkflowActionItemFormFieldConditionDataAttributes addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UpdateWorkflowActionItemFormFieldConditionDataAttributes updateWorkflowActionItemFormFieldConditionDataAttributes = (UpdateWorkflowActionItemFormFieldConditionDataAttributes) o; + return Objects.equals(this.actionItemCondition, updateWorkflowActionItemFormFieldConditionDataAttributes.actionItemCondition) && + Objects.equals(this.values, updateWorkflowActionItemFormFieldConditionDataAttributes.values) && + Objects.equals(this.selectedCatalogEntityIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedCatalogEntityIds) && + Objects.equals(this.selectedFunctionalityIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedFunctionalityIds) && + Objects.equals(this.selectedGroupIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedGroupIds) && + Objects.equals(this.selectedOptionIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedOptionIds) && + Objects.equals(this.selectedServiceIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedServiceIds) && + Objects.equals(this.selectedUserIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedUserIds) && + Objects.equals(this.selectedCauseIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedCauseIds) && + Objects.equals(this.selectedEnvironmentIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedEnvironmentIds) && + Objects.equals(this.selectedIncidentTypeIds, updateWorkflowActionItemFormFieldConditionDataAttributes.selectedIncidentTypeIds); + } + + @Override + public int hashCode() { + return Objects.hash(actionItemCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds, selectedCauseIds, selectedEnvironmentIds, selectedIncidentTypeIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UpdateWorkflowActionItemFormFieldConditionDataAttributes {\n"); + sb.append(" actionItemCondition: ").append(toIndentedString(actionItemCondition)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); + sb.append(" selectedCatalogEntityIds: ").append(toIndentedString(selectedCatalogEntityIds)).append("\n"); + sb.append(" selectedFunctionalityIds: ").append(toIndentedString(selectedFunctionalityIds)).append("\n"); + sb.append(" selectedGroupIds: ").append(toIndentedString(selectedGroupIds)).append("\n"); + sb.append(" selectedOptionIds: ").append(toIndentedString(selectedOptionIds)).append("\n"); + sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); + sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("action_item_condition"); + openapiFields.add("values"); + openapiFields.add("selected_catalog_entity_ids"); + openapiFields.add("selected_functionality_ids"); + openapiFields.add("selected_group_ids"); + openapiFields.add("selected_option_ids"); + openapiFields.add("selected_service_ids"); + openapiFields.add("selected_user_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_incident_type_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UpdateWorkflowActionItemFormFieldConditionDataAttributes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UpdateWorkflowActionItemFormFieldConditionDataAttributes.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UpdateWorkflowActionItemFormFieldConditionDataAttributes is not found in the empty JSON string", UpdateWorkflowActionItemFormFieldConditionDataAttributes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UpdateWorkflowActionItemFormFieldConditionDataAttributes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UpdateWorkflowActionItemFormFieldConditionDataAttributes` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("action_item_condition") != null && !jsonObj.get("action_item_condition").isJsonNull()) && !jsonObj.get("action_item_condition").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `action_item_condition` to be a primitive type in the JSON string but got `%s`", jsonObj.get("action_item_condition").toString())); + } + // validate the optional field `action_item_condition` + if (jsonObj.get("action_item_condition") != null && !jsonObj.get("action_item_condition").isJsonNull()) { + ActionItemConditionEnum.validateJsonElement(jsonObj.get("action_item_condition")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("values") != null && !jsonObj.get("values").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `values` to be an array in the JSON string but got `%s`", jsonObj.get("values").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_catalog_entity_ids") != null && !jsonObj.get("selected_catalog_entity_ids").isJsonNull() && !jsonObj.get("selected_catalog_entity_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_catalog_entity_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_catalog_entity_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_functionality_ids") != null && !jsonObj.get("selected_functionality_ids").isJsonNull() && !jsonObj.get("selected_functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_functionality_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_group_ids") != null && !jsonObj.get("selected_group_ids").isJsonNull() && !jsonObj.get("selected_group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_group_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_option_ids") != null && !jsonObj.get("selected_option_ids").isJsonNull() && !jsonObj.get("selected_option_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_option_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_option_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_service_ids") != null && !jsonObj.get("selected_service_ids").isJsonNull() && !jsonObj.get("selected_service_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_service_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateWorkflowActionItemFormFieldConditionDataAttributes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateWorkflowActionItemFormFieldConditionDataAttributes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UpdateWorkflowActionItemFormFieldConditionDataAttributes.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateWorkflowActionItemFormFieldConditionDataAttributes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UpdateWorkflowActionItemFormFieldConditionDataAttributes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UpdateWorkflowActionItemFormFieldConditionDataAttributes given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateWorkflowActionItemFormFieldConditionDataAttributes + * @throws IOException if the JSON string is invalid with respect to UpdateWorkflowActionItemFormFieldConditionDataAttributes + */ + public static UpdateWorkflowActionItemFormFieldConditionDataAttributes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateWorkflowActionItemFormFieldConditionDataAttributes.class); + } + + /** + * Convert an instance of UpdateWorkflowActionItemFormFieldConditionDataAttributes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelection.java b/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelection.java index d2d561b3..874b4d26 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelection.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelection.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowCustomFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowCustomFieldSelection { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionData.java b/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionData.java index caf40555..5b34907e 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionData.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionData.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowCustomFieldSelectionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowCustomFieldSelectionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionDataAttributes.java index e4ccee88..cbdd0f2b 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowCustomFieldSelectionDataAttributes.java @@ -50,7 +50,7 @@ /** * UpdateWorkflowCustomFieldSelectionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowCustomFieldSelectionDataAttributes { /** * The trigger condition diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowData.java b/src/main/java/com/rootly/client/model/UpdateWorkflowData.java index 042eaeac..f34798ee 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowData.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowData.java @@ -49,8 +49,13 @@ /** * UpdateWorkflowData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nullable + private String id; + /** * Gets or Sets type */ @@ -114,6 +119,25 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdateWorkflowData() { } + public UpdateWorkflowData id(@jakarta.annotation.Nullable String id) { + this.id = id; + return this; + } + + /** + * Accepted for JSON:API client compatibility, but ignored. The workflow to update is identified by the id in the path. + * @return id + */ + @jakarta.annotation.Nullable + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nullable String id) { + this.id = id; + } + + public UpdateWorkflowData type(@jakarta.annotation.Nonnull TypeEnum type) { this.type = type; return this; @@ -162,19 +186,21 @@ public boolean equals(Object o) { return false; } UpdateWorkflowData updateWorkflowData = (UpdateWorkflowData) o; - return Objects.equals(this.type, updateWorkflowData.type) && + return Objects.equals(this.id, updateWorkflowData.id) && + Objects.equals(this.type, updateWorkflowData.type) && Objects.equals(this.attributes, updateWorkflowData.attributes); } @Override public int hashCode() { - return Objects.hash(type, attributes); + return Objects.hash(id, type, attributes); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateWorkflowData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); sb.append("}"); @@ -199,6 +225,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("id"); openapiFields.add("type"); openapiFields.add("attributes"); @@ -236,6 +263,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } if (!jsonObj.get("type").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateWorkflowDataAttributes.java index 499854b0..552f6218 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowDataAttributes.java @@ -52,18 +52,19 @@ /** * UpdateWorkflowDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowDataAttributes { - public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_NAME) - @jakarta.annotation.Nullable - private String name; - public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated @SerializedName(SERIALIZED_NAME_SLUG) @jakarta.annotation.Nullable private String slug; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) @jakarta.annotation.Nullable @@ -177,41 +178,45 @@ public class UpdateWorkflowDataAttributes { public UpdateWorkflowDataAttributes() { } - public UpdateWorkflowDataAttributes name(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public UpdateWorkflowDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; return this; } /** - * The title of the workflow - * @return name + * Deprecated. `slug` is derived from `name`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated */ + @Deprecated @jakarta.annotation.Nullable - public String getName() { - return name; + public String getSlug() { + return slug; } - public void setName(@jakarta.annotation.Nullable String name) { - this.name = name; + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; } - public UpdateWorkflowDataAttributes slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public UpdateWorkflowDataAttributes name(@jakarta.annotation.Nullable String name) { + this.name = name; return this; } /** - * The slug of the workflow - * @return slug + * The title of the workflow + * @return name */ @jakarta.annotation.Nullable - public String getSlug() { - return slug; + public String getName() { + return name; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; } @@ -715,8 +720,8 @@ public boolean equals(Object o) { return false; } UpdateWorkflowDataAttributes updateWorkflowDataAttributes = (UpdateWorkflowDataAttributes) o; - return Objects.equals(this.name, updateWorkflowDataAttributes.name) && - Objects.equals(this.slug, updateWorkflowDataAttributes.slug) && + return Objects.equals(this.slug, updateWorkflowDataAttributes.slug) && + Objects.equals(this.name, updateWorkflowDataAttributes.name) && Objects.equals(this.description, updateWorkflowDataAttributes.description) && Objects.equals(this.command, updateWorkflowDataAttributes.command) && Objects.equals(this.commandFeedbackEnabled, updateWorkflowDataAttributes.commandFeedbackEnabled) && @@ -747,7 +752,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(name, slug, description, command, commandFeedbackEnabled, wait, repeatEveryDuration, repeatConditionDurationSinceFirstRun, repeatConditionNumberOfRepeats, continuouslyRepeat, enabled, locked, position, workflowGroupId, triggerParams, environmentIds, severityIds, incidentTypeIds, incidentRoleIds, serviceIds, functionalityIds, groupIds, causeIds, subStatusIds); + return Objects.hash(slug, name, description, command, commandFeedbackEnabled, wait, repeatEveryDuration, repeatConditionDurationSinceFirstRun, repeatConditionNumberOfRepeats, continuouslyRepeat, enabled, locked, position, workflowGroupId, triggerParams, environmentIds, severityIds, incidentTypeIds, incidentRoleIds, serviceIds, functionalityIds, groupIds, causeIds, subStatusIds); } private static int hashCodeNullable(JsonNullable a) { @@ -761,8 +766,8 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateWorkflowDataAttributes {\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" command: ").append(toIndentedString(command)).append("\n"); sb.append(" commandFeedbackEnabled: ").append(toIndentedString(commandFeedbackEnabled)).append("\n"); @@ -807,8 +812,8 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("name"); openapiFields.add("slug"); + openapiFields.add("name"); openapiFields.add("description"); openapiFields.add("command"); openapiFields.add("command_feedback_enabled"); @@ -857,12 +862,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); - } if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldCondition.java b/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldCondition.java index 46a5e0de..06402f45 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldCondition.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldCondition.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowFormFieldCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowFormFieldCondition { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionData.java b/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionData.java index 49c4bb2c..6429f288 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionData.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionData.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowFormFieldConditionData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowFormFieldConditionData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributes.java index cd028e35..08352c0f 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributes.java @@ -50,7 +50,7 @@ /** * UpdateWorkflowFormFieldConditionDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowFormFieldConditionDataAttributes { /** * The trigger condition @@ -158,6 +158,21 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List selectedUserIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + public UpdateWorkflowFormFieldConditionDataAttributes() { } @@ -369,6 +384,87 @@ public void setSelectedUserIds(@jakarta.annotation.Nullable List select } + public UpdateWorkflowFormFieldConditionDataAttributes selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public UpdateWorkflowFormFieldConditionDataAttributes addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public UpdateWorkflowFormFieldConditionDataAttributes selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public UpdateWorkflowFormFieldConditionDataAttributes addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public UpdateWorkflowFormFieldConditionDataAttributes selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public UpdateWorkflowFormFieldConditionDataAttributes addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + @Override public boolean equals(Object o) { @@ -386,12 +482,15 @@ public boolean equals(Object o) { Objects.equals(this.selectedGroupIds, updateWorkflowFormFieldConditionDataAttributes.selectedGroupIds) && Objects.equals(this.selectedOptionIds, updateWorkflowFormFieldConditionDataAttributes.selectedOptionIds) && Objects.equals(this.selectedServiceIds, updateWorkflowFormFieldConditionDataAttributes.selectedServiceIds) && - Objects.equals(this.selectedUserIds, updateWorkflowFormFieldConditionDataAttributes.selectedUserIds); + Objects.equals(this.selectedUserIds, updateWorkflowFormFieldConditionDataAttributes.selectedUserIds) && + Objects.equals(this.selectedCauseIds, updateWorkflowFormFieldConditionDataAttributes.selectedCauseIds) && + Objects.equals(this.selectedEnvironmentIds, updateWorkflowFormFieldConditionDataAttributes.selectedEnvironmentIds) && + Objects.equals(this.selectedIncidentTypeIds, updateWorkflowFormFieldConditionDataAttributes.selectedIncidentTypeIds); } @Override public int hashCode() { - return Objects.hash(incidentCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds); + return Objects.hash(incidentCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds, selectedCauseIds, selectedEnvironmentIds, selectedIncidentTypeIds); } @Override @@ -406,6 +505,9 @@ public String toString() { sb.append(" selectedOptionIds: ").append(toIndentedString(selectedOptionIds)).append("\n"); sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -436,6 +538,9 @@ private String toIndentedString(Object o) { openapiFields.add("selected_option_ids"); openapiFields.add("selected_service_ids"); openapiFields.add("selected_user_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_incident_type_ids"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -497,6 +602,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("selected_user_ids") != null && !jsonObj.get("selected_user_ids").isJsonNull() && !jsonObj.get("selected_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowGroup.java b/src/main/java/com/rootly/client/model/UpdateWorkflowGroup.java index 8889c68f..937d5b67 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowGroup.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowGroup.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowGroup { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowGroupData.java b/src/main/java/com/rootly/client/model/UpdateWorkflowGroupData.java index bbc507e4..a08b24ca 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowGroupData.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowGroupData.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowGroupData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowGroupData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributes.java index eb1c74ae..c52dc3a1 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributes.java @@ -49,8 +49,14 @@ /** * UpdateWorkflowGroupDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowGroupDataAttributes { + public static final String SERIALIZED_NAME_SLUG = "slug"; + @Deprecated + @SerializedName(SERIALIZED_NAME_SLUG) + @jakarta.annotation.Nullable + private String slug; + /** * The kind of the workflow group */ @@ -144,6 +150,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public UpdateWorkflowGroupDataAttributes() { } + @Deprecated + public UpdateWorkflowGroupDataAttributes slug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + return this; + } + + /** + * Deprecated. `slug` is derived from `name` and `kind`; any submitted value is ignored. This property will be removed from the request schema in a future version. + * @return slug + * @deprecated + */ + @Deprecated + @jakarta.annotation.Nullable + public String getSlug() { + return slug; + } + + @Deprecated + public void setSlug(@jakarta.annotation.Nullable String slug) { + this.slug = slug; + } + + public UpdateWorkflowGroupDataAttributes kind(@jakarta.annotation.Nullable KindEnum kind) { this.kind = kind; return this; @@ -268,7 +297,8 @@ public boolean equals(Object o) { return false; } UpdateWorkflowGroupDataAttributes updateWorkflowGroupDataAttributes = (UpdateWorkflowGroupDataAttributes) o; - return Objects.equals(this.kind, updateWorkflowGroupDataAttributes.kind) && + return Objects.equals(this.slug, updateWorkflowGroupDataAttributes.slug) && + Objects.equals(this.kind, updateWorkflowGroupDataAttributes.kind) && Objects.equals(this.name, updateWorkflowGroupDataAttributes.name) && Objects.equals(this.description, updateWorkflowGroupDataAttributes.description) && Objects.equals(this.icon, updateWorkflowGroupDataAttributes.icon) && @@ -282,7 +312,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(kind, name, description, icon, expanded, position); + return Objects.hash(slug, kind, name, description, icon, expanded, position); } private static int hashCodeNullable(JsonNullable a) { @@ -296,6 +326,7 @@ private static int hashCodeNullable(JsonNullable a) { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateWorkflowGroupDataAttributes {\n"); + sb.append(" slug: ").append(toIndentedString(slug)).append("\n"); sb.append(" kind: ").append(toIndentedString(kind)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); @@ -324,6 +355,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("slug"); openapiFields.add("kind"); openapiFields.add("name"); openapiFields.add("description"); @@ -356,6 +388,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); + } if ((jsonObj.get("kind") != null && !jsonObj.get("kind").isJsonNull()) && !jsonObj.get("kind").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `kind` to be a primitive type in the JSON string but got `%s`", jsonObj.get("kind").toString())); } diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowTask.java b/src/main/java/com/rootly/client/model/UpdateWorkflowTask.java index a6a4bc36..fd533bbd 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowTask.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowTask.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowTask { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowTaskData.java b/src/main/java/com/rootly/client/model/UpdateWorkflowTaskData.java index 89eb29e6..5b21c316 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowTaskData.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowTaskData.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowTaskData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowTaskData { /** * Gets or Sets type diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributes.java b/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributes.java index 12a50bfb..c3610f6b 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributes.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributes.java @@ -49,7 +49,7 @@ /** * UpdateWorkflowTaskDataAttributes */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowTaskDataAttributes { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) diff --git a/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParams.java b/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParams.java index b8a0d07f..8dee5e55 100644 --- a/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParams.java @@ -21,20 +21,25 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParams; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AddMicrosoftTeamsChatTabTaskParams; import com.rootly.client.model.AddMicrosoftTeamsTabTaskParams; import com.rootly.client.model.AddRoleTaskParams; import com.rootly.client.model.AddRoleTaskParamsAssignedToUser; import com.rootly.client.model.AddSlackBookmarkTaskParams; import com.rootly.client.model.AddTeamTaskParams; import com.rootly.client.model.AddToTimelineTaskParams; +import com.rootly.client.model.ArchiveGoogleChatSpacesTaskParams; import com.rootly.client.model.ArchiveMicrosoftTeamsChannelsTaskParams; import com.rootly.client.model.ArchiveSlackChannelsTaskParams; import com.rootly.client.model.AttachDatadogDashboardsTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToFreshserviceTicketTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToJiraIssueTaskParams; import com.rootly.client.model.AutoAssignRoleOpsgenieTaskParams; import com.rootly.client.model.AutoAssignRolePagerdutyTaskParams; import com.rootly.client.model.AutoAssignRoleRootlyTaskParams; import com.rootly.client.model.AutoAssignRoleVictorOpsTaskParams; import com.rootly.client.model.CallPeopleTaskParams; +import com.rootly.client.model.ChangeGoogleChatSpacePrivacyTaskParams; import com.rootly.client.model.ChangeSlackChannelPrivacyTaskParams; import com.rootly.client.model.CreateAirtableTableRecordTaskParams; import com.rootly.client.model.CreateAnthropicChatCompletionTaskParams; @@ -51,6 +56,7 @@ import com.rootly.client.model.CreateGitlabIssueTaskParams; import com.rootly.client.model.CreateGoToMeetingTaskParams; import com.rootly.client.model.CreateGoogleCalendarEventTaskParams; +import com.rootly.client.model.CreateGoogleChatSpaceTaskParams; import com.rootly.client.model.CreateGoogleDocsPageTaskParams; import com.rootly.client.model.CreateGoogleDocsPermissionsTaskParams; import com.rootly.client.model.CreateGoogleGeminiChatCompletionTaskParams; @@ -62,6 +68,7 @@ import com.rootly.client.model.CreateJiraIssueTaskParamsIssueType; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import com.rootly.client.model.CreateJiraSubtaskTaskParams; +import com.rootly.client.model.CreateJsmopsAlertTaskParams; import com.rootly.client.model.CreateLinearIssueCommentTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParamsProject; @@ -101,12 +108,15 @@ import com.rootly.client.model.GetGitlabCommitsTaskParams; import com.rootly.client.model.GetPulsesTaskParams; import com.rootly.client.model.HttpClientTaskParams; +import com.rootly.client.model.InviteToGoogleChatSpaceTaskParams; +import com.rootly.client.model.InviteToMicrosoftTeamsChannelRootlyTaskParams; import com.rootly.client.model.InviteToMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelOpsgenieTaskParams; import com.rootly.client.model.InviteToSlackChannelPagerdutyTaskParams; import com.rootly.client.model.InviteToSlackChannelRootlyTaskParams; import com.rootly.client.model.InviteToSlackChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelVictorOpsTaskParams; +import com.rootly.client.model.PageJsmopsOnCallRespondersTaskParams; import com.rootly.client.model.PageOpsgenieOnCallRespondersTaskParams; import com.rootly.client.model.PagePagerdutyOnCallRespondersTaskParams; import com.rootly.client.model.PageRootlyOnCallRespondersTaskParams; @@ -115,12 +125,16 @@ import com.rootly.client.model.PublishIncidentTaskParams; import com.rootly.client.model.RedisClientTaskParams; import com.rootly.client.model.RemoveGoogleDocsPermissionsTaskParams; +import com.rootly.client.model.RenameGoogleChatSpaceTaskParams; import com.rootly.client.model.RenameMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.RenameSlackChannelTaskParams; import com.rootly.client.model.RunCommandHerokuTaskParams; import com.rootly.client.model.SendDashboardReportTaskParams; import com.rootly.client.model.SendEmailTaskParams; +import com.rootly.client.model.SendGoogleChatAttachmentsTaskParams; +import com.rootly.client.model.SendGoogleChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsBlocksTaskParams; +import com.rootly.client.model.SendMicrosoftTeamsChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsMessageTaskParams; import com.rootly.client.model.SendSlackBlocksTaskParams; import com.rootly.client.model.SendSlackMessageTaskParams; @@ -143,8 +157,10 @@ import com.rootly.client.model.UpdateDatadogNotebookTaskParamsTemplate; import com.rootly.client.model.UpdateDropboxPaperPageTaskParams; import com.rootly.client.model.UpdateGithubIssueTaskParams; +import com.rootly.client.model.UpdateGithubIssueTaskParamsRepository; import com.rootly.client.model.UpdateGitlabIssueTaskParams; import com.rootly.client.model.UpdateGoogleCalendarEventTaskParams; +import com.rootly.client.model.UpdateGoogleChatSpaceDescriptionTaskParams; import com.rootly.client.model.UpdateGoogleDocsPageTaskParams; import com.rootly.client.model.UpdateIncidentPostmortemTaskParams; import com.rootly.client.model.UpdateIncidentStatusTimestampTaskParams; @@ -210,7 +226,7 @@ import com.rootly.client.JSON; -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateWorkflowTaskDataAttributesTaskParams extends AbstractOpenApiSchema { private static final Logger log = Logger.getLogger(UpdateWorkflowTaskDataAttributesTaskParams.class.getName()); @@ -265,6 +281,8 @@ public TypeAdapter create(Gson gson, TypeToken type) { final TypeAdapter adapterCreateIncidentPostmortemTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateIncidentPostmortemTaskParams.class)); final TypeAdapter adapterCreateJiraIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateJiraIssueTaskParams.class)); final TypeAdapter adapterCreateJiraSubtaskTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateJiraSubtaskTaskParams.class)); + final TypeAdapter adapterAttachRetrospectivePdfToJiraIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AttachRetrospectivePdfToJiraIssueTaskParams.class)); + final TypeAdapter adapterAttachRetrospectivePdfToFreshserviceTicketTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AttachRetrospectivePdfToFreshserviceTicketTaskParams.class)); final TypeAdapter adapterCreateLinearIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateLinearIssueTaskParams.class)); final TypeAdapter adapterCreateLinearSubtaskIssueTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateLinearSubtaskIssueTaskParams.class)); final TypeAdapter adapterCreateLinearIssueCommentTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateLinearIssueCommentTaskParams.class)); @@ -272,11 +290,21 @@ public TypeAdapter create(Gson gson, TypeToken type) { final TypeAdapter adapterCreateMicrosoftTeamsChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateMicrosoftTeamsChannelTaskParams.class)); final TypeAdapter adapterCreateMicrosoftTeamsChatTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateMicrosoftTeamsChatTaskParams.class)); final TypeAdapter adapterAddMicrosoftTeamsTabTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AddMicrosoftTeamsTabTaskParams.class)); + final TypeAdapter adapterAddMicrosoftTeamsChatTabTaskParams = gson.getDelegateAdapter(this, TypeToken.get(AddMicrosoftTeamsChatTabTaskParams.class)); + final TypeAdapter adapterCreateGoogleChatSpaceTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateGoogleChatSpaceTaskParams.class)); + final TypeAdapter adapterSendGoogleChatMessageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendGoogleChatMessageTaskParams.class)); + final TypeAdapter adapterSendGoogleChatAttachmentsTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendGoogleChatAttachmentsTaskParams.class)); + final TypeAdapter adapterInviteToGoogleChatSpaceTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToGoogleChatSpaceTaskParams.class)); + final TypeAdapter adapterArchiveGoogleChatSpacesTaskParams = gson.getDelegateAdapter(this, TypeToken.get(ArchiveGoogleChatSpacesTaskParams.class)); + final TypeAdapter adapterRenameGoogleChatSpaceTaskParams = gson.getDelegateAdapter(this, TypeToken.get(RenameGoogleChatSpaceTaskParams.class)); + final TypeAdapter adapterUpdateGoogleChatSpaceDescriptionTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateGoogleChatSpaceDescriptionTaskParams.class)); + final TypeAdapter adapterChangeGoogleChatSpacePrivacyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(ChangeGoogleChatSpacePrivacyTaskParams.class)); final TypeAdapter adapterArchiveMicrosoftTeamsChannelsTaskParams = gson.getDelegateAdapter(this, TypeToken.get(ArchiveMicrosoftTeamsChannelsTaskParams.class)); final TypeAdapter adapterRenameMicrosoftTeamsChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(RenameMicrosoftTeamsChannelTaskParams.class)); final TypeAdapter adapterInviteToMicrosoftTeamsChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToMicrosoftTeamsChannelTaskParams.class)); final TypeAdapter adapterCreateNotionPageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateNotionPageTaskParams.class)); final TypeAdapter adapterSendMicrosoftTeamsMessageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendMicrosoftTeamsMessageTaskParams.class)); + final TypeAdapter adapterSendMicrosoftTeamsChatMessageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendMicrosoftTeamsChatMessageTaskParams.class)); final TypeAdapter adapterSendMicrosoftTeamsBlocksTaskParams = gson.getDelegateAdapter(this, TypeToken.get(SendMicrosoftTeamsBlocksTaskParams.class)); final TypeAdapter adapterUpdateNotionPageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateNotionPageTaskParams.class)); final TypeAdapter adapterUpdateQuipPageTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateQuipPageTaskParams.class)); @@ -301,11 +329,14 @@ public TypeAdapter create(Gson gson, TypeToken type) { final TypeAdapter adapterHttpClientTaskParams = gson.getDelegateAdapter(this, TypeToken.get(HttpClientTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelOpsgenieTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelOpsgenieTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelRootlyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelRootlyTaskParams.class)); + final TypeAdapter adapterInviteToMicrosoftTeamsChannelRootlyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToMicrosoftTeamsChannelRootlyTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelPagerdutyTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelPagerdutyTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelTaskParams.class)); final TypeAdapter adapterInviteToSlackChannelVictorOpsTaskParams = gson.getDelegateAdapter(this, TypeToken.get(InviteToSlackChannelVictorOpsTaskParams.class)); final TypeAdapter adapterPageOpsgenieOnCallRespondersTaskParams = gson.getDelegateAdapter(this, TypeToken.get(PageOpsgenieOnCallRespondersTaskParams.class)); final TypeAdapter adapterCreateOpsgenieAlertTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateOpsgenieAlertTaskParams.class)); + final TypeAdapter adapterCreateJsmopsAlertTaskParams = gson.getDelegateAdapter(this, TypeToken.get(CreateJsmopsAlertTaskParams.class)); + final TypeAdapter adapterPageJsmopsOnCallRespondersTaskParams = gson.getDelegateAdapter(this, TypeToken.get(PageJsmopsOnCallRespondersTaskParams.class)); final TypeAdapter adapterUpdateOpsgenieAlertTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateOpsgenieAlertTaskParams.class)); final TypeAdapter adapterUpdateOpsgenieIncidentTaskParams = gson.getDelegateAdapter(this, TypeToken.get(UpdateOpsgenieIncidentTaskParams.class)); final TypeAdapter adapterPageRootlyOnCallRespondersTaskParams = gson.getDelegateAdapter(this, TypeToken.get(PageRootlyOnCallRespondersTaskParams.class)); @@ -622,6 +653,18 @@ public void write(JsonWriter out, UpdateWorkflowTaskDataAttributesTaskParams val elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `AttachRetrospectivePdfToJiraIssueTaskParams` + if (value.getActualInstance() instanceof AttachRetrospectivePdfToJiraIssueTaskParams) { + JsonElement element = adapterAttachRetrospectivePdfToJiraIssueTaskParams.toJsonTree((AttachRetrospectivePdfToJiraIssueTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AttachRetrospectivePdfToFreshserviceTicketTaskParams` + if (value.getActualInstance() instanceof AttachRetrospectivePdfToFreshserviceTicketTaskParams) { + JsonElement element = adapterAttachRetrospectivePdfToFreshserviceTicketTaskParams.toJsonTree((AttachRetrospectivePdfToFreshserviceTicketTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `CreateLinearIssueTaskParams` if (value.getActualInstance() instanceof CreateLinearIssueTaskParams) { JsonElement element = adapterCreateLinearIssueTaskParams.toJsonTree((CreateLinearIssueTaskParams)value.getActualInstance()); @@ -664,6 +707,60 @@ public void write(JsonWriter out, UpdateWorkflowTaskDataAttributesTaskParams val elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `AddMicrosoftTeamsChatTabTaskParams` + if (value.getActualInstance() instanceof AddMicrosoftTeamsChatTabTaskParams) { + JsonElement element = adapterAddMicrosoftTeamsChatTabTaskParams.toJsonTree((AddMicrosoftTeamsChatTabTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CreateGoogleChatSpaceTaskParams` + if (value.getActualInstance() instanceof CreateGoogleChatSpaceTaskParams) { + JsonElement element = adapterCreateGoogleChatSpaceTaskParams.toJsonTree((CreateGoogleChatSpaceTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SendGoogleChatMessageTaskParams` + if (value.getActualInstance() instanceof SendGoogleChatMessageTaskParams) { + JsonElement element = adapterSendGoogleChatMessageTaskParams.toJsonTree((SendGoogleChatMessageTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `SendGoogleChatAttachmentsTaskParams` + if (value.getActualInstance() instanceof SendGoogleChatAttachmentsTaskParams) { + JsonElement element = adapterSendGoogleChatAttachmentsTaskParams.toJsonTree((SendGoogleChatAttachmentsTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `InviteToGoogleChatSpaceTaskParams` + if (value.getActualInstance() instanceof InviteToGoogleChatSpaceTaskParams) { + JsonElement element = adapterInviteToGoogleChatSpaceTaskParams.toJsonTree((InviteToGoogleChatSpaceTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ArchiveGoogleChatSpacesTaskParams` + if (value.getActualInstance() instanceof ArchiveGoogleChatSpacesTaskParams) { + JsonElement element = adapterArchiveGoogleChatSpacesTaskParams.toJsonTree((ArchiveGoogleChatSpacesTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RenameGoogleChatSpaceTaskParams` + if (value.getActualInstance() instanceof RenameGoogleChatSpaceTaskParams) { + JsonElement element = adapterRenameGoogleChatSpaceTaskParams.toJsonTree((RenameGoogleChatSpaceTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `UpdateGoogleChatSpaceDescriptionTaskParams` + if (value.getActualInstance() instanceof UpdateGoogleChatSpaceDescriptionTaskParams) { + JsonElement element = adapterUpdateGoogleChatSpaceDescriptionTaskParams.toJsonTree((UpdateGoogleChatSpaceDescriptionTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ChangeGoogleChatSpacePrivacyTaskParams` + if (value.getActualInstance() instanceof ChangeGoogleChatSpacePrivacyTaskParams) { + JsonElement element = adapterChangeGoogleChatSpacePrivacyTaskParams.toJsonTree((ChangeGoogleChatSpacePrivacyTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `ArchiveMicrosoftTeamsChannelsTaskParams` if (value.getActualInstance() instanceof ArchiveMicrosoftTeamsChannelsTaskParams) { JsonElement element = adapterArchiveMicrosoftTeamsChannelsTaskParams.toJsonTree((ArchiveMicrosoftTeamsChannelsTaskParams)value.getActualInstance()); @@ -694,6 +791,12 @@ public void write(JsonWriter out, UpdateWorkflowTaskDataAttributesTaskParams val elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `SendMicrosoftTeamsChatMessageTaskParams` + if (value.getActualInstance() instanceof SendMicrosoftTeamsChatMessageTaskParams) { + JsonElement element = adapterSendMicrosoftTeamsChatMessageTaskParams.toJsonTree((SendMicrosoftTeamsChatMessageTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `SendMicrosoftTeamsBlocksTaskParams` if (value.getActualInstance() instanceof SendMicrosoftTeamsBlocksTaskParams) { JsonElement element = adapterSendMicrosoftTeamsBlocksTaskParams.toJsonTree((SendMicrosoftTeamsBlocksTaskParams)value.getActualInstance()); @@ -838,6 +941,12 @@ public void write(JsonWriter out, UpdateWorkflowTaskDataAttributesTaskParams val elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `InviteToMicrosoftTeamsChannelRootlyTaskParams` + if (value.getActualInstance() instanceof InviteToMicrosoftTeamsChannelRootlyTaskParams) { + JsonElement element = adapterInviteToMicrosoftTeamsChannelRootlyTaskParams.toJsonTree((InviteToMicrosoftTeamsChannelRootlyTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `InviteToSlackChannelPagerdutyTaskParams` if (value.getActualInstance() instanceof InviteToSlackChannelPagerdutyTaskParams) { JsonElement element = adapterInviteToSlackChannelPagerdutyTaskParams.toJsonTree((InviteToSlackChannelPagerdutyTaskParams)value.getActualInstance()); @@ -868,6 +977,18 @@ public void write(JsonWriter out, UpdateWorkflowTaskDataAttributesTaskParams val elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `CreateJsmopsAlertTaskParams` + if (value.getActualInstance() instanceof CreateJsmopsAlertTaskParams) { + JsonElement element = adapterCreateJsmopsAlertTaskParams.toJsonTree((CreateJsmopsAlertTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PageJsmopsOnCallRespondersTaskParams` + if (value.getActualInstance() instanceof PageJsmopsOnCallRespondersTaskParams) { + JsonElement element = adapterPageJsmopsOnCallRespondersTaskParams.toJsonTree((PageJsmopsOnCallRespondersTaskParams)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } // check if the actual instance is of the type `UpdateOpsgenieAlertTaskParams` if (value.getActualInstance() instanceof UpdateOpsgenieAlertTaskParams) { JsonElement element = adapterUpdateOpsgenieAlertTaskParams.toJsonTree((UpdateOpsgenieAlertTaskParams)value.getActualInstance()); @@ -1162,7 +1283,7 @@ public void write(JsonWriter out, UpdateWorkflowTaskDataAttributesTaskParams val elementAdapter.write(out, element); return; } - throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); } @Override @@ -1732,6 +1853,32 @@ public UpdateWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOE errorMessages.add(String.format("Deserialization for CreateJiraSubtaskTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'CreateJiraSubtaskTaskParams'", e); } + // deserialize AttachRetrospectivePdfToJiraIssueTaskParams + try { + // validate the JSON object to see if any exception is thrown + AttachRetrospectivePdfToJiraIssueTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterAttachRetrospectivePdfToJiraIssueTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToJiraIssueTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AttachRetrospectivePdfToJiraIssueTaskParams'", e); + } + // deserialize AttachRetrospectivePdfToFreshserviceTicketTaskParams + try { + // validate the JSON object to see if any exception is thrown + AttachRetrospectivePdfToFreshserviceTicketTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterAttachRetrospectivePdfToFreshserviceTicketTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToFreshserviceTicketTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AttachRetrospectivePdfToFreshserviceTicketTaskParams'", e); + } // deserialize CreateLinearIssueTaskParams try { // validate the JSON object to see if any exception is thrown @@ -1823,6 +1970,123 @@ public UpdateWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOE errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsTabTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'AddMicrosoftTeamsTabTaskParams'", e); } + // deserialize AddMicrosoftTeamsChatTabTaskParams + try { + // validate the JSON object to see if any exception is thrown + AddMicrosoftTeamsChatTabTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterAddMicrosoftTeamsChatTabTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsChatTabTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AddMicrosoftTeamsChatTabTaskParams'", e); + } + // deserialize CreateGoogleChatSpaceTaskParams + try { + // validate the JSON object to see if any exception is thrown + CreateGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterCreateGoogleChatSpaceTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for CreateGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CreateGoogleChatSpaceTaskParams'", e); + } + // deserialize SendGoogleChatMessageTaskParams + try { + // validate the JSON object to see if any exception is thrown + SendGoogleChatMessageTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterSendGoogleChatMessageTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendGoogleChatMessageTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendGoogleChatMessageTaskParams'", e); + } + // deserialize SendGoogleChatAttachmentsTaskParams + try { + // validate the JSON object to see if any exception is thrown + SendGoogleChatAttachmentsTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterSendGoogleChatAttachmentsTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendGoogleChatAttachmentsTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendGoogleChatAttachmentsTaskParams'", e); + } + // deserialize InviteToGoogleChatSpaceTaskParams + try { + // validate the JSON object to see if any exception is thrown + InviteToGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToGoogleChatSpaceTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToGoogleChatSpaceTaskParams'", e); + } + // deserialize ArchiveGoogleChatSpacesTaskParams + try { + // validate the JSON object to see if any exception is thrown + ArchiveGoogleChatSpacesTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterArchiveGoogleChatSpacesTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ArchiveGoogleChatSpacesTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ArchiveGoogleChatSpacesTaskParams'", e); + } + // deserialize RenameGoogleChatSpaceTaskParams + try { + // validate the JSON object to see if any exception is thrown + RenameGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterRenameGoogleChatSpaceTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for RenameGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RenameGoogleChatSpaceTaskParams'", e); + } + // deserialize UpdateGoogleChatSpaceDescriptionTaskParams + try { + // validate the JSON object to see if any exception is thrown + UpdateGoogleChatSpaceDescriptionTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterUpdateGoogleChatSpaceDescriptionTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for UpdateGoogleChatSpaceDescriptionTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'UpdateGoogleChatSpaceDescriptionTaskParams'", e); + } + // deserialize ChangeGoogleChatSpacePrivacyTaskParams + try { + // validate the JSON object to see if any exception is thrown + ChangeGoogleChatSpacePrivacyTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterChangeGoogleChatSpacePrivacyTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for ChangeGoogleChatSpacePrivacyTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ChangeGoogleChatSpacePrivacyTaskParams'", e); + } // deserialize ArchiveMicrosoftTeamsChannelsTaskParams try { // validate the JSON object to see if any exception is thrown @@ -1888,6 +2152,19 @@ public UpdateWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOE errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsMessageTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'SendMicrosoftTeamsMessageTaskParams'", e); } + // deserialize SendMicrosoftTeamsChatMessageTaskParams + try { + // validate the JSON object to see if any exception is thrown + SendMicrosoftTeamsChatMessageTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterSendMicrosoftTeamsChatMessageTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsChatMessageTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SendMicrosoftTeamsChatMessageTaskParams'", e); + } // deserialize SendMicrosoftTeamsBlocksTaskParams try { // validate the JSON object to see if any exception is thrown @@ -2200,6 +2477,19 @@ public UpdateWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOE errorMessages.add(String.format("Deserialization for InviteToSlackChannelRootlyTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'InviteToSlackChannelRootlyTaskParams'", e); } + // deserialize InviteToMicrosoftTeamsChannelRootlyTaskParams + try { + // validate the JSON object to see if any exception is thrown + InviteToMicrosoftTeamsChannelRootlyTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterInviteToMicrosoftTeamsChannelRootlyTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for InviteToMicrosoftTeamsChannelRootlyTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'InviteToMicrosoftTeamsChannelRootlyTaskParams'", e); + } // deserialize InviteToSlackChannelPagerdutyTaskParams try { // validate the JSON object to see if any exception is thrown @@ -2265,6 +2555,32 @@ public UpdateWorkflowTaskDataAttributesTaskParams read(JsonReader in) throws IOE errorMessages.add(String.format("Deserialization for CreateOpsgenieAlertTaskParams failed with `%s`.", e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'CreateOpsgenieAlertTaskParams'", e); } + // deserialize CreateJsmopsAlertTaskParams + try { + // validate the JSON object to see if any exception is thrown + CreateJsmopsAlertTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterCreateJsmopsAlertTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for CreateJsmopsAlertTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CreateJsmopsAlertTaskParams'", e); + } + // deserialize PageJsmopsOnCallRespondersTaskParams + try { + // validate the JSON object to see if any exception is thrown + PageJsmopsOnCallRespondersTaskParams.validateJsonElement(jsonElement); + actualAdapter = adapterPageJsmopsOnCallRespondersTaskParams; + UpdateWorkflowTaskDataAttributesTaskParams ret = new UpdateWorkflowTaskDataAttributesTaskParams(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format("Deserialization for PageJsmopsOnCallRespondersTaskParams failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PageJsmopsOnCallRespondersTaskParams'", e); + } // deserialize UpdateOpsgenieAlertTaskParams try { // validate the JSON object to see if any exception is thrown @@ -2965,6 +3281,8 @@ public UpdateWorkflowTaskDataAttributesTaskParams(Object o) { schemas.put("CreateIncidentPostmortemTaskParams", CreateIncidentPostmortemTaskParams.class); schemas.put("CreateJiraIssueTaskParams", CreateJiraIssueTaskParams.class); schemas.put("CreateJiraSubtaskTaskParams", CreateJiraSubtaskTaskParams.class); + schemas.put("AttachRetrospectivePdfToJiraIssueTaskParams", AttachRetrospectivePdfToJiraIssueTaskParams.class); + schemas.put("AttachRetrospectivePdfToFreshserviceTicketTaskParams", AttachRetrospectivePdfToFreshserviceTicketTaskParams.class); schemas.put("CreateLinearIssueTaskParams", CreateLinearIssueTaskParams.class); schemas.put("CreateLinearSubtaskIssueTaskParams", CreateLinearSubtaskIssueTaskParams.class); schemas.put("CreateLinearIssueCommentTaskParams", CreateLinearIssueCommentTaskParams.class); @@ -2972,11 +3290,21 @@ public UpdateWorkflowTaskDataAttributesTaskParams(Object o) { schemas.put("CreateMicrosoftTeamsChannelTaskParams", CreateMicrosoftTeamsChannelTaskParams.class); schemas.put("CreateMicrosoftTeamsChatTaskParams", CreateMicrosoftTeamsChatTaskParams.class); schemas.put("AddMicrosoftTeamsTabTaskParams", AddMicrosoftTeamsTabTaskParams.class); + schemas.put("AddMicrosoftTeamsChatTabTaskParams", AddMicrosoftTeamsChatTabTaskParams.class); + schemas.put("CreateGoogleChatSpaceTaskParams", CreateGoogleChatSpaceTaskParams.class); + schemas.put("SendGoogleChatMessageTaskParams", SendGoogleChatMessageTaskParams.class); + schemas.put("SendGoogleChatAttachmentsTaskParams", SendGoogleChatAttachmentsTaskParams.class); + schemas.put("InviteToGoogleChatSpaceTaskParams", InviteToGoogleChatSpaceTaskParams.class); + schemas.put("ArchiveGoogleChatSpacesTaskParams", ArchiveGoogleChatSpacesTaskParams.class); + schemas.put("RenameGoogleChatSpaceTaskParams", RenameGoogleChatSpaceTaskParams.class); + schemas.put("UpdateGoogleChatSpaceDescriptionTaskParams", UpdateGoogleChatSpaceDescriptionTaskParams.class); + schemas.put("ChangeGoogleChatSpacePrivacyTaskParams", ChangeGoogleChatSpacePrivacyTaskParams.class); schemas.put("ArchiveMicrosoftTeamsChannelsTaskParams", ArchiveMicrosoftTeamsChannelsTaskParams.class); schemas.put("RenameMicrosoftTeamsChannelTaskParams", RenameMicrosoftTeamsChannelTaskParams.class); schemas.put("InviteToMicrosoftTeamsChannelTaskParams", InviteToMicrosoftTeamsChannelTaskParams.class); schemas.put("CreateNotionPageTaskParams", CreateNotionPageTaskParams.class); schemas.put("SendMicrosoftTeamsMessageTaskParams", SendMicrosoftTeamsMessageTaskParams.class); + schemas.put("SendMicrosoftTeamsChatMessageTaskParams", SendMicrosoftTeamsChatMessageTaskParams.class); schemas.put("SendMicrosoftTeamsBlocksTaskParams", SendMicrosoftTeamsBlocksTaskParams.class); schemas.put("UpdateNotionPageTaskParams", UpdateNotionPageTaskParams.class); schemas.put("UpdateQuipPageTaskParams", UpdateQuipPageTaskParams.class); @@ -3001,11 +3329,14 @@ public UpdateWorkflowTaskDataAttributesTaskParams(Object o) { schemas.put("HttpClientTaskParams", HttpClientTaskParams.class); schemas.put("InviteToSlackChannelOpsgenieTaskParams", InviteToSlackChannelOpsgenieTaskParams.class); schemas.put("InviteToSlackChannelRootlyTaskParams", InviteToSlackChannelRootlyTaskParams.class); + schemas.put("InviteToMicrosoftTeamsChannelRootlyTaskParams", InviteToMicrosoftTeamsChannelRootlyTaskParams.class); schemas.put("InviteToSlackChannelPagerdutyTaskParams", InviteToSlackChannelPagerdutyTaskParams.class); schemas.put("InviteToSlackChannelTaskParams", InviteToSlackChannelTaskParams.class); schemas.put("InviteToSlackChannelVictorOpsTaskParams", InviteToSlackChannelVictorOpsTaskParams.class); schemas.put("PageOpsgenieOnCallRespondersTaskParams", PageOpsgenieOnCallRespondersTaskParams.class); schemas.put("CreateOpsgenieAlertTaskParams", CreateOpsgenieAlertTaskParams.class); + schemas.put("CreateJsmopsAlertTaskParams", CreateJsmopsAlertTaskParams.class); + schemas.put("PageJsmopsOnCallRespondersTaskParams", PageJsmopsOnCallRespondersTaskParams.class); schemas.put("UpdateOpsgenieAlertTaskParams", UpdateOpsgenieAlertTaskParams.class); schemas.put("UpdateOpsgenieIncidentTaskParams", UpdateOpsgenieIncidentTaskParams.class); schemas.put("PageRootlyOnCallRespondersTaskParams", PageRootlyOnCallRespondersTaskParams.class); @@ -3065,7 +3396,7 @@ public Map> getSchemas() { /** * Set the instance that matches the anyOf child schema, check * the instance parameter is valid against the anyOf child schemas: - * AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams + * AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams * * It could be an instance of the 'anyOf' schemas. */ @@ -3286,6 +3617,16 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof AttachRetrospectivePdfToJiraIssueTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof AttachRetrospectivePdfToFreshserviceTicketTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof CreateLinearIssueTaskParams) { super.setActualInstance(instance); return; @@ -3321,6 +3662,51 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof AddMicrosoftTeamsChatTabTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CreateGoogleChatSpaceTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SendGoogleChatMessageTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof SendGoogleChatAttachmentsTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof InviteToGoogleChatSpaceTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ArchiveGoogleChatSpacesTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RenameGoogleChatSpaceTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof UpdateGoogleChatSpaceDescriptionTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ChangeGoogleChatSpacePrivacyTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof ArchiveMicrosoftTeamsChannelsTaskParams) { super.setActualInstance(instance); return; @@ -3346,6 +3732,11 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof SendMicrosoftTeamsChatMessageTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof SendMicrosoftTeamsBlocksTaskParams) { super.setActualInstance(instance); return; @@ -3466,6 +3857,11 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof InviteToMicrosoftTeamsChannelRootlyTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof InviteToSlackChannelPagerdutyTaskParams) { super.setActualInstance(instance); return; @@ -3491,6 +3887,16 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof CreateJsmopsAlertTaskParams) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PageJsmopsOnCallRespondersTaskParams) { + super.setActualInstance(instance); + return; + } + if (instance instanceof UpdateOpsgenieAlertTaskParams) { super.setActualInstance(instance); return; @@ -3736,14 +4142,14 @@ public void setActualInstance(Object instance) { return; } - throw new RuntimeException("Invalid instance type. Must be AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); + throw new RuntimeException("Invalid instance type. Must be AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams"); } /** * Get the actual instance, which can be the following: - * AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams + * AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams * - * @return The actual instance (AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams) + * @return The actual instance (AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams) */ @SuppressWarnings("unchecked") @Override @@ -4224,6 +4630,28 @@ public CreateJiraSubtaskTaskParams getCreateJiraSubtaskTaskParams() throws Class return (CreateJiraSubtaskTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `AttachRetrospectivePdfToJiraIssueTaskParams`. If the actual instance is not `AttachRetrospectivePdfToJiraIssueTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AttachRetrospectivePdfToJiraIssueTaskParams` + * @throws ClassCastException if the instance is not `AttachRetrospectivePdfToJiraIssueTaskParams` + */ + public AttachRetrospectivePdfToJiraIssueTaskParams getAttachRetrospectivePdfToJiraIssueTaskParams() throws ClassCastException { + return (AttachRetrospectivePdfToJiraIssueTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `AttachRetrospectivePdfToFreshserviceTicketTaskParams`. If the actual instance is not `AttachRetrospectivePdfToFreshserviceTicketTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AttachRetrospectivePdfToFreshserviceTicketTaskParams` + * @throws ClassCastException if the instance is not `AttachRetrospectivePdfToFreshserviceTicketTaskParams` + */ + public AttachRetrospectivePdfToFreshserviceTicketTaskParams getAttachRetrospectivePdfToFreshserviceTicketTaskParams() throws ClassCastException { + return (AttachRetrospectivePdfToFreshserviceTicketTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `CreateLinearIssueTaskParams`. If the actual instance is not `CreateLinearIssueTaskParams`, * the ClassCastException will be thrown. @@ -4301,6 +4729,105 @@ public AddMicrosoftTeamsTabTaskParams getAddMicrosoftTeamsTabTaskParams() throws return (AddMicrosoftTeamsTabTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `AddMicrosoftTeamsChatTabTaskParams`. If the actual instance is not `AddMicrosoftTeamsChatTabTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `AddMicrosoftTeamsChatTabTaskParams` + * @throws ClassCastException if the instance is not `AddMicrosoftTeamsChatTabTaskParams` + */ + public AddMicrosoftTeamsChatTabTaskParams getAddMicrosoftTeamsChatTabTaskParams() throws ClassCastException { + return (AddMicrosoftTeamsChatTabTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `CreateGoogleChatSpaceTaskParams`. If the actual instance is not `CreateGoogleChatSpaceTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CreateGoogleChatSpaceTaskParams` + * @throws ClassCastException if the instance is not `CreateGoogleChatSpaceTaskParams` + */ + public CreateGoogleChatSpaceTaskParams getCreateGoogleChatSpaceTaskParams() throws ClassCastException { + return (CreateGoogleChatSpaceTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `SendGoogleChatMessageTaskParams`. If the actual instance is not `SendGoogleChatMessageTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendGoogleChatMessageTaskParams` + * @throws ClassCastException if the instance is not `SendGoogleChatMessageTaskParams` + */ + public SendGoogleChatMessageTaskParams getSendGoogleChatMessageTaskParams() throws ClassCastException { + return (SendGoogleChatMessageTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `SendGoogleChatAttachmentsTaskParams`. If the actual instance is not `SendGoogleChatAttachmentsTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendGoogleChatAttachmentsTaskParams` + * @throws ClassCastException if the instance is not `SendGoogleChatAttachmentsTaskParams` + */ + public SendGoogleChatAttachmentsTaskParams getSendGoogleChatAttachmentsTaskParams() throws ClassCastException { + return (SendGoogleChatAttachmentsTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `InviteToGoogleChatSpaceTaskParams`. If the actual instance is not `InviteToGoogleChatSpaceTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToGoogleChatSpaceTaskParams` + * @throws ClassCastException if the instance is not `InviteToGoogleChatSpaceTaskParams` + */ + public InviteToGoogleChatSpaceTaskParams getInviteToGoogleChatSpaceTaskParams() throws ClassCastException { + return (InviteToGoogleChatSpaceTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `ArchiveGoogleChatSpacesTaskParams`. If the actual instance is not `ArchiveGoogleChatSpacesTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ArchiveGoogleChatSpacesTaskParams` + * @throws ClassCastException if the instance is not `ArchiveGoogleChatSpacesTaskParams` + */ + public ArchiveGoogleChatSpacesTaskParams getArchiveGoogleChatSpacesTaskParams() throws ClassCastException { + return (ArchiveGoogleChatSpacesTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `RenameGoogleChatSpaceTaskParams`. If the actual instance is not `RenameGoogleChatSpaceTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RenameGoogleChatSpaceTaskParams` + * @throws ClassCastException if the instance is not `RenameGoogleChatSpaceTaskParams` + */ + public RenameGoogleChatSpaceTaskParams getRenameGoogleChatSpaceTaskParams() throws ClassCastException { + return (RenameGoogleChatSpaceTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `UpdateGoogleChatSpaceDescriptionTaskParams`. If the actual instance is not `UpdateGoogleChatSpaceDescriptionTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `UpdateGoogleChatSpaceDescriptionTaskParams` + * @throws ClassCastException if the instance is not `UpdateGoogleChatSpaceDescriptionTaskParams` + */ + public UpdateGoogleChatSpaceDescriptionTaskParams getUpdateGoogleChatSpaceDescriptionTaskParams() throws ClassCastException { + return (UpdateGoogleChatSpaceDescriptionTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `ChangeGoogleChatSpacePrivacyTaskParams`. If the actual instance is not `ChangeGoogleChatSpacePrivacyTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ChangeGoogleChatSpacePrivacyTaskParams` + * @throws ClassCastException if the instance is not `ChangeGoogleChatSpacePrivacyTaskParams` + */ + public ChangeGoogleChatSpacePrivacyTaskParams getChangeGoogleChatSpacePrivacyTaskParams() throws ClassCastException { + return (ChangeGoogleChatSpacePrivacyTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `ArchiveMicrosoftTeamsChannelsTaskParams`. If the actual instance is not `ArchiveMicrosoftTeamsChannelsTaskParams`, * the ClassCastException will be thrown. @@ -4356,6 +4883,17 @@ public SendMicrosoftTeamsMessageTaskParams getSendMicrosoftTeamsMessageTaskParam return (SendMicrosoftTeamsMessageTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `SendMicrosoftTeamsChatMessageTaskParams`. If the actual instance is not `SendMicrosoftTeamsChatMessageTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `SendMicrosoftTeamsChatMessageTaskParams` + * @throws ClassCastException if the instance is not `SendMicrosoftTeamsChatMessageTaskParams` + */ + public SendMicrosoftTeamsChatMessageTaskParams getSendMicrosoftTeamsChatMessageTaskParams() throws ClassCastException { + return (SendMicrosoftTeamsChatMessageTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `SendMicrosoftTeamsBlocksTaskParams`. If the actual instance is not `SendMicrosoftTeamsBlocksTaskParams`, * the ClassCastException will be thrown. @@ -4620,6 +5158,17 @@ public InviteToSlackChannelRootlyTaskParams getInviteToSlackChannelRootlyTaskPar return (InviteToSlackChannelRootlyTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `InviteToMicrosoftTeamsChannelRootlyTaskParams`. If the actual instance is not `InviteToMicrosoftTeamsChannelRootlyTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `InviteToMicrosoftTeamsChannelRootlyTaskParams` + * @throws ClassCastException if the instance is not `InviteToMicrosoftTeamsChannelRootlyTaskParams` + */ + public InviteToMicrosoftTeamsChannelRootlyTaskParams getInviteToMicrosoftTeamsChannelRootlyTaskParams() throws ClassCastException { + return (InviteToMicrosoftTeamsChannelRootlyTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `InviteToSlackChannelPagerdutyTaskParams`. If the actual instance is not `InviteToSlackChannelPagerdutyTaskParams`, * the ClassCastException will be thrown. @@ -4675,6 +5224,28 @@ public CreateOpsgenieAlertTaskParams getCreateOpsgenieAlertTaskParams() throws C return (CreateOpsgenieAlertTaskParams)super.getActualInstance(); } + /** + * Get the actual instance of `CreateJsmopsAlertTaskParams`. If the actual instance is not `CreateJsmopsAlertTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CreateJsmopsAlertTaskParams` + * @throws ClassCastException if the instance is not `CreateJsmopsAlertTaskParams` + */ + public CreateJsmopsAlertTaskParams getCreateJsmopsAlertTaskParams() throws ClassCastException { + return (CreateJsmopsAlertTaskParams)super.getActualInstance(); + } + + /** + * Get the actual instance of `PageJsmopsOnCallRespondersTaskParams`. If the actual instance is not `PageJsmopsOnCallRespondersTaskParams`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `PageJsmopsOnCallRespondersTaskParams` + * @throws ClassCastException if the instance is not `PageJsmopsOnCallRespondersTaskParams` + */ + public PageJsmopsOnCallRespondersTaskParams getPageJsmopsOnCallRespondersTaskParams() throws ClassCastException { + return (PageJsmopsOnCallRespondersTaskParams)super.getActualInstance(); + } + /** * Get the actual instance of `UpdateOpsgenieAlertTaskParams`. If the actual instance is not `UpdateOpsgenieAlertTaskParams`, * the ClassCastException will be thrown. @@ -5567,6 +6138,22 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for CreateJiraSubtaskTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with AttachRetrospectivePdfToJiraIssueTaskParams + try { + AttachRetrospectivePdfToJiraIssueTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToJiraIssueTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AttachRetrospectivePdfToFreshserviceTicketTaskParams + try { + AttachRetrospectivePdfToFreshserviceTicketTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AttachRetrospectivePdfToFreshserviceTicketTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with CreateLinearIssueTaskParams try { CreateLinearIssueTaskParams.validateJsonElement(jsonElement); @@ -5623,6 +6210,78 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsTabTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with AddMicrosoftTeamsChatTabTaskParams + try { + AddMicrosoftTeamsChatTabTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for AddMicrosoftTeamsChatTabTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CreateGoogleChatSpaceTaskParams + try { + CreateGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for CreateGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SendGoogleChatMessageTaskParams + try { + SendGoogleChatMessageTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendGoogleChatMessageTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with SendGoogleChatAttachmentsTaskParams + try { + SendGoogleChatAttachmentsTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendGoogleChatAttachmentsTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with InviteToGoogleChatSpaceTaskParams + try { + InviteToGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ArchiveGoogleChatSpacesTaskParams + try { + ArchiveGoogleChatSpacesTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ArchiveGoogleChatSpacesTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RenameGoogleChatSpaceTaskParams + try { + RenameGoogleChatSpaceTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for RenameGoogleChatSpaceTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with UpdateGoogleChatSpaceDescriptionTaskParams + try { + UpdateGoogleChatSpaceDescriptionTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for UpdateGoogleChatSpaceDescriptionTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ChangeGoogleChatSpacePrivacyTaskParams + try { + ChangeGoogleChatSpacePrivacyTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for ChangeGoogleChatSpacePrivacyTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with ArchiveMicrosoftTeamsChannelsTaskParams try { ArchiveMicrosoftTeamsChannelsTaskParams.validateJsonElement(jsonElement); @@ -5663,6 +6322,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsMessageTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with SendMicrosoftTeamsChatMessageTaskParams + try { + SendMicrosoftTeamsChatMessageTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for SendMicrosoftTeamsChatMessageTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with SendMicrosoftTeamsBlocksTaskParams try { SendMicrosoftTeamsBlocksTaskParams.validateJsonElement(jsonElement); @@ -5855,6 +6522,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for InviteToSlackChannelRootlyTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with InviteToMicrosoftTeamsChannelRootlyTaskParams + try { + InviteToMicrosoftTeamsChannelRootlyTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for InviteToMicrosoftTeamsChannelRootlyTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with InviteToSlackChannelPagerdutyTaskParams try { InviteToSlackChannelPagerdutyTaskParams.validateJsonElement(jsonElement); @@ -5895,6 +6570,22 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for CreateOpsgenieAlertTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with CreateJsmopsAlertTaskParams + try { + CreateJsmopsAlertTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for CreateJsmopsAlertTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PageJsmopsOnCallRespondersTaskParams + try { + PageJsmopsOnCallRespondersTaskParams.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format("Deserialization for PageJsmopsOnCallRespondersTaskParams failed with `%s`.", e.getMessage())); + // continue to the next one + } // validate the json string with UpdateOpsgenieAlertTaskParams try { UpdateOpsgenieAlertTaskParams.validateJsonElement(jsonElement); @@ -6287,7 +6978,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti errorMessages.add(String.format("Deserialization for CreateAnthropicChatCompletionTaskParams failed with `%s`.", e.getMessage())); // continue to the next one } - throw new IOException(String.format("The JSON string is invalid for UpdateWorkflowTaskDataAttributesTaskParams with anyOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + throw new IOException(String.format("The JSON string is invalid for UpdateWorkflowTaskDataAttributesTaskParams with anyOf schemas: AddActionItemTaskParams, AddMicrosoftTeamsChatTabTaskParams, AddMicrosoftTeamsTabTaskParams, AddRoleTaskParams, AddSlackBookmarkTaskParams, AddTeamTaskParams, AddToTimelineTaskParams, ArchiveGoogleChatSpacesTaskParams, ArchiveMicrosoftTeamsChannelsTaskParams, ArchiveSlackChannelsTaskParams, AttachDatadogDashboardsTaskParams, AttachRetrospectivePdfToFreshserviceTicketTaskParams, AttachRetrospectivePdfToJiraIssueTaskParams, AutoAssignRoleOpsgenieTaskParams, AutoAssignRolePagerdutyTaskParams, AutoAssignRoleRootlyTaskParams, AutoAssignRoleVictorOpsTaskParams, CallPeopleTaskParams, ChangeGoogleChatSpacePrivacyTaskParams, ChangeSlackChannelPrivacyTaskParams, CreateAirtableTableRecordTaskParams, CreateAnthropicChatCompletionTaskParams, CreateAsanaSubtaskTaskParams, CreateAsanaTaskTaskParams, CreateClickupTaskTaskParams, CreateCodaPageTaskParams, CreateConfluencePageTaskParams, CreateDatadogNotebookTaskParams, CreateDropboxPaperPageTaskParams, CreateGithubIssueTaskParams, CreateGitlabIssueTaskParams, CreateGoToMeetingTaskParams, CreateGoogleCalendarEventTaskParams, CreateGoogleChatSpaceTaskParams, CreateGoogleDocsPageTaskParams, CreateGoogleDocsPermissionsTaskParams, CreateGoogleGeminiChatCompletionTaskParams, CreateGoogleMeetingTaskParams, CreateIncidentPostmortemTaskParams, CreateIncidentTaskParams, CreateJiraIssueTaskParams, CreateJiraSubtaskTaskParams, CreateJsmopsAlertTaskParams, CreateLinearIssueCommentTaskParams, CreateLinearIssueTaskParams, CreateLinearSubtaskIssueTaskParams, CreateMicrosoftTeamsChannelTaskParams, CreateMicrosoftTeamsChatTaskParams, CreateMicrosoftTeamsMeetingTaskParams, CreateMistralChatCompletionTaskParams, CreateMotionTaskTaskParams, CreateNotionPageTaskParams, CreateOpenaiChatCompletionTaskParams, CreateOpsgenieAlertTaskParams, CreateOutlookEventTaskParams, CreatePagerdutyStatusUpdateTaskParams, CreatePagertreeAlertTaskParams, CreateQuipPageTaskParams, CreateServiceNowIncidentTaskParams, CreateSharepointPageTaskParams, CreateShortcutStoryTaskParams, CreateShortcutTaskTaskParams, CreateSlackChannelTaskParams, CreateSubIncidentTaskParams, CreateTrelloCardTaskParams, CreateWatsonxChatCompletionTaskParams, CreateWebexMeetingTaskParams, CreateZendeskJiraLinkTaskParams, CreateZendeskTicketTaskParams, CreateZoomMeetingTaskParams, GetAlertsTaskParams, GetGithubCommitsTaskParams, GetGitlabCommitsTaskParams, GetPulsesTaskParams, HttpClientTaskParams, InviteToGoogleChatSpaceTaskParams, InviteToMicrosoftTeamsChannelRootlyTaskParams, InviteToMicrosoftTeamsChannelTaskParams, InviteToSlackChannelOpsgenieTaskParams, InviteToSlackChannelPagerdutyTaskParams, InviteToSlackChannelRootlyTaskParams, InviteToSlackChannelTaskParams, InviteToSlackChannelVictorOpsTaskParams, PageJsmopsOnCallRespondersTaskParams, PageOpsgenieOnCallRespondersTaskParams, PagePagerdutyOnCallRespondersTaskParams, PageRootlyOnCallRespondersTaskParams, PageVictorOpsOnCallRespondersTaskParams, PrintTaskParams, PublishIncidentTaskParams, RedisClientTaskParams, RemoveGoogleDocsPermissionsTaskParams, RenameGoogleChatSpaceTaskParams, RenameMicrosoftTeamsChannelTaskParams, RenameSlackChannelTaskParams, RunCommandHerokuTaskParams, SendDashboardReportTaskParams, SendEmailTaskParams, SendGoogleChatAttachmentsTaskParams, SendGoogleChatMessageTaskParams, SendMicrosoftTeamsBlocksTaskParams, SendMicrosoftTeamsChatMessageTaskParams, SendMicrosoftTeamsMessageTaskParams, SendSlackBlocksTaskParams, SendSlackMessageTaskParams, SendSmsTaskParams, SendWhatsappMessageTaskParams, SnapshotDatadogGraphTaskParams, SnapshotGrafanaDashboardTaskParams, SnapshotLookerLookTaskParams, SnapshotNewRelicGraphTaskParams, TriggerWorkflowTaskParams, TweetTwitterMessageTaskParams, UpdateActionItemTaskParams, UpdateAirtableTableRecordTaskParams, UpdateAsanaTaskTaskParams, UpdateAttachedAlertsTaskParams, UpdateClickupTaskTaskParams, UpdateCodaPageTaskParams, UpdateConfluencePageTaskParams, UpdateDatadogNotebookTaskParams, UpdateDropboxPaperPageTaskParams, UpdateGithubIssueTaskParams, UpdateGitlabIssueTaskParams, UpdateGoogleCalendarEventTaskParams, UpdateGoogleChatSpaceDescriptionTaskParams, UpdateGoogleDocsPageTaskParams, UpdateIncidentPostmortemTaskParams, UpdateIncidentStatusTimestampTaskParams, UpdateIncidentTaskParams, UpdateJiraIssueTaskParams, UpdateLinearIssueTaskParams, UpdateMotionTaskTaskParams, UpdateNotionPageTaskParams, UpdateOpsgenieAlertTaskParams, UpdateOpsgenieIncidentTaskParams, UpdatePagerdutyIncidentTaskParams, UpdatePagertreeAlertTaskParams, UpdateQuipPageTaskParams, UpdateServiceNowIncidentTaskParams, UpdateSharepointPageTaskParams, UpdateShortcutStoryTaskParams, UpdateShortcutTaskTaskParams, UpdateSlackChannelTopicTaskParams, UpdateStatusTaskParams, UpdateTrelloCardTaskParams, UpdateVictorOpsIncidentTaskParams, UpdateZendeskTicketTaskParams. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); } /** diff --git a/src/main/java/com/rootly/client/model/UpdateZendeskTicketTaskParams.java b/src/main/java/com/rootly/client/model/UpdateZendeskTicketTaskParams.java index 7299f9f7..70a0e216 100644 --- a/src/main/java/com/rootly/client/model/UpdateZendeskTicketTaskParams.java +++ b/src/main/java/com/rootly/client/model/UpdateZendeskTicketTaskParams.java @@ -51,7 +51,7 @@ /** * UpdateZendeskTicketTaskParams */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UpdateZendeskTicketTaskParams { /** * Gets or Sets taskType diff --git a/src/main/java/com/rootly/client/model/UptimeChartResponse.java b/src/main/java/com/rootly/client/model/UptimeChartResponse.java new file mode 100644 index 00000000..5750781c --- /dev/null +++ b/src/main/java/com/rootly/client/model/UptimeChartResponse.java @@ -0,0 +1,211 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * UptimeChartResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class UptimeChartResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private Object data; + + public UptimeChartResponse() { + } + + public UptimeChartResponse data(@jakarta.annotation.Nonnull Object data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public Object getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull Object data) { + this.data = data; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + UptimeChartResponse uptimeChartResponse = (UptimeChartResponse) o; + return Objects.equals(this.data, uptimeChartResponse.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class UptimeChartResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to UptimeChartResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!UptimeChartResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in UptimeChartResponse is not found in the empty JSON string", UptimeChartResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!UptimeChartResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `UptimeChartResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : UptimeChartResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UptimeChartResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UptimeChartResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(UptimeChartResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, UptimeChartResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public UptimeChartResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of UptimeChartResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of UptimeChartResponse + * @throws IOException if the JSON string is invalid with respect to UptimeChartResponse + */ + public static UptimeChartResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UptimeChartResponse.class); + } + + /** + * Convert an instance of UptimeChartResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/User.java b/src/main/java/com/rootly/client/model/User.java index 8880ab61..b51366b6 100644 --- a/src/main/java/com/rootly/client/model/User.java +++ b/src/main/java/com/rootly/client/model/User.java @@ -49,7 +49,7 @@ /** * User */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class User { public static final String SERIALIZED_NAME_EMAIL = "email"; @SerializedName(SERIALIZED_NAME_EMAIL) diff --git a/src/main/java/com/rootly/client/model/UserEmailAddress.java b/src/main/java/com/rootly/client/model/UserEmailAddress.java index 444bc95e..1bcc52a2 100644 --- a/src/main/java/com/rootly/client/model/UserEmailAddress.java +++ b/src/main/java/com/rootly/client/model/UserEmailAddress.java @@ -48,7 +48,7 @@ /** * UserEmailAddress */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserEmailAddress { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/UserEmailAddressList.java b/src/main/java/com/rootly/client/model/UserEmailAddressList.java index 6ca4a85f..933a1b28 100644 --- a/src/main/java/com/rootly/client/model/UserEmailAddressList.java +++ b/src/main/java/com/rootly/client/model/UserEmailAddressList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserEmailAddressResponseData; @@ -53,7 +54,7 @@ /** * UserEmailAddressList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserEmailAddressList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class UserEmailAddressList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserEmailAddressList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public UserEmailAddressList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserEmailAddressList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { UserEmailAddressList userEmailAddressList = (UserEmailAddressList) o; return Objects.equals(this.data, userEmailAddressList.data) && Objects.equals(this.links, userEmailAddressList.links) && - Objects.equals(this.meta, userEmailAddressList.meta); + Objects.equals(this.meta, userEmailAddressList.meta) && + Objects.equals(this.included, userEmailAddressList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserEmailAddressResponse.java b/src/main/java/com/rootly/client/model/UserEmailAddressResponse.java index d427eb68..6681d539 100644 --- a/src/main/java/com/rootly/client/model/UserEmailAddressResponse.java +++ b/src/main/java/com/rootly/client/model/UserEmailAddressResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserEmailAddressResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * UserEmailAddressResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserEmailAddressResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private UserEmailAddressResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserEmailAddressResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull UserEmailAddressResponseData dat } + public UserEmailAddressResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserEmailAddressResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } UserEmailAddressResponse userEmailAddressResponse = (UserEmailAddressResponse) o; - return Objects.equals(this.data, userEmailAddressResponse.data); + return Objects.equals(this.data, userEmailAddressResponse.data) && + Objects.equals(this.included, userEmailAddressResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UserEmailAddressResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` UserEmailAddressResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserEmailAddressResponseData.java b/src/main/java/com/rootly/client/model/UserEmailAddressResponseData.java index d04db3d2..859fb793 100644 --- a/src/main/java/com/rootly/client/model/UserEmailAddressResponseData.java +++ b/src/main/java/com/rootly/client/model/UserEmailAddressResponseData.java @@ -49,7 +49,7 @@ /** * UserEmailAddressResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserEmailAddressResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UserFlatResponse.java b/src/main/java/com/rootly/client/model/UserFlatResponse.java index 551f5c57..51f75f96 100644 --- a/src/main/java/com/rootly/client/model/UserFlatResponse.java +++ b/src/main/java/com/rootly/client/model/UserFlatResponse.java @@ -47,20 +47,35 @@ import com.rootly.client.JSON; /** - * Flat user object as returned by serializer + * Flat user attributes as returned by UserFlatSerializer (no nested associations) */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserFlatResponse { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) @jakarta.annotation.Nonnull private Integer id; + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @jakarta.annotation.Nullable + private String name; + public static final String SERIALIZED_NAME_EMAIL = "email"; @SerializedName(SERIALIZED_NAME_EMAIL) @jakarta.annotation.Nonnull private String email; + public static final String SERIALIZED_NAME_PHONE = "phone"; + @SerializedName(SERIALIZED_NAME_PHONE) + @jakarta.annotation.Nullable + private String phone; + + public static final String SERIALIZED_NAME_PHONE2 = "phone_2"; + @SerializedName(SERIALIZED_NAME_PHONE2) + @jakarta.annotation.Nullable + private String phone2; + public static final String SERIALIZED_NAME_FIRST_NAME = "first_name"; @SerializedName(SERIALIZED_NAME_FIRST_NAME) @jakarta.annotation.Nullable @@ -71,6 +86,11 @@ public class UserFlatResponse { @jakarta.annotation.Nullable private String lastName; + public static final String SERIALIZED_NAME_PREFERRED_NAME = "preferred_name"; + @SerializedName(SERIALIZED_NAME_PREFERRED_NAME) + @jakarta.annotation.Nullable + private String preferredName; + public static final String SERIALIZED_NAME_FULL_NAME = "full_name"; @SerializedName(SERIALIZED_NAME_FULL_NAME) @jakarta.annotation.Nullable @@ -81,6 +101,11 @@ public class UserFlatResponse { @jakarta.annotation.Nullable private String fullNameWithTeam; + public static final String SERIALIZED_NAME_SLACK_ID = "slack_id"; + @SerializedName(SERIALIZED_NAME_SLACK_ID) + @jakarta.annotation.Nullable + private String slackId; + public static final String SERIALIZED_NAME_TIME_ZONE = "time_zone"; @SerializedName(SERIALIZED_NAME_TIME_ZONE) @jakarta.annotation.Nullable @@ -118,13 +143,32 @@ public void setId(@jakarta.annotation.Nonnull Integer id) { } + public UserFlatResponse name(@jakarta.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Display name + * @return name + */ + @jakarta.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@jakarta.annotation.Nullable String name) { + this.name = name; + } + + public UserFlatResponse email(@jakarta.annotation.Nonnull String email) { this.email = email; return this; } /** - * User email + * Email address * @return email */ @jakarta.annotation.Nonnull @@ -137,13 +181,51 @@ public void setEmail(@jakarta.annotation.Nonnull String email) { } + public UserFlatResponse phone(@jakarta.annotation.Nullable String phone) { + this.phone = phone; + return this; + } + + /** + * Primary phone number + * @return phone + */ + @jakarta.annotation.Nullable + public String getPhone() { + return phone; + } + + public void setPhone(@jakarta.annotation.Nullable String phone) { + this.phone = phone; + } + + + public UserFlatResponse phone2(@jakarta.annotation.Nullable String phone2) { + this.phone2 = phone2; + return this; + } + + /** + * Secondary phone number + * @return phone2 + */ + @jakarta.annotation.Nullable + public String getPhone2() { + return phone2; + } + + public void setPhone2(@jakarta.annotation.Nullable String phone2) { + this.phone2 = phone2; + } + + public UserFlatResponse firstName(@jakarta.annotation.Nullable String firstName) { this.firstName = firstName; return this; } /** - * User first name + * First name * @return firstName */ @jakarta.annotation.Nullable @@ -162,7 +244,7 @@ public UserFlatResponse lastName(@jakarta.annotation.Nullable String lastName) { } /** - * User last name + * Last name * @return lastName */ @jakarta.annotation.Nullable @@ -175,13 +257,32 @@ public void setLastName(@jakarta.annotation.Nullable String lastName) { } + public UserFlatResponse preferredName(@jakarta.annotation.Nullable String preferredName) { + this.preferredName = preferredName; + return this; + } + + /** + * Preferred name + * @return preferredName + */ + @jakarta.annotation.Nullable + public String getPreferredName() { + return preferredName; + } + + public void setPreferredName(@jakarta.annotation.Nullable String preferredName) { + this.preferredName = preferredName; + } + + public UserFlatResponse fullName(@jakarta.annotation.Nullable String fullName) { this.fullName = fullName; return this; } /** - * User full name + * Full name * @return fullName */ @jakarta.annotation.Nullable @@ -200,7 +301,7 @@ public UserFlatResponse fullNameWithTeam(@jakarta.annotation.Nullable String ful } /** - * User full name with team + * Full name with team context * @return fullNameWithTeam */ @jakarta.annotation.Nullable @@ -213,13 +314,32 @@ public void setFullNameWithTeam(@jakarta.annotation.Nullable String fullNameWith } + public UserFlatResponse slackId(@jakarta.annotation.Nullable String slackId) { + this.slackId = slackId; + return this; + } + + /** + * Slack user ID + * @return slackId + */ + @jakarta.annotation.Nullable + public String getSlackId() { + return slackId; + } + + public void setSlackId(@jakarta.annotation.Nullable String slackId) { + this.slackId = slackId; + } + + public UserFlatResponse timeZone(@jakarta.annotation.Nullable String timeZone) { this.timeZone = timeZone; return this; } /** - * User time zone + * IANA time zone * @return timeZone */ @jakarta.annotation.Nullable @@ -238,7 +358,7 @@ public UserFlatResponse createdAt(@jakarta.annotation.Nonnull String createdAt) } /** - * User creation timestamp + * Date of creation * @return createdAt */ @jakarta.annotation.Nonnull @@ -257,7 +377,7 @@ public UserFlatResponse updatedAt(@jakarta.annotation.Nonnull String updatedAt) } /** - * User last update timestamp + * Date of last update * @return updatedAt */ @jakarta.annotation.Nonnull @@ -281,11 +401,16 @@ public boolean equals(Object o) { } UserFlatResponse userFlatResponse = (UserFlatResponse) o; return Objects.equals(this.id, userFlatResponse.id) && + Objects.equals(this.name, userFlatResponse.name) && Objects.equals(this.email, userFlatResponse.email) && + Objects.equals(this.phone, userFlatResponse.phone) && + Objects.equals(this.phone2, userFlatResponse.phone2) && Objects.equals(this.firstName, userFlatResponse.firstName) && Objects.equals(this.lastName, userFlatResponse.lastName) && + Objects.equals(this.preferredName, userFlatResponse.preferredName) && Objects.equals(this.fullName, userFlatResponse.fullName) && Objects.equals(this.fullNameWithTeam, userFlatResponse.fullNameWithTeam) && + Objects.equals(this.slackId, userFlatResponse.slackId) && Objects.equals(this.timeZone, userFlatResponse.timeZone) && Objects.equals(this.createdAt, userFlatResponse.createdAt) && Objects.equals(this.updatedAt, userFlatResponse.updatedAt); @@ -297,7 +422,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(id, email, firstName, lastName, fullName, fullNameWithTeam, timeZone, createdAt, updatedAt); + return Objects.hash(id, name, email, phone, phone2, firstName, lastName, preferredName, fullName, fullNameWithTeam, slackId, timeZone, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -312,11 +437,16 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UserFlatResponse {\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" email: ").append(toIndentedString(email)).append("\n"); + sb.append(" phone: ").append(toIndentedString(phone)).append("\n"); + sb.append(" phone2: ").append(toIndentedString(phone2)).append("\n"); sb.append(" firstName: ").append(toIndentedString(firstName)).append("\n"); sb.append(" lastName: ").append(toIndentedString(lastName)).append("\n"); + sb.append(" preferredName: ").append(toIndentedString(preferredName)).append("\n"); sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); sb.append(" fullNameWithTeam: ").append(toIndentedString(fullNameWithTeam)).append("\n"); + sb.append(" slackId: ").append(toIndentedString(slackId)).append("\n"); sb.append(" timeZone: ").append(toIndentedString(timeZone)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); @@ -343,11 +473,16 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("id"); + openapiFields.add("name"); openapiFields.add("email"); + openapiFields.add("phone"); + openapiFields.add("phone_2"); openapiFields.add("first_name"); openapiFields.add("last_name"); + openapiFields.add("preferred_name"); openapiFields.add("full_name"); openapiFields.add("full_name_with_team"); + openapiFields.add("slack_id"); openapiFields.add("time_zone"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -388,21 +523,36 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } if (!jsonObj.get("email").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `email` to be a primitive type in the JSON string but got `%s`", jsonObj.get("email").toString())); } + if ((jsonObj.get("phone") != null && !jsonObj.get("phone").isJsonNull()) && !jsonObj.get("phone").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `phone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("phone").toString())); + } + if ((jsonObj.get("phone_2") != null && !jsonObj.get("phone_2").isJsonNull()) && !jsonObj.get("phone_2").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `phone_2` to be a primitive type in the JSON string but got `%s`", jsonObj.get("phone_2").toString())); + } if ((jsonObj.get("first_name") != null && !jsonObj.get("first_name").isJsonNull()) && !jsonObj.get("first_name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `first_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("first_name").toString())); } if ((jsonObj.get("last_name") != null && !jsonObj.get("last_name").isJsonNull()) && !jsonObj.get("last_name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `last_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("last_name").toString())); } + if ((jsonObj.get("preferred_name") != null && !jsonObj.get("preferred_name").isJsonNull()) && !jsonObj.get("preferred_name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `preferred_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("preferred_name").toString())); + } if ((jsonObj.get("full_name") != null && !jsonObj.get("full_name").isJsonNull()) && !jsonObj.get("full_name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `full_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("full_name").toString())); } if ((jsonObj.get("full_name_with_team") != null && !jsonObj.get("full_name_with_team").isJsonNull()) && !jsonObj.get("full_name_with_team").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `full_name_with_team` to be a primitive type in the JSON string but got `%s`", jsonObj.get("full_name_with_team").toString())); } + if ((jsonObj.get("slack_id") != null && !jsonObj.get("slack_id").isJsonNull()) && !jsonObj.get("slack_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `slack_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slack_id").toString())); + } if ((jsonObj.get("time_zone") != null && !jsonObj.get("time_zone").isJsonNull()) && !jsonObj.get("time_zone").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `time_zone` to be a primitive type in the JSON string but got `%s`", jsonObj.get("time_zone").toString())); } diff --git a/src/main/java/com/rootly/client/model/UserList.java b/src/main/java/com/rootly/client/model/UserList.java index ddba11ec..f38f2bd7 100644 --- a/src/main/java/com/rootly/client/model/UserList.java +++ b/src/main/java/com/rootly/client/model/UserList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserResponseData; @@ -53,7 +54,7 @@ /** * UserList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class UserList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public UserList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { UserList userList = (UserList) o; return Objects.equals(this.data, userList.data) && Objects.equals(this.links, userList.links) && - Objects.equals(this.meta, userList.meta); + Objects.equals(this.meta, userList.meta) && + Objects.equals(this.included, userList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserNotificationRule.java b/src/main/java/com/rootly/client/model/UserNotificationRule.java index b2b5f8b5..2097d1a2 100644 --- a/src/main/java/com/rootly/client/model/UserNotificationRule.java +++ b/src/main/java/com/rootly/client/model/UserNotificationRule.java @@ -51,7 +51,7 @@ /** * UserNotificationRule */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserNotificationRule { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) @@ -103,7 +103,11 @@ public enum EnabledContactTypesEnum { NON_CRITICAL_DEVICE("non_critical_device"), - SLACK("slack"); + SLACK("slack"), + + GOOGLE_CHAT("google_chat"), + + MICROSOFT_TEAMS("microsoft_teams"); private String value; @@ -153,6 +157,63 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nullable private List enabledContactTypes = new ArrayList<>(); + /** + * Type of notification rule (audible or quiet). Audible notifications use sound/vibration to alert users, while quiet notifications are silent. + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + AUDIBLE("audible"), + + QUIET("quiet"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + NotificationTypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "notification_type"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) + @jakarta.annotation.Nullable + private NotificationTypeEnum notificationType; + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nullable @@ -326,6 +387,25 @@ public void setEnabledContactTypes(@jakarta.annotation.Nullable List boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(userId, delay, position, userEmailAddressId, userCallNumberId, userSmsNumberId, userDeviceId, enabledContactTypes, createdAt, updatedAt); + return Objects.hash(userId, delay, position, userEmailAddressId, userCallNumberId, userSmsNumberId, userDeviceId, enabledContactTypes, notificationType, createdAt, updatedAt); } private static int hashCodeNullable(JsonNullable a) { @@ -414,6 +495,7 @@ public String toString() { sb.append(" userSmsNumberId: ").append(toIndentedString(userSmsNumberId)).append("\n"); sb.append(" userDeviceId: ").append(toIndentedString(userDeviceId)).append("\n"); sb.append(" enabledContactTypes: ").append(toIndentedString(enabledContactTypes)).append("\n"); + sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -446,6 +528,7 @@ private String toIndentedString(Object o) { openapiFields.add("user_sms_number_id"); openapiFields.add("user_device_id"); openapiFields.add("enabled_contact_types"); + openapiFields.add("notification_type"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -490,6 +573,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("enabled_contact_types") != null && !jsonObj.get("enabled_contact_types").isJsonNull() && !jsonObj.get("enabled_contact_types").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `enabled_contact_types` to be an array in the JSON string but got `%s`", jsonObj.get("enabled_contact_types").toString())); } + if ((jsonObj.get("notification_type") != null && !jsonObj.get("notification_type").isJsonNull()) && !jsonObj.get("notification_type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `notification_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notification_type").toString())); + } + // validate the optional field `notification_type` + if (jsonObj.get("notification_type") != null && !jsonObj.get("notification_type").isJsonNull()) { + NotificationTypeEnum.validateJsonElement(jsonObj.get("notification_type")); + } if ((jsonObj.get("created_at") != null && !jsonObj.get("created_at").isJsonNull()) && !jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/UserNotificationRuleList.java b/src/main/java/com/rootly/client/model/UserNotificationRuleList.java index 9c4cee38..133358d5 100644 --- a/src/main/java/com/rootly/client/model/UserNotificationRuleList.java +++ b/src/main/java/com/rootly/client/model/UserNotificationRuleList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserNotificationRuleResponseData; @@ -53,7 +54,7 @@ /** * UserNotificationRuleList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserNotificationRuleList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class UserNotificationRuleList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserNotificationRuleList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public UserNotificationRuleList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserNotificationRuleList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { UserNotificationRuleList userNotificationRuleList = (UserNotificationRuleList) o; return Objects.equals(this.data, userNotificationRuleList.data) && Objects.equals(this.links, userNotificationRuleList.links) && - Objects.equals(this.meta, userNotificationRuleList.meta); + Objects.equals(this.meta, userNotificationRuleList.meta) && + Objects.equals(this.included, userNotificationRuleList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserNotificationRuleResponse.java b/src/main/java/com/rootly/client/model/UserNotificationRuleResponse.java index 07012dfb..346e4b8a 100644 --- a/src/main/java/com/rootly/client/model/UserNotificationRuleResponse.java +++ b/src/main/java/com/rootly/client/model/UserNotificationRuleResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserNotificationRuleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * UserNotificationRuleResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserNotificationRuleResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private UserNotificationRuleResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserNotificationRuleResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull UserNotificationRuleResponseData } + public UserNotificationRuleResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserNotificationRuleResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } UserNotificationRuleResponse userNotificationRuleResponse = (UserNotificationRuleResponse) o; - return Objects.equals(this.data, userNotificationRuleResponse.data); + return Objects.equals(this.data, userNotificationRuleResponse.data) && + Objects.equals(this.included, userNotificationRuleResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UserNotificationRuleResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` UserNotificationRuleResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserNotificationRuleResponseData.java b/src/main/java/com/rootly/client/model/UserNotificationRuleResponseData.java index d365d867..69714c86 100644 --- a/src/main/java/com/rootly/client/model/UserNotificationRuleResponseData.java +++ b/src/main/java/com/rootly/client/model/UserNotificationRuleResponseData.java @@ -49,7 +49,7 @@ /** * UserNotificationRuleResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserNotificationRuleResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UserPhoneNumber.java b/src/main/java/com/rootly/client/model/UserPhoneNumber.java index 598be212..80cc794a 100644 --- a/src/main/java/com/rootly/client/model/UserPhoneNumber.java +++ b/src/main/java/com/rootly/client/model/UserPhoneNumber.java @@ -50,7 +50,7 @@ /** * UserPhoneNumber */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserPhoneNumber { public static final String SERIALIZED_NAME_USER_ID = "user_id"; @SerializedName(SERIALIZED_NAME_USER_ID) diff --git a/src/main/java/com/rootly/client/model/UserPhoneNumberList.java b/src/main/java/com/rootly/client/model/UserPhoneNumberList.java index fef5b0d4..2b5953e7 100644 --- a/src/main/java/com/rootly/client/model/UserPhoneNumberList.java +++ b/src/main/java/com/rootly/client/model/UserPhoneNumberList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserPhoneNumberResponseData; @@ -53,7 +54,7 @@ /** * UserPhoneNumberList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserPhoneNumberList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class UserPhoneNumberList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserPhoneNumberList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public UserPhoneNumberList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserPhoneNumberList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { UserPhoneNumberList userPhoneNumberList = (UserPhoneNumberList) o; return Objects.equals(this.data, userPhoneNumberList.data) && Objects.equals(this.links, userPhoneNumberList.links) && - Objects.equals(this.meta, userPhoneNumberList.meta); + Objects.equals(this.meta, userPhoneNumberList.meta) && + Objects.equals(this.included, userPhoneNumberList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserPhoneNumberResponse.java b/src/main/java/com/rootly/client/model/UserPhoneNumberResponse.java index 907a6a22..927c9052 100644 --- a/src/main/java/com/rootly/client/model/UserPhoneNumberResponse.java +++ b/src/main/java/com/rootly/client/model/UserPhoneNumberResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserPhoneNumberResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * UserPhoneNumberResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserPhoneNumberResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private UserPhoneNumberResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserPhoneNumberResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull UserPhoneNumberResponseData data } + public UserPhoneNumberResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserPhoneNumberResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } UserPhoneNumberResponse userPhoneNumberResponse = (UserPhoneNumberResponse) o; - return Objects.equals(this.data, userPhoneNumberResponse.data); + return Objects.equals(this.data, userPhoneNumberResponse.data) && + Objects.equals(this.included, userPhoneNumberResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UserPhoneNumberResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` UserPhoneNumberResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserPhoneNumberResponseData.java b/src/main/java/com/rootly/client/model/UserPhoneNumberResponseData.java index ccc2f8a3..9a91c3c2 100644 --- a/src/main/java/com/rootly/client/model/UserPhoneNumberResponseData.java +++ b/src/main/java/com/rootly/client/model/UserPhoneNumberResponseData.java @@ -49,7 +49,7 @@ /** * UserPhoneNumberResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserPhoneNumberResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/UserRelationships.java b/src/main/java/com/rootly/client/model/UserRelationships.java index 7a5ca01a..57785d9a 100644 --- a/src/main/java/com/rootly/client/model/UserRelationships.java +++ b/src/main/java/com/rootly/client/model/UserRelationships.java @@ -50,7 +50,7 @@ /** * UserRelationships */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserRelationships { public static final String SERIALIZED_NAME_ROLE = "role"; @SerializedName(SERIALIZED_NAME_ROLE) diff --git a/src/main/java/com/rootly/client/model/UserResponse.java b/src/main/java/com/rootly/client/model/UserResponse.java index 2b27cefc..cbcc3855 100644 --- a/src/main/java/com/rootly/client/model/UserResponse.java +++ b/src/main/java/com/rootly/client/model/UserResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * UserResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private UserResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public UserResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull UserResponseData data) { } + public UserResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public UserResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } UserResponse userResponse = (UserResponse) o; - return Objects.equals(this.data, userResponse.data); + return Objects.equals(this.data, userResponse.data) && + Objects.equals(this.included, userResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UserResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` UserResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/UserResponseData.java b/src/main/java/com/rootly/client/model/UserResponseData.java index c5245a61..ef8495f4 100644 --- a/src/main/java/com/rootly/client/model/UserResponseData.java +++ b/src/main/java/com/rootly/client/model/UserResponseData.java @@ -50,7 +50,7 @@ /** * UserResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class UserResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/VerifiedDomain.java b/src/main/java/com/rootly/client/model/VerifiedDomain.java new file mode 100644 index 00000000..3f74796b --- /dev/null +++ b/src/main/java/com/rootly/client/model/VerifiedDomain.java @@ -0,0 +1,668 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * VerifiedDomain + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class VerifiedDomain { + public static final String SERIALIZED_NAME_DOMAIN = "domain"; + @SerializedName(SERIALIZED_NAME_DOMAIN) + @jakarta.annotation.Nonnull + private String domain; + + /** + * Verification status + */ + @JsonAdapter(VerificationStatusEnum.Adapter.class) + public enum VerificationStatusEnum { + PENDING("pending"), + + VERIFIED("verified"), + + FAILING("failing"), + + EXPIRED("expired"); + + private String value; + + VerificationStatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static VerificationStatusEnum fromValue(String value) { + for (VerificationStatusEnum b : VerificationStatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final VerificationStatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public VerificationStatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return VerificationStatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + VerificationStatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_VERIFICATION_STATUS = "verification_status"; + @SerializedName(SERIALIZED_NAME_VERIFICATION_STATUS) + @jakarta.annotation.Nonnull + private VerificationStatusEnum verificationStatus; + + public static final String SERIALIZED_NAME_VERIFICATION_TOKEN = "verification_token"; + @SerializedName(SERIALIZED_NAME_VERIFICATION_TOKEN) + @jakarta.annotation.Nonnull + private String verificationToken; + + public static final String SERIALIZED_NAME_TXT_HOST = "txt_host"; + @SerializedName(SERIALIZED_NAME_TXT_HOST) + @jakarta.annotation.Nonnull + private String txtHost; + + public static final String SERIALIZED_NAME_TXT_VALUE = "txt_value"; + @SerializedName(SERIALIZED_NAME_TXT_VALUE) + @jakarta.annotation.Nonnull + private String txtValue; + + public static final String SERIALIZED_NAME_VERIFIED_AT = "verified_at"; + @SerializedName(SERIALIZED_NAME_VERIFIED_AT) + @jakarta.annotation.Nullable + private String verifiedAt; + + public static final String SERIALIZED_NAME_LAST_CHECKED_AT = "last_checked_at"; + @SerializedName(SERIALIZED_NAME_LAST_CHECKED_AT) + @jakarta.annotation.Nullable + private String lastCheckedAt; + + public static final String SERIALIZED_NAME_LAST_CHECK_PASSED_AT = "last_check_passed_at"; + @SerializedName(SERIALIZED_NAME_LAST_CHECK_PASSED_AT) + @jakarta.annotation.Nullable + private String lastCheckPassedAt; + + public static final String SERIALIZED_NAME_CHECK_FAILURES_COUNT = "check_failures_count"; + @SerializedName(SERIALIZED_NAME_CHECK_FAILURES_COUNT) + @jakarta.annotation.Nullable + private Integer checkFailuresCount; + + /** + * How the domain was added + */ + @JsonAdapter(SourceEnum.Adapter.class) + public enum SourceEnum { + MANUAL("manual"), + + MIGRATION("migration"), + + OAUTH_AUTO("oauth_auto"); + + private String value; + + SourceEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SourceEnum fromValue(String value) { + for (SourceEnum b : SourceEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SourceEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SourceEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return SourceEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + SourceEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SOURCE = "source"; + @SerializedName(SERIALIZED_NAME_SOURCE) + @jakarta.annotation.Nullable + private SourceEnum source; + + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + @jakarta.annotation.Nonnull + private String createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updated_at"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @jakarta.annotation.Nonnull + private String updatedAt; + + public VerifiedDomain() { + } + + public VerifiedDomain( + String txtHost, + String txtValue + ) { + this(); + this.txtHost = txtHost; + this.txtValue = txtValue; + } + + public VerifiedDomain domain(@jakarta.annotation.Nonnull String domain) { + this.domain = domain; + return this; + } + + /** + * The domain name + * @return domain + */ + @jakarta.annotation.Nonnull + public String getDomain() { + return domain; + } + + public void setDomain(@jakarta.annotation.Nonnull String domain) { + this.domain = domain; + } + + + public VerifiedDomain verificationStatus(@jakarta.annotation.Nonnull VerificationStatusEnum verificationStatus) { + this.verificationStatus = verificationStatus; + return this; + } + + /** + * Verification status + * @return verificationStatus + */ + @jakarta.annotation.Nonnull + public VerificationStatusEnum getVerificationStatus() { + return verificationStatus; + } + + public void setVerificationStatus(@jakarta.annotation.Nonnull VerificationStatusEnum verificationStatus) { + this.verificationStatus = verificationStatus; + } + + + public VerifiedDomain verificationToken(@jakarta.annotation.Nonnull String verificationToken) { + this.verificationToken = verificationToken; + return this; + } + + /** + * The verification token + * @return verificationToken + */ + @jakarta.annotation.Nonnull + public String getVerificationToken() { + return verificationToken; + } + + public void setVerificationToken(@jakarta.annotation.Nonnull String verificationToken) { + this.verificationToken = verificationToken; + } + + + /** + * The TXT record hostname to add + * @return txtHost + */ + @jakarta.annotation.Nonnull + public String getTxtHost() { + return txtHost; + } + + + + /** + * The TXT record value to add + * @return txtValue + */ + @jakarta.annotation.Nonnull + public String getTxtValue() { + return txtValue; + } + + + + public VerifiedDomain verifiedAt(@jakarta.annotation.Nullable String verifiedAt) { + this.verifiedAt = verifiedAt; + return this; + } + + /** + * When the domain was first verified + * @return verifiedAt + */ + @jakarta.annotation.Nullable + public String getVerifiedAt() { + return verifiedAt; + } + + public void setVerifiedAt(@jakarta.annotation.Nullable String verifiedAt) { + this.verifiedAt = verifiedAt; + } + + + public VerifiedDomain lastCheckedAt(@jakarta.annotation.Nullable String lastCheckedAt) { + this.lastCheckedAt = lastCheckedAt; + return this; + } + + /** + * When the domain was last checked + * @return lastCheckedAt + */ + @jakarta.annotation.Nullable + public String getLastCheckedAt() { + return lastCheckedAt; + } + + public void setLastCheckedAt(@jakarta.annotation.Nullable String lastCheckedAt) { + this.lastCheckedAt = lastCheckedAt; + } + + + public VerifiedDomain lastCheckPassedAt(@jakarta.annotation.Nullable String lastCheckPassedAt) { + this.lastCheckPassedAt = lastCheckPassedAt; + return this; + } + + /** + * When the TXT record was last found + * @return lastCheckPassedAt + */ + @jakarta.annotation.Nullable + public String getLastCheckPassedAt() { + return lastCheckPassedAt; + } + + public void setLastCheckPassedAt(@jakarta.annotation.Nullable String lastCheckPassedAt) { + this.lastCheckPassedAt = lastCheckPassedAt; + } + + + public VerifiedDomain checkFailuresCount(@jakarta.annotation.Nullable Integer checkFailuresCount) { + this.checkFailuresCount = checkFailuresCount; + return this; + } + + /** + * Number of consecutive check failures + * @return checkFailuresCount + */ + @jakarta.annotation.Nullable + public Integer getCheckFailuresCount() { + return checkFailuresCount; + } + + public void setCheckFailuresCount(@jakarta.annotation.Nullable Integer checkFailuresCount) { + this.checkFailuresCount = checkFailuresCount; + } + + + public VerifiedDomain source(@jakarta.annotation.Nullable SourceEnum source) { + this.source = source; + return this; + } + + /** + * How the domain was added + * @return source + */ + @jakarta.annotation.Nullable + public SourceEnum getSource() { + return source; + } + + public void setSource(@jakarta.annotation.Nullable SourceEnum source) { + this.source = source; + } + + + public VerifiedDomain createdAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Date of creation + * @return createdAt + */ + @jakarta.annotation.Nonnull + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(@jakarta.annotation.Nonnull String createdAt) { + this.createdAt = createdAt; + } + + + public VerifiedDomain updatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Date of last update + * @return updatedAt + */ + @jakarta.annotation.Nonnull + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(@jakarta.annotation.Nonnull String updatedAt) { + this.updatedAt = updatedAt; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VerifiedDomain verifiedDomain = (VerifiedDomain) o; + return Objects.equals(this.domain, verifiedDomain.domain) && + Objects.equals(this.verificationStatus, verifiedDomain.verificationStatus) && + Objects.equals(this.verificationToken, verifiedDomain.verificationToken) && + Objects.equals(this.txtHost, verifiedDomain.txtHost) && + Objects.equals(this.txtValue, verifiedDomain.txtValue) && + Objects.equals(this.verifiedAt, verifiedDomain.verifiedAt) && + Objects.equals(this.lastCheckedAt, verifiedDomain.lastCheckedAt) && + Objects.equals(this.lastCheckPassedAt, verifiedDomain.lastCheckPassedAt) && + Objects.equals(this.checkFailuresCount, verifiedDomain.checkFailuresCount) && + Objects.equals(this.source, verifiedDomain.source) && + Objects.equals(this.createdAt, verifiedDomain.createdAt) && + Objects.equals(this.updatedAt, verifiedDomain.updatedAt); + } + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + } + + @Override + public int hashCode() { + return Objects.hash(domain, verificationStatus, verificationToken, txtHost, txtValue, verifiedAt, lastCheckedAt, lastCheckPassedAt, checkFailuresCount, source, createdAt, updatedAt); + } + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; + } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VerifiedDomain {\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" verificationStatus: ").append(toIndentedString(verificationStatus)).append("\n"); + sb.append(" verificationToken: ").append(toIndentedString(verificationToken)).append("\n"); + sb.append(" txtHost: ").append(toIndentedString(txtHost)).append("\n"); + sb.append(" txtValue: ").append(toIndentedString(txtValue)).append("\n"); + sb.append(" verifiedAt: ").append(toIndentedString(verifiedAt)).append("\n"); + sb.append(" lastCheckedAt: ").append(toIndentedString(lastCheckedAt)).append("\n"); + sb.append(" lastCheckPassedAt: ").append(toIndentedString(lastCheckPassedAt)).append("\n"); + sb.append(" checkFailuresCount: ").append(toIndentedString(checkFailuresCount)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("domain"); + openapiFields.add("verification_status"); + openapiFields.add("verification_token"); + openapiFields.add("txt_host"); + openapiFields.add("txt_value"); + openapiFields.add("verified_at"); + openapiFields.add("last_checked_at"); + openapiFields.add("last_check_passed_at"); + openapiFields.add("check_failures_count"); + openapiFields.add("source"); + openapiFields.add("created_at"); + openapiFields.add("updated_at"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("domain"); + openapiRequiredFields.add("verification_status"); + openapiRequiredFields.add("verification_token"); + openapiRequiredFields.add("txt_host"); + openapiRequiredFields.add("txt_value"); + openapiRequiredFields.add("created_at"); + openapiRequiredFields.add("updated_at"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VerifiedDomain + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VerifiedDomain.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VerifiedDomain is not found in the empty JSON string", VerifiedDomain.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VerifiedDomain.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VerifiedDomain` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : VerifiedDomain.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("domain").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `domain` to be a primitive type in the JSON string but got `%s`", jsonObj.get("domain").toString())); + } + if (!jsonObj.get("verification_status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `verification_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("verification_status").toString())); + } + // validate the required field `verification_status` + VerificationStatusEnum.validateJsonElement(jsonObj.get("verification_status")); + if (!jsonObj.get("verification_token").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `verification_token` to be a primitive type in the JSON string but got `%s`", jsonObj.get("verification_token").toString())); + } + if (!jsonObj.get("txt_host").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `txt_host` to be a primitive type in the JSON string but got `%s`", jsonObj.get("txt_host").toString())); + } + if (!jsonObj.get("txt_value").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `txt_value` to be a primitive type in the JSON string but got `%s`", jsonObj.get("txt_value").toString())); + } + if ((jsonObj.get("verified_at") != null && !jsonObj.get("verified_at").isJsonNull()) && !jsonObj.get("verified_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `verified_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("verified_at").toString())); + } + if ((jsonObj.get("last_checked_at") != null && !jsonObj.get("last_checked_at").isJsonNull()) && !jsonObj.get("last_checked_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `last_checked_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("last_checked_at").toString())); + } + if ((jsonObj.get("last_check_passed_at") != null && !jsonObj.get("last_check_passed_at").isJsonNull()) && !jsonObj.get("last_check_passed_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `last_check_passed_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("last_check_passed_at").toString())); + } + if ((jsonObj.get("source") != null && !jsonObj.get("source").isJsonNull()) && !jsonObj.get("source").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `source` to be a primitive type in the JSON string but got `%s`", jsonObj.get("source").toString())); + } + // validate the optional field `source` + if (jsonObj.get("source") != null && !jsonObj.get("source").isJsonNull()) { + SourceEnum.validateJsonElement(jsonObj.get("source")); + } + if (!jsonObj.get("created_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); + } + if (!jsonObj.get("updated_at").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `updated_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("updated_at").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VerifiedDomain.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VerifiedDomain' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VerifiedDomain.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VerifiedDomain value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VerifiedDomain read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VerifiedDomain given an JSON string + * + * @param jsonString JSON string + * @return An instance of VerifiedDomain + * @throws IOException if the JSON string is invalid with respect to VerifiedDomain + */ + public static VerifiedDomain fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VerifiedDomain.class); + } + + /** + * Convert an instance of VerifiedDomain to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/VerifiedDomainList.java b/src/main/java/com/rootly/client/model/VerifiedDomainList.java new file mode 100644 index 00000000..01544e98 --- /dev/null +++ b/src/main/java/com/rootly/client/model/VerifiedDomainList.java @@ -0,0 +1,344 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.VerifiedDomainResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * VerifiedDomainList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class VerifiedDomainList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nonnull + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nonnull + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public VerifiedDomainList() { + } + + public VerifiedDomainList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public VerifiedDomainList addDataItem(VerifiedDomainResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public VerifiedDomainList links(@jakarta.annotation.Nonnull Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nonnull + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nonnull Links links) { + this.links = links; + } + + + public VerifiedDomainList meta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nonnull + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + } + + + public VerifiedDomainList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public VerifiedDomainList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VerifiedDomainList verifiedDomainList = (VerifiedDomainList) o; + return Objects.equals(this.data, verifiedDomainList.data) && + Objects.equals(this.links, verifiedDomainList.links) && + Objects.equals(this.meta, verifiedDomainList.meta) && + Objects.equals(this.included, verifiedDomainList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VerifiedDomainList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + openapiRequiredFields.add("links"); + openapiRequiredFields.add("meta"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VerifiedDomainList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VerifiedDomainList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VerifiedDomainList is not found in the empty JSON string", VerifiedDomainList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VerifiedDomainList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VerifiedDomainList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : VerifiedDomainList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + VerifiedDomainResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the required field `links` + Links.validateJsonElement(jsonObj.get("links")); + // validate the required field `meta` + Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VerifiedDomainList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VerifiedDomainList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VerifiedDomainList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VerifiedDomainList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VerifiedDomainList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VerifiedDomainList given an JSON string + * + * @param jsonString JSON string + * @return An instance of VerifiedDomainList + * @throws IOException if the JSON string is invalid with respect to VerifiedDomainList + */ + public static VerifiedDomainList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VerifiedDomainList.class); + } + + /** + * Convert an instance of VerifiedDomainList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/VerifiedDomainResponse.java b/src/main/java/com/rootly/client/model/VerifiedDomainResponse.java new file mode 100644 index 00000000..b89a784c --- /dev/null +++ b/src/main/java/com/rootly/client/model/VerifiedDomainResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.VerifiedDomainResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * VerifiedDomainResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class VerifiedDomainResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private VerifiedDomainResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public VerifiedDomainResponse() { + } + + public VerifiedDomainResponse data(@jakarta.annotation.Nonnull VerifiedDomainResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public VerifiedDomainResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull VerifiedDomainResponseData data) { + this.data = data; + } + + + public VerifiedDomainResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public VerifiedDomainResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VerifiedDomainResponse verifiedDomainResponse = (VerifiedDomainResponse) o; + return Objects.equals(this.data, verifiedDomainResponse.data) && + Objects.equals(this.included, verifiedDomainResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VerifiedDomainResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VerifiedDomainResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VerifiedDomainResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VerifiedDomainResponse is not found in the empty JSON string", VerifiedDomainResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VerifiedDomainResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VerifiedDomainResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : VerifiedDomainResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + VerifiedDomainResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VerifiedDomainResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VerifiedDomainResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VerifiedDomainResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VerifiedDomainResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VerifiedDomainResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VerifiedDomainResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of VerifiedDomainResponse + * @throws IOException if the JSON string is invalid with respect to VerifiedDomainResponse + */ + public static VerifiedDomainResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VerifiedDomainResponse.class); + } + + /** + * Convert an instance of VerifiedDomainResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/VerifiedDomainResponseData.java b/src/main/java/com/rootly/client/model/VerifiedDomainResponseData.java new file mode 100644 index 00000000..0c7e5e57 --- /dev/null +++ b/src/main/java/com/rootly/client/model/VerifiedDomainResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.VerifiedDomain; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * VerifiedDomainResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class VerifiedDomainResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + VERIFIED_DOMAINS("verified_domains"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private VerifiedDomain attributes; + + public VerifiedDomainResponseData() { + } + + public VerifiedDomainResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the verified domain + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public VerifiedDomainResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public VerifiedDomainResponseData attributes(@jakarta.annotation.Nonnull VerifiedDomain attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public VerifiedDomain getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull VerifiedDomain attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VerifiedDomainResponseData verifiedDomainResponseData = (VerifiedDomainResponseData) o; + return Objects.equals(this.id, verifiedDomainResponseData.id) && + Objects.equals(this.type, verifiedDomainResponseData.type) && + Objects.equals(this.attributes, verifiedDomainResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VerifiedDomainResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VerifiedDomainResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VerifiedDomainResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in VerifiedDomainResponseData is not found in the empty JSON string", VerifiedDomainResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VerifiedDomainResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `VerifiedDomainResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : VerifiedDomainResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + VerifiedDomain.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VerifiedDomainResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VerifiedDomainResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(VerifiedDomainResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, VerifiedDomainResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VerifiedDomainResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of VerifiedDomainResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of VerifiedDomainResponseData + * @throws IOException if the JSON string is invalid with respect to VerifiedDomainResponseData + */ + public static VerifiedDomainResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VerifiedDomainResponseData.class); + } + + /** + * Convert an instance of VerifiedDomainResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/VerifyPhoneNumberRequest.java b/src/main/java/com/rootly/client/model/VerifyPhoneNumberRequest.java index 6f10c3f7..9ec2819c 100644 --- a/src/main/java/com/rootly/client/model/VerifyPhoneNumberRequest.java +++ b/src/main/java/com/rootly/client/model/VerifyPhoneNumberRequest.java @@ -48,7 +48,7 @@ /** * VerifyPhoneNumberRequest */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class VerifyPhoneNumberRequest { public static final String SERIALIZED_NAME_CODE = "code"; @SerializedName(SERIALIZED_NAME_CODE) diff --git a/src/main/java/com/rootly/client/model/WebhooksDelivery.java b/src/main/java/com/rootly/client/model/WebhooksDelivery.java index 66c6173d..1076efb0 100644 --- a/src/main/java/com/rootly/client/model/WebhooksDelivery.java +++ b/src/main/java/com/rootly/client/model/WebhooksDelivery.java @@ -48,7 +48,7 @@ /** * WebhooksDelivery */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksDelivery { public static final String SERIALIZED_NAME_ENDPOINT_ID = "endpoint_id"; @SerializedName(SERIALIZED_NAME_ENDPOINT_ID) @@ -60,6 +60,70 @@ public class WebhooksDelivery { @jakarta.annotation.Nonnull private String payload; + /** + * Delivery status + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + PENDING("pending"), + + SUCCESS("success"), + + FAILED("failed"); + + private String value; + + StatusEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String value) { + for (StatusEnum b : StatusEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StatusEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StatusEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @jakarta.annotation.Nonnull + private StatusEnum status; + + public static final String SERIALIZED_NAME_RESPONSE_STATUS = "response_status"; + @SerializedName(SERIALIZED_NAME_RESPONSE_STATUS) + @jakarta.annotation.Nullable + private Integer responseStatus; + public static final String SERIALIZED_NAME_DELIVERED_AT = "delivered_at"; @SerializedName(SERIALIZED_NAME_DELIVERED_AT) @jakarta.annotation.Nullable @@ -116,6 +180,44 @@ public void setPayload(@jakarta.annotation.Nonnull String payload) { } + public WebhooksDelivery status(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + return this; + } + + /** + * Delivery status + * @return status + */ + @jakarta.annotation.Nonnull + public StatusEnum getStatus() { + return status; + } + + public void setStatus(@jakarta.annotation.Nonnull StatusEnum status) { + this.status = status; + } + + + public WebhooksDelivery responseStatus(@jakarta.annotation.Nullable Integer responseStatus) { + this.responseStatus = responseStatus; + return this; + } + + /** + * HTTP status code recorded for the delivery attempt. It is null before the first attempt. For SSRF and transport failures, Rootly generates this code because no destination response was received. + * @return responseStatus + */ + @jakarta.annotation.Nullable + public Integer getResponseStatus() { + return responseStatus; + } + + public void setResponseStatus(@jakarta.annotation.Nullable Integer responseStatus) { + this.responseStatus = responseStatus; + } + + public WebhooksDelivery deliveredAt(@jakarta.annotation.Nullable String deliveredAt) { this.deliveredAt = deliveredAt; return this; @@ -185,6 +287,8 @@ public boolean equals(Object o) { WebhooksDelivery webhooksDelivery = (WebhooksDelivery) o; return Objects.equals(this.endpointId, webhooksDelivery.endpointId) && Objects.equals(this.payload, webhooksDelivery.payload) && + Objects.equals(this.status, webhooksDelivery.status) && + Objects.equals(this.responseStatus, webhooksDelivery.responseStatus) && Objects.equals(this.deliveredAt, webhooksDelivery.deliveredAt) && Objects.equals(this.createdAt, webhooksDelivery.createdAt) && Objects.equals(this.updatedAt, webhooksDelivery.updatedAt); @@ -192,7 +296,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(endpointId, payload, deliveredAt, createdAt, updatedAt); + return Objects.hash(endpointId, payload, status, responseStatus, deliveredAt, createdAt, updatedAt); } @Override @@ -201,6 +305,8 @@ public String toString() { sb.append("class WebhooksDelivery {\n"); sb.append(" endpointId: ").append(toIndentedString(endpointId)).append("\n"); sb.append(" payload: ").append(toIndentedString(payload)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" responseStatus: ").append(toIndentedString(responseStatus)).append("\n"); sb.append(" deliveredAt: ").append(toIndentedString(deliveredAt)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); @@ -228,6 +334,8 @@ private String toIndentedString(Object o) { openapiFields = new HashSet(); openapiFields.add("endpoint_id"); openapiFields.add("payload"); + openapiFields.add("status"); + openapiFields.add("response_status"); openapiFields.add("delivered_at"); openapiFields.add("created_at"); openapiFields.add("updated_at"); @@ -236,6 +344,8 @@ private String toIndentedString(Object o) { openapiRequiredFields = new HashSet(); openapiRequiredFields.add("endpoint_id"); openapiRequiredFields.add("payload"); + openapiRequiredFields.add("status"); + openapiRequiredFields.add("response_status"); openapiRequiredFields.add("delivered_at"); openapiRequiredFields.add("created_at"); openapiRequiredFields.add("updated_at"); @@ -275,6 +385,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("payload").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `payload` to be a primitive type in the JSON string but got `%s`", jsonObj.get("payload").toString())); } + if (!jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the required field `status` + StatusEnum.validateJsonElement(jsonObj.get("status")); if ((jsonObj.get("delivered_at") != null && !jsonObj.get("delivered_at").isJsonNull()) && !jsonObj.get("delivered_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `delivered_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("delivered_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/WebhooksDeliveryList.java b/src/main/java/com/rootly/client/model/WebhooksDeliveryList.java index 16cec7c2..5b169f09 100644 --- a/src/main/java/com/rootly/client/model/WebhooksDeliveryList.java +++ b/src/main/java/com/rootly/client/model/WebhooksDeliveryList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WebhooksDeliveryResponseData; @@ -53,7 +54,7 @@ /** * WebhooksDeliveryList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksDeliveryList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WebhooksDeliveryList { @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WebhooksDeliveryList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nullable Meta meta) { } + public WebhooksDeliveryList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WebhooksDeliveryList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WebhooksDeliveryList webhooksDeliveryList = (WebhooksDeliveryList) o; return Objects.equals(this.data, webhooksDeliveryList.data) && Objects.equals(this.links, webhooksDeliveryList.links) && - Objects.equals(this.meta, webhooksDeliveryList.meta); + Objects.equals(this.meta, webhooksDeliveryList.meta) && + Objects.equals(this.included, webhooksDeliveryList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WebhooksDeliveryResponse.java b/src/main/java/com/rootly/client/model/WebhooksDeliveryResponse.java index c0a6fae3..799e6cc2 100644 --- a/src/main/java/com/rootly/client/model/WebhooksDeliveryResponse.java +++ b/src/main/java/com/rootly/client/model/WebhooksDeliveryResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WebhooksDeliveryResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WebhooksDeliveryResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksDeliveryResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WebhooksDeliveryResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WebhooksDeliveryResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WebhooksDeliveryResponseData dat } + public WebhooksDeliveryResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WebhooksDeliveryResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WebhooksDeliveryResponse webhooksDeliveryResponse = (WebhooksDeliveryResponse) o; - return Objects.equals(this.data, webhooksDeliveryResponse.data); + return Objects.equals(this.data, webhooksDeliveryResponse.data) && + Objects.equals(this.included, webhooksDeliveryResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WebhooksDeliveryResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WebhooksDeliveryResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WebhooksDeliveryResponseData.java b/src/main/java/com/rootly/client/model/WebhooksDeliveryResponseData.java index 2bff7f3d..9ce8c1c9 100644 --- a/src/main/java/com/rootly/client/model/WebhooksDeliveryResponseData.java +++ b/src/main/java/com/rootly/client/model/WebhooksDeliveryResponseData.java @@ -49,7 +49,7 @@ /** * WebhooksDeliveryResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksDeliveryResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/WebhooksEndpoint.java b/src/main/java/com/rootly/client/model/WebhooksEndpoint.java index 9dd64bef..3ec71042 100644 --- a/src/main/java/com/rootly/client/model/WebhooksEndpoint.java +++ b/src/main/java/com/rootly/client/model/WebhooksEndpoint.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWebhooksEndpointDataAttributesCustomHeadersInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -50,7 +51,7 @@ /** * WebhooksEndpoint */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksEndpoint { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -59,7 +60,7 @@ public class WebhooksEndpoint { public static final String SERIALIZED_NAME_SLUG = "slug"; @SerializedName(SERIALIZED_NAME_SLUG) - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable private String slug; public static final String SERIALIZED_NAME_URL = "url"; @@ -118,8 +119,12 @@ public enum EventTypesEnum { ALERT_CREATED("alert.created"), + ALERT_UPDATED("alert.updated"), + PULSE_CREATED("pulse.created"), + SHIFT_STARTED("shift.started"), + GENIUS_WORKFLOW_RUN_QUEUED("genius_workflow_run.queued"), GENIUS_WORKFLOW_RUN_STARTED("genius_workflow_run.started"), @@ -128,7 +133,9 @@ public enum EventTypesEnum { GENIUS_WORKFLOW_RUN_FAILED("genius_workflow_run.failed"), - GENIUS_WORKFLOW_RUN_CANCELED("genius_workflow_run.canceled"); + GENIUS_WORKFLOW_RUN_CANCELED("genius_workflow_run.canceled"), + + AUDIT_LOG_CREATED("audit_log.created"); private String value; @@ -188,6 +195,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private Boolean enabled; + public static final String SERIALIZED_NAME_CUSTOM_HEADERS = "custom_headers"; + @SerializedName(SERIALIZED_NAME_CUSTOM_HEADERS) + @jakarta.annotation.Nullable + private List customHeaders = new ArrayList<>(); + public static final String SERIALIZED_NAME_CREATED_AT = "created_at"; @SerializedName(SERIALIZED_NAME_CREATED_AT) @jakarta.annotation.Nonnull @@ -201,6 +213,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public WebhooksEndpoint() { } + public WebhooksEndpoint( + String slug + ) { + this(); + this.slug = slug; + } + public WebhooksEndpoint name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -220,23 +239,15 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public WebhooksEndpoint slug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - return this; - } - /** * The slug of the endpoint * @return slug */ - @jakarta.annotation.Nonnull + @jakarta.annotation.Nullable public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nonnull String slug) { - this.slug = slug; - } public WebhooksEndpoint url(@jakarta.annotation.Nonnull String url) { @@ -323,6 +334,33 @@ public void setEnabled(@jakarta.annotation.Nonnull Boolean enabled) { } + public WebhooksEndpoint customHeaders(@jakarta.annotation.Nullable List customHeaders) { + this.customHeaders = customHeaders; + return this; + } + + public WebhooksEndpoint addCustomHeadersItem(NewWebhooksEndpointDataAttributesCustomHeadersInner customHeadersItem) { + if (this.customHeaders == null) { + this.customHeaders = new ArrayList<>(); + } + this.customHeaders.add(customHeadersItem); + return this; + } + + /** + * Custom HTTP headers sent with each delivery. Max 10. Reserved names (Content-Type, X-Rootly-Signature, Host, etc.) are rejected. + * @return customHeaders + */ + @jakarta.annotation.Nullable + public List getCustomHeaders() { + return customHeaders; + } + + public void setCustomHeaders(@jakarta.annotation.Nullable List customHeaders) { + this.customHeaders = customHeaders; + } + + public WebhooksEndpoint createdAt(@jakarta.annotation.Nonnull String createdAt) { this.createdAt = createdAt; return this; @@ -377,13 +415,14 @@ public boolean equals(Object o) { Objects.equals(this.eventTypes, webhooksEndpoint.eventTypes) && Objects.equals(this.secret, webhooksEndpoint.secret) && Objects.equals(this.enabled, webhooksEndpoint.enabled) && + Objects.equals(this.customHeaders, webhooksEndpoint.customHeaders) && Objects.equals(this.createdAt, webhooksEndpoint.createdAt) && Objects.equals(this.updatedAt, webhooksEndpoint.updatedAt); } @Override public int hashCode() { - return Objects.hash(name, slug, url, eventTypes, secret, enabled, createdAt, updatedAt); + return Objects.hash(name, slug, url, eventTypes, secret, enabled, customHeaders, createdAt, updatedAt); } @Override @@ -396,6 +435,7 @@ public String toString() { sb.append(" eventTypes: ").append(toIndentedString(eventTypes)).append("\n"); sb.append(" secret: ").append(toIndentedString(secret)).append("\n"); sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" customHeaders: ").append(toIndentedString(customHeaders)).append("\n"); sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); sb.append("}"); @@ -426,13 +466,13 @@ private String toIndentedString(Object o) { openapiFields.add("event_types"); openapiFields.add("secret"); openapiFields.add("enabled"); + openapiFields.add("custom_headers"); openapiFields.add("created_at"); openapiFields.add("updated_at"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("name"); - openapiRequiredFields.add("slug"); openapiRequiredFields.add("url"); openapiRequiredFields.add("event_types"); openapiRequiredFields.add("secret"); @@ -472,7 +512,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); } - if (!jsonObj.get("slug").isJsonPrimitive()) { + if ((jsonObj.get("slug") != null && !jsonObj.get("slug").isJsonNull()) && !jsonObj.get("slug").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `slug` to be a primitive type in the JSON string but got `%s`", jsonObj.get("slug").toString())); } if (!jsonObj.get("url").isJsonPrimitive()) { @@ -487,6 +527,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (!jsonObj.get("secret").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `secret` to be a primitive type in the JSON string but got `%s`", jsonObj.get("secret").toString())); } + if (jsonObj.get("custom_headers") != null && !jsonObj.get("custom_headers").isJsonNull()) { + JsonArray jsonArraycustomHeaders = jsonObj.getAsJsonArray("custom_headers"); + if (jsonArraycustomHeaders != null) { + // ensure the json data is an array + if (!jsonObj.get("custom_headers").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `custom_headers` to be an array in the JSON string but got `%s`", jsonObj.get("custom_headers").toString())); + } + + // validate the optional field `custom_headers` (array) + for (int i = 0; i < jsonArraycustomHeaders.size(); i++) { + NewWebhooksEndpointDataAttributesCustomHeadersInner.validateJsonElement(jsonArraycustomHeaders.get(i)); + }; + } + } if (!jsonObj.get("created_at").isJsonPrimitive()) { throw new IllegalArgumentException(String.format("Expected the field `created_at` to be a primitive type in the JSON string but got `%s`", jsonObj.get("created_at").toString())); } diff --git a/src/main/java/com/rootly/client/model/WebhooksEndpointList.java b/src/main/java/com/rootly/client/model/WebhooksEndpointList.java index 58cb4a86..68cdf2ab 100644 --- a/src/main/java/com/rootly/client/model/WebhooksEndpointList.java +++ b/src/main/java/com/rootly/client/model/WebhooksEndpointList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WebhooksEndpointResponseData; @@ -53,7 +54,7 @@ /** * WebhooksEndpointList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksEndpointList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WebhooksEndpointList { @jakarta.annotation.Nullable private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WebhooksEndpointList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nullable Meta meta) { } + public WebhooksEndpointList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WebhooksEndpointList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WebhooksEndpointList webhooksEndpointList = (WebhooksEndpointList) o; return Objects.equals(this.data, webhooksEndpointList.data) && Objects.equals(this.links, webhooksEndpointList.links) && - Objects.equals(this.meta, webhooksEndpointList.meta); + Objects.equals(this.meta, webhooksEndpointList.meta) && + Objects.equals(this.included, webhooksEndpointList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -242,6 +278,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("meta") != null && !jsonObj.get("meta").isJsonNull()) { Meta.validateJsonElement(jsonObj.get("meta")); } + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WebhooksEndpointResponse.java b/src/main/java/com/rootly/client/model/WebhooksEndpointResponse.java index 2a95a9b3..11393f43 100644 --- a/src/main/java/com/rootly/client/model/WebhooksEndpointResponse.java +++ b/src/main/java/com/rootly/client/model/WebhooksEndpointResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WebhooksEndpointResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WebhooksEndpointResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksEndpointResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WebhooksEndpointResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WebhooksEndpointResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WebhooksEndpointResponseData dat } + public WebhooksEndpointResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WebhooksEndpointResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WebhooksEndpointResponse webhooksEndpointResponse = (WebhooksEndpointResponse) o; - return Objects.equals(this.data, webhooksEndpointResponse.data); + return Objects.equals(this.data, webhooksEndpointResponse.data) && + Objects.equals(this.included, webhooksEndpointResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WebhooksEndpointResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WebhooksEndpointResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WebhooksEndpointResponseData.java b/src/main/java/com/rootly/client/model/WebhooksEndpointResponseData.java index ee3c0932..0ea43c1f 100644 --- a/src/main/java/com/rootly/client/model/WebhooksEndpointResponseData.java +++ b/src/main/java/com/rootly/client/model/WebhooksEndpointResponseData.java @@ -49,7 +49,7 @@ /** * WebhooksEndpointResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WebhooksEndpointResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/Workflow.java b/src/main/java/com/rootly/client/model/Workflow.java index bb6d0614..d7263424 100644 --- a/src/main/java/com/rootly/client/model/Workflow.java +++ b/src/main/java/com/rootly/client/model/Workflow.java @@ -52,7 +52,7 @@ /** * Workflow */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class Workflow { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -254,6 +254,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public Workflow() { } + public Workflow( + String slug + ) { + this(); + this.slug = slug; + } + public Workflow name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -273,11 +280,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public Workflow slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the workflow * @return slug @@ -287,9 +289,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public Workflow description(@jakarta.annotation.Nullable String description) { diff --git a/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldCondition.java b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldCondition.java new file mode 100644 index 00000000..a6b2a45e --- /dev/null +++ b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldCondition.java @@ -0,0 +1,745 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * WorkflowActionItemFormFieldCondition + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class WorkflowActionItemFormFieldCondition { + public static final String SERIALIZED_NAME_WORKFLOW_ID = "workflow_id"; + @SerializedName(SERIALIZED_NAME_WORKFLOW_ID) + @jakarta.annotation.Nonnull + private String workflowId; + + public static final String SERIALIZED_NAME_FORM_FIELD_ID = "form_field_id"; + @SerializedName(SERIALIZED_NAME_FORM_FIELD_ID) + @jakarta.annotation.Nonnull + private String formFieldId; + + /** + * The trigger condition + */ + @JsonAdapter(ActionItemConditionEnum.Adapter.class) + public enum ActionItemConditionEnum { + IS("IS"), + + IS_NOT("IS NOT"), + + ANY("ANY"), + + CONTAINS("CONTAINS"), + + CONTAINS_ALL("CONTAINS_ALL"), + + CONTAINS_NONE("CONTAINS_NONE"), + + NONE("NONE"), + + SET("SET"), + + UNSET("UNSET"); + + private String value; + + ActionItemConditionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ActionItemConditionEnum fromValue(String value) { + for (ActionItemConditionEnum b : ActionItemConditionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ActionItemConditionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ActionItemConditionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ActionItemConditionEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ActionItemConditionEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_ACTION_ITEM_CONDITION = "action_item_condition"; + @SerializedName(SERIALIZED_NAME_ACTION_ITEM_CONDITION) + @jakarta.annotation.Nonnull + private ActionItemConditionEnum actionItemCondition = ActionItemConditionEnum.ANY; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @jakarta.annotation.Nullable + private List values = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS = "selected_catalog_entity_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CATALOG_ENTITY_IDS) + @jakarta.annotation.Nonnull + private List selectedCatalogEntityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS = "selected_functionality_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_FUNCTIONALITY_IDS) + @jakarta.annotation.Nullable + private List selectedFunctionalityIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_GROUP_IDS = "selected_group_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_GROUP_IDS) + @jakarta.annotation.Nullable + private List selectedGroupIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_OPTION_IDS = "selected_option_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_OPTION_IDS) + @jakarta.annotation.Nonnull + private List selectedOptionIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_SERVICE_IDS = "selected_service_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_SERVICE_IDS) + @jakarta.annotation.Nullable + private List selectedServiceIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_USER_IDS = "selected_user_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_USER_IDS) + @jakarta.annotation.Nonnull + private List selectedUserIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + + public WorkflowActionItemFormFieldCondition() { + } + + public WorkflowActionItemFormFieldCondition workflowId(@jakarta.annotation.Nonnull String workflowId) { + this.workflowId = workflowId; + return this; + } + + /** + * The workflow for this condition + * @return workflowId + */ + @jakarta.annotation.Nonnull + public String getWorkflowId() { + return workflowId; + } + + public void setWorkflowId(@jakarta.annotation.Nonnull String workflowId) { + this.workflowId = workflowId; + } + + + public WorkflowActionItemFormFieldCondition formFieldId(@jakarta.annotation.Nonnull String formFieldId) { + this.formFieldId = formFieldId; + return this; + } + + /** + * The custom field for this condition + * @return formFieldId + */ + @jakarta.annotation.Nonnull + public String getFormFieldId() { + return formFieldId; + } + + public void setFormFieldId(@jakarta.annotation.Nonnull String formFieldId) { + this.formFieldId = formFieldId; + } + + + public WorkflowActionItemFormFieldCondition actionItemCondition(@jakarta.annotation.Nonnull ActionItemConditionEnum actionItemCondition) { + this.actionItemCondition = actionItemCondition; + return this; + } + + /** + * The trigger condition + * @return actionItemCondition + */ + @jakarta.annotation.Nonnull + public ActionItemConditionEnum getActionItemCondition() { + return actionItemCondition; + } + + public void setActionItemCondition(@jakarta.annotation.Nonnull ActionItemConditionEnum actionItemCondition) { + this.actionItemCondition = actionItemCondition; + } + + + public WorkflowActionItemFormFieldCondition values(@jakarta.annotation.Nullable List values) { + this.values = values; + return this; + } + + public WorkflowActionItemFormFieldCondition addValuesItem(String valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); + } + this.values.add(valuesItem); + return this; + } + + /** + * Get values + * @return values + */ + @jakarta.annotation.Nullable + public List getValues() { + return values; + } + + public void setValues(@jakarta.annotation.Nullable List values) { + this.values = values; + } + + + public WorkflowActionItemFormFieldCondition selectedCatalogEntityIds(@jakarta.annotation.Nonnull List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedCatalogEntityIdsItem(String selectedCatalogEntityIdsItem) { + if (this.selectedCatalogEntityIds == null) { + this.selectedCatalogEntityIds = new ArrayList<>(); + } + this.selectedCatalogEntityIds.add(selectedCatalogEntityIdsItem); + return this; + } + + /** + * Get selectedCatalogEntityIds + * @return selectedCatalogEntityIds + */ + @jakarta.annotation.Nonnull + public List getSelectedCatalogEntityIds() { + return selectedCatalogEntityIds; + } + + public void setSelectedCatalogEntityIds(@jakarta.annotation.Nonnull List selectedCatalogEntityIds) { + this.selectedCatalogEntityIds = selectedCatalogEntityIds; + } + + + public WorkflowActionItemFormFieldCondition selectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedFunctionalityIdsItem(String selectedFunctionalityIdsItem) { + if (this.selectedFunctionalityIds == null) { + this.selectedFunctionalityIds = new ArrayList<>(); + } + this.selectedFunctionalityIds.add(selectedFunctionalityIdsItem); + return this; + } + + /** + * Get selectedFunctionalityIds + * @return selectedFunctionalityIds + */ + @jakarta.annotation.Nullable + public List getSelectedFunctionalityIds() { + return selectedFunctionalityIds; + } + + public void setSelectedFunctionalityIds(@jakarta.annotation.Nullable List selectedFunctionalityIds) { + this.selectedFunctionalityIds = selectedFunctionalityIds; + } + + + public WorkflowActionItemFormFieldCondition selectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedGroupIdsItem(String selectedGroupIdsItem) { + if (this.selectedGroupIds == null) { + this.selectedGroupIds = new ArrayList<>(); + } + this.selectedGroupIds.add(selectedGroupIdsItem); + return this; + } + + /** + * Get selectedGroupIds + * @return selectedGroupIds + */ + @jakarta.annotation.Nullable + public List getSelectedGroupIds() { + return selectedGroupIds; + } + + public void setSelectedGroupIds(@jakarta.annotation.Nullable List selectedGroupIds) { + this.selectedGroupIds = selectedGroupIds; + } + + + public WorkflowActionItemFormFieldCondition selectedOptionIds(@jakarta.annotation.Nonnull List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedOptionIdsItem(String selectedOptionIdsItem) { + if (this.selectedOptionIds == null) { + this.selectedOptionIds = new ArrayList<>(); + } + this.selectedOptionIds.add(selectedOptionIdsItem); + return this; + } + + /** + * Get selectedOptionIds + * @return selectedOptionIds + */ + @jakarta.annotation.Nonnull + public List getSelectedOptionIds() { + return selectedOptionIds; + } + + public void setSelectedOptionIds(@jakarta.annotation.Nonnull List selectedOptionIds) { + this.selectedOptionIds = selectedOptionIds; + } + + + public WorkflowActionItemFormFieldCondition selectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedServiceIdsItem(String selectedServiceIdsItem) { + if (this.selectedServiceIds == null) { + this.selectedServiceIds = new ArrayList<>(); + } + this.selectedServiceIds.add(selectedServiceIdsItem); + return this; + } + + /** + * Get selectedServiceIds + * @return selectedServiceIds + */ + @jakarta.annotation.Nullable + public List getSelectedServiceIds() { + return selectedServiceIds; + } + + public void setSelectedServiceIds(@jakarta.annotation.Nullable List selectedServiceIds) { + this.selectedServiceIds = selectedServiceIds; + } + + + public WorkflowActionItemFormFieldCondition selectedUserIds(@jakarta.annotation.Nonnull List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedUserIdsItem(Integer selectedUserIdsItem) { + if (this.selectedUserIds == null) { + this.selectedUserIds = new ArrayList<>(); + } + this.selectedUserIds.add(selectedUserIdsItem); + return this; + } + + /** + * Get selectedUserIds + * @return selectedUserIds + */ + @jakarta.annotation.Nonnull + public List getSelectedUserIds() { + return selectedUserIds; + } + + public void setSelectedUserIds(@jakarta.annotation.Nonnull List selectedUserIds) { + this.selectedUserIds = selectedUserIds; + } + + + public WorkflowActionItemFormFieldCondition selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public WorkflowActionItemFormFieldCondition selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public WorkflowActionItemFormFieldCondition selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public WorkflowActionItemFormFieldCondition addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowActionItemFormFieldCondition workflowActionItemFormFieldCondition = (WorkflowActionItemFormFieldCondition) o; + return Objects.equals(this.workflowId, workflowActionItemFormFieldCondition.workflowId) && + Objects.equals(this.formFieldId, workflowActionItemFormFieldCondition.formFieldId) && + Objects.equals(this.actionItemCondition, workflowActionItemFormFieldCondition.actionItemCondition) && + Objects.equals(this.values, workflowActionItemFormFieldCondition.values) && + Objects.equals(this.selectedCatalogEntityIds, workflowActionItemFormFieldCondition.selectedCatalogEntityIds) && + Objects.equals(this.selectedFunctionalityIds, workflowActionItemFormFieldCondition.selectedFunctionalityIds) && + Objects.equals(this.selectedGroupIds, workflowActionItemFormFieldCondition.selectedGroupIds) && + Objects.equals(this.selectedOptionIds, workflowActionItemFormFieldCondition.selectedOptionIds) && + Objects.equals(this.selectedServiceIds, workflowActionItemFormFieldCondition.selectedServiceIds) && + Objects.equals(this.selectedUserIds, workflowActionItemFormFieldCondition.selectedUserIds) && + Objects.equals(this.selectedCauseIds, workflowActionItemFormFieldCondition.selectedCauseIds) && + Objects.equals(this.selectedEnvironmentIds, workflowActionItemFormFieldCondition.selectedEnvironmentIds) && + Objects.equals(this.selectedIncidentTypeIds, workflowActionItemFormFieldCondition.selectedIncidentTypeIds); + } + + @Override + public int hashCode() { + return Objects.hash(workflowId, formFieldId, actionItemCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds, selectedCauseIds, selectedEnvironmentIds, selectedIncidentTypeIds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class WorkflowActionItemFormFieldCondition {\n"); + sb.append(" workflowId: ").append(toIndentedString(workflowId)).append("\n"); + sb.append(" formFieldId: ").append(toIndentedString(formFieldId)).append("\n"); + sb.append(" actionItemCondition: ").append(toIndentedString(actionItemCondition)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); + sb.append(" selectedCatalogEntityIds: ").append(toIndentedString(selectedCatalogEntityIds)).append("\n"); + sb.append(" selectedFunctionalityIds: ").append(toIndentedString(selectedFunctionalityIds)).append("\n"); + sb.append(" selectedGroupIds: ").append(toIndentedString(selectedGroupIds)).append("\n"); + sb.append(" selectedOptionIds: ").append(toIndentedString(selectedOptionIds)).append("\n"); + sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); + sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("workflow_id"); + openapiFields.add("form_field_id"); + openapiFields.add("action_item_condition"); + openapiFields.add("values"); + openapiFields.add("selected_catalog_entity_ids"); + openapiFields.add("selected_functionality_ids"); + openapiFields.add("selected_group_ids"); + openapiFields.add("selected_option_ids"); + openapiFields.add("selected_service_ids"); + openapiFields.add("selected_user_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_incident_type_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("workflow_id"); + openapiRequiredFields.add("form_field_id"); + openapiRequiredFields.add("action_item_condition"); + openapiRequiredFields.add("selected_catalog_entity_ids"); + openapiRequiredFields.add("selected_option_ids"); + openapiRequiredFields.add("selected_user_ids"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to WorkflowActionItemFormFieldCondition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!WorkflowActionItemFormFieldCondition.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in WorkflowActionItemFormFieldCondition is not found in the empty JSON string", WorkflowActionItemFormFieldCondition.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!WorkflowActionItemFormFieldCondition.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `WorkflowActionItemFormFieldCondition` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : WorkflowActionItemFormFieldCondition.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("workflow_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `workflow_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("workflow_id").toString())); + } + if (!jsonObj.get("form_field_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `form_field_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("form_field_id").toString())); + } + if (!jsonObj.get("action_item_condition").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `action_item_condition` to be a primitive type in the JSON string but got `%s`", jsonObj.get("action_item_condition").toString())); + } + // validate the required field `action_item_condition` + ActionItemConditionEnum.validateJsonElement(jsonObj.get("action_item_condition")); + // ensure the optional json data is an array if present + if (jsonObj.get("values") != null && !jsonObj.get("values").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `values` to be an array in the JSON string but got `%s`", jsonObj.get("values").toString())); + } + // ensure the required json array is present + if (jsonObj.get("selected_catalog_entity_ids") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("selected_catalog_entity_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_catalog_entity_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_catalog_entity_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_functionality_ids") != null && !jsonObj.get("selected_functionality_ids").isJsonNull() && !jsonObj.get("selected_functionality_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_functionality_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_functionality_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_group_ids") != null && !jsonObj.get("selected_group_ids").isJsonNull() && !jsonObj.get("selected_group_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_group_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_group_ids").toString())); + } + // ensure the required json array is present + if (jsonObj.get("selected_option_ids") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("selected_option_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_option_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_option_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_service_ids") != null && !jsonObj.get("selected_service_ids").isJsonNull() && !jsonObj.get("selected_service_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_service_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_service_ids").toString())); + } + // ensure the required json array is present + if (jsonObj.get("selected_user_ids") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("selected_user_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!WorkflowActionItemFormFieldCondition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'WorkflowActionItemFormFieldCondition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(WorkflowActionItemFormFieldCondition.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, WorkflowActionItemFormFieldCondition value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public WorkflowActionItemFormFieldCondition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of WorkflowActionItemFormFieldCondition given an JSON string + * + * @param jsonString JSON string + * @return An instance of WorkflowActionItemFormFieldCondition + * @throws IOException if the JSON string is invalid with respect to WorkflowActionItemFormFieldCondition + */ + public static WorkflowActionItemFormFieldCondition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, WorkflowActionItemFormFieldCondition.class); + } + + /** + * Convert an instance of WorkflowActionItemFormFieldCondition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionList.java b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionList.java new file mode 100644 index 00000000..17898444 --- /dev/null +++ b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionList.java @@ -0,0 +1,344 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * WorkflowActionItemFormFieldConditionList + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class WorkflowActionItemFormFieldConditionList { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private List data = new ArrayList<>(); + + public static final String SERIALIZED_NAME_LINKS = "links"; + @SerializedName(SERIALIZED_NAME_LINKS) + @jakarta.annotation.Nonnull + private Links links; + + public static final String SERIALIZED_NAME_META = "meta"; + @SerializedName(SERIALIZED_NAME_META) + @jakarta.annotation.Nonnull + private Meta meta; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public WorkflowActionItemFormFieldConditionList() { + } + + public WorkflowActionItemFormFieldConditionList data(@jakarta.annotation.Nonnull List data) { + this.data = data; + return this; + } + + public WorkflowActionItemFormFieldConditionList addDataItem(WorkflowActionItemFormFieldConditionResponseData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public List getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull List data) { + this.data = data; + } + + + public WorkflowActionItemFormFieldConditionList links(@jakarta.annotation.Nonnull Links links) { + this.links = links; + return this; + } + + /** + * Get links + * @return links + */ + @jakarta.annotation.Nonnull + public Links getLinks() { + return links; + } + + public void setLinks(@jakarta.annotation.Nonnull Links links) { + this.links = links; + } + + + public WorkflowActionItemFormFieldConditionList meta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + return this; + } + + /** + * Get meta + * @return meta + */ + @jakarta.annotation.Nonnull + public Meta getMeta() { + return meta; + } + + public void setMeta(@jakarta.annotation.Nonnull Meta meta) { + this.meta = meta; + } + + + public WorkflowActionItemFormFieldConditionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowActionItemFormFieldConditionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowActionItemFormFieldConditionList workflowActionItemFormFieldConditionList = (WorkflowActionItemFormFieldConditionList) o; + return Objects.equals(this.data, workflowActionItemFormFieldConditionList.data) && + Objects.equals(this.links, workflowActionItemFormFieldConditionList.links) && + Objects.equals(this.meta, workflowActionItemFormFieldConditionList.meta) && + Objects.equals(this.included, workflowActionItemFormFieldConditionList.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class WorkflowActionItemFormFieldConditionList {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("links"); + openapiFields.add("meta"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + openapiRequiredFields.add("links"); + openapiRequiredFields.add("meta"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to WorkflowActionItemFormFieldConditionList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!WorkflowActionItemFormFieldConditionList.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in WorkflowActionItemFormFieldConditionList is not found in the empty JSON string", WorkflowActionItemFormFieldConditionList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!WorkflowActionItemFormFieldConditionList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `WorkflowActionItemFormFieldConditionList` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : WorkflowActionItemFormFieldConditionList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("data").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + JsonArray jsonArraydata = jsonObj.getAsJsonArray("data"); + // validate the required field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + WorkflowActionItemFormFieldConditionResponseData.validateJsonElement(jsonArraydata.get(i)); + }; + // validate the required field `links` + Links.validateJsonElement(jsonObj.get("links")); + // validate the required field `meta` + Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!WorkflowActionItemFormFieldConditionList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'WorkflowActionItemFormFieldConditionList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(WorkflowActionItemFormFieldConditionList.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, WorkflowActionItemFormFieldConditionList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public WorkflowActionItemFormFieldConditionList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of WorkflowActionItemFormFieldConditionList given an JSON string + * + * @param jsonString JSON string + * @return An instance of WorkflowActionItemFormFieldConditionList + * @throws IOException if the JSON string is invalid with respect to WorkflowActionItemFormFieldConditionList + */ + public static WorkflowActionItemFormFieldConditionList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, WorkflowActionItemFormFieldConditionList.class); + } + + /** + * Convert an instance of WorkflowActionItemFormFieldConditionList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponse.java b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponse.java new file mode 100644 index 00000000..f77b971f --- /dev/null +++ b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponse.java @@ -0,0 +1,266 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * WorkflowActionItemFormFieldConditionResponse + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class WorkflowActionItemFormFieldConditionResponse { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @jakarta.annotation.Nonnull + private WorkflowActionItemFormFieldConditionResponseData data; + + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + + public WorkflowActionItemFormFieldConditionResponse() { + } + + public WorkflowActionItemFormFieldConditionResponse data(@jakarta.annotation.Nonnull WorkflowActionItemFormFieldConditionResponseData data) { + this.data = data; + return this; + } + + /** + * Get data + * @return data + */ + @jakarta.annotation.Nonnull + public WorkflowActionItemFormFieldConditionResponseData getData() { + return data; + } + + public void setData(@jakarta.annotation.Nonnull WorkflowActionItemFormFieldConditionResponseData data) { + this.data = data; + } + + + public WorkflowActionItemFormFieldConditionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowActionItemFormFieldConditionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowActionItemFormFieldConditionResponse workflowActionItemFormFieldConditionResponse = (WorkflowActionItemFormFieldConditionResponse) o; + return Objects.equals(this.data, workflowActionItemFormFieldConditionResponse.data) && + Objects.equals(this.included, workflowActionItemFormFieldConditionResponse.included); + } + + @Override + public int hashCode() { + return Objects.hash(data, included); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class WorkflowActionItemFormFieldConditionResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data"); + openapiFields.add("included"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to WorkflowActionItemFormFieldConditionResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!WorkflowActionItemFormFieldConditionResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in WorkflowActionItemFormFieldConditionResponse is not found in the empty JSON string", WorkflowActionItemFormFieldConditionResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!WorkflowActionItemFormFieldConditionResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `WorkflowActionItemFormFieldConditionResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : WorkflowActionItemFormFieldConditionResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `data` + WorkflowActionItemFormFieldConditionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!WorkflowActionItemFormFieldConditionResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'WorkflowActionItemFormFieldConditionResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(WorkflowActionItemFormFieldConditionResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, WorkflowActionItemFormFieldConditionResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public WorkflowActionItemFormFieldConditionResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of WorkflowActionItemFormFieldConditionResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of WorkflowActionItemFormFieldConditionResponse + * @throws IOException if the JSON string is invalid with respect to WorkflowActionItemFormFieldConditionResponse + */ + public static WorkflowActionItemFormFieldConditionResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, WorkflowActionItemFormFieldConditionResponse.class); + } + + /** + * Convert an instance of WorkflowActionItemFormFieldConditionResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseData.java b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseData.java new file mode 100644 index 00000000..dcf45ac6 --- /dev/null +++ b/src/main/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseData.java @@ -0,0 +1,328 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.WorkflowActionItemFormFieldCondition; +import java.io.IOException; +import java.util.Arrays; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.rootly.client.JSON; + +/** + * WorkflowActionItemFormFieldConditionResponseData + */ +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") +public class WorkflowActionItemFormFieldConditionResponseData { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + @jakarta.annotation.Nonnull + private String id; + + /** + * Gets or Sets type + */ + @JsonAdapter(TypeEnum.Adapter.class) + public enum TypeEnum { + WORKFLOW_ACTION_ITEM_FORM_FIELD_CONDITIONS("workflow_action_item_form_field_conditions"); + + private String value; + + TypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeEnum fromValue(String value) { + for (TypeEnum b : TypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + TypeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @jakarta.annotation.Nonnull + private TypeEnum type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @jakarta.annotation.Nonnull + private WorkflowActionItemFormFieldCondition attributes; + + public WorkflowActionItemFormFieldConditionResponseData() { + } + + public WorkflowActionItemFormFieldConditionResponseData id(@jakarta.annotation.Nonnull String id) { + this.id = id; + return this; + } + + /** + * Unique ID of the workflow_action_item_form_field_condition + * @return id + */ + @jakarta.annotation.Nonnull + public String getId() { + return id; + } + + public void setId(@jakarta.annotation.Nonnull String id) { + this.id = id; + } + + + public WorkflowActionItemFormFieldConditionResponseData type(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @jakarta.annotation.Nonnull + public TypeEnum getType() { + return type; + } + + public void setType(@jakarta.annotation.Nonnull TypeEnum type) { + this.type = type; + } + + + public WorkflowActionItemFormFieldConditionResponseData attributes(@jakarta.annotation.Nonnull WorkflowActionItemFormFieldCondition attributes) { + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + */ + @jakarta.annotation.Nonnull + public WorkflowActionItemFormFieldCondition getAttributes() { + return attributes; + } + + public void setAttributes(@jakarta.annotation.Nonnull WorkflowActionItemFormFieldCondition attributes) { + this.attributes = attributes; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + WorkflowActionItemFormFieldConditionResponseData workflowActionItemFormFieldConditionResponseData = (WorkflowActionItemFormFieldConditionResponseData) o; + return Objects.equals(this.id, workflowActionItemFormFieldConditionResponseData.id) && + Objects.equals(this.type, workflowActionItemFormFieldConditionResponseData.type) && + Objects.equals(this.attributes, workflowActionItemFormFieldConditionResponseData.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class WorkflowActionItemFormFieldConditionResponseData {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("type"); + openapiFields.add("attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to WorkflowActionItemFormFieldConditionResponseData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!WorkflowActionItemFormFieldConditionResponseData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in WorkflowActionItemFormFieldConditionResponseData is not found in the empty JSON string", WorkflowActionItemFormFieldConditionResponseData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!WorkflowActionItemFormFieldConditionResponseData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `WorkflowActionItemFormFieldConditionResponseData` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : WorkflowActionItemFormFieldConditionResponseData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("id").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + // validate the required field `type` + TypeEnum.validateJsonElement(jsonObj.get("type")); + // validate the required field `attributes` + WorkflowActionItemFormFieldCondition.validateJsonElement(jsonObj.get("attributes")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!WorkflowActionItemFormFieldConditionResponseData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'WorkflowActionItemFormFieldConditionResponseData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(WorkflowActionItemFormFieldConditionResponseData.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, WorkflowActionItemFormFieldConditionResponseData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public WorkflowActionItemFormFieldConditionResponseData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of WorkflowActionItemFormFieldConditionResponseData given an JSON string + * + * @param jsonString JSON string + * @return An instance of WorkflowActionItemFormFieldConditionResponseData + * @throws IOException if the JSON string is invalid with respect to WorkflowActionItemFormFieldConditionResponseData + */ + public static WorkflowActionItemFormFieldConditionResponseData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, WorkflowActionItemFormFieldConditionResponseData.class); + } + + /** + * Convert an instance of WorkflowActionItemFormFieldConditionResponseData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelection.java b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelection.java index 1a214411..a1f62e42 100644 --- a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelection.java +++ b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelection.java @@ -50,7 +50,7 @@ /** * WorkflowCustomFieldSelection */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowCustomFieldSelection { public static final String SERIALIZED_NAME_WORKFLOW_ID = "workflow_id"; @SerializedName(SERIALIZED_NAME_WORKFLOW_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionList.java b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionList.java index 863404a4..a6d74a56 100644 --- a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionList.java +++ b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowCustomFieldSelectionResponseData; @@ -53,7 +54,7 @@ /** * WorkflowCustomFieldSelectionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowCustomFieldSelectionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WorkflowCustomFieldSelectionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowCustomFieldSelectionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public WorkflowCustomFieldSelectionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowCustomFieldSelectionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WorkflowCustomFieldSelectionList workflowCustomFieldSelectionList = (WorkflowCustomFieldSelectionList) o; return Objects.equals(this.data, workflowCustomFieldSelectionList.data) && Objects.equals(this.links, workflowCustomFieldSelectionList.links) && - Objects.equals(this.meta, workflowCustomFieldSelectionList.meta); + Objects.equals(this.meta, workflowCustomFieldSelectionList.meta) && + Objects.equals(this.included, workflowCustomFieldSelectionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponse.java b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponse.java index 605b0b05..7d0c9929 100644 --- a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponse.java +++ b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowCustomFieldSelectionResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WorkflowCustomFieldSelectionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowCustomFieldSelectionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WorkflowCustomFieldSelectionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowCustomFieldSelectionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WorkflowCustomFieldSelectionResp } + public WorkflowCustomFieldSelectionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowCustomFieldSelectionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WorkflowCustomFieldSelectionResponse workflowCustomFieldSelectionResponse = (WorkflowCustomFieldSelectionResponse) o; - return Objects.equals(this.data, workflowCustomFieldSelectionResponse.data); + return Objects.equals(this.data, workflowCustomFieldSelectionResponse.data) && + Objects.equals(this.included, workflowCustomFieldSelectionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WorkflowCustomFieldSelectionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WorkflowCustomFieldSelectionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseData.java b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseData.java index 9d32da62..bc2c19f5 100644 --- a/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseData.java +++ b/src/main/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseData.java @@ -49,7 +49,7 @@ /** * WorkflowCustomFieldSelectionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowCustomFieldSelectionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowFormFieldCondition.java b/src/main/java/com/rootly/client/model/WorkflowFormFieldCondition.java index 1826e20b..30ba4fdd 100644 --- a/src/main/java/com/rootly/client/model/WorkflowFormFieldCondition.java +++ b/src/main/java/com/rootly/client/model/WorkflowFormFieldCondition.java @@ -50,7 +50,7 @@ /** * WorkflowFormFieldCondition */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowFormFieldCondition { public static final String SERIALIZED_NAME_WORKFLOW_ID = "workflow_id"; @SerializedName(SERIALIZED_NAME_WORKFLOW_ID) @@ -168,6 +168,21 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @jakarta.annotation.Nonnull private List selectedUserIds = new ArrayList<>(); + public static final String SERIALIZED_NAME_SELECTED_CAUSE_IDS = "selected_cause_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_CAUSE_IDS) + @jakarta.annotation.Nullable + private List selectedCauseIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS = "selected_environment_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_ENVIRONMENT_IDS) + @jakarta.annotation.Nullable + private List selectedEnvironmentIds = new ArrayList<>(); + + public static final String SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS = "selected_incident_type_ids"; + @SerializedName(SERIALIZED_NAME_SELECTED_INCIDENT_TYPE_IDS) + @jakarta.annotation.Nullable + private List selectedIncidentTypeIds = new ArrayList<>(); + public WorkflowFormFieldCondition() { } @@ -417,6 +432,87 @@ public void setSelectedUserIds(@jakarta.annotation.Nonnull List selecte } + public WorkflowFormFieldCondition selectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + return this; + } + + public WorkflowFormFieldCondition addSelectedCauseIdsItem(String selectedCauseIdsItem) { + if (this.selectedCauseIds == null) { + this.selectedCauseIds = new ArrayList<>(); + } + this.selectedCauseIds.add(selectedCauseIdsItem); + return this; + } + + /** + * Get selectedCauseIds + * @return selectedCauseIds + */ + @jakarta.annotation.Nullable + public List getSelectedCauseIds() { + return selectedCauseIds; + } + + public void setSelectedCauseIds(@jakarta.annotation.Nullable List selectedCauseIds) { + this.selectedCauseIds = selectedCauseIds; + } + + + public WorkflowFormFieldCondition selectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + return this; + } + + public WorkflowFormFieldCondition addSelectedEnvironmentIdsItem(String selectedEnvironmentIdsItem) { + if (this.selectedEnvironmentIds == null) { + this.selectedEnvironmentIds = new ArrayList<>(); + } + this.selectedEnvironmentIds.add(selectedEnvironmentIdsItem); + return this; + } + + /** + * Get selectedEnvironmentIds + * @return selectedEnvironmentIds + */ + @jakarta.annotation.Nullable + public List getSelectedEnvironmentIds() { + return selectedEnvironmentIds; + } + + public void setSelectedEnvironmentIds(@jakarta.annotation.Nullable List selectedEnvironmentIds) { + this.selectedEnvironmentIds = selectedEnvironmentIds; + } + + + public WorkflowFormFieldCondition selectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + return this; + } + + public WorkflowFormFieldCondition addSelectedIncidentTypeIdsItem(String selectedIncidentTypeIdsItem) { + if (this.selectedIncidentTypeIds == null) { + this.selectedIncidentTypeIds = new ArrayList<>(); + } + this.selectedIncidentTypeIds.add(selectedIncidentTypeIdsItem); + return this; + } + + /** + * Get selectedIncidentTypeIds + * @return selectedIncidentTypeIds + */ + @jakarta.annotation.Nullable + public List getSelectedIncidentTypeIds() { + return selectedIncidentTypeIds; + } + + public void setSelectedIncidentTypeIds(@jakarta.annotation.Nullable List selectedIncidentTypeIds) { + this.selectedIncidentTypeIds = selectedIncidentTypeIds; + } + + @Override public boolean equals(Object o) { @@ -436,12 +532,15 @@ public boolean equals(Object o) { Objects.equals(this.selectedGroupIds, workflowFormFieldCondition.selectedGroupIds) && Objects.equals(this.selectedOptionIds, workflowFormFieldCondition.selectedOptionIds) && Objects.equals(this.selectedServiceIds, workflowFormFieldCondition.selectedServiceIds) && - Objects.equals(this.selectedUserIds, workflowFormFieldCondition.selectedUserIds); + Objects.equals(this.selectedUserIds, workflowFormFieldCondition.selectedUserIds) && + Objects.equals(this.selectedCauseIds, workflowFormFieldCondition.selectedCauseIds) && + Objects.equals(this.selectedEnvironmentIds, workflowFormFieldCondition.selectedEnvironmentIds) && + Objects.equals(this.selectedIncidentTypeIds, workflowFormFieldCondition.selectedIncidentTypeIds); } @Override public int hashCode() { - return Objects.hash(workflowId, formFieldId, incidentCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds); + return Objects.hash(workflowId, formFieldId, incidentCondition, values, selectedCatalogEntityIds, selectedFunctionalityIds, selectedGroupIds, selectedOptionIds, selectedServiceIds, selectedUserIds, selectedCauseIds, selectedEnvironmentIds, selectedIncidentTypeIds); } @Override @@ -458,6 +557,9 @@ public String toString() { sb.append(" selectedOptionIds: ").append(toIndentedString(selectedOptionIds)).append("\n"); sb.append(" selectedServiceIds: ").append(toIndentedString(selectedServiceIds)).append("\n"); sb.append(" selectedUserIds: ").append(toIndentedString(selectedUserIds)).append("\n"); + sb.append(" selectedCauseIds: ").append(toIndentedString(selectedCauseIds)).append("\n"); + sb.append(" selectedEnvironmentIds: ").append(toIndentedString(selectedEnvironmentIds)).append("\n"); + sb.append(" selectedIncidentTypeIds: ").append(toIndentedString(selectedIncidentTypeIds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -490,6 +592,9 @@ private String toIndentedString(Object o) { openapiFields.add("selected_option_ids"); openapiFields.add("selected_service_ids"); openapiFields.add("selected_user_ids"); + openapiFields.add("selected_cause_ids"); + openapiFields.add("selected_environment_ids"); + openapiFields.add("selected_incident_type_ids"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -574,6 +679,18 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } else if (!jsonObj.get("selected_user_ids").isJsonArray()) { throw new IllegalArgumentException(String.format("Expected the field `selected_user_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_user_ids").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_cause_ids") != null && !jsonObj.get("selected_cause_ids").isJsonNull() && !jsonObj.get("selected_cause_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_cause_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_cause_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_environment_ids") != null && !jsonObj.get("selected_environment_ids").isJsonNull() && !jsonObj.get("selected_environment_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_environment_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_environment_ids").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("selected_incident_type_ids") != null && !jsonObj.get("selected_incident_type_ids").isJsonNull() && !jsonObj.get("selected_incident_type_ids").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `selected_incident_type_ids` to be an array in the JSON string but got `%s`", jsonObj.get("selected_incident_type_ids").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionList.java b/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionList.java index 5b67ed0f..01e7ffef 100644 --- a/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionList.java +++ b/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowFormFieldConditionResponseData; @@ -53,7 +54,7 @@ /** * WorkflowFormFieldConditionList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowFormFieldConditionList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WorkflowFormFieldConditionList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowFormFieldConditionList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public WorkflowFormFieldConditionList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowFormFieldConditionList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WorkflowFormFieldConditionList workflowFormFieldConditionList = (WorkflowFormFieldConditionList) o; return Objects.equals(this.data, workflowFormFieldConditionList.data) && Objects.equals(this.links, workflowFormFieldConditionList.links) && - Objects.equals(this.meta, workflowFormFieldConditionList.meta); + Objects.equals(this.meta, workflowFormFieldConditionList.meta) && + Objects.equals(this.included, workflowFormFieldConditionList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponse.java b/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponse.java index 3322a711..328a47d2 100644 --- a/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponse.java +++ b/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowFormFieldConditionResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WorkflowFormFieldConditionResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowFormFieldConditionResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WorkflowFormFieldConditionResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowFormFieldConditionResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WorkflowFormFieldConditionRespon } + public WorkflowFormFieldConditionResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowFormFieldConditionResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WorkflowFormFieldConditionResponse workflowFormFieldConditionResponse = (WorkflowFormFieldConditionResponse) o; - return Objects.equals(this.data, workflowFormFieldConditionResponse.data); + return Objects.equals(this.data, workflowFormFieldConditionResponse.data) && + Objects.equals(this.included, workflowFormFieldConditionResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WorkflowFormFieldConditionResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WorkflowFormFieldConditionResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponseData.java b/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponseData.java index c4eb03cb..154beec1 100644 --- a/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponseData.java +++ b/src/main/java/com/rootly/client/model/WorkflowFormFieldConditionResponseData.java @@ -49,7 +49,7 @@ /** * WorkflowFormFieldConditionResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowFormFieldConditionResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowGroup.java b/src/main/java/com/rootly/client/model/WorkflowGroup.java index 7b7e5bb2..9dd6ce99 100644 --- a/src/main/java/com/rootly/client/model/WorkflowGroup.java +++ b/src/main/java/com/rootly/client/model/WorkflowGroup.java @@ -49,7 +49,7 @@ /** * WorkflowGroup */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowGroup { /** * The kind of the workflow group @@ -149,6 +149,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti public WorkflowGroup() { } + public WorkflowGroup( + String slug + ) { + this(); + this.slug = slug; + } + public WorkflowGroup kind(@jakarta.annotation.Nullable KindEnum kind) { this.kind = kind; return this; @@ -187,11 +194,6 @@ public void setName(@jakarta.annotation.Nonnull String name) { } - public WorkflowGroup slug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - return this; - } - /** * The slug of the workflow group. * @return slug @@ -201,9 +203,6 @@ public String getSlug() { return slug; } - public void setSlug(@jakarta.annotation.Nullable String slug) { - this.slug = slug; - } public WorkflowGroup description(@jakarta.annotation.Nullable String description) { diff --git a/src/main/java/com/rootly/client/model/WorkflowGroupList.java b/src/main/java/com/rootly/client/model/WorkflowGroupList.java index 55ffd163..66e810b2 100644 --- a/src/main/java/com/rootly/client/model/WorkflowGroupList.java +++ b/src/main/java/com/rootly/client/model/WorkflowGroupList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowGroupResponseData; @@ -53,7 +54,7 @@ /** * WorkflowGroupList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowGroupList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WorkflowGroupList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowGroupList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public WorkflowGroupList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowGroupList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WorkflowGroupList workflowGroupList = (WorkflowGroupList) o; return Objects.equals(this.data, workflowGroupList.data) && Objects.equals(this.links, workflowGroupList.links) && - Objects.equals(this.meta, workflowGroupList.meta); + Objects.equals(this.meta, workflowGroupList.meta) && + Objects.equals(this.included, workflowGroupList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowGroupResponse.java b/src/main/java/com/rootly/client/model/WorkflowGroupResponse.java index 4e24e5a7..e375ecf8 100644 --- a/src/main/java/com/rootly/client/model/WorkflowGroupResponse.java +++ b/src/main/java/com/rootly/client/model/WorkflowGroupResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowGroupResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WorkflowGroupResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowGroupResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WorkflowGroupResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowGroupResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WorkflowGroupResponseData data) } + public WorkflowGroupResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowGroupResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WorkflowGroupResponse workflowGroupResponse = (WorkflowGroupResponse) o; - return Objects.equals(this.data, workflowGroupResponse.data); + return Objects.equals(this.data, workflowGroupResponse.data) && + Objects.equals(this.included, workflowGroupResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WorkflowGroupResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WorkflowGroupResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowGroupResponseData.java b/src/main/java/com/rootly/client/model/WorkflowGroupResponseData.java index 72a979e4..3fc287eb 100644 --- a/src/main/java/com/rootly/client/model/WorkflowGroupResponseData.java +++ b/src/main/java/com/rootly/client/model/WorkflowGroupResponseData.java @@ -49,7 +49,7 @@ /** * WorkflowGroupResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowGroupResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowList.java b/src/main/java/com/rootly/client/model/WorkflowList.java index f5188f79..3c58daac 100644 --- a/src/main/java/com/rootly/client/model/WorkflowList.java +++ b/src/main/java/com/rootly/client/model/WorkflowList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowResponseData; @@ -53,7 +54,7 @@ /** * WorkflowList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WorkflowList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public WorkflowList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WorkflowList workflowList = (WorkflowList) o; return Objects.equals(this.data, workflowList.data) && Objects.equals(this.links, workflowList.links) && - Objects.equals(this.meta, workflowList.meta); + Objects.equals(this.meta, workflowList.meta) && + Objects.equals(this.included, workflowList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowResponse.java b/src/main/java/com/rootly/client/model/WorkflowResponse.java index 51779aa7..01691cb3 100644 --- a/src/main/java/com/rootly/client/model/WorkflowResponse.java +++ b/src/main/java/com/rootly/client/model/WorkflowResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WorkflowResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WorkflowResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WorkflowResponseData data) { } + public WorkflowResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WorkflowResponse workflowResponse = (WorkflowResponse) o; - return Objects.equals(this.data, workflowResponse.data); + return Objects.equals(this.data, workflowResponse.data) && + Objects.equals(this.included, workflowResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WorkflowResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WorkflowResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowResponseData.java b/src/main/java/com/rootly/client/model/WorkflowResponseData.java index ae39b461..2581c392 100644 --- a/src/main/java/com/rootly/client/model/WorkflowResponseData.java +++ b/src/main/java/com/rootly/client/model/WorkflowResponseData.java @@ -49,7 +49,7 @@ /** * WorkflowResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowRun.java b/src/main/java/com/rootly/client/model/WorkflowRun.java index f3fd0f42..da794406 100644 --- a/src/main/java/com/rootly/client/model/WorkflowRun.java +++ b/src/main/java/com/rootly/client/model/WorkflowRun.java @@ -51,7 +51,7 @@ /** * WorkflowRun */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowRun { public static final String SERIALIZED_NAME_WORKFLOW_ID = "workflow_id"; @SerializedName(SERIALIZED_NAME_WORKFLOW_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowRunResponse.java b/src/main/java/com/rootly/client/model/WorkflowRunResponse.java index 723ac7e8..b92941a4 100644 --- a/src/main/java/com/rootly/client/model/WorkflowRunResponse.java +++ b/src/main/java/com/rootly/client/model/WorkflowRunResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowRunResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WorkflowRunResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowRunResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WorkflowRunResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowRunResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WorkflowRunResponseData data) { } + public WorkflowRunResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowRunResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WorkflowRunResponse workflowRunResponse = (WorkflowRunResponse) o; - return Objects.equals(this.data, workflowRunResponse.data); + return Objects.equals(this.data, workflowRunResponse.data) && + Objects.equals(this.included, workflowRunResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WorkflowRunResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WorkflowRunResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowRunResponseData.java b/src/main/java/com/rootly/client/model/WorkflowRunResponseData.java index 95d3eec5..c1146d4f 100644 --- a/src/main/java/com/rootly/client/model/WorkflowRunResponseData.java +++ b/src/main/java/com/rootly/client/model/WorkflowRunResponseData.java @@ -49,7 +49,7 @@ /** * WorkflowRunResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowRunResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowRunsList.java b/src/main/java/com/rootly/client/model/WorkflowRunsList.java index 8407169c..c9974a70 100644 --- a/src/main/java/com/rootly/client/model/WorkflowRunsList.java +++ b/src/main/java/com/rootly/client/model/WorkflowRunsList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowRunResponseData; @@ -53,7 +54,7 @@ /** * WorkflowRunsList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowRunsList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WorkflowRunsList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowRunsList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public WorkflowRunsList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowRunsList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WorkflowRunsList workflowRunsList = (WorkflowRunsList) o; return Objects.equals(this.data, workflowRunsList.data) && Objects.equals(this.links, workflowRunsList.links) && - Objects.equals(this.meta, workflowRunsList.meta); + Objects.equals(this.meta, workflowRunsList.meta) && + Objects.equals(this.included, workflowRunsList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowTask.java b/src/main/java/com/rootly/client/model/WorkflowTask.java index c90bf52d..56ce498d 100644 --- a/src/main/java/com/rootly/client/model/WorkflowTask.java +++ b/src/main/java/com/rootly/client/model/WorkflowTask.java @@ -49,7 +49,7 @@ /** * WorkflowTask */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowTask { public static final String SERIALIZED_NAME_WORKFLOW_ID = "workflow_id"; @SerializedName(SERIALIZED_NAME_WORKFLOW_ID) diff --git a/src/main/java/com/rootly/client/model/WorkflowTaskList.java b/src/main/java/com/rootly/client/model/WorkflowTaskList.java index e524484e..dc73b524 100644 --- a/src/main/java/com/rootly/client/model/WorkflowTaskList.java +++ b/src/main/java/com/rootly/client/model/WorkflowTaskList.java @@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowTaskResponseData; @@ -53,7 +54,7 @@ /** * WorkflowTaskList */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowTaskList { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @@ -70,6 +71,11 @@ public class WorkflowTaskList { @jakarta.annotation.Nonnull private Meta meta; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowTaskList() { } @@ -138,6 +144,33 @@ public void setMeta(@jakarta.annotation.Nonnull Meta meta) { } + public WorkflowTaskList included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowTaskList addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -150,12 +183,13 @@ public boolean equals(Object o) { WorkflowTaskList workflowTaskList = (WorkflowTaskList) o; return Objects.equals(this.data, workflowTaskList.data) && Objects.equals(this.links, workflowTaskList.links) && - Objects.equals(this.meta, workflowTaskList.meta); + Objects.equals(this.meta, workflowTaskList.meta) && + Objects.equals(this.included, workflowTaskList.included); } @Override public int hashCode() { - return Objects.hash(data, links, meta); + return Objects.hash(data, links, meta, included); } @Override @@ -165,6 +199,7 @@ public String toString() { sb.append(" data: ").append(toIndentedString(data)).append("\n"); sb.append(" links: ").append(toIndentedString(links)).append("\n"); sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -190,6 +225,7 @@ private String toIndentedString(Object o) { openapiFields.add("data"); openapiFields.add("links"); openapiFields.add("meta"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -240,6 +276,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti Links.validateJsonElement(jsonObj.get("links")); // validate the required field `meta` Meta.validateJsonElement(jsonObj.get("meta")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowTaskResponse.java b/src/main/java/com/rootly/client/model/WorkflowTaskResponse.java index d4f85ea9..68ce7af4 100644 --- a/src/main/java/com/rootly/client/model/WorkflowTaskResponse.java +++ b/src/main/java/com/rootly/client/model/WorkflowTaskResponse.java @@ -19,9 +19,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowTaskResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -49,13 +52,18 @@ /** * WorkflowTaskResponse */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowTaskResponse { public static final String SERIALIZED_NAME_DATA = "data"; @SerializedName(SERIALIZED_NAME_DATA) @jakarta.annotation.Nonnull private WorkflowTaskResponseData data; + public static final String SERIALIZED_NAME_INCLUDED = "included"; + @SerializedName(SERIALIZED_NAME_INCLUDED) + @jakarta.annotation.Nullable + private List included = new ArrayList<>(); + public WorkflowTaskResponse() { } @@ -78,6 +86,33 @@ public void setData(@jakarta.annotation.Nonnull WorkflowTaskResponseData data) { } + public WorkflowTaskResponse included(@jakarta.annotation.Nullable List included) { + this.included = included; + return this; + } + + public WorkflowTaskResponse addIncludedItem(JsonapiIncludedResource includedItem) { + if (this.included == null) { + this.included = new ArrayList<>(); + } + this.included.add(includedItem); + return this; + } + + /** + * Get included + * @return included + */ + @jakarta.annotation.Nullable + public List getIncluded() { + return included; + } + + public void setIncluded(@jakarta.annotation.Nullable List included) { + this.included = included; + } + + @Override public boolean equals(Object o) { @@ -88,12 +123,13 @@ public boolean equals(Object o) { return false; } WorkflowTaskResponse workflowTaskResponse = (WorkflowTaskResponse) o; - return Objects.equals(this.data, workflowTaskResponse.data); + return Objects.equals(this.data, workflowTaskResponse.data) && + Objects.equals(this.included, workflowTaskResponse.included); } @Override public int hashCode() { - return Objects.hash(data); + return Objects.hash(data, included); } @Override @@ -101,6 +137,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class WorkflowTaskResponse {\n"); sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" included: ").append(toIndentedString(included)).append("\n"); sb.append("}"); return sb.toString(); } @@ -124,6 +161,7 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("data"); + openapiFields.add("included"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -160,6 +198,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `data` WorkflowTaskResponseData.validateJsonElement(jsonObj.get("data")); + if (jsonObj.get("included") != null && !jsonObj.get("included").isJsonNull()) { + JsonArray jsonArrayincluded = jsonObj.getAsJsonArray("included"); + if (jsonArrayincluded != null) { + // ensure the json data is an array + if (!jsonObj.get("included").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `included` to be an array in the JSON string but got `%s`", jsonObj.get("included").toString())); + } + + // validate the optional field `included` (array) + for (int i = 0; i < jsonArrayincluded.size(); i++) { + JsonapiIncludedResource.validateJsonElement(jsonArrayincluded.get(i)); + }; + } + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/src/main/java/com/rootly/client/model/WorkflowTaskResponseData.java b/src/main/java/com/rootly/client/model/WorkflowTaskResponseData.java index 9b0a8a33..2d60bdd9 100644 --- a/src/main/java/com/rootly/client/model/WorkflowTaskResponseData.java +++ b/src/main/java/com/rootly/client/model/WorkflowTaskResponseData.java @@ -49,7 +49,7 @@ /** * WorkflowTaskResponseData */ -@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-01-20T18:42:42.907690594Z[Etc/UTC]", comments = "Generator version: 7.13.0") +@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-08-14T16:47:44.247145921Z[Etc/UTC]", comments = "Generator version: 7.13.0") public class WorkflowTaskResponseData { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) diff --git a/src/test/java/com/rootly/client/api/AiChatApiTest.java b/src/test/java/com/rootly/client/api/AiChatApiTest.java new file mode 100644 index 00000000..1f26b82b --- /dev/null +++ b/src/test/java/com/rootly/client/api/AiChatApiTest.java @@ -0,0 +1,100 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiException; +import com.rootly.client.model.AiChatResponse; +import com.rootly.client.model.AiChatSessionMessageList; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for AiChatApi + */ +@Disabled +public class AiChatApiTest { + + private final AiChatApi api = new AiChatApi(); + + /** + * Send AI chat message + * + * Send a message to the AI assistant and receive a synchronous reply. Optionally bind the conversation to an incident or alert for context-aware responses. Requires `ai.chat:write` OAuth scope or an API key. + * + * @throws ApiException if the Api call fails + */ + @Test + public void createAiChatTest() throws ApiException { + String message = null; + UUID sessionId = null; + UUID incidentId = null; + UUID alertId = null; + AiChatResponse response = api.createAiChat(message, sessionId, incidentId, alertId); + // TODO: test validations + } + + /** + * Delete AI chat session + * + * Permanently deletes an AI chat session and all its messages. Requires `ai.chat:write` OAuth scope or an API key. + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteAiChatSessionTest() throws ApiException { + UUID id = null; + api.deleteAiChatSession(id); + // TODO: test validations + } + + /** + * List AI chat session messages + * + * Returns the user and assistant message history for a session, paginated and chronologically ordered. Internal tool messages are filtered out. Requires `ai.chat:read` OAuth scope or an API key. + * + * @throws ApiException if the Api call fails + */ + @Test + public void listAiChatSessionMessagesTest() throws ApiException { + UUID sessionId = null; + Integer pageNumber = null; + Integer pageSize = null; + AiChatSessionMessageList response = api.listAiChatSessionMessages(sessionId, pageNumber, pageSize); + // TODO: test validations + } + + /** + * Stream AI chat response (SSE) + * + * Send a message and receive the AI response as a Server-Sent Events stream. Optionally bind to an incident or alert for context. Events: `session_id` (initial), `text` (content chunks), `task_update` (tool progress), `error`, `done` (terminal with status). Requires `ai.chat:write` OAuth scope or an API key. + * + * @throws ApiException if the Api call fails + */ + @Test + public void streamAiChatTest() throws ApiException { + String message = null; + UUID sessionId = null; + UUID incidentId = null; + UUID alertId = null; + api.streamAiChat(message, sessionId, incidentId, alertId); + // TODO: test validations + } + +} diff --git a/src/test/java/com/rootly/client/api/AlertEventsApiTest.java b/src/test/java/com/rootly/client/api/AlertEventsApiTest.java index 7b9370a7..3f5cc021 100644 --- a/src/test/java/com/rootly/client/api/AlertEventsApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertEventsApiTest.java @@ -14,6 +14,7 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.AlertEventFeedList; import com.rootly.client.model.AlertEventList; import com.rootly.client.model.AlertEventResponse; import com.rootly.client.model.ErrorsList; @@ -97,6 +98,30 @@ public void listAlertEventsTest() throws ApiException { // TODO: test validations } + /** + * List alert events across alerts + * + * Returns a flat list of alert events across all alerts the requester can access. Designed for periodic polling: use `page[after]` with the `next_cursor` returned in the previous response to stream forward. + * + * @throws ApiException if the Api call fails + */ + @Test + public void listAlertEventsFeedTest() throws ApiException { + String include = null; + Integer pageSize = null; + String pageAfter = null; + String sort = null; + String filterKind = null; + String filterAction = null; + String filterAlertId = null; + String filterCreatedAtGt = null; + String filterCreatedAtGte = null; + String filterCreatedAtLt = null; + String filterCreatedAtLte = null; + AlertEventFeedList response = api.listAlertEventsFeed(include, pageSize, pageAfter, sort, filterKind, filterAction, filterAlertId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + // TODO: test validations + } + /** * Update alert event * diff --git a/src/test/java/com/rootly/client/api/AlertFieldsApiTest.java b/src/test/java/com/rootly/client/api/AlertFieldsApiTest.java index 353f33d6..34ece136 100644 --- a/src/test/java/com/rootly/client/api/AlertFieldsApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertFieldsApiTest.java @@ -97,8 +97,16 @@ public void listAlertFieldsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterKindEq = null; + String filterKindNotEq = null; + String filterKindIn = null; + String filterKindNotIn = null; String sort = null; - AlertFieldList response = api.listAlertFields(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + AlertFieldList response = api.listAlertFields(include, pageNumber, pageSize, filterSearch, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/AlertGroupsApiTest.java b/src/test/java/com/rootly/client/api/AlertGroupsApiTest.java index 12622600..ff22f605 100644 --- a/src/test/java/com/rootly/client/api/AlertGroupsApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertGroupsApiTest.java @@ -88,7 +88,15 @@ public void getAlertGroupTest() throws ApiException { @Test public void listAlertGroupsTest() throws ApiException { String include = null; - AlertGroupList response = api.listAlertGroups(include); + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + AlertGroupList response = api.listAlertGroups(include, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/AlertRetriggerRulesApiTest.java b/src/test/java/com/rootly/client/api/AlertRetriggerRulesApiTest.java new file mode 100644 index 00000000..5373116e --- /dev/null +++ b/src/test/java/com/rootly/client/api/AlertRetriggerRulesApiTest.java @@ -0,0 +1,98 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiException; +import com.rootly.client.model.AlertRetriggerRuleList; +import com.rootly.client.model.AlertRetriggerRuleResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewAlertRetriggerRule; +import com.rootly.client.model.UpdateAlertRetriggerRule; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for AlertRetriggerRulesApi + */ +@Disabled +public class AlertRetriggerRulesApiTest { + + private final AlertRetriggerRulesApi api = new AlertRetriggerRulesApi(); + + /** + * Creates an alert re-trigger rule + * + * @throws ApiException if the Api call fails + */ + @Test + public void createAlertRetriggerRuleTest() throws ApiException { + NewAlertRetriggerRule newAlertRetriggerRule = null; + AlertRetriggerRuleResponse response = api.createAlertRetriggerRule(newAlertRetriggerRule); + // TODO: test validations + } + + /** + * Deletes an alert re-trigger rule + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteAlertRetriggerRuleTest() throws ApiException { + String id = null; + api.deleteAlertRetriggerRule(id); + // TODO: test validations + } + + /** + * Retrieves an alert re-trigger rule + * + * @throws ApiException if the Api call fails + */ + @Test + public void getAlertRetriggerRuleTest() throws ApiException { + String id = null; + AlertRetriggerRuleResponse response = api.getAlertRetriggerRule(id); + // TODO: test validations + } + + /** + * List alert re-trigger rules + * + * @throws ApiException if the Api call fails + */ + @Test + public void listAlertRetriggerRulesTest() throws ApiException { + AlertRetriggerRuleList response = api.listAlertRetriggerRules(); + // TODO: test validations + } + + /** + * Updates an alert re-trigger rule + * + * @throws ApiException if the Api call fails + */ + @Test + public void updateAlertRetriggerRuleTest() throws ApiException { + String id = null; + UpdateAlertRetriggerRule updateAlertRetriggerRule = null; + AlertRetriggerRuleResponse response = api.updateAlertRetriggerRule(id, updateAlertRetriggerRule); + // TODO: test validations + } + +} diff --git a/src/test/java/com/rootly/client/api/AlertRoutesApiTest.java b/src/test/java/com/rootly/client/api/AlertRoutesApiTest.java index b5d5f254..cd80180f 100644 --- a/src/test/java/com/rootly/client/api/AlertRoutesApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertRoutesApiTest.java @@ -19,6 +19,7 @@ import com.rootly.client.model.DeleteAlertRoute200Response; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.NewAlertRoute; +import com.rootly.client.model.PatchAlertRoute; import com.rootly.client.model.UpdateAlertRoute; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -67,7 +68,7 @@ public void deleteAlertRouteTest() throws ApiException { /** * Get an alert route * - * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * Get a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Optional Parameters - **show_nested_ids** (query parameter): When set to `true`, the response will include IDs for all nested resources (destinations, condition_groups, conditions). This is useful when you need to reference these nested resources for updates or deletions via PATCH requests. Example: `GET /v1/alert_routes/{id}?show_nested_ids=true` * * @throws ApiException if the Api call fails */ @@ -91,15 +92,38 @@ public void listAlertRoutesTest() throws ApiException { Integer pageSize = null; String filterSearch = null; String filterName = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; String sort = null; - AlertRouteList response = api.listAlertRoutes(pageNumber, pageSize, filterSearch, filterName, sort); + AlertRouteList response = api.listAlertRoutes(pageNumber, pageSize, filterSearch, filterName, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); // TODO: test validations } /** * Update an alert route * - * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ## Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. + * Updates an alert route. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** + * + * @throws ApiException if the Api call fails + */ + @Test + public void patchAlertRouteTest() throws ApiException { + String id = null; + PatchAlertRoute patchAlertRoute = null; + AlertRouteResponse response = api.patchAlertRoute(id, patchAlertRoute); + // TODO: test validations + } + + /** + * Update an alert route + * + * Update a specific alert route by id. **Note: This endpoint requires access to Advanced Alert Routing. If you're unsure whether you have access to this feature, please contact Rootly customer support.** ### Asynchronous Rule Creation For organizations with large numbers of routing rules, Rootly supports asynchronous rule processing to improve performance. When enabled, rule updates happen in the background. **Important**: When async processing is enabled, the rules list in the API response will not be up-to-date immediately after update. You should refetch the alert route after a few minutes to get the updated rules. If you experience slow operations when managing alert routes with many rules, contact Rootly customer support to enable asynchronous rule processing for your organization. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/rootly/client/api/AlertRoutingRulesApiTest.java b/src/test/java/com/rootly/client/api/AlertRoutingRulesApiTest.java index bcd6a8fa..309f69eb 100644 --- a/src/test/java/com/rootly/client/api/AlertRoutingRulesApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertRoutingRulesApiTest.java @@ -96,8 +96,16 @@ public void listAlertRoutingRulesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; String sort = null; - AlertRoutingRuleList response = api.listAlertRoutingRules(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + AlertRoutingRuleList response = api.listAlertRoutingRules(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/AlertSourcesApiTest.java b/src/test/java/com/rootly/client/api/AlertSourcesApiTest.java index 293ad86a..81efb849 100644 --- a/src/test/java/com/rootly/client/api/AlertSourcesApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertSourcesApiTest.java @@ -92,8 +92,10 @@ public void listAlertsSourcesTest() throws ApiException { String filterSearch = null; String filterStatuses = null; String filterSourceTypes = null; + String filterName = null; + Boolean filterEnabled = null; String sort = null; - AlertsSourceList response = api.listAlertsSources(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, sort); + AlertsSourceList response = api.listAlertsSources(include, pageNumber, pageSize, filterSearch, filterStatuses, filterSourceTypes, filterName, filterEnabled, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/AlertUrgenciesApiTest.java b/src/test/java/com/rootly/client/api/AlertUrgenciesApiTest.java index b89e3ce4..a9862c90 100644 --- a/src/test/java/com/rootly/client/api/AlertUrgenciesApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertUrgenciesApiTest.java @@ -95,8 +95,12 @@ public void listAlertUrgenciesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; String sort = null; - AlertUrgencyList response = api.listAlertUrgencies(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + AlertUrgencyList response = api.listAlertUrgencies(include, pageNumber, pageSize, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/AlertsApiTest.java b/src/test/java/com/rootly/client/api/AlertsApiTest.java index 938b2690..60a5f7c5 100644 --- a/src/test/java/com/rootly/client/api/AlertsApiTest.java +++ b/src/test/java/com/rootly/client/api/AlertsApiTest.java @@ -18,8 +18,11 @@ import com.rootly.client.model.AlertResponse; import com.rootly.client.model.AttachAlert; import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.EscalateAlert; import com.rootly.client.model.NewAlert; +import com.rootly.client.model.Receipt; import com.rootly.client.model.ResolveAlert; +import com.rootly.client.model.SnoozeAlert; import com.rootly.client.model.UpdateAlert; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -80,6 +83,21 @@ public void createAlertTest() throws ApiException { // TODO: test validations } + /** + * Escalates an alert + * + * Escalates a specific alert to the next or specified level in its escalation policy + * + * @throws ApiException if the Api call fails + */ + @Test + public void escalateAlertTest() throws ApiException { + String id = null; + EscalateAlert escalateAlert = null; + AlertResponse response = api.escalateAlert(id, escalateAlert); + // TODO: test validations + } + /** * Retrieves an alert * @@ -95,6 +113,20 @@ public void getAlertTest() throws ApiException { // TODO: test validations } + /** + * Get a receipt + * + * Retrieve the delivery receipt for a notification by ID, including its state and (when applicable) failure reason and referenced resource. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getReceiptTest() throws ApiException { + String id = null; + Receipt response = api.getReceipt(id); + // TODO: test validations + } + /** * List alerts * @@ -123,9 +155,38 @@ public void listAlertsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterUpdatedAtGt = null; + String filterUpdatedAtGte = null; + String filterUpdatedAtLt = null; + String filterUpdatedAtLte = null; + String filterStatusEq = null; + String filterStatusNotEq = null; + String filterStatusIn = null; + String filterStatusNotIn = null; + String filterSourceEq = null; + String filterSourceNotEq = null; + String filterSourceIn = null; + String filterSourceNotIn = null; + String filterServicesEq = null; + String filterServicesNotEq = null; + String filterServicesIn = null; + String filterServicesNotIn = null; + String filterGroupsEq = null; + String filterGroupsNotEq = null; + String filterGroupsIn = null; + String filterGroupsNotIn = null; + String filterEnvironmentsEq = null; + String filterEnvironmentsNotEq = null; + String filterEnvironmentsIn = null; + String filterEnvironmentsNotIn = null; + String filterLabelsEq = null; + String filterLabelsNotEq = null; + String filterLabelsIn = null; + String filterLabelsNotIn = null; + String pageAfter = null; Integer pageNumber = null; Integer pageSize = null; - AlertList response = api.listAlerts(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + AlertList response = api.listAlerts(include, filterStatus, filterSource, filterServices, filterEnvironments, filterGroups, filterLabels, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterGroupsEq, filterGroupsNotEq, filterGroupsIn, filterGroupsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, pageAfter, pageNumber, pageSize); // TODO: test validations } @@ -159,6 +220,21 @@ public void resolveAlertTest() throws ApiException { // TODO: test validations } + /** + * Snoozes an alert + * + * Snoozes a specific alert by id, extending the acknowledgment timeout + * + * @throws ApiException if the Api call fails + */ + @Test + public void snoozeAlertTest() throws ApiException { + String id = null; + SnoozeAlert snoozeAlert = null; + AlertResponse response = api.snoozeAlert(id, snoozeAlert); + // TODO: test validations + } + /** * Update alert * diff --git a/src/test/java/com/rootly/client/api/AuditsApiTest.java b/src/test/java/com/rootly/client/api/AuditsApiTest.java index 1905bd09..48fa76c2 100644 --- a/src/test/java/com/rootly/client/api/AuditsApiTest.java +++ b/src/test/java/com/rootly/client/api/AuditsApiTest.java @@ -51,8 +51,24 @@ public void listAuditsTest() throws ApiException { String filterApiKeyId = null; String filterSource = null; String filterItemType = null; + String filterUserIdEq = null; + String filterUserIdNotEq = null; + String filterUserIdIn = null; + String filterUserIdNotIn = null; + String filterApiKeyIdEq = null; + String filterApiKeyIdNotEq = null; + String filterApiKeyIdIn = null; + String filterApiKeyIdNotIn = null; + String filterSourceEq = null; + String filterSourceNotEq = null; + String filterSourceIn = null; + String filterSourceNotIn = null; + String filterItemTypeEq = null; + String filterItemTypeNotEq = null; + String filterItemTypeIn = null; + String filterItemTypeNotIn = null; String sort = null; - AuditsList response = api.listAudits(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, sort); + AuditsList response = api.listAudits(include, pageNumber, pageSize, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUserId, filterApiKeyId, filterSource, filterItemType, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterApiKeyIdEq, filterApiKeyIdNotEq, filterApiKeyIdIn, filterApiKeyIdNotIn, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterItemTypeEq, filterItemTypeNotEq, filterItemTypeIn, filterItemTypeNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/CatalogEntitiesApiTest.java b/src/test/java/com/rootly/client/api/CatalogEntitiesApiTest.java index cbbab25d..3b1d4448 100644 --- a/src/test/java/com/rootly/client/api/CatalogEntitiesApiTest.java +++ b/src/test/java/com/rootly/client/api/CatalogEntitiesApiTest.java @@ -14,6 +14,12 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.BulkDeleteCatalogEntities422Response; +import com.rootly.client.model.BulkDestroyCatalogEntities; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponse; +import com.rootly.client.model.BulkUpsertCatalogEntities; +import com.rootly.client.model.BulkUpsertCatalogEntities422Response; +import com.rootly.client.model.BulkUpsertCatalogEntitiesResponse; import com.rootly.client.model.CatalogEntityList; import com.rootly.client.model.CatalogEntityResponse; import com.rootly.client.model.ErrorsList; @@ -36,6 +42,36 @@ public class CatalogEntitiesApiTest { private final CatalogEntitiesApi api = new CatalogEntitiesApi(); + /** + * Bulk delete Catalog Entities + * + * Delete catalog entities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkDeleteCatalogEntitiesTest() throws ApiException { + String catalogId = null; + BulkDestroyCatalogEntities bulkDestroyCatalogEntities = null; + BulkDestroyCatalogEntitiesResponse response = api.bulkDeleteCatalogEntities(catalogId, bulkDestroyCatalogEntities); + // TODO: test validations + } + + /** + * Bulk upsert Catalog Entities + * + * Create or update multiple catalog entities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkUpsertCatalogEntitiesTest() throws ApiException { + String catalogId = null; + BulkUpsertCatalogEntities bulkUpsertCatalogEntities = null; + BulkUpsertCatalogEntitiesResponse response = api.bulkUpsertCatalogEntities(catalogId, bulkUpsertCatalogEntities); + // TODO: test validations + } + /** * Creates a Catalog Entity * @@ -94,13 +130,29 @@ public void listCatalogEntitiesTest() throws ApiException { String sort = null; Integer pageNumber = null; Integer pageSize = null; + String filterSearch = null; String filterSlug = null; String filterName = null; + String filterBackstageId = null; + String filterExternalId = null; + String filterManagedBy = null; String filterCreatedAtGt = null; String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; - CatalogEntityList response = api.listCatalogEntities(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterManagedByEq = null; + String filterManagedByNotEq = null; + String filterManagedByIn = null; + String filterManagedByNotIn = null; + CatalogEntityList response = api.listCatalogEntities(catalogId, include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/CatalogEntityPropertiesApiTest.java b/src/test/java/com/rootly/client/api/CatalogEntityPropertiesApiTest.java index 6ea00fd7..4ed097bf 100644 --- a/src/test/java/com/rootly/client/api/CatalogEntityPropertiesApiTest.java +++ b/src/test/java/com/rootly/client/api/CatalogEntityPropertiesApiTest.java @@ -38,7 +38,7 @@ public class CatalogEntityPropertiesApiTest { /** * Creates a Catalog Entity Property * - * Creates a new Catalog Entity Property from provided data + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Creates a new Catalog Entity Property from provided data. * * @throws ApiException if the Api call fails */ @@ -53,7 +53,7 @@ public void createCatalogEntityPropertyTest() throws ApiException { /** * Delete a Catalog Entity Property * - * Delete a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Delete a specific Catalog Entity Property by id. * * @throws ApiException if the Api call fails */ @@ -67,7 +67,7 @@ public void deleteCatalogEntityPropertyTest() throws ApiException { /** * Retrieves a Catalog Entity Property * - * Retrieves a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. Retrieves a specific Catalog Entity Property by id. * * @throws ApiException if the Api call fails */ @@ -82,7 +82,7 @@ public void getCatalogEntityPropertyTest() throws ApiException { /** * List catalog properties * - * List Catalog Entity Properties + * **Deprecated:** This endpoint is deprecated, please use `include=fields` on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to retrieve field values instead. List Catalog Entity Properties. * * @throws ApiException if the Api call fails */ @@ -106,7 +106,7 @@ public void listCatalogEntityPropertiesTest() throws ApiException { /** * Update a Catalog Entity Property * - * Update a specific Catalog Entity Property by id + * **Deprecated:** This endpoint is deprecated, please use the `fields` attribute on catalog entities or native catalog endpoints (teams, services, functionalities, incident_types, causes, environments) to set field values instead. Update a specific Catalog Entity Property by id. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/rootly/client/api/CatalogsApiTest.java b/src/test/java/com/rootly/client/api/CatalogsApiTest.java index 74091b25..38322f84 100644 --- a/src/test/java/com/rootly/client/api/CatalogsApiTest.java +++ b/src/test/java/com/rootly/client/api/CatalogsApiTest.java @@ -91,13 +91,28 @@ public void listCatalogsTest() throws ApiException { String sort = null; Integer pageNumber = null; Integer pageSize = null; + String filterSearch = null; String filterSlug = null; String filterName = null; + String filterExternalId = null; + String filterManagedBy = null; String filterCreatedAtGt = null; String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; - CatalogList response = api.listCatalogs(include, sort, pageNumber, pageSize, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterManagedByEq = null; + String filterManagedByNotEq = null; + String filterManagedByIn = null; + String filterManagedByNotIn = null; + CatalogList response = api.listCatalogs(include, sort, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterExternalId, filterManagedBy, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterManagedByEq, filterManagedByNotEq, filterManagedByIn, filterManagedByNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/CausesApiTest.java b/src/test/java/com/rootly/client/api/CausesApiTest.java index ce119a1a..ab50a504 100644 --- a/src/test/java/com/rootly/client/api/CausesApiTest.java +++ b/src/test/java/com/rootly/client/api/CausesApiTest.java @@ -14,10 +14,13 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.CauseList; import com.rootly.client.model.CauseResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewCause; import com.rootly.client.model.UpdateCause; import org.junit.jupiter.api.Disabled; @@ -50,6 +53,20 @@ public void createCauseTest() throws ApiException { // TODO: test validations } + /** + * Creates a Catalog Property + * + * Creates a new Catalog Property from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createCauseCatalogPropertyTest() throws ApiException { + NewCatalogProperty newCatalogProperty = null; + CatalogPropertyResponse response = api.createCauseCatalogProperty(newCatalogProperty); + // TODO: test validations + } + /** * Delete a cause * @@ -78,6 +95,30 @@ public void getCauseTest() throws ApiException { // TODO: test validations } + /** + * List Catalog Properties + * + * List Cause Catalog Properties + * + * @throws ApiException if the Api call fails + */ + @Test + public void listCauseCatalogPropertiesTest() throws ApiException { + String include = null; + String sort = null; + Integer pageNumber = null; + Integer pageSize = null; + String filterSlug = null; + String filterName = null; + String filterKind = null; + String filterCreatedAtGt = null; + String filterCreatedAtGte = null; + String filterCreatedAtLt = null; + String filterCreatedAtLte = null; + CatalogPropertyList response = api.listCauseCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + // TODO: test validations + } + /** * List causes * @@ -97,7 +138,15 @@ public void listCausesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; - CauseList response = api.listCauses(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + CauseList response = api.listCauses(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/DeprecatedCustomFieldsApiTest.java b/src/test/java/com/rootly/client/api/DeprecatedCustomFieldsApiTest.java index 3bbef863..315e982d 100644 --- a/src/test/java/com/rootly/client/api/DeprecatedCustomFieldsApiTest.java +++ b/src/test/java/com/rootly/client/api/DeprecatedCustomFieldsApiTest.java @@ -99,7 +99,23 @@ public void listCustomFieldsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; - CustomFieldList response = api.listCustomFields(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterLabelEq = null; + String filterLabelNotEq = null; + String filterLabelIn = null; + String filterLabelNotIn = null; + String filterKindEq = null; + String filterKindNotEq = null; + String filterKindIn = null; + String filterKindNotIn = null; + String filterEnabledEq = null; + String filterEnabledNotEq = null; + String filterEnabledIn = null; + String filterEnabledNotIn = null; + CustomFieldList response = api.listCustomFields(include, sort, pageNumber, pageSize, filterSlug, filterLabel, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterLabelEq, filterLabelNotEq, filterLabelIn, filterLabelNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/EdgeConnectorActionsApiTest.java b/src/test/java/com/rootly/client/api/EdgeConnectorActionsApiTest.java index 7d35f650..8bdbc466 100644 --- a/src/test/java/com/rootly/client/api/EdgeConnectorActionsApiTest.java +++ b/src/test/java/com/rootly/client/api/EdgeConnectorActionsApiTest.java @@ -14,9 +14,9 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.CreateEdgeConnectorActionRequest; import com.rootly.client.model.GetAlertFieldIdParameter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequest; +import com.rootly.client.model.UpdateEdgeConnectorActionRequest; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -34,14 +34,15 @@ public class EdgeConnectorActionsApiTest { private final EdgeConnectorActionsApi api = new EdgeConnectorActionsApi(); /** - * List edge connector actions + * Create edge connector action * * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsEdgeConnectorIdActionsGetTest() throws ApiException { + public void createEdgeConnectorActionTest() throws ApiException { String edgeConnectorId = null; - api.v1EdgeConnectorsEdgeConnectorIdActionsGet(edgeConnectorId); + CreateEdgeConnectorActionRequest createEdgeConnectorActionRequest = null; + api.createEdgeConnectorAction(edgeConnectorId, createEdgeConnectorActionRequest); // TODO: test validations } @@ -51,10 +52,10 @@ public void v1EdgeConnectorsEdgeConnectorIdActionsGetTest() throws ApiException * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteTest() throws ApiException { + public void deleteEdgeConnectorActionTest() throws ApiException { String edgeConnectorId = null; GetAlertFieldIdParameter id = null; - api.v1EdgeConnectorsEdgeConnectorIdActionsIdDelete(edgeConnectorId, id); + api.deleteEdgeConnectorAction(edgeConnectorId, id); // TODO: test validations } @@ -64,37 +65,36 @@ public void v1EdgeConnectorsEdgeConnectorIdActionsIdDeleteTest() throws ApiExcep * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsEdgeConnectorIdActionsIdGetTest() throws ApiException { + public void getEdgeConnectorActionTest() throws ApiException { String edgeConnectorId = null; GetAlertFieldIdParameter id = null; - api.v1EdgeConnectorsEdgeConnectorIdActionsIdGet(edgeConnectorId, id); + api.getEdgeConnectorAction(edgeConnectorId, id); // TODO: test validations } /** - * Update edge connector action + * List edge connector actions * * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsEdgeConnectorIdActionsIdPatchTest() throws ApiException { + public void listEdgeConnectorActionsTest() throws ApiException { String edgeConnectorId = null; - GetAlertFieldIdParameter id = null; - V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest = null; - api.v1EdgeConnectorsEdgeConnectorIdActionsIdPatch(edgeConnectorId, id, v1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest); + api.listEdgeConnectorActions(edgeConnectorId); // TODO: test validations } /** - * Create edge connector action + * Update edge connector action * * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsEdgeConnectorIdActionsPostTest() throws ApiException { + public void updateEdgeConnectorActionTest() throws ApiException { String edgeConnectorId = null; - V1EdgeConnectorsEdgeConnectorIdActionsPostRequest v1EdgeConnectorsEdgeConnectorIdActionsPostRequest = null; - api.v1EdgeConnectorsEdgeConnectorIdActionsPost(edgeConnectorId, v1EdgeConnectorsEdgeConnectorIdActionsPostRequest); + GetAlertFieldIdParameter id = null; + UpdateEdgeConnectorActionRequest updateEdgeConnectorActionRequest = null; + api.updateEdgeConnectorAction(edgeConnectorId, id, updateEdgeConnectorActionRequest); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/EdgeConnectorsApiTest.java b/src/test/java/com/rootly/client/api/EdgeConnectorsApiTest.java index b68bddb4..57967685 100644 --- a/src/test/java/com/rootly/client/api/EdgeConnectorsApiTest.java +++ b/src/test/java/com/rootly/client/api/EdgeConnectorsApiTest.java @@ -14,8 +14,8 @@ package com.rootly.client.api; import com.rootly.client.ApiException; -import com.rootly.client.model.V1EdgeConnectorsIdPatchRequest; -import com.rootly.client.model.V1EdgeConnectorsPostRequest; +import com.rootly.client.model.CreateEdgeConnectorRequest; +import com.rootly.client.model.UpdateEdgeConnectorRequest; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -33,17 +33,14 @@ public class EdgeConnectorsApiTest { private final EdgeConnectorsApi api = new EdgeConnectorsApi(); /** - * List edge connectors + * Create edge connector * * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsGetTest() throws ApiException { - Integer page = null; - Integer perPage = null; - String status = null; - String name = null; - api.v1EdgeConnectorsGet(page, perPage, status, name); + public void createEdgeConnectorTest() throws ApiException { + CreateEdgeConnectorRequest createEdgeConnectorRequest = null; + api.createEdgeConnector(createEdgeConnectorRequest); // TODO: test validations } @@ -53,9 +50,9 @@ public void v1EdgeConnectorsGetTest() throws ApiException { * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsIdDeleteTest() throws ApiException { + public void deleteEdgeConnectorTest() throws ApiException { String id = null; - api.v1EdgeConnectorsIdDelete(id); + api.deleteEdgeConnector(id); // TODO: test validations } @@ -65,34 +62,37 @@ public void v1EdgeConnectorsIdDeleteTest() throws ApiException { * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsIdGetTest() throws ApiException { + public void getEdgeConnectorTest() throws ApiException { String id = null; - api.v1EdgeConnectorsIdGet(id); + api.getEdgeConnector(id); // TODO: test validations } /** - * Update edge connector + * List edge connectors * * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsIdPatchTest() throws ApiException { - String id = null; - V1EdgeConnectorsIdPatchRequest v1EdgeConnectorsIdPatchRequest = null; - api.v1EdgeConnectorsIdPatch(id, v1EdgeConnectorsIdPatchRequest); + public void listEdgeConnectorsTest() throws ApiException { + Integer page = null; + Integer perPage = null; + String status = null; + String name = null; + api.listEdgeConnectors(page, perPage, status, name); // TODO: test validations } /** - * Create edge connector + * Update edge connector * * @throws ApiException if the Api call fails */ @Test - public void v1EdgeConnectorsPostTest() throws ApiException { - V1EdgeConnectorsPostRequest v1EdgeConnectorsPostRequest = null; - api.v1EdgeConnectorsPost(v1EdgeConnectorsPostRequest); + public void updateEdgeConnectorTest() throws ApiException { + String id = null; + UpdateEdgeConnectorRequest updateEdgeConnectorRequest = null; + api.updateEdgeConnector(id, updateEdgeConnectorRequest); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/EnvironmentsApiTest.java b/src/test/java/com/rootly/client/api/EnvironmentsApiTest.java index 373fcdf2..70c3505a 100644 --- a/src/test/java/com/rootly/client/api/EnvironmentsApiTest.java +++ b/src/test/java/com/rootly/client/api/EnvironmentsApiTest.java @@ -14,10 +14,19 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.BulkDeleteEnvironments422Response; +import com.rootly.client.model.BulkDestroyEnvironments; +import com.rootly.client.model.BulkDestroyEnvironmentsResponse; +import com.rootly.client.model.BulkUpsertEnvironments; +import com.rootly.client.model.BulkUpsertEnvironments422Response; +import com.rootly.client.model.BulkUpsertEnvironmentsResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.EnvironmentList; import com.rootly.client.model.EnvironmentResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewEnvironment; import com.rootly.client.model.UpdateEnvironment; import org.junit.jupiter.api.Disabled; @@ -36,6 +45,34 @@ public class EnvironmentsApiTest { private final EnvironmentsApi api = new EnvironmentsApi(); + /** + * Bulk delete Environments + * + * Delete environments by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkDeleteEnvironmentsTest() throws ApiException { + BulkDestroyEnvironments bulkDestroyEnvironments = null; + BulkDestroyEnvironmentsResponse response = api.bulkDeleteEnvironments(bulkDestroyEnvironments); + // TODO: test validations + } + + /** + * Bulk upsert Environments + * + * Create or update multiple environments by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkUpsertEnvironmentsTest() throws ApiException { + BulkUpsertEnvironments bulkUpsertEnvironments = null; + BulkUpsertEnvironmentsResponse response = api.bulkUpsertEnvironments(bulkUpsertEnvironments); + // TODO: test validations + } + /** * Creates an environment * @@ -50,6 +87,20 @@ public void createEnvironmentTest() throws ApiException { // TODO: test validations } + /** + * Creates a Catalog Property + * + * Creates a new Catalog Property from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createEnvironmentCatalogPropertyTest() throws ApiException { + NewCatalogProperty newCatalogProperty = null; + CatalogPropertyResponse response = api.createEnvironmentCatalogProperty(newCatalogProperty); + // TODO: test validations + } + /** * Delete an environment * @@ -78,6 +129,30 @@ public void getEnvironmentTest() throws ApiException { // TODO: test validations } + /** + * List Catalog Properties + * + * List Environment Catalog Properties + * + * @throws ApiException if the Api call fails + */ + @Test + public void listEnvironmentCatalogPropertiesTest() throws ApiException { + String include = null; + String sort = null; + Integer pageNumber = null; + Integer pageSize = null; + String filterSlug = null; + String filterName = null; + String filterKind = null; + String filterCreatedAtGt = null; + String filterCreatedAtGte = null; + String filterCreatedAtLt = null; + String filterCreatedAtLte = null; + CatalogPropertyList response = api.listEnvironmentCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + // TODO: test validations + } + /** * List environments * @@ -98,8 +173,20 @@ public void listEnvironmentsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterColorEq = null; + String filterColorNotEq = null; + String filterColorIn = null; + String filterColorNotIn = null; String sort = null; - EnvironmentList response = api.listEnvironments(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + EnvironmentList response = api.listEnvironments(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/EscalationPathsApiTest.java b/src/test/java/com/rootly/client/api/EscalationPathsApiTest.java index 12be0c1b..3dd7393c 100644 --- a/src/test/java/com/rootly/client/api/EscalationPathsApiTest.java +++ b/src/test/java/com/rootly/client/api/EscalationPathsApiTest.java @@ -90,9 +90,10 @@ public void getEscalationPathTest() throws ApiException { public void listEscalationPathsTest() throws ApiException { String escalationPolicyId = null; String include = null; + String filterPathType = null; Integer pageNumber = null; Integer pageSize = null; - EscalationPolicyPathList response = api.listEscalationPaths(escalationPolicyId, include, pageNumber, pageSize); + EscalationPolicyPathList response = api.listEscalationPaths(escalationPolicyId, include, filterPathType, pageNumber, pageSize); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/EscalationPoliciesApiTest.java b/src/test/java/com/rootly/client/api/EscalationPoliciesApiTest.java index 229b605c..a9c9cc48 100644 --- a/src/test/java/com/rootly/client/api/EscalationPoliciesApiTest.java +++ b/src/test/java/com/rootly/client/api/EscalationPoliciesApiTest.java @@ -90,13 +90,22 @@ public void listEscalationPoliciesTest() throws ApiException { String include = null; String filterSearch = null; String filterName = null; + String filterTeamIds = null; String filterCreatedAtGt = null; String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterTeamIdsEq = null; + String filterTeamIdsNotEq = null; + String filterTeamIdsIn = null; + String filterTeamIdsNotIn = null; Integer pageNumber = null; Integer pageSize = null; - EscalationPolicyList response = api.listEscalationPolicies(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + EscalationPolicyList response = api.listEscalationPolicies(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/FormFieldsApiTest.java b/src/test/java/com/rootly/client/api/FormFieldsApiTest.java index 6cc247da..62dfcbde 100644 --- a/src/test/java/com/rootly/client/api/FormFieldsApiTest.java +++ b/src/test/java/com/rootly/client/api/FormFieldsApiTest.java @@ -100,7 +100,23 @@ public void listFormFieldsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; - FormFieldList response = api.listFormFields(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterKindEq = null; + String filterKindNotEq = null; + String filterKindIn = null; + String filterKindNotIn = null; + String filterEnabledEq = null; + String filterEnabledNotEq = null; + String filterEnabledIn = null; + String filterEnabledNotIn = null; + FormFieldList response = api.listFormFields(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterKind, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/FunctionalitiesApiTest.java b/src/test/java/com/rootly/client/api/FunctionalitiesApiTest.java index f2d6ddc4..6d48b4df 100644 --- a/src/test/java/com/rootly/client/api/FunctionalitiesApiTest.java +++ b/src/test/java/com/rootly/client/api/FunctionalitiesApiTest.java @@ -14,12 +14,23 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.BulkDeleteFunctionalities422Response; +import com.rootly.client.model.BulkDestroyFunctionalities; +import com.rootly.client.model.BulkDestroyFunctionalitiesResponse; +import com.rootly.client.model.BulkUpsertFunctionalities; +import com.rootly.client.model.BulkUpsertFunctionalities422Response; +import com.rootly.client.model.BulkUpsertFunctionalitiesResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.FunctionalityList; import com.rootly.client.model.FunctionalityResponse; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.IncidentsChartResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewFunctionality; import com.rootly.client.model.UpdateFunctionality; +import com.rootly.client.model.UptimeChartResponse; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -36,6 +47,34 @@ public class FunctionalitiesApiTest { private final FunctionalitiesApi api = new FunctionalitiesApi(); + /** + * Bulk delete Functionalities + * + * Delete functionalities by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkDeleteFunctionalitiesTest() throws ApiException { + BulkDestroyFunctionalities bulkDestroyFunctionalities = null; + BulkDestroyFunctionalitiesResponse response = api.bulkDeleteFunctionalities(bulkDestroyFunctionalities); + // TODO: test validations + } + + /** + * Bulk upsert Functionalities + * + * Create or update multiple functionalities by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkUpsertFunctionalitiesTest() throws ApiException { + BulkUpsertFunctionalities bulkUpsertFunctionalities = null; + BulkUpsertFunctionalitiesResponse response = api.bulkUpsertFunctionalities(bulkUpsertFunctionalities); + // TODO: test validations + } + /** * Creates a functionality * @@ -50,6 +89,20 @@ public void createFunctionalityTest() throws ApiException { // TODO: test validations } + /** + * Creates a Catalog Property + * + * Creates a new Catalog Property from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createFunctionalityCatalogPropertyTest() throws ApiException { + NewCatalogProperty newCatalogProperty = null; + CatalogPropertyResponse response = api.createFunctionalityCatalogProperty(newCatalogProperty); + // TODO: test validations + } + /** * Delete a functionality * @@ -89,7 +142,7 @@ public void getFunctionalityTest() throws ApiException { public void getFunctionalityIncidentsChartTest() throws ApiException { GetAlertFieldIdParameter id = null; String period = null; - Object response = api.getFunctionalityIncidentsChart(id, period); + IncidentsChartResponse response = api.getFunctionalityIncidentsChart(id, period); // TODO: test validations } @@ -104,7 +157,7 @@ public void getFunctionalityIncidentsChartTest() throws ApiException { public void getFunctionalityUptimeChartTest() throws ApiException { GetAlertFieldIdParameter id = null; String period = null; - Object response = api.getFunctionalityUptimeChart(id, period); + UptimeChartResponse response = api.getFunctionalityUptimeChart(id, period); // TODO: test validations } @@ -131,8 +184,40 @@ public void listFunctionalitiesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; String sort = null; - FunctionalityList response = api.listFunctionalities(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + FunctionalityList response = api.listFunctionalities(include, pageNumber, pageSize, filterSearch, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort); + // TODO: test validations + } + + /** + * List Catalog Properties + * + * List Functionality Catalog Properties + * + * @throws ApiException if the Api call fails + */ + @Test + public void listFunctionalityCatalogPropertiesTest() throws ApiException { + String include = null; + String sort = null; + Integer pageNumber = null; + Integer pageSize = null; + String filterSlug = null; + String filterName = null; + String filterKind = null; + String filterCreatedAtGt = null; + String filterCreatedAtGte = null; + String filterCreatedAtLt = null; + String filterCreatedAtLte = null; + CatalogPropertyList response = api.listFunctionalityCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/IncidentActionItemsApiTest.java b/src/test/java/com/rootly/client/api/IncidentActionItemsApiTest.java index 059a7e10..b95f1590 100644 --- a/src/test/java/com/rootly/client/api/IncidentActionItemsApiTest.java +++ b/src/test/java/com/rootly/client/api/IncidentActionItemsApiTest.java @@ -106,8 +106,24 @@ public void listAllIncidentActionItemsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterKindEq = null; + String filterKindNotEq = null; + String filterKindIn = null; + String filterKindNotIn = null; + String filterPriorityEq = null; + String filterPriorityNotEq = null; + String filterPriorityIn = null; + String filterPriorityNotIn = null; + String filterStatusEq = null; + String filterStatusNotEq = null; + String filterStatusIn = null; + String filterStatusNotIn = null; + String filterIncidentStatusEq = null; + String filterIncidentStatusNotEq = null; + String filterIncidentStatusIn = null; + String filterIncidentStatusNotIn = null; String sort = null; - IncidentActionItemList response = api.listAllIncidentActionItems(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + IncidentActionItemList response = api.listAllIncidentActionItems(include, pageNumber, pageSize, filterKind, filterPriority, filterStatus, filterIncidentStatus, filterIncidentCreatedAtGt, filterIncidentCreatedAtGte, filterIncidentCreatedAtLt, filterIncidentCreatedAtLte, filterDueDateGt, filterDueDateGte, filterDueDateLt, filterDueDateLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterPriorityEq, filterPriorityNotEq, filterPriorityIn, filterPriorityNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterIncidentStatusEq, filterIncidentStatusNotEq, filterIncidentStatusIn, filterIncidentStatusNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/IncidentRolesApiTest.java b/src/test/java/com/rootly/client/api/IncidentRolesApiTest.java index ea7a0b1c..d37816c2 100644 --- a/src/test/java/com/rootly/client/api/IncidentRolesApiTest.java +++ b/src/test/java/com/rootly/client/api/IncidentRolesApiTest.java @@ -87,7 +87,6 @@ public void getIncidentRoleTest() throws ApiException { */ @Test public void listIncidentRolesTest() throws ApiException { - String include = null; Integer pageNumber = null; Integer pageSize = null; String filterSearch = null; @@ -98,8 +97,20 @@ public void listIncidentRolesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterEnabledEq = null; + String filterEnabledNotEq = null; + String filterEnabledIn = null; + String filterEnabledNotIn = null; String sort = null; - IncidentRoleList response = api.listIncidentRoles(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + IncidentRoleList response = api.listIncidentRoles(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterEnabledEq, filterEnabledNotEq, filterEnabledIn, filterEnabledNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/IncidentTypesApiTest.java b/src/test/java/com/rootly/client/api/IncidentTypesApiTest.java index 4515ebb7..6466be4c 100644 --- a/src/test/java/com/rootly/client/api/IncidentTypesApiTest.java +++ b/src/test/java/com/rootly/client/api/IncidentTypesApiTest.java @@ -14,10 +14,13 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; import com.rootly.client.model.IncidentTypeList; import com.rootly.client.model.IncidentTypeResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewIncidentType; import com.rootly.client.model.UpdateIncidentType; import org.junit.jupiter.api.Disabled; @@ -50,6 +53,20 @@ public void createIncidentTypeTest() throws ApiException { // TODO: test validations } + /** + * Creates a Catalog Property + * + * Creates a new Catalog Property from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createIncidentTypeCatalogPropertyTest() throws ApiException { + NewCatalogProperty newCatalogProperty = null; + CatalogPropertyResponse response = api.createIncidentTypeCatalogProperty(newCatalogProperty); + // TODO: test validations + } + /** * Delete an incident type * @@ -78,6 +95,30 @@ public void getIncidentTypeTest() throws ApiException { // TODO: test validations } + /** + * List Catalog Properties + * + * List IncidentType Catalog Properties + * + * @throws ApiException if the Api call fails + */ + @Test + public void listIncidentTypeCatalogPropertiesTest() throws ApiException { + String include = null; + String sort = null; + Integer pageNumber = null; + Integer pageSize = null; + String filterSlug = null; + String filterName = null; + String filterKind = null; + String filterCreatedAtGt = null; + String filterCreatedAtGte = null; + String filterCreatedAtLt = null; + String filterCreatedAtLte = null; + CatalogPropertyList response = api.listIncidentTypeCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + // TODO: test validations + } + /** * List incident types * @@ -97,8 +138,20 @@ public void listIncidentTypesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterColorEq = null; + String filterColorNotEq = null; + String filterColorIn = null; + String filterColorNotIn = null; String sort = null; - IncidentTypeList response = api.listIncidentTypes(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + IncidentTypeList response = api.listIncidentTypes(include, pageNumber, pageSize, filterSlug, filterName, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/IncidentsApiTest.java b/src/test/java/com/rootly/client/api/IncidentsApiTest.java index 53e99234..48319c44 100644 --- a/src/test/java/com/rootly/client/api/IncidentsApiTest.java +++ b/src/test/java/com/rootly/client/api/IncidentsApiTest.java @@ -118,6 +118,20 @@ public void deleteIncidentTest() throws ApiException { // TODO: test validations } + /** + * Detach an incident from its parent + * + * Detach a sub-incident from its parent incident + * + * @throws ApiException if the Api call fails + */ + @Test + public void detachFromParentIncidentTest() throws ApiException { + GetAlertFieldIdParameter id = null; + IncidentResponse response = api.detachFromParentIncident(id); + // TODO: test validations + } + /** * Retrieves an incident * @@ -142,6 +156,7 @@ public void getIncidentTest() throws ApiException { */ @Test public void listIncidentsTest() throws ApiException { + String pageAfter = null; Integer pageNumber = null; Integer pageSize = null; String filterSearch = null; @@ -158,13 +173,18 @@ public void listIncidentsTest() throws ApiException { String filterEnvironmentIds = null; String filterFunctionalities = null; String filterFunctionalityIds = null; + String filterFunctionalityNames = null; String filterServices = null; String filterServiceIds = null; + String filterServiceNames = null; String filterTeams = null; String filterTeamIds = null; + String filterTeamNames = null; String filterCause = null; String filterCauseIds = null; String filterCustomFieldSelectedOptionIds = null; + String filterSlackChannelId = null; + String filterSequentialId = null; String filterCreatedAtGt = null; String filterCreatedAtGte = null; String filterCreatedAtLt = null; @@ -201,9 +221,105 @@ public void listIncidentsTest() throws ApiException { String filterInTriageAtGte = null; String filterInTriageAtLt = null; String filterInTriageAtLte = null; + String filterKindEq = null; + String filterKindNotEq = null; + String filterKindIn = null; + String filterKindNotIn = null; + String filterStatusEq = null; + String filterStatusNotEq = null; + String filterStatusIn = null; + String filterStatusNotIn = null; + String filterPrivateEq = null; + String filterPrivateNotEq = null; + String filterPrivateIn = null; + String filterPrivateNotIn = null; + String filterUserIdEq = null; + String filterUserIdNotEq = null; + String filterUserIdIn = null; + String filterUserIdNotIn = null; + String filterSeverityEq = null; + String filterSeverityNotEq = null; + String filterSeverityIn = null; + String filterSeverityNotIn = null; + String filterSeverityIdEq = null; + String filterSeverityIdNotEq = null; + String filterSeverityIdIn = null; + String filterSeverityIdNotIn = null; + String filterLabelsEq = null; + String filterLabelsNotEq = null; + String filterLabelsIn = null; + String filterLabelsNotIn = null; + String filterZendeskTicketIdEq = null; + String filterZendeskTicketIdNotEq = null; + String filterZendeskTicketIdIn = null; + String filterZendeskTicketIdNotIn = null; + String filterSequentialIdEq = null; + String filterSequentialIdNotEq = null; + String filterSequentialIdIn = null; + String filterSequentialIdNotIn = null; + String filterTypesEq = null; + String filterTypesNotEq = null; + String filterTypesIn = null; + String filterTypesNotIn = null; + String filterTypeIdsEq = null; + String filterTypeIdsNotEq = null; + String filterTypeIdsIn = null; + String filterTypeIdsNotIn = null; + String filterEnvironmentsEq = null; + String filterEnvironmentsNotEq = null; + String filterEnvironmentsIn = null; + String filterEnvironmentsNotIn = null; + String filterEnvironmentIdsEq = null; + String filterEnvironmentIdsNotEq = null; + String filterEnvironmentIdsIn = null; + String filterEnvironmentIdsNotIn = null; + String filterServicesEq = null; + String filterServicesNotEq = null; + String filterServicesIn = null; + String filterServicesNotIn = null; + String filterServiceIdsEq = null; + String filterServiceIdsNotEq = null; + String filterServiceIdsIn = null; + String filterServiceIdsNotIn = null; + String filterServiceNamesEq = null; + String filterServiceNamesNotEq = null; + String filterServiceNamesIn = null; + String filterServiceNamesNotIn = null; + String filterFunctionalitiesEq = null; + String filterFunctionalitiesNotEq = null; + String filterFunctionalitiesIn = null; + String filterFunctionalitiesNotIn = null; + String filterFunctionalityIdsEq = null; + String filterFunctionalityIdsNotEq = null; + String filterFunctionalityIdsIn = null; + String filterFunctionalityIdsNotIn = null; + String filterFunctionalityNamesEq = null; + String filterFunctionalityNamesNotEq = null; + String filterFunctionalityNamesIn = null; + String filterFunctionalityNamesNotIn = null; + String filterCausesEq = null; + String filterCausesNotEq = null; + String filterCausesIn = null; + String filterCausesNotIn = null; + String filterCauseIdsEq = null; + String filterCauseIdsNotEq = null; + String filterCauseIdsIn = null; + String filterCauseIdsNotIn = null; + String filterTeamsEq = null; + String filterTeamsNotEq = null; + String filterTeamsIn = null; + String filterTeamsNotIn = null; + String filterTeamIdsEq = null; + String filterTeamIdsNotEq = null; + String filterTeamIdsIn = null; + String filterTeamIdsNotIn = null; + String filterTeamNamesEq = null; + String filterTeamNamesNotEq = null; + String filterTeamNamesIn = null; + String filterTeamNamesNotIn = null; String sort = null; String include = null; - IncidentList response = api.listIncidents(pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterServices, filterServiceIds, filterTeams, filterTeamIds, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, sort, include); + IncidentList response = api.listIncidents(pageAfter, pageNumber, pageSize, filterSearch, filterKind, filterStatus, filterPrivate, filterUserId, filterSeverity, filterSeverityId, filterLabels, filterTypes, filterTypeIds, filterEnvironments, filterEnvironmentIds, filterFunctionalities, filterFunctionalityIds, filterFunctionalityNames, filterServices, filterServiceIds, filterServiceNames, filterTeams, filterTeamIds, filterTeamNames, filterCause, filterCauseIds, filterCustomFieldSelectedOptionIds, filterSlackChannelId, filterSequentialId, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterUpdatedAtGt, filterUpdatedAtGte, filterUpdatedAtLt, filterUpdatedAtLte, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterDetectedAtGt, filterDetectedAtGte, filterDetectedAtLt, filterDetectedAtLte, filterAcknowledgedAtGt, filterAcknowledgedAtGte, filterAcknowledgedAtLt, filterAcknowledgedAtLte, filterMitigatedAtGt, filterMitigatedAtGte, filterMitigatedAtLt, filterMitigatedAtLte, filterResolvedAtGt, filterResolvedAtGte, filterResolvedAtLt, filterResolvedAtLte, filterClosedAtGt, filterClosedAtGte, filterClosedAtLt, filterClosedAtLte, filterInTriageAtGt, filterInTriageAtGte, filterInTriageAtLt, filterInTriageAtLte, filterKindEq, filterKindNotEq, filterKindIn, filterKindNotIn, filterStatusEq, filterStatusNotEq, filterStatusIn, filterStatusNotIn, filterPrivateEq, filterPrivateNotEq, filterPrivateIn, filterPrivateNotIn, filterUserIdEq, filterUserIdNotEq, filterUserIdIn, filterUserIdNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterSeverityIdEq, filterSeverityIdNotEq, filterSeverityIdIn, filterSeverityIdNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterZendeskTicketIdEq, filterZendeskTicketIdNotEq, filterZendeskTicketIdIn, filterZendeskTicketIdNotIn, filterSequentialIdEq, filterSequentialIdNotEq, filterSequentialIdIn, filterSequentialIdNotIn, filterTypesEq, filterTypesNotEq, filterTypesIn, filterTypesNotIn, filterTypeIdsEq, filterTypeIdsNotEq, filterTypeIdsIn, filterTypeIdsNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterEnvironmentIdsEq, filterEnvironmentIdsNotEq, filterEnvironmentIdsIn, filterEnvironmentIdsNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterServiceIdsEq, filterServiceIdsNotEq, filterServiceIdsIn, filterServiceIdsNotIn, filterServiceNamesEq, filterServiceNamesNotEq, filterServiceNamesIn, filterServiceNamesNotIn, filterFunctionalitiesEq, filterFunctionalitiesNotEq, filterFunctionalitiesIn, filterFunctionalitiesNotIn, filterFunctionalityIdsEq, filterFunctionalityIdsNotEq, filterFunctionalityIdsIn, filterFunctionalityIdsNotIn, filterFunctionalityNamesEq, filterFunctionalityNamesNotEq, filterFunctionalityNamesIn, filterFunctionalityNamesNotIn, filterCausesEq, filterCausesNotEq, filterCausesIn, filterCausesNotIn, filterCauseIdsEq, filterCauseIdsNotEq, filterCauseIdsIn, filterCauseIdsNotIn, filterTeamsEq, filterTeamsNotEq, filterTeamsIn, filterTeamsNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, filterTeamNamesEq, filterTeamNamesNotEq, filterTeamNamesIn, filterTeamNamesNotIn, sort, include); // TODO: test validations } @@ -312,6 +428,20 @@ public void triageIncidentTest() throws ApiException { // TODO: test validations } + /** + * Remove duplicate marking from an incident + * + * Remove the duplicate marking from an incident + * + * @throws ApiException if the Api call fails + */ + @Test + public void unmarkAsDuplicateIncidentTest() throws ApiException { + GetAlertFieldIdParameter id = null; + IncidentResponse response = api.unmarkAsDuplicateIncident(id); + // TODO: test validations + } + /** * Update an incident * diff --git a/src/test/java/com/rootly/client/api/MeetingRecordingsApiTest.java b/src/test/java/com/rootly/client/api/MeetingRecordingsApiTest.java index 316c99e3..71a2ad9a 100644 --- a/src/test/java/com/rootly/client/api/MeetingRecordingsApiTest.java +++ b/src/test/java/com/rootly/client/api/MeetingRecordingsApiTest.java @@ -14,7 +14,11 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.ImportMeetingRecording; import com.rootly.client.model.MeetingRecordingList; +import com.rootly.client.model.MeetingRecordingResponse; +import com.rootly.client.model.StartSessionRequest; +import com.rootly.client.model.StartSessionResponse; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -42,7 +46,7 @@ public class MeetingRecordingsApiTest { public void createMeetingRecordingTest() throws ApiException { String incidentId = null; String platform = null; - api.createMeetingRecording(incidentId, platform); + MeetingRecordingResponse response = api.createMeetingRecording(incidentId, platform); // TODO: test validations } @@ -56,7 +60,7 @@ public void createMeetingRecordingTest() throws ApiException { @Test public void deleteMeetingRecordingTest() throws ApiException { String id = null; - api.deleteMeetingRecording(id); + MeetingRecordingResponse response = api.deleteMeetingRecording(id); // TODO: test validations } @@ -70,7 +74,21 @@ public void deleteMeetingRecordingTest() throws ApiException { @Test public void deleteMeetingRecordingVideoTest() throws ApiException { String id = null; - api.deleteMeetingRecordingVideo(id); + MeetingRecordingResponse response = api.deleteMeetingRecordingVideo(id); + // TODO: test validations + } + + /** + * Delete a standalone meeting recording + * + * Delete a standalone meeting recording (not linked to an incident). Only the recording owner can delete it. Active recordings (pending, recording, paused) must be stopped first. Returns 404 for incident-linked recordings or recordings owned by another user. + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteStandaloneMeetingRecordingTest() throws ApiException { + String id = null; + api.deleteStandaloneMeetingRecording(id); // TODO: test validations } @@ -84,7 +102,23 @@ public void deleteMeetingRecordingVideoTest() throws ApiException { @Test public void getMeetingRecordingTest() throws ApiException { String id = null; - api.getMeetingRecording(id); + String include = null; + MeetingRecordingResponse response = api.getMeetingRecording(id, include); + // TODO: test validations + } + + /** + * Import a meeting recording + * + * Import an externally captured meeting recording and attach it to an incident. Video and transcript are fetched asynchronously. The existing POST /v1/incidents/{incident_id}/meeting_recordings endpoint invites a bot — this endpoint handles recordings that were captured outside of the bot flow. + * + * @throws ApiException if the Api call fails + */ + @Test + public void importMeetingRecordingTest() throws ApiException { + String incidentId = null; + ImportMeetingRecording importMeetingRecording = null; + MeetingRecordingResponse response = api.importMeetingRecording(incidentId, importMeetingRecording); // TODO: test validations } @@ -98,7 +132,23 @@ public void getMeetingRecordingTest() throws ApiException { @Test public void leaveMeetingRecordingTest() throws ApiException { String id = null; - api.leaveMeetingRecording(id); + MeetingRecordingResponse response = api.leaveMeetingRecording(id); + // TODO: test validations + } + + /** + * List all meeting recordings + * + * List meeting recordings across the organization. Returns the current user's standalone recordings plus incident-backed recordings the user can access. Supports filtering by status, platform, and created_by. + * + * @throws ApiException if the Api call fails + */ + @Test + public void listAllMeetingRecordingsTest() throws ApiException { + String status = null; + String platform = null; + String createdBy = null; + MeetingRecordingList response = api.listAllMeetingRecordings(status, platform, createdBy); // TODO: test validations } @@ -128,7 +178,7 @@ public void listMeetingRecordingsTest() throws ApiException { @Test public void pauseMeetingRecordingTest() throws ApiException { String id = null; - api.pauseMeetingRecording(id); + MeetingRecordingResponse response = api.pauseMeetingRecording(id); // TODO: test validations } @@ -142,7 +192,21 @@ public void pauseMeetingRecordingTest() throws ApiException { @Test public void resumeMeetingRecordingTest() throws ApiException { String id = null; - api.resumeMeetingRecording(id); + MeetingRecordingResponse response = api.resumeMeetingRecording(id); + // TODO: test validations + } + + /** + * Start a recording session + * + * Start a new desktop recording session. The server creates a recording record and returns a stream token the desktop client uses to send audio. No provider-specific configuration is needed from the client. + * + * @throws ApiException if the Api call fails + */ + @Test + public void startRecordingSessionTest() throws ApiException { + StartSessionRequest startSessionRequest = null; + StartSessionResponse response = api.startRecordingSession(startSessionRequest); // TODO: test validations } @@ -156,7 +220,7 @@ public void resumeMeetingRecordingTest() throws ApiException { @Test public void stopMeetingRecordingTest() throws ApiException { String id = null; - api.stopMeetingRecording(id); + MeetingRecordingResponse response = api.stopMeetingRecording(id); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/OnCallsApiTest.java b/src/test/java/com/rootly/client/api/OnCallsApiTest.java index 60f885ce..9a939537 100644 --- a/src/test/java/com/rootly/client/api/OnCallsApiTest.java +++ b/src/test/java/com/rootly/client/api/OnCallsApiTest.java @@ -15,6 +15,7 @@ import com.rootly.client.ApiException; import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.OncallList; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -51,7 +52,7 @@ public void listOncallsTest() throws ApiException { String filterServiceIds = null; String filterGroupIds = null; String filterNotificationTypes = null; - api.listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes); + OncallList response = api.listOncalls(include, since, until, earliest, timeZone, filterEscalationPolicyIds, filterScheduleIds, filterUserIds, filterServiceIds, filterGroupIds, filterNotificationTypes); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/OverrideShiftsApiTest.java b/src/test/java/com/rootly/client/api/OverrideShiftsApiTest.java index c6f6ea08..bc8854a1 100644 --- a/src/test/java/com/rootly/client/api/OverrideShiftsApiTest.java +++ b/src/test/java/com/rootly/client/api/OverrideShiftsApiTest.java @@ -39,7 +39,7 @@ public class OverrideShiftsApiTest { /** * creates an override shift * - * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. + * Creates a new override shift from provided data. If any existing override shifts overlap with the specified time range, they will be automatically deleted and replaced by the new override. This endpoint is idempotent: re-sending an identical override (same user and same start/end time) returns the existing override with a 200 status and does not recreate it. * * @throws ApiException if the Api call fails */ @@ -54,7 +54,7 @@ public void createOverrideShiftTest() throws ApiException { /** * Delete an on call shadow configuration * - * Delete a specific on call shadow configuration by id + * Delete a specific on call shadow configuration by id. Future shadows are hard-deleted. Active shadows (started in the past) have their end time truncated to preserve historical data. * * @throws ApiException if the Api call fails */ diff --git a/src/test/java/com/rootly/client/api/PulsesApiTest.java b/src/test/java/com/rootly/client/api/PulsesApiTest.java index 908df697..1f6965de 100644 --- a/src/test/java/com/rootly/client/api/PulsesApiTest.java +++ b/src/test/java/com/rootly/client/api/PulsesApiTest.java @@ -90,9 +90,29 @@ public void listPulsesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSourceEq = null; + String filterSourceNotEq = null; + String filterSourceIn = null; + String filterSourceNotIn = null; + String filterServicesEq = null; + String filterServicesNotEq = null; + String filterServicesIn = null; + String filterServicesNotIn = null; + String filterEnvironmentsEq = null; + String filterEnvironmentsNotEq = null; + String filterEnvironmentsIn = null; + String filterEnvironmentsNotIn = null; + String filterLabelsEq = null; + String filterLabelsNotEq = null; + String filterLabelsIn = null; + String filterLabelsNotIn = null; + String filterRefsEq = null; + String filterRefsNotEq = null; + String filterRefsIn = null; + String filterRefsNotIn = null; Integer pageNumber = null; Integer pageSize = null; - PulseList response = api.listPulses(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + PulseList response = api.listPulses(include, filterSource, filterServices, filterEnvironments, filterLabels, filterRefs, filterStartedAtGt, filterStartedAtGte, filterStartedAtLt, filterStartedAtLte, filterEndedAtGt, filterEndedAtGte, filterEndedAtLt, filterEndedAtLte, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSourceEq, filterSourceNotEq, filterSourceIn, filterSourceNotIn, filterServicesEq, filterServicesNotEq, filterServicesIn, filterServicesNotIn, filterEnvironmentsEq, filterEnvironmentsNotEq, filterEnvironmentsIn, filterEnvironmentsNotIn, filterLabelsEq, filterLabelsNotEq, filterLabelsIn, filterLabelsNotIn, filterRefsEq, filterRefsNotEq, filterRefsIn, filterRefsNotIn, pageNumber, pageSize); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/SchedulesApiTest.java b/src/test/java/com/rootly/client/api/SchedulesApiTest.java index 844035af..fc768104 100644 --- a/src/test/java/com/rootly/client/api/SchedulesApiTest.java +++ b/src/test/java/com/rootly/client/api/SchedulesApiTest.java @@ -89,13 +89,22 @@ public void listSchedulesTest() throws ApiException { String include = null; String filterSearch = null; String filterName = null; + String filterTeamIds = null; String filterCreatedAtGt = null; String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterTeamIdsEq = null; + String filterTeamIdsNotEq = null; + String filterTeamIdsIn = null; + String filterTeamIdsNotIn = null; Integer pageNumber = null; Integer pageSize = null; - ScheduleList response = api.listSchedules(include, filterSearch, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, pageNumber, pageSize); + ScheduleList response = api.listSchedules(include, filterSearch, filterName, filterTeamIds, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterTeamIdsEq, filterTeamIdsNotEq, filterTeamIdsIn, filterTeamIdsNotIn, pageNumber, pageSize); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/ServicesApiTest.java b/src/test/java/com/rootly/client/api/ServicesApiTest.java index 6800a145..37dbf9a1 100644 --- a/src/test/java/com/rootly/client/api/ServicesApiTest.java +++ b/src/test/java/com/rootly/client/api/ServicesApiTest.java @@ -14,12 +14,23 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.BulkDeleteServices422Response; +import com.rootly.client.model.BulkDestroyServices; +import com.rootly.client.model.BulkDestroyServicesResponse; +import com.rootly.client.model.BulkUpsertServices; +import com.rootly.client.model.BulkUpsertServices422Response; +import com.rootly.client.model.BulkUpsertServicesResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetAlertFieldIdParameter; +import com.rootly.client.model.IncidentsChartResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewService; import com.rootly.client.model.ServiceList; import com.rootly.client.model.ServiceResponse; import com.rootly.client.model.UpdateService; +import com.rootly.client.model.UptimeChartResponse; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -36,6 +47,34 @@ public class ServicesApiTest { private final ServicesApi api = new ServicesApi(); + /** + * Bulk delete Services + * + * Delete services by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkDeleteServicesTest() throws ApiException { + BulkDestroyServices bulkDestroyServices = null; + BulkDestroyServicesResponse response = api.bulkDeleteServices(bulkDestroyServices); + // TODO: test validations + } + + /** + * Bulk upsert Services + * + * Create or update multiple services by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkUpsertServicesTest() throws ApiException { + BulkUpsertServices bulkUpsertServices = null; + BulkUpsertServicesResponse response = api.bulkUpsertServices(bulkUpsertServices); + // TODO: test validations + } + /** * Creates a service * @@ -50,6 +89,20 @@ public void createServiceTest() throws ApiException { // TODO: test validations } + /** + * Creates a Catalog Property + * + * Creates a new Catalog Property from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createServiceCatalogPropertyTest() throws ApiException { + NewCatalogProperty newCatalogProperty = null; + CatalogPropertyResponse response = api.createServiceCatalogProperty(newCatalogProperty); + // TODO: test validations + } + /** * Delete a service * @@ -89,7 +142,7 @@ public void getServiceTest() throws ApiException { public void getServiceIncidentsChartTest() throws ApiException { GetAlertFieldIdParameter id = null; String period = null; - Object response = api.getServiceIncidentsChart(id, period); + IncidentsChartResponse response = api.getServiceIncidentsChart(id, period); // TODO: test validations } @@ -104,7 +157,31 @@ public void getServiceIncidentsChartTest() throws ApiException { public void getServiceUptimeChartTest() throws ApiException { GetAlertFieldIdParameter id = null; String period = null; - Object response = api.getServiceUptimeChart(id, period); + UptimeChartResponse response = api.getServiceUptimeChart(id, period); + // TODO: test validations + } + + /** + * List Catalog Properties + * + * List Service Catalog Properties + * + * @throws ApiException if the Api call fails + */ + @Test + public void listServiceCatalogPropertiesTest() throws ApiException { + String include = null; + String sort = null; + Integer pageNumber = null; + Integer pageSize = null; + String filterSlug = null; + String filterName = null; + String filterKind = null; + String filterCreatedAtGt = null; + String filterCreatedAtGte = null; + String filterCreatedAtLt = null; + String filterCreatedAtLte = null; + CatalogPropertyList response = api.listServiceCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); // TODO: test validations } @@ -133,8 +210,24 @@ public void listServicesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterAlertBroadcastEnabledEq = null; + String filterAlertBroadcastEnabledNotEq = null; + String filterAlertBroadcastEnabledIn = null; + String filterAlertBroadcastEnabledNotIn = null; + String filterIncidentBroadcastEnabledEq = null; + String filterIncidentBroadcastEnabledNotEq = null; + String filterIncidentBroadcastEnabledIn = null; + String filterIncidentBroadcastEnabledNotIn = null; String sort = null; - ServiceList response = api.listServices(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + ServiceList response = api.listServices(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/SeveritiesApiTest.java b/src/test/java/com/rootly/client/api/SeveritiesApiTest.java index 68727e9b..29c42ac4 100644 --- a/src/test/java/com/rootly/client/api/SeveritiesApiTest.java +++ b/src/test/java/com/rootly/client/api/SeveritiesApiTest.java @@ -99,8 +99,24 @@ public void listSeveritiesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterSeverityEq = null; + String filterSeverityNotEq = null; + String filterSeverityIn = null; + String filterSeverityNotIn = null; + String filterColorEq = null; + String filterColorNotEq = null; + String filterColorIn = null; + String filterColorNotIn = null; String sort = null; - SeverityList response = api.listSeverities(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + SeverityList response = api.listSeverities(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterSeverity, filterColor, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSeverityEq, filterSeverityNotEq, filterSeverityIn, filterSeverityNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/ShiftCoverageRequestsApiTest.java b/src/test/java/com/rootly/client/api/ShiftCoverageRequestsApiTest.java new file mode 100644 index 00000000..727426b0 --- /dev/null +++ b/src/test/java/com/rootly/client/api/ShiftCoverageRequestsApiTest.java @@ -0,0 +1,94 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiException; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewShiftCoverageRequest; +import com.rootly.client.model.ShiftCoverageRequestList; +import com.rootly.client.model.ShiftCoverageRequestResponse; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for ShiftCoverageRequestsApi + */ +@Disabled +public class ShiftCoverageRequestsApiTest { + + private final ShiftCoverageRequestsApi api = new ShiftCoverageRequestsApi(); + + /** + * creates shift coverage requests + * + * Creates coverage requests for the shifts overlapping the requested time range. A range can span multiple consecutive shifts (e.g. across a handoff), so one or more coverage requests may be created; the response is always a list. A coverage request broadcasts to schedule members so someone can volunteer to cover the shift. + * + * @throws ApiException if the Api call fails + */ + @Test + public void createShiftCoverageRequestTest() throws ApiException { + String scheduleId = null; + NewShiftCoverageRequest newShiftCoverageRequest = null; + ShiftCoverageRequestList response = api.createShiftCoverageRequest(scheduleId, newShiftCoverageRequest); + // TODO: test validations + } + + /** + * deletes a shift coverage request + * + * Deletes a shift coverage request. + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteShiftCoverageRequestTest() throws ApiException { + String id = null; + ShiftCoverageRequestResponse response = api.deleteShiftCoverageRequest(id); + // TODO: test validations + } + + /** + * retrieves a shift coverage request + * + * Retrieves a specific shift coverage request. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getShiftCoverageRequestTest() throws ApiException { + String id = null; + ShiftCoverageRequestResponse response = api.getShiftCoverageRequest(id); + // TODO: test validations + } + + /** + * list shift coverage requests + * + * List active shift coverage requests for a schedule. + * + * @throws ApiException if the Api call fails + */ + @Test + public void listShiftCoverageRequestsTest() throws ApiException { + String scheduleId = null; + ShiftCoverageRequestList response = api.listShiftCoverageRequests(scheduleId); + // TODO: test validations + } + +} diff --git a/src/test/java/com/rootly/client/api/ShiftsApiTest.java b/src/test/java/com/rootly/client/api/ShiftsApiTest.java index 77dce4e0..15a25036 100644 --- a/src/test/java/com/rootly/client/api/ShiftsApiTest.java +++ b/src/test/java/com/rootly/client/api/ShiftsApiTest.java @@ -62,7 +62,9 @@ public void listShiftsTest() throws ApiException { String to = null; List userIds = null; List scheduleIds = null; - ShiftList response = api.listShifts(include, from, to, userIds, scheduleIds); + Integer pageNumber = null; + Integer pageSize = null; + ShiftList response = api.listShifts(include, from, to, userIds, scheduleIds, pageNumber, pageSize); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/SlasApiTest.java b/src/test/java/com/rootly/client/api/SlasApiTest.java index 42dd7e64..99fa1021 100644 --- a/src/test/java/com/rootly/client/api/SlasApiTest.java +++ b/src/test/java/com/rootly/client/api/SlasApiTest.java @@ -95,8 +95,16 @@ public void listSLAsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; String sort = null; - SlaList response = api.listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + SlaList response = api.listSLAs(pageNumber, pageSize, filterSearch, filterSlug, filterName, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/StatusPageAnnouncementsApiTest.java b/src/test/java/com/rootly/client/api/StatusPageAnnouncementsApiTest.java new file mode 100644 index 00000000..bf535dfb --- /dev/null +++ b/src/test/java/com/rootly/client/api/StatusPageAnnouncementsApiTest.java @@ -0,0 +1,113 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiException; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewStatusPageAnnouncement; +import com.rootly.client.model.StatusPageAnnouncementList; +import com.rootly.client.model.StatusPageAnnouncementResponse; +import com.rootly.client.model.UpdateStatusPageAnnouncement; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for StatusPageAnnouncementsApi + */ +@Disabled +public class StatusPageAnnouncementsApiTest { + + private final StatusPageAnnouncementsApi api = new StatusPageAnnouncementsApi(); + + /** + * Creates a status page announcement + * + * Posts an announcement to a status page and notifies its subscribers unless notify_subscribers is false + * + * @throws ApiException if the Api call fails + */ + @Test + public void createStatusPageAnnouncementTest() throws ApiException { + String statusPageId = null; + NewStatusPageAnnouncement newStatusPageAnnouncement = null; + StatusPageAnnouncementResponse response = api.createStatusPageAnnouncement(statusPageId, newStatusPageAnnouncement); + // TODO: test validations + } + + /** + * Delete a status page announcement + * + * Delete a specific status page announcement by id + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteStatusPageAnnouncementTest() throws ApiException { + String id = null; + StatusPageAnnouncementResponse response = api.deleteStatusPageAnnouncement(id); + // TODO: test validations + } + + /** + * Retrieves a status page announcement + * + * Retrieves a specific status page announcement by id + * + * @throws ApiException if the Api call fails + */ + @Test + public void getStatusPageAnnouncementTest() throws ApiException { + String id = null; + StatusPageAnnouncementResponse response = api.getStatusPageAnnouncement(id); + // TODO: test validations + } + + /** + * List status page announcements + * + * List status page announcements + * + * @throws ApiException if the Api call fails + */ + @Test + public void listStatusPageAnnouncementsTest() throws ApiException { + String statusPageId = null; + String include = null; + Integer pageNumber = null; + Integer pageSize = null; + StatusPageAnnouncementList response = api.listStatusPageAnnouncements(statusPageId, include, pageNumber, pageSize); + // TODO: test validations + } + + /** + * Update a status page announcement + * + * Update a specific status page announcement by id + * + * @throws ApiException if the Api call fails + */ + @Test + public void updateStatusPageAnnouncementTest() throws ApiException { + String id = null; + UpdateStatusPageAnnouncement updateStatusPageAnnouncement = null; + StatusPageAnnouncementResponse response = api.updateStatusPageAnnouncement(id, updateStatusPageAnnouncement); + // TODO: test validations + } + +} diff --git a/src/test/java/com/rootly/client/api/CatalogFieldsApiTest.java b/src/test/java/com/rootly/client/api/StatusPageComponentGroupsApiTest.java similarity index 65% rename from src/test/java/com/rootly/client/api/CatalogFieldsApiTest.java rename to src/test/java/com/rootly/client/api/StatusPageComponentGroupsApiTest.java index 7b17ca93..2dff4944 100644 --- a/src/test/java/com/rootly/client/api/CatalogFieldsApiTest.java +++ b/src/test/java/com/rootly/client/api/StatusPageComponentGroupsApiTest.java @@ -14,12 +14,11 @@ package com.rootly.client.api; import com.rootly.client.ApiException; -import com.rootly.client.model.CatalogFieldList; -import com.rootly.client.model.CatalogFieldResponse; import com.rootly.client.model.ErrorsList; -import com.rootly.client.model.GetAlertFieldIdParameter; -import com.rootly.client.model.NewCatalogField; -import com.rootly.client.model.UpdateCatalogField; +import com.rootly.client.model.NewStatusPageComponentGroup; +import com.rootly.client.model.StatusPageComponentGroupList; +import com.rootly.client.model.StatusPageComponentGroupResponse; +import com.rootly.client.model.UpdateStatusPageComponentGroup; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -29,94 +28,86 @@ import java.util.Map; /** - * API tests for CatalogFieldsApi + * API tests for StatusPageComponentGroupsApi */ @Disabled -public class CatalogFieldsApiTest { +public class StatusPageComponentGroupsApiTest { - private final CatalogFieldsApi api = new CatalogFieldsApi(); + private final StatusPageComponentGroupsApi api = new StatusPageComponentGroupsApi(); /** - * Creates a Catalog Field + * Creates a status page component group * - * Creates a new Catalog Field from provided data + * Creates a new status page component group from provided data * * @throws ApiException if the Api call fails */ @Test - public void createCatalogFieldTest() throws ApiException { - String catalogId = null; - NewCatalogField newCatalogField = null; - CatalogFieldResponse response = api.createCatalogField(catalogId, newCatalogField); + public void createStatusPageComponentGroupTest() throws ApiException { + String statusPageId = null; + NewStatusPageComponentGroup newStatusPageComponentGroup = null; + StatusPageComponentGroupResponse response = api.createStatusPageComponentGroup(statusPageId, newStatusPageComponentGroup); // TODO: test validations } /** - * Delete a catalog_field + * Delete a status page component group * - * Delete a specific catalog_field by id + * Delete a status page component group together with its components * * @throws ApiException if the Api call fails */ @Test - public void deleteCatalogFieldTest() throws ApiException { - GetAlertFieldIdParameter id = null; - CatalogFieldResponse response = api.deleteCatalogField(id); + public void deleteStatusPageComponentGroupTest() throws ApiException { + String id = null; + api.deleteStatusPageComponentGroup(id); // TODO: test validations } /** - * Retrieves a Catalog Field + * Retrieves a status page component group * - * Retrieves a specific Catalog Field by id + * Retrieves a status page component group * * @throws ApiException if the Api call fails */ @Test - public void getCatalogFieldTest() throws ApiException { - GetAlertFieldIdParameter id = null; + public void getStatusPageComponentGroupTest() throws ApiException { + String id = null; String include = null; - CatalogFieldResponse response = api.getCatalogField(id, include); + StatusPageComponentGroupResponse response = api.getStatusPageComponentGroup(id, include); // TODO: test validations } /** - * List Catalog Fields + * List status page component groups * - * List Catalog Fields + * List status page component groups * * @throws ApiException if the Api call fails */ @Test - public void listCatalogFieldsTest() throws ApiException { - String catalogId = null; + public void listStatusPageComponentGroupsTest() throws ApiException { + String statusPageId = null; String include = null; - String sort = null; Integer pageNumber = null; Integer pageSize = null; - String filterSlug = null; - String filterName = null; - String filterKind = null; - String filterCreatedAtGt = null; - String filterCreatedAtGte = null; - String filterCreatedAtLt = null; - String filterCreatedAtLte = null; - CatalogFieldList response = api.listCatalogFields(catalogId, include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + StatusPageComponentGroupList response = api.listStatusPageComponentGroups(statusPageId, include, pageNumber, pageSize); // TODO: test validations } /** - * Update a catalog_field + * Update a status page component group * - * Update a specific catalog_field by id + * Update a status page component group * * @throws ApiException if the Api call fails */ @Test - public void updateCatalogFieldTest() throws ApiException { - GetAlertFieldIdParameter id = null; - UpdateCatalogField updateCatalogField = null; - CatalogFieldResponse response = api.updateCatalogField(id, updateCatalogField); + public void updateStatusPageComponentGroupTest() throws ApiException { + String id = null; + UpdateStatusPageComponentGroup updateStatusPageComponentGroup = null; + StatusPageComponentGroupResponse response = api.updateStatusPageComponentGroup(id, updateStatusPageComponentGroup); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/StatusPageComponentsApiTest.java b/src/test/java/com/rootly/client/api/StatusPageComponentsApiTest.java new file mode 100644 index 00000000..2d0a63ff --- /dev/null +++ b/src/test/java/com/rootly/client/api/StatusPageComponentsApiTest.java @@ -0,0 +1,114 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiException; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewStatusPageComponent; +import com.rootly.client.model.StatusPageComponentList; +import com.rootly.client.model.StatusPageComponentResponse; +import com.rootly.client.model.UpdateStatusPageComponent; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for StatusPageComponentsApi + */ +@Disabled +public class StatusPageComponentsApiTest { + + private final StatusPageComponentsApi api = new StatusPageComponentsApi(); + + /** + * Creates a status page component + * + * Creates a new status page component from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createStatusPageComponentTest() throws ApiException { + String statusPageId = null; + NewStatusPageComponent newStatusPageComponent = null; + StatusPageComponentResponse response = api.createStatusPageComponent(statusPageId, newStatusPageComponent); + // TODO: test validations + } + + /** + * Delete a status page component + * + * Delete a status page component + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteStatusPageComponentTest() throws ApiException { + String id = null; + api.deleteStatusPageComponent(id); + // TODO: test validations + } + + /** + * Retrieves a status page component + * + * Retrieves a status page component + * + * @throws ApiException if the Api call fails + */ + @Test + public void getStatusPageComponentTest() throws ApiException { + String id = null; + String include = null; + StatusPageComponentResponse response = api.getStatusPageComponent(id, include); + // TODO: test validations + } + + /** + * List status page components + * + * List status page components + * + * @throws ApiException if the Api call fails + */ + @Test + public void listStatusPageComponentsTest() throws ApiException { + String statusPageId = null; + String include = null; + Integer pageNumber = null; + Integer pageSize = null; + StatusPageComponentList response = api.listStatusPageComponents(statusPageId, include, pageNumber, pageSize); + // TODO: test validations + } + + /** + * Update a status page component + * + * Update a status page component + * + * @throws ApiException if the Api call fails + */ + @Test + public void updateStatusPageComponentTest() throws ApiException { + String id = null; + UpdateStatusPageComponent updateStatusPageComponent = null; + StatusPageComponentResponse response = api.updateStatusPageComponent(id, updateStatusPageComponent); + // TODO: test validations + } + +} diff --git a/src/test/java/com/rootly/client/api/StatusPagesApiTest.java b/src/test/java/com/rootly/client/api/StatusPagesApiTest.java index fcf49da0..ed071c95 100644 --- a/src/test/java/com/rootly/client/api/StatusPagesApiTest.java +++ b/src/test/java/com/rootly/client/api/StatusPagesApiTest.java @@ -97,8 +97,16 @@ public void listStatusPagesTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; String sort = null; - StatusPageList response = api.listStatusPages(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + StatusPageList response = api.listStatusPages(include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/TeamsApiTest.java b/src/test/java/com/rootly/client/api/TeamsApiTest.java index 97863d51..444fec57 100644 --- a/src/test/java/com/rootly/client/api/TeamsApiTest.java +++ b/src/test/java/com/rootly/client/api/TeamsApiTest.java @@ -14,8 +14,18 @@ package com.rootly.client.api; import com.rootly.client.ApiException; +import com.rootly.client.model.BulkDeleteGroups422Response; +import com.rootly.client.model.BulkDestroyTeams; +import com.rootly.client.model.BulkDestroyTeamsResponse; +import com.rootly.client.model.BulkUpsertGroups422Response; +import com.rootly.client.model.BulkUpsertTeams; +import com.rootly.client.model.BulkUpsertTeamsResponse; +import com.rootly.client.model.CatalogPropertyList; +import com.rootly.client.model.CatalogPropertyResponse; import com.rootly.client.model.ErrorsList; import com.rootly.client.model.GetTeamIdParameter; +import com.rootly.client.model.IncidentsChartResponse; +import com.rootly.client.model.NewCatalogProperty; import com.rootly.client.model.NewTeam; import com.rootly.client.model.TeamList; import com.rootly.client.model.TeamResponse; @@ -36,6 +46,48 @@ public class TeamsApiTest { private final TeamsApi api = new TeamsApi(); + /** + * Bulk delete Teams + * + * Delete teams by external_id list, or prune by managed_by source. Two mutually exclusive modes. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkDeleteGroupsTest() throws ApiException { + BulkDestroyTeams bulkDestroyTeams = null; + BulkDestroyTeamsResponse response = api.bulkDeleteGroups(bulkDestroyTeams); + // TODO: test validations + } + + /** + * Bulk upsert Teams + * + * Create or update multiple teams by external_id. Only attributes present in the payload are written (managed-fields semantics). Transactional: all succeed or all fail. Requires an API key with both create and update capability across the resource scope (team/org-scoped); record-scoped principals cannot use this endpoint (they receive 404), which also prevents the create-vs-update branch from leaking whether an external_id exists. + * + * @throws ApiException if the Api call fails + */ + @Test + public void bulkUpsertGroupsTest() throws ApiException { + BulkUpsertTeams bulkUpsertTeams = null; + BulkUpsertTeamsResponse response = api.bulkUpsertGroups(bulkUpsertTeams); + // TODO: test validations + } + + /** + * Creates a Catalog Property + * + * Creates a new Catalog Property from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createGroupCatalogPropertyTest() throws ApiException { + NewCatalogProperty newCatalogProperty = null; + CatalogPropertyResponse response = api.createGroupCatalogProperty(newCatalogProperty); + // TODO: test validations + } + /** * Creates a team * @@ -90,7 +142,31 @@ public void getTeamTest() throws ApiException { public void getTeamIncidentsChartTest() throws ApiException { String id = null; String period = null; - Object response = api.getTeamIncidentsChart(id, period); + IncidentsChartResponse response = api.getTeamIncidentsChart(id, period); + // TODO: test validations + } + + /** + * List Catalog Properties + * + * List Group Catalog Properties + * + * @throws ApiException if the Api call fails + */ + @Test + public void listGroupCatalogPropertiesTest() throws ApiException { + String include = null; + String sort = null; + Integer pageNumber = null; + Integer pageSize = null; + String filterSlug = null; + String filterName = null; + String filterKind = null; + String filterCreatedAtGt = null; + String filterCreatedAtGte = null; + String filterCreatedAtLt = null; + String filterCreatedAtLte = null; + CatalogPropertyList response = api.listGroupCatalogProperties(include, sort, pageNumber, pageSize, filterSlug, filterName, filterKind, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); // TODO: test validations } @@ -120,8 +196,28 @@ public void listTeamsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterColorEq = null; + String filterColorNotEq = null; + String filterColorIn = null; + String filterColorNotIn = null; + String filterAlertBroadcastEnabledEq = null; + String filterAlertBroadcastEnabledNotEq = null; + String filterAlertBroadcastEnabledIn = null; + String filterAlertBroadcastEnabledNotIn = null; + String filterIncidentBroadcastEnabledEq = null; + String filterIncidentBroadcastEnabledNotEq = null; + String filterIncidentBroadcastEnabledIn = null; + String filterIncidentBroadcastEnabledNotIn = null; String sort = null; - TeamList response = api.listTeams(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, sort); + TeamList response = api.listTeams(include, pageNumber, pageSize, filterSearch, filterSlug, filterName, filterBackstageId, filterCortexId, filterOpslevelId, filterExternalId, filterColor, filterAlertBroadcastEnabled, filterIncidentBroadcastEnabled, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterColorEq, filterColorNotEq, filterColorIn, filterColorNotIn, filterAlertBroadcastEnabledEq, filterAlertBroadcastEnabledNotEq, filterAlertBroadcastEnabledIn, filterAlertBroadcastEnabledNotIn, filterIncidentBroadcastEnabledEq, filterIncidentBroadcastEnabledNotEq, filterIncidentBroadcastEnabledIn, filterIncidentBroadcastEnabledNotIn, sort); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/VerifiedDomainsApiTest.java b/src/test/java/com/rootly/client/api/VerifiedDomainsApiTest.java new file mode 100644 index 00000000..6dfb0349 --- /dev/null +++ b/src/test/java/com/rootly/client/api/VerifiedDomainsApiTest.java @@ -0,0 +1,85 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiException; +import com.rootly.client.model.NewVerifiedDomain; +import com.rootly.client.model.VerifiedDomainList; +import com.rootly.client.model.VerifiedDomainResponse; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for VerifiedDomainsApi + */ +@Disabled +public class VerifiedDomainsApiTest { + + private final VerifiedDomainsApi api = new VerifiedDomainsApi(); + + /** + * List verified domains + * + * @throws ApiException if the Api call fails + */ + @Test + public void v1VerifiedDomainsGetTest() throws ApiException { + Integer pageNumber = null; + Integer pageSize = null; + VerifiedDomainList response = api.v1VerifiedDomainsGet(pageNumber, pageSize); + // TODO: test validations + } + + /** + * Delete a verified domain + * + * @throws ApiException if the Api call fails + */ + @Test + public void v1VerifiedDomainsIdDeleteTest() throws ApiException { + String id = null; + VerifiedDomainResponse response = api.v1VerifiedDomainsIdDelete(id); + // TODO: test validations + } + + /** + * Show a verified domain + * + * @throws ApiException if the Api call fails + */ + @Test + public void v1VerifiedDomainsIdGetTest() throws ApiException { + String id = null; + VerifiedDomainResponse response = api.v1VerifiedDomainsIdGet(id); + // TODO: test validations + } + + /** + * Create a verified domain + * + * @throws ApiException if the Api call fails + */ + @Test + public void v1VerifiedDomainsPostTest() throws ApiException { + NewVerifiedDomain newVerifiedDomain = null; + VerifiedDomainResponse response = api.v1VerifiedDomainsPost(newVerifiedDomain); + // TODO: test validations + } + +} diff --git a/src/test/java/com/rootly/client/api/WebhooksDeliveriesApiTest.java b/src/test/java/com/rootly/client/api/WebhooksDeliveriesApiTest.java index 7aac43fc..ad8dbdf5 100644 --- a/src/test/java/com/rootly/client/api/WebhooksDeliveriesApiTest.java +++ b/src/test/java/com/rootly/client/api/WebhooksDeliveriesApiTest.java @@ -15,6 +15,7 @@ import com.rootly.client.ApiException; import com.rootly.client.model.ErrorsList; +import java.time.OffsetDateTime; import com.rootly.client.model.WebhooksDeliveryList; import com.rootly.client.model.WebhooksDeliveryResponse; import org.junit.jupiter.api.Disabled; @@ -74,7 +75,16 @@ public void listWebhooksDeliveriesTest() throws ApiException { String include = null; Integer pageNumber = null; Integer pageSize = null; - WebhooksDeliveryList response = api.listWebhooksDeliveries(endpointId, include, pageNumber, pageSize); + String filterStatus = null; + OffsetDateTime filterCreatedAtGt = null; + OffsetDateTime filterCreatedAtGte = null; + OffsetDateTime filterCreatedAtLt = null; + OffsetDateTime filterCreatedAtLte = null; + OffsetDateTime filterDeliveredAtGt = null; + OffsetDateTime filterDeliveredAtGte = null; + OffsetDateTime filterDeliveredAtLt = null; + OffsetDateTime filterDeliveredAtLte = null; + WebhooksDeliveryList response = api.listWebhooksDeliveries(endpointId, include, pageNumber, pageSize, filterStatus, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterDeliveredAtGt, filterDeliveredAtGte, filterDeliveredAtLt, filterDeliveredAtLte); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApiTest.java b/src/test/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApiTest.java new file mode 100644 index 00000000..d5760954 --- /dev/null +++ b/src/test/java/com/rootly/client/api/WorkflowActionItemFormFieldConditionsApiTest.java @@ -0,0 +1,113 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.api; + +import com.rootly.client.ApiException; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.NewWorkflowActionItemFormFieldCondition; +import com.rootly.client.model.UpdateWorkflowActionItemFormFieldCondition; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionList; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionResponse; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for WorkflowActionItemFormFieldConditionsApi + */ +@Disabled +public class WorkflowActionItemFormFieldConditionsApiTest { + + private final WorkflowActionItemFormFieldConditionsApi api = new WorkflowActionItemFormFieldConditionsApi(); + + /** + * Creates a workflow action item form field condition + * + * Creates a new workflow action item form field condition from provided data + * + * @throws ApiException if the Api call fails + */ + @Test + public void createWorkflowActionItemFormFieldConditionTest() throws ApiException { + String workflowId = null; + NewWorkflowActionItemFormFieldCondition newWorkflowActionItemFormFieldCondition = null; + WorkflowActionItemFormFieldConditionResponse response = api.createWorkflowActionItemFormFieldCondition(workflowId, newWorkflowActionItemFormFieldCondition); + // TODO: test validations + } + + /** + * Delete a workflow action item form field condition + * + * Delete a specific workflow action item form field condition by id + * + * @throws ApiException if the Api call fails + */ + @Test + public void deleteWorkflowActionItemFormFieldConditionTest() throws ApiException { + String id = null; + WorkflowActionItemFormFieldConditionResponse response = api.deleteWorkflowActionItemFormFieldCondition(id); + // TODO: test validations + } + + /** + * Retrieves a workflow action item form field condition + * + * Retrieves a specific workflow action item form field condition by id + * + * @throws ApiException if the Api call fails + */ + @Test + public void getWorkflowActionItemFormFieldConditionTest() throws ApiException { + String id = null; + WorkflowActionItemFormFieldConditionResponse response = api.getWorkflowActionItemFormFieldCondition(id); + // TODO: test validations + } + + /** + * List workflow action item form field conditions + * + * List workflow action item form field conditions + * + * @throws ApiException if the Api call fails + */ + @Test + public void listWorkflowActionItemFormFieldConditionsTest() throws ApiException { + String workflowId = null; + String include = null; + Integer pageNumber = null; + Integer pageSize = null; + WorkflowActionItemFormFieldConditionList response = api.listWorkflowActionItemFormFieldConditions(workflowId, include, pageNumber, pageSize); + // TODO: test validations + } + + /** + * Update a workflow action item form field condition + * + * Update a specific workflow action item form field condition by id + * + * @throws ApiException if the Api call fails + */ + @Test + public void updateWorkflowActionItemFormFieldConditionTest() throws ApiException { + String id = null; + UpdateWorkflowActionItemFormFieldCondition updateWorkflowActionItemFormFieldCondition = null; + WorkflowActionItemFormFieldConditionResponse response = api.updateWorkflowActionItemFormFieldCondition(id, updateWorkflowActionItemFormFieldCondition); + // TODO: test validations + } + +} diff --git a/src/test/java/com/rootly/client/api/WorkflowTasksApiTest.java b/src/test/java/com/rootly/client/api/WorkflowTasksApiTest.java index 0c1af34e..41841304 100644 --- a/src/test/java/com/rootly/client/api/WorkflowTasksApiTest.java +++ b/src/test/java/com/rootly/client/api/WorkflowTasksApiTest.java @@ -94,7 +94,15 @@ public void listWorkflowTasksTest() throws ApiException { String filterSearch = null; String filterName = null; String filterSlug = null; - WorkflowTaskList response = api.listWorkflowTasks(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug); + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + WorkflowTaskList response = api.listWorkflowTasks(workflowId, include, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/api/WorkflowsApiTest.java b/src/test/java/com/rootly/client/api/WorkflowsApiTest.java index 343bcfcf..5103f139 100644 --- a/src/test/java/com/rootly/client/api/WorkflowsApiTest.java +++ b/src/test/java/com/rootly/client/api/WorkflowsApiTest.java @@ -99,7 +99,15 @@ public void listWorkflowsTest() throws ApiException { String filterCreatedAtGte = null; String filterCreatedAtLt = null; String filterCreatedAtLte = null; - WorkflowList response = api.listWorkflows(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte); + String filterSlugEq = null; + String filterSlugNotEq = null; + String filterSlugIn = null; + String filterSlugNotIn = null; + String filterNameEq = null; + String filterNameNotEq = null; + String filterNameIn = null; + String filterNameNotIn = null; + WorkflowList response = api.listWorkflows(include, sort, pageNumber, pageSize, filterSearch, filterName, filterSlug, filterCreatedAtGt, filterCreatedAtGte, filterCreatedAtLt, filterCreatedAtLte, filterSlugEq, filterSlugNotEq, filterSlugIn, filterSlugNotIn, filterNameEq, filterNameNotEq, filterNameIn, filterNameNotIn); // TODO: test validations } diff --git a/src/test/java/com/rootly/client/model/ActionItemTriggerParamsTest.java b/src/test/java/com/rootly/client/model/ActionItemTriggerParamsTest.java index 826a89f0..b0b13284 100644 --- a/src/test/java/com/rootly/client/model/ActionItemTriggerParamsTest.java +++ b/src/test/java/com/rootly/client/model/ActionItemTriggerParamsTest.java @@ -184,6 +184,30 @@ public void incidentConditionGroupTest() { // TODO: test incidentConditionGroup } + /** + * Test the property 'incidentConditionLabel' + */ + @Test + public void incidentConditionLabelTest() { + // TODO: test incidentConditionLabel + } + + /** + * Test the property 'incidentConditionLabelUseRegexp' + */ + @Test + public void incidentConditionLabelUseRegexpTest() { + // TODO: test incidentConditionLabelUseRegexp + } + + /** + * Test the property 'incidentLabels' + */ + @Test + public void incidentLabelsTest() { + // TODO: test incidentLabels + } + /** * Test the property 'incidentConditionSummary' */ diff --git a/src/test/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParamsTest.java b/src/test/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParamsTest.java index 1631ca94..30f4e56c 100644 --- a/src/test/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/AddMicrosoftTeamsTabTaskParamsTest.java @@ -18,6 +18,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; import org.openapitools.jackson.nullable.JsonNullable; @@ -38,4 +40,28 @@ public void testAddMicrosoftTeamsTabTaskParams() { // TODO: test AddMicrosoftTeamsTabTaskParams } + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'link' + */ + @Test + public void linkTest() { + // TODO: test link + } + + /** + * Test the property 'playbookId' + */ + @Test + public void playbookIdTest() { + // TODO: test playbookId + } + } diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestTest.java b/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1Test.java similarity index 87% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestTest.java rename to src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1Test.java index 1e876085..4973bb1b 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestTest.java +++ b/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOf1Test.java @@ -18,32 +18,31 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsPostRequestEdgeConnector; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsPostRequest + * Model tests for AddSlackBookmarkTaskParamsAnyOf1 */ -public class V1EdgeConnectorsPostRequestTest { - private final V1EdgeConnectorsPostRequest model = new V1EdgeConnectorsPostRequest(); +public class AddSlackBookmarkTaskParamsAnyOf1Test { + private final AddSlackBookmarkTaskParamsAnyOf1 model = new AddSlackBookmarkTaskParamsAnyOf1(); /** - * Model tests for V1EdgeConnectorsPostRequest + * Model tests for AddSlackBookmarkTaskParamsAnyOf1 */ @Test - public void testV1EdgeConnectorsPostRequest() { - // TODO: test V1EdgeConnectorsPostRequest + public void testAddSlackBookmarkTaskParamsAnyOf1() { + // TODO: test AddSlackBookmarkTaskParamsAnyOf1 } /** - * Test the property 'edgeConnector' + * Test the property 'playbookId' */ @Test - public void edgeConnectorTest() { - // TODO: test edgeConnector + public void playbookIdTest() { + // TODO: test playbookId } } diff --git a/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOfTest.java b/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOfTest.java new file mode 100644 index 00000000..9e24e43c --- /dev/null +++ b/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsAnyOfTest.java @@ -0,0 +1,56 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AddSlackBookmarkTaskParamsAnyOf + */ +public class AddSlackBookmarkTaskParamsAnyOfTest { + private final AddSlackBookmarkTaskParamsAnyOf model = new AddSlackBookmarkTaskParamsAnyOf(); + + /** + * Model tests for AddSlackBookmarkTaskParamsAnyOf + */ + @Test + public void testAddSlackBookmarkTaskParamsAnyOf() { + // TODO: test AddSlackBookmarkTaskParamsAnyOf + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'link' + */ + @Test + public void linkTest() { + // TODO: test link + } + +} diff --git a/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsTest.java b/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsTest.java index c644c993..84825cca 100644 --- a/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/AddSlackBookmarkTaskParamsTest.java @@ -18,6 +18,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf; +import com.rootly.client.model.AddSlackBookmarkTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; import org.openapitools.jackson.nullable.JsonNullable; @@ -38,4 +40,28 @@ public void testAddSlackBookmarkTaskParams() { // TODO: test AddSlackBookmarkTaskParams } + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'link' + */ + @Test + public void linkTest() { + // TODO: test link + } + + /** + * Test the property 'playbookId' + */ + @Test + public void playbookIdTest() { + // TODO: test playbookId + } + } diff --git a/src/test/java/com/rootly/client/model/AiChatResponseDataAttributesTest.java b/src/test/java/com/rootly/client/model/AiChatResponseDataAttributesTest.java new file mode 100644 index 00000000..af40670c --- /dev/null +++ b/src/test/java/com/rootly/client/model/AiChatResponseDataAttributesTest.java @@ -0,0 +1,66 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AiChatResponseDataAttributes + */ +public class AiChatResponseDataAttributesTest { + private final AiChatResponseDataAttributes model = new AiChatResponseDataAttributes(); + + /** + * Model tests for AiChatResponseDataAttributes + */ + @Test + public void testAiChatResponseDataAttributes() { + // TODO: test AiChatResponseDataAttributes + } + + /** + * Test the property 'sessionId' + */ + @Test + public void sessionIdTest() { + // TODO: test sessionId + } + + /** + * Test the property 'reply' + */ + @Test + public void replyTest() { + // TODO: test reply + } + + /** + * Test the property 'status' + */ + @Test + public void statusTest() { + // TODO: test status + } + +} diff --git a/src/test/java/com/rootly/client/model/AiChatResponseDataTest.java b/src/test/java/com/rootly/client/model/AiChatResponseDataTest.java new file mode 100644 index 00000000..29edb1e8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AiChatResponseDataTest.java @@ -0,0 +1,66 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AiChatResponseDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AiChatResponseData + */ +public class AiChatResponseDataTest { + private final AiChatResponseData model = new AiChatResponseData(); + + /** + * Model tests for AiChatResponseData + */ + @Test + public void testAiChatResponseData() { + // TODO: test AiChatResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerAnyOfTest.java b/src/test/java/com/rootly/client/model/AiChatResponseTest.java similarity index 85% rename from src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerAnyOfTest.java rename to src/test/java/com/rootly/client/model/AiChatResponseTest.java index 77a4d733..0c5d1eca 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerAnyOfTest.java +++ b/src/test/java/com/rootly/client/model/AiChatResponseTest.java @@ -18,6 +18,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AiChatResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -26,33 +28,33 @@ import org.junit.jupiter.api.Test; /** - * Model tests for EscalationPolicyPathRulesInnerAnyOf + * Model tests for AiChatResponse */ -public class EscalationPolicyPathRulesInnerAnyOfTest { - private final EscalationPolicyPathRulesInnerAnyOf model = new EscalationPolicyPathRulesInnerAnyOf(); +public class AiChatResponseTest { + private final AiChatResponse model = new AiChatResponse(); /** - * Model tests for EscalationPolicyPathRulesInnerAnyOf + * Model tests for AiChatResponse */ @Test - public void testEscalationPolicyPathRulesInnerAnyOf() { - // TODO: test EscalationPolicyPathRulesInnerAnyOf + public void testAiChatResponse() { + // TODO: test AiChatResponse } /** - * Test the property 'ruleType' + * Test the property 'data' */ @Test - public void ruleTypeTest() { - // TODO: test ruleType + public void dataTest() { + // TODO: test data } /** - * Test the property 'urgencyIds' + * Test the property 'included' */ @Test - public void urgencyIdsTest() { - // TODO: test urgencyIds + public void includedTest() { + // TODO: test included } } diff --git a/src/test/java/com/rootly/client/model/AiChatSessionMessageListTest.java b/src/test/java/com/rootly/client/model/AiChatSessionMessageListTest.java new file mode 100644 index 00000000..3d65894b --- /dev/null +++ b/src/test/java/com/rootly/client/model/AiChatSessionMessageListTest.java @@ -0,0 +1,59 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AiChatSessionMessage; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AiChatSessionMessageList + */ +public class AiChatSessionMessageListTest { + private final AiChatSessionMessageList model = new AiChatSessionMessageList(); + + /** + * Model tests for AiChatSessionMessageList + */ + @Test + public void testAiChatSessionMessageList() { + // TODO: test AiChatSessionMessageList + } + + /** + * Test the property 'messages' + */ + @Test + public void messagesTest() { + // TODO: test messages + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerDestinationsInnerTest.java b/src/test/java/com/rootly/client/model/AiChatSessionMessageTest.java similarity index 83% rename from src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerDestinationsInnerTest.java rename to src/test/java/com/rootly/client/model/AiChatSessionMessageTest.java index 28bcbb15..a6e214da 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerDestinationsInnerTest.java +++ b/src/test/java/com/rootly/client/model/AiChatSessionMessageTest.java @@ -19,23 +19,24 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.Arrays; import java.util.UUID; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for UpdateAlertRouteDataAttributesRulesInnerDestinationsInner + * Model tests for AiChatSessionMessage */ -public class UpdateAlertRouteDataAttributesRulesInnerDestinationsInnerTest { - private final UpdateAlertRouteDataAttributesRulesInnerDestinationsInner model = new UpdateAlertRouteDataAttributesRulesInnerDestinationsInner(); +public class AiChatSessionMessageTest { + private final AiChatSessionMessage model = new AiChatSessionMessage(); /** - * Model tests for UpdateAlertRouteDataAttributesRulesInnerDestinationsInner + * Model tests for AiChatSessionMessage */ @Test - public void testUpdateAlertRouteDataAttributesRulesInnerDestinationsInner() { - // TODO: test UpdateAlertRouteDataAttributesRulesInnerDestinationsInner + public void testAiChatSessionMessage() { + // TODO: test AiChatSessionMessage } /** @@ -47,19 +48,27 @@ public void idTest() { } /** - * Test the property 'targetType' + * Test the property 'role' */ @Test - public void targetTypeTest() { - // TODO: test targetType + public void roleTest() { + // TODO: test role } /** - * Test the property 'targetId' + * Test the property 'content' */ @Test - public void targetIdTest() { - // TODO: test targetId + public void contentTest() { + // TODO: test content + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt } } diff --git a/src/test/java/com/rootly/client/model/AlertAlertFieldValuesInnerTest.java b/src/test/java/com/rootly/client/model/AlertAlertFieldValuesInnerTest.java new file mode 100644 index 00000000..b233e2de --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertAlertFieldValuesInnerTest.java @@ -0,0 +1,88 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertAlertFieldValuesInner + */ +public class AlertAlertFieldValuesInnerTest { + private final AlertAlertFieldValuesInner model = new AlertAlertFieldValuesInner(); + + /** + * Model tests for AlertAlertFieldValuesInner + */ + @Test + public void testAlertAlertFieldValuesInner() { + // TODO: test AlertAlertFieldValuesInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + + /** + * Test the property 'alertFieldId' + */ + @Test + public void alertFieldIdTest() { + // TODO: test alertFieldId + } + + /** + * Test the property 'alertId' + */ + @Test + public void alertIdTest() { + // TODO: test alertId + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/com/rootly/client/model/ShiftRelationshipsUserDataTest.java b/src/test/java/com/rootly/client/model/AlertAlertingTargetsInnerTest.java similarity index 91% rename from src/test/java/com/rootly/client/model/ShiftRelationshipsUserDataTest.java rename to src/test/java/com/rootly/client/model/AlertAlertingTargetsInnerTest.java index 0c445038..c3ae6d4c 100644 --- a/src/test/java/com/rootly/client/model/ShiftRelationshipsUserDataTest.java +++ b/src/test/java/com/rootly/client/model/AlertAlertingTargetsInnerTest.java @@ -24,17 +24,17 @@ import org.junit.jupiter.api.Test; /** - * Model tests for ShiftRelationshipsUserData + * Model tests for AlertAlertingTargetsInner */ -public class ShiftRelationshipsUserDataTest { - private final ShiftRelationshipsUserData model = new ShiftRelationshipsUserData(); +public class AlertAlertingTargetsInnerTest { + private final AlertAlertingTargetsInner model = new AlertAlertingTargetsInner(); /** - * Model tests for ShiftRelationshipsUserData + * Model tests for AlertAlertingTargetsInner */ @Test - public void testShiftRelationshipsUserData() { - // TODO: test ShiftRelationshipsUserData + public void testAlertAlertingTargetsInner() { + // TODO: test AlertAlertingTargetsInner } /** diff --git a/src/test/java/com/rootly/client/model/AlertEventEscalationTargetDataTest.java b/src/test/java/com/rootly/client/model/AlertEventEscalationTargetDataTest.java new file mode 100644 index 00000000..bddd9707 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertEventEscalationTargetDataTest.java @@ -0,0 +1,64 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertEventEscalationTargetData + */ +public class AlertEventEscalationTargetDataTest { + private final AlertEventEscalationTargetData model = new AlertEventEscalationTargetData(); + + /** + * Model tests for AlertEventEscalationTargetData + */ + @Test + public void testAlertEventEscalationTargetData() { + // TODO: test AlertEventEscalationTargetData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestTest.java b/src/test/java/com/rootly/client/model/AlertEventEscalationTargetTest.java similarity index 86% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestTest.java rename to src/test/java/com/rootly/client/model/AlertEventEscalationTargetTest.java index 1285cce3..736bc049 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestTest.java +++ b/src/test/java/com/rootly/client/model/AlertEventEscalationTargetTest.java @@ -18,32 +18,32 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsIdPatchRequestEdgeConnector; +import com.rootly.client.model.AlertEventEscalationTargetData; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsIdPatchRequest + * Model tests for AlertEventEscalationTarget */ -public class V1EdgeConnectorsIdPatchRequestTest { - private final V1EdgeConnectorsIdPatchRequest model = new V1EdgeConnectorsIdPatchRequest(); +public class AlertEventEscalationTargetTest { + private final AlertEventEscalationTarget model = new AlertEventEscalationTarget(); /** - * Model tests for V1EdgeConnectorsIdPatchRequest + * Model tests for AlertEventEscalationTarget */ @Test - public void testV1EdgeConnectorsIdPatchRequest() { - // TODO: test V1EdgeConnectorsIdPatchRequest + public void testAlertEventEscalationTarget() { + // TODO: test AlertEventEscalationTarget } /** - * Test the property 'edgeConnector' + * Test the property 'data' */ @Test - public void edgeConnectorTest() { - // TODO: test edgeConnector + public void dataTest() { + // TODO: test data } } diff --git a/src/test/java/com/rootly/client/model/AlertEventFeedListTest.java b/src/test/java/com/rootly/client/model/AlertEventFeedListTest.java new file mode 100644 index 00000000..0f208fb2 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertEventFeedListTest.java @@ -0,0 +1,78 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertEventFeedMeta; +import com.rootly.client.model.AlertEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertEventFeedList + */ +public class AlertEventFeedListTest { + private final AlertEventFeedList model = new AlertEventFeedList(); + + /** + * Model tests for AlertEventFeedList + */ + @Test + public void testAlertEventFeedList() { + // TODO: test AlertEventFeedList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'links' + */ + @Test + public void linksTest() { + // TODO: test links + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/AlertEventFeedMetaTest.java b/src/test/java/com/rootly/client/model/AlertEventFeedMetaTest.java new file mode 100644 index 00000000..e80ffb68 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertEventFeedMetaTest.java @@ -0,0 +1,89 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertEventFeedMeta + */ +public class AlertEventFeedMetaTest { + private final AlertEventFeedMeta model = new AlertEventFeedMeta(); + + /** + * Model tests for AlertEventFeedMeta + */ + @Test + public void testAlertEventFeedMeta() { + // TODO: test AlertEventFeedMeta + } + + /** + * Test the property 'nextCursor' + */ + @Test + public void nextCursorTest() { + // TODO: test nextCursor + } + + /** + * Test the property 'currentPage' + */ + @Test + public void currentPageTest() { + // TODO: test currentPage + } + + /** + * Test the property 'nextPage' + */ + @Test + public void nextPageTest() { + // TODO: test nextPage + } + + /** + * Test the property 'prevPage' + */ + @Test + public void prevPageTest() { + // TODO: test prevPage + } + + /** + * Test the property 'totalCount' + */ + @Test + public void totalCountTest() { + // TODO: test totalCount + } + + /** + * Test the property 'totalPages' + */ + @Test + public void totalPagesTest() { + // TODO: test totalPages + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest.java b/src/test/java/com/rootly/client/model/AlertEventIncidentTest.java similarity index 68% rename from src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest.java rename to src/test/java/com/rootly/client/model/AlertEventIncidentTest.java index f0a7c5f2..63519f67 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest.java +++ b/src/test/java/com/rootly/client/model/AlertEventIncidentTest.java @@ -19,26 +19,23 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; -import java.util.UUID; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner + * Model tests for AlertEventIncident */ -public class UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInnerTest { - private final UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner model = new UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner(); +public class AlertEventIncidentTest { + private final AlertEventIncident model = new AlertEventIncident(); /** - * Model tests for UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner + * Model tests for AlertEventIncident */ @Test - public void testUpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner() { - // TODO: test UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner + public void testAlertEventIncident() { + // TODO: test AlertEventIncident } /** @@ -50,67 +47,99 @@ public void idTest() { } /** - * Test the property 'propertyFieldConditionType' + * Test the property 'sequentialId' */ @Test - public void propertyFieldConditionTypeTest() { - // TODO: test propertyFieldConditionType + public void sequentialIdTest() { + // TODO: test sequentialId } /** - * Test the property 'propertyFieldName' + * Test the property 'title' */ @Test - public void propertyFieldNameTest() { - // TODO: test propertyFieldName + public void titleTest() { + // TODO: test title } /** - * Test the property 'propertyFieldType' + * Test the property 'slug' */ @Test - public void propertyFieldTypeTest() { - // TODO: test propertyFieldType + public void slugTest() { + // TODO: test slug } /** - * Test the property 'propertyFieldValue' + * Test the property 'kind' */ @Test - public void propertyFieldValueTest() { - // TODO: test propertyFieldValue + public void kindTest() { + // TODO: test kind } /** - * Test the property 'propertyFieldValues' + * Test the property 'status' */ @Test - public void propertyFieldValuesTest() { - // TODO: test propertyFieldValues + public void statusTest() { + // TODO: test status } /** - * Test the property 'alertUrgencyIds' + * Test the property '_private' */ @Test - public void alertUrgencyIdsTest() { - // TODO: test alertUrgencyIds + public void _privateTest() { + // TODO: test _private } /** - * Test the property 'conditionableType' + * Test the property 'description' */ @Test - public void conditionableTypeTest() { - // TODO: test conditionableType + public void descriptionTest() { + // TODO: test description } /** - * Test the property 'conditionableId' + * Test the property 'startedAt' */ @Test - public void conditionableIdTest() { - // TODO: test conditionableId + public void startedAtTest() { + // TODO: test startedAt + } + + /** + * Test the property 'duration' + */ + @Test + public void durationTest() { + // TODO: test duration + } + + /** + * Test the property 'url' + */ + @Test + public void urlTest() { + // TODO: test url + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt } } diff --git a/src/test/java/com/rootly/client/model/AlertEventListTest.java b/src/test/java/com/rootly/client/model/AlertEventListTest.java index a5239d80..a4dfebe2 100644 --- a/src/test/java/com/rootly/client/model/AlertEventListTest.java +++ b/src/test/java/com/rootly/client/model/AlertEventListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertEventResponseTest.java b/src/test/java/com/rootly/client/model/AlertEventResponseTest.java index 7f1ee490..d4352b08 100644 --- a/src/test/java/com/rootly/client/model/AlertEventResponseTest.java +++ b/src/test/java/com/rootly/client/model/AlertEventResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestActionTest.java b/src/test/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInnerTest.java similarity index 82% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestActionTest.java rename to src/test/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInnerTest.java index 431627b7..8ecb4433 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestActionTest.java +++ b/src/test/java/com/rootly/client/model/AlertEventScheduleEscalationPoliciesInnerTest.java @@ -24,17 +24,25 @@ import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction + * Model tests for AlertEventScheduleEscalationPoliciesInner */ -public class V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestActionTest { - private final V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction model = new V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction(); +public class AlertEventScheduleEscalationPoliciesInnerTest { + private final AlertEventScheduleEscalationPoliciesInner model = new AlertEventScheduleEscalationPoliciesInner(); /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction + * Model tests for AlertEventScheduleEscalationPoliciesInner */ @Test - public void testV1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction() { - // TODO: test V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction + public void testAlertEventScheduleEscalationPoliciesInner() { + // TODO: test AlertEventScheduleEscalationPoliciesInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id } /** @@ -46,19 +54,19 @@ public void nameTest() { } /** - * Test the property 'actionType' + * Test the property 'createdAt' */ @Test - public void actionTypeTest() { - // TODO: test actionType + public void createdAtTest() { + // TODO: test createdAt } /** - * Test the property 'metadata' + * Test the property 'updatedAt' */ @Test - public void metadataTest() { - // TODO: test metadata + public void updatedAtTest() { + // TODO: test updatedAt } } diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInnerTest.java b/src/test/java/com/rootly/client/model/AlertEventScheduleTest.java similarity index 79% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInnerTest.java rename to src/test/java/com/rootly/client/model/AlertEventScheduleTest.java index ba977c62..f56be98d 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInnerTest.java +++ b/src/test/java/com/rootly/client/model/AlertEventScheduleTest.java @@ -18,25 +18,35 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertEventScheduleEscalationPoliciesInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner + * Model tests for AlertEventSchedule */ -public class V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInnerTest { - private final V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner model = new V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner(); +public class AlertEventScheduleTest { + private final AlertEventSchedule model = new AlertEventSchedule(); /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner + * Model tests for AlertEventSchedule */ @Test - public void testV1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner() { - // TODO: test V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner + public void testAlertEventSchedule() { + // TODO: test AlertEventSchedule + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id } /** @@ -48,35 +58,35 @@ public void nameTest() { } /** - * Test the property 'type' + * Test the property 'description' */ @Test - public void typeTest() { - // TODO: test type + public void descriptionTest() { + // TODO: test description } /** - * Test the property 'required' + * Test the property 'escalationPolicies' */ @Test - public void requiredTest() { - // TODO: test required + public void escalationPoliciesTest() { + // TODO: test escalationPolicies } /** - * Test the property 'description' + * Test the property 'createdAt' */ @Test - public void descriptionTest() { - // TODO: test description + public void createdAtTest() { + // TODO: test createdAt } /** - * Test the property 'options' + * Test the property 'updatedAt' */ @Test - public void optionsTest() { - // TODO: test options + public void updatedAtTest() { + // TODO: test updatedAt } } diff --git a/src/test/java/com/rootly/client/model/AlertEventTest.java b/src/test/java/com/rootly/client/model/AlertEventTest.java index 69068764..f51056f0 100644 --- a/src/test/java/com/rootly/client/model/AlertEventTest.java +++ b/src/test/java/com/rootly/client/model/AlertEventTest.java @@ -18,8 +18,15 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertEventEscalationTarget; +import com.rootly.client.model.AlertEventIncident; +import com.rootly.client.model.AlertEventSchedule; +import com.rootly.client.model.AlertEventUser; +import com.rootly.client.model.SlackChannel; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -38,6 +45,14 @@ public void testAlertEvent() { // TODO: test AlertEvent } + /** + * Test the property 'alertId' + */ + @Test + public void alertIdTest() { + // TODO: test alertId + } + /** * Test the property 'kind' */ @@ -78,6 +93,70 @@ public void detailsTest() { // TODO: test details } + /** + * Test the property 'user' + */ + @Test + public void userTest() { + // TODO: test user + } + + /** + * Test the property 'incident' + */ + @Test + public void incidentTest() { + // TODO: test incident + } + + /** + * Test the property 'schedule' + */ + @Test + public void scheduleTest() { + // TODO: test schedule + } + + /** + * Test the property 'escalationLevel' + */ + @Test + public void escalationLevelTest() { + // TODO: test escalationLevel + } + + /** + * Test the property 'escalationTargetType' + */ + @Test + public void escalationTargetTypeTest() { + // TODO: test escalationTargetType + } + + /** + * Test the property 'escalationTarget' + */ + @Test + public void escalationTargetTest() { + // TODO: test escalationTarget + } + + /** + * Test the property 'slackChannel' + */ + @Test + public void slackChannelTest() { + // TODO: test slackChannel + } + + /** + * Test the property 'incidentIds' + */ + @Test + public void incidentIdsTest() { + // TODO: test incidentIds + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/AlertEventUserTest.java b/src/test/java/com/rootly/client/model/AlertEventUserTest.java new file mode 100644 index 00000000..7a41f666 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertEventUserTest.java @@ -0,0 +1,121 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertEventUser + */ +public class AlertEventUserTest { + private final AlertEventUser model = new AlertEventUser(); + + /** + * Model tests for AlertEventUser + */ + @Test + public void testAlertEventUser() { + // TODO: test AlertEventUser + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'email' + */ + @Test + public void emailTest() { + // TODO: test email + } + + /** + * Test the property 'firstName' + */ + @Test + public void firstNameTest() { + // TODO: test firstName + } + + /** + * Test the property 'lastName' + */ + @Test + public void lastNameTest() { + // TODO: test lastName + } + + /** + * Test the property 'preferredName' + */ + @Test + public void preferredNameTest() { + // TODO: test preferredName + } + + /** + * Test the property 'fullName' + */ + @Test + public void fullNameTest() { + // TODO: test fullName + } + + /** + * Test the property 'timeZone' + */ + @Test + public void timeZoneTest() { + // TODO: test timeZone + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/com/rootly/client/model/AlertFieldListTest.java b/src/test/java/com/rootly/client/model/AlertFieldListTest.java index ea24ee65..f8c339c1 100644 --- a/src/test/java/com/rootly/client/model/AlertFieldListTest.java +++ b/src/test/java/com/rootly/client/model/AlertFieldListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertFieldListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertFieldResponseTest.java b/src/test/java/com/rootly/client/model/AlertFieldResponseTest.java index 8fa71c3e..c118edbf 100644 --- a/src/test/java/com/rootly/client/model/AlertFieldResponseTest.java +++ b/src/test/java/com/rootly/client/model/AlertFieldResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertGroupListTest.java b/src/test/java/com/rootly/client/model/AlertGroupListTest.java index 75036fb5..fde5c075 100644 --- a/src/test/java/com/rootly/client/model/AlertGroupListTest.java +++ b/src/test/java/com/rootly/client/model/AlertGroupListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -48,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertGroupResponseTest.java b/src/test/java/com/rootly/client/model/AlertGroupResponseTest.java index 1755f95d..1a2ca635 100644 --- a/src/test/java/com/rootly/client/model/AlertGroupResponseTest.java +++ b/src/test/java/com/rootly/client/model/AlertGroupResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertListTest.java b/src/test/java/com/rootly/client/model/AlertListTest.java index 691c303a..27fa3221 100644 --- a/src/test/java/com/rootly/client/model/AlertListTest.java +++ b/src/test/java/com/rootly/client/model/AlertListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertResponseTest.java b/src/test/java/com/rootly/client/model/AlertResponseTest.java index e4efc87d..9c3b7dc9 100644 --- a/src/test/java/com/rootly/client/model/AlertResponseTest.java +++ b/src/test/java/com/rootly/client/model/AlertResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertRetriggerRuleConditionsInnerTest.java b/src/test/java/com/rootly/client/model/AlertRetriggerRuleConditionsInnerTest.java new file mode 100644 index 00000000..ffd8d89d --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertRetriggerRuleConditionsInnerTest.java @@ -0,0 +1,91 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertRetriggerRuleConditionsInner + */ +public class AlertRetriggerRuleConditionsInnerTest { + private final AlertRetriggerRuleConditionsInner model = new AlertRetriggerRuleConditionsInner(); + + /** + * Model tests for AlertRetriggerRuleConditionsInner + */ + @Test + public void testAlertRetriggerRuleConditionsInner() { + // TODO: test AlertRetriggerRuleConditionsInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'kind' + */ + @Test + public void kindTest() { + // TODO: test kind + } + + /** + * Test the property 'operator' + */ + @Test + public void operatorTest() { + // TODO: test operator + } + + /** + * Test the property 'recordIds' + */ + @Test + public void recordIdsTest() { + // TODO: test recordIds + } + + /** + * Test the property 'values' + */ + @Test + public void valuesTest() { + // TODO: test values + } + + /** + * Test the property 'propertyFieldName' + */ + @Test + public void propertyFieldNameTest() { + // TODO: test propertyFieldName + } + +} diff --git a/src/test/java/com/rootly/client/model/AlertRetriggerRuleListTest.java b/src/test/java/com/rootly/client/model/AlertRetriggerRuleListTest.java new file mode 100644 index 00000000..417fd50d --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertRetriggerRuleListTest.java @@ -0,0 +1,78 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertRetriggerRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertRetriggerRuleList + */ +public class AlertRetriggerRuleListTest { + private final AlertRetriggerRuleList model = new AlertRetriggerRuleList(); + + /** + * Model tests for AlertRetriggerRuleList + */ + @Test + public void testAlertRetriggerRuleList() { + // TODO: test AlertRetriggerRuleList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'links' + */ + @Test + public void linksTest() { + // TODO: test links + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseDataTest.java b/src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseDataTest.java new file mode 100644 index 00000000..ad82066b --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertRetriggerRule; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertRetriggerRuleResponseData + */ +public class AlertRetriggerRuleResponseDataTest { + private final AlertRetriggerRuleResponseData model = new AlertRetriggerRuleResponseData(); + + /** + * Model tests for AlertRetriggerRuleResponseData + */ + @Test + public void testAlertRetriggerRuleResponseData() { + // TODO: test AlertRetriggerRuleResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOfTest.java b/src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseTest.java similarity index 83% rename from src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOfTest.java rename to src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseTest.java index fdf2d878..f5a16f3c 100644 --- a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOfTest.java +++ b/src/test/java/com/rootly/client/model/AlertRetriggerRuleResponseTest.java @@ -18,6 +18,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertRetriggerRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -26,33 +28,33 @@ import org.junit.jupiter.api.Test; /** - * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf + * Model tests for AlertRetriggerRuleResponse */ -public class NewEscalationPolicyPathDataAttributesRulesInnerAnyOfTest { - private final NewEscalationPolicyPathDataAttributesRulesInnerAnyOf model = new NewEscalationPolicyPathDataAttributesRulesInnerAnyOf(); +public class AlertRetriggerRuleResponseTest { + private final AlertRetriggerRuleResponse model = new AlertRetriggerRuleResponse(); /** - * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf + * Model tests for AlertRetriggerRuleResponse */ @Test - public void testNewEscalationPolicyPathDataAttributesRulesInnerAnyOf() { - // TODO: test NewEscalationPolicyPathDataAttributesRulesInnerAnyOf + public void testAlertRetriggerRuleResponse() { + // TODO: test AlertRetriggerRuleResponse } /** - * Test the property 'ruleType' + * Test the property 'data' */ @Test - public void ruleTypeTest() { - // TODO: test ruleType + public void dataTest() { + // TODO: test data } /** - * Test the property 'urgencyIds' + * Test the property 'included' */ @Test - public void urgencyIdsTest() { - // TODO: test urgencyIds + public void includedTest() { + // TODO: test included } } diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerTest.java b/src/test/java/com/rootly/client/model/AlertRetriggerRuleTest.java similarity index 78% rename from src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerTest.java rename to src/test/java/com/rootly/client/model/AlertRetriggerRuleTest.java index 0f1acc59..5624f0da 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerTest.java +++ b/src/test/java/com/rootly/client/model/AlertRetriggerRuleTest.java @@ -18,44 +18,52 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner; -import com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInnerDestinationsInner; +import com.rootly.client.model.AlertRetriggerRuleConditionsInner; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for UpdateAlertRouteDataAttributesRulesInner + * Model tests for AlertRetriggerRule */ -public class UpdateAlertRouteDataAttributesRulesInnerTest { - private final UpdateAlertRouteDataAttributesRulesInner model = new UpdateAlertRouteDataAttributesRulesInner(); +public class AlertRetriggerRuleTest { + private final AlertRetriggerRule model = new AlertRetriggerRule(); /** - * Model tests for UpdateAlertRouteDataAttributesRulesInner + * Model tests for AlertRetriggerRule */ @Test - public void testUpdateAlertRouteDataAttributesRulesInner() { - // TODO: test UpdateAlertRouteDataAttributesRulesInner + public void testAlertRetriggerRule() { + // TODO: test AlertRetriggerRule } /** - * Test the property 'id' + * Test the property 'name' */ @Test - public void idTest() { - // TODO: test id + public void nameTest() { + // TODO: test name } /** - * Test the property 'name' + * Test the property 'matchMode' */ @Test - public void nameTest() { - // TODO: test name + public void matchModeTest() { + // TODO: test matchMode + } + + /** + * Test the property 'timeoutMinutes' + */ + @Test + public void timeoutMinutesTest() { + // TODO: test timeoutMinutes } /** @@ -67,27 +75,27 @@ public void positionTest() { } /** - * Test the property 'fallbackRule' + * Test the property 'conditions' */ @Test - public void fallbackRuleTest() { - // TODO: test fallbackRule + public void conditionsTest() { + // TODO: test conditions } /** - * Test the property 'destinations' + * Test the property 'createdAt' */ @Test - public void destinationsTest() { - // TODO: test destinations + public void createdAtTest() { + // TODO: test createdAt } /** - * Test the property 'conditionGroups' + * Test the property 'updatedAt' */ @Test - public void conditionGroupsTest() { - // TODO: test conditionGroups + public void updatedAtTest() { + // TODO: test updatedAt } } diff --git a/src/test/java/com/rootly/client/model/AlertRoutingRuleListTest.java b/src/test/java/com/rootly/client/model/AlertRoutingRuleListTest.java index aa88c66f..5e2cab65 100644 --- a/src/test/java/com/rootly/client/model/AlertRoutingRuleListTest.java +++ b/src/test/java/com/rootly/client/model/AlertRoutingRuleListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertRoutingRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertRoutingRuleResponseTest.java b/src/test/java/com/rootly/client/model/AlertRoutingRuleResponseTest.java index e5f90c78..89f6499a 100644 --- a/src/test/java/com/rootly/client/model/AlertRoutingRuleResponseTest.java +++ b/src/test/java/com/rootly/client/model/AlertRoutingRuleResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertRoutingRuleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertTest.java b/src/test/java/com/rootly/client/model/AlertTest.java index 4bae23b0..e7fb85c8 100644 --- a/src/test/java/com/rootly/client/model/AlertTest.java +++ b/src/test/java/com/rootly/client/model/AlertTest.java @@ -18,12 +18,18 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertAlertFieldValuesInner; +import com.rootly.client.model.AlertAlertingTargetsInner; +import com.rootly.client.model.AlertUrgency; import com.rootly.client.model.Environment; -import com.rootly.client.model.NewAlertDataAttributesAlertFieldValuesAttributesInner; +import com.rootly.client.model.Functionality; import com.rootly.client.model.NewAlertDataAttributesLabelsInner; import com.rootly.client.model.Service; import com.rootly.client.model.Team; +import com.rootly.client.model.User; +import com.rootly.client.model.UserFlatResponse; import java.io.IOException; +import java.net.URI; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; @@ -110,6 +116,14 @@ public void groupsTest() { // TODO: test groups } + /** + * Test the property 'functionalities' + */ + @Test + public void functionalitiesTest() { + // TODO: test functionalities + } + /** * Test the property 'environments' */ @@ -134,6 +148,14 @@ public void groupIdsTest() { // TODO: test groupIds } + /** + * Test the property 'functionalityIds' + */ + @Test + public void functionalityIdsTest() { + // TODO: test functionalityIds + } + /** * Test the property 'environmentIds' */ @@ -166,6 +188,14 @@ public void alertUrgencyIdTest() { // TODO: test alertUrgencyId } + /** + * Test the property 'alertUrgency' + */ + @Test + public void alertUrgencyTest() { + // TODO: test alertUrgency + } + /** * Test the property 'groupLeaderAlertId' */ @@ -198,6 +228,22 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'notificationTargetType' + */ + @Test + public void notificationTargetTypeTest() { + // TODO: test notificationTargetType + } + + /** + * Test the property 'notificationTargetId' + */ + @Test + public void notificationTargetIdTest() { + // TODO: test notificationTargetId + } + /** * Test the property 'deduplicationKey' */ @@ -207,11 +253,43 @@ public void deduplicationKeyTest() { } /** - * Test the property 'alertFieldValuesAttributes' + * Test the property 'alertFieldValues' + */ + @Test + public void alertFieldValuesTest() { + // TODO: test alertFieldValues + } + + /** + * Test the property 'responders' + */ + @Test + public void respondersTest() { + // TODO: test responders + } + + /** + * Test the property 'notifiedUsers' + */ + @Test + public void notifiedUsersTest() { + // TODO: test notifiedUsers + } + + /** + * Test the property 'alertingTargets' + */ + @Test + public void alertingTargetsTest() { + // TODO: test alertingTargets + } + + /** + * Test the property 'url' */ @Test - public void alertFieldValuesAttributesTest() { - // TODO: test alertFieldValuesAttributes + public void urlTest() { + // TODO: test url } /** diff --git a/src/test/java/com/rootly/client/model/AlertTriggerParamsTest.java b/src/test/java/com/rootly/client/model/AlertTriggerParamsTest.java index 3f8b680e..eb0e5cb7 100644 --- a/src/test/java/com/rootly/client/model/AlertTriggerParamsTest.java +++ b/src/test/java/com/rootly/client/model/AlertTriggerParamsTest.java @@ -19,10 +19,12 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertTriggerParamsAlertFieldConditionsInner; +import com.rootly.client.model.AlertTriggerParamsAlertPayloadConditions; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.UUID; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -137,6 +139,22 @@ public void alertLabelsTest() { // TODO: test alertLabels } + /** + * Test the property 'alertConditionUrgency' + */ + @Test + public void alertConditionUrgencyTest() { + // TODO: test alertConditionUrgency + } + + /** + * Test the property 'alertUrgencyIds' + */ + @Test + public void alertUrgencyIdsTest() { + // TODO: test alertUrgencyIds + } + /** * Test the property 'alertConditionPayload' */ @@ -177,4 +195,12 @@ public void alertFieldConditionsTest() { // TODO: test alertFieldConditions } + /** + * Test the property 'alertPayloadConditions' + */ + @Test + public void alertPayloadConditionsTest() { + // TODO: test alertPayloadConditions + } + } diff --git a/src/test/java/com/rootly/client/model/AlertUrgencyListTest.java b/src/test/java/com/rootly/client/model/AlertUrgencyListTest.java index 50ee171a..ee8116f8 100644 --- a/src/test/java/com/rootly/client/model/AlertUrgencyListTest.java +++ b/src/test/java/com/rootly/client/model/AlertUrgencyListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertUrgencyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertUrgencyResponseTest.java b/src/test/java/com/rootly/client/model/AlertUrgencyResponseTest.java index 9fd77637..ed2513b6 100644 --- a/src/test/java/com/rootly/client/model/AlertUrgencyResponseTest.java +++ b/src/test/java/com/rootly/client/model/AlertUrgencyResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertUrgencyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertUrgencyTest.java b/src/test/java/com/rootly/client/model/AlertUrgencyTest.java index 810c388b..46ac35e0 100644 --- a/src/test/java/com/rootly/client/model/AlertUrgencyTest.java +++ b/src/test/java/com/rootly/client/model/AlertUrgencyTest.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -37,6 +38,14 @@ public void testAlertUrgency() { // TODO: test AlertUrgency } + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + /** * Test the property 'name' */ @@ -61,6 +70,46 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'retriggerTimeoutMinutes' + */ + @Test + public void retriggerTimeoutMinutesTest() { + // TODO: test retriggerTimeoutMinutes + } + + /** + * Test the property 'urgency' + */ + @Test + public void urgencyTest() { + // TODO: test urgency + } + + /** + * Test the property 'color' + */ + @Test + public void colorTest() { + // TODO: test color + } + + /** + * Test the property 'teamId' + */ + @Test + public void teamIdTest() { + // TODO: test teamId + } + + /** + * Test the property 'deletedAt' + */ + @Test + public void deletedAtTest() { + // TODO: test deletedAt + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/AlertsSourceListTest.java b/src/test/java/com/rootly/client/model/AlertsSourceListTest.java index a17b354b..b1d895b4 100644 --- a/src/test/java/com/rootly/client/model/AlertsSourceListTest.java +++ b/src/test/java/com/rootly/client/model/AlertsSourceListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertsSourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertsSourceResponseTest.java b/src/test/java/com/rootly/client/model/AlertsSourceResponseTest.java index aa5c756d..fa34a27e 100644 --- a/src/test/java/com/rootly/client/model/AlertsSourceResponseTest.java +++ b/src/test/java/com/rootly/client/model/AlertsSourceResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AlertsSourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AlertsSourceSourceableAttributesTest.java b/src/test/java/com/rootly/client/model/AlertsSourceSourceableAttributesTest.java new file mode 100644 index 00000000..7a6ee02d --- /dev/null +++ b/src/test/java/com/rootly/client/model/AlertsSourceSourceableAttributesTest.java @@ -0,0 +1,85 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertsSourceDataAttributesSourceableAttributesFieldMappingsAttributesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AlertsSourceSourceableAttributes + */ +public class AlertsSourceSourceableAttributesTest { + private final AlertsSourceSourceableAttributes model = new AlertsSourceSourceableAttributes(); + + /** + * Model tests for AlertsSourceSourceableAttributes + */ + @Test + public void testAlertsSourceSourceableAttributes() { + // TODO: test AlertsSourceSourceableAttributes + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'autoResolve' + */ + @Test + public void autoResolveTest() { + // TODO: test autoResolve + } + + /** + * Test the property 'resolveState' + */ + @Test + public void resolveStateTest() { + // TODO: test resolveState + } + + /** + * Test the property 'acceptThreadedEmails' + */ + @Test + public void acceptThreadedEmailsTest() { + // TODO: test acceptThreadedEmails + } + + /** + * Test the property 'fieldMappingsAttributes' + */ + @Test + public void fieldMappingsAttributesTest() { + // TODO: test fieldMappingsAttributes + } + +} diff --git a/src/test/java/com/rootly/client/model/AlertsSourceTest.java b/src/test/java/com/rootly/client/model/AlertsSourceTest.java index b6540342..e136d73c 100644 --- a/src/test/java/com/rootly/client/model/AlertsSourceTest.java +++ b/src/test/java/com/rootly/client/model/AlertsSourceTest.java @@ -18,11 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AlertsSourceSourceableAttributes; import com.rootly.client.model.NewAlertsSourceDataAttributesAlertSourceFieldsAttributesInner; import com.rootly.client.model.NewAlertsSourceDataAttributesAlertSourceUrgencyRulesAttributesInner; import com.rootly.client.model.NewAlertsSourceDataAttributesAlertTemplateAttributes; import com.rootly.client.model.NewAlertsSourceDataAttributesResolutionRuleAttributes; -import com.rootly.client.model.NewAlertsSourceDataAttributesSourceableAttributes; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -53,6 +53,14 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'enabled' + */ + @Test + public void enabledTest() { + // TODO: test enabled + } + /** * Test the property 'sourceType' */ diff --git a/src/test/java/com/rootly/client/model/ApiKeyListTest.java b/src/test/java/com/rootly/client/model/ApiKeyListTest.java index c0e6bd6f..19db39de 100644 --- a/src/test/java/com/rootly/client/model/ApiKeyListTest.java +++ b/src/test/java/com/rootly/client/model/ApiKeyListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.ApiKeyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ApiKeyResponseTest.java b/src/test/java/com/rootly/client/model/ApiKeyResponseTest.java index f7a6eaf5..bc64a545 100644 --- a/src/test/java/com/rootly/client/model/ApiKeyResponseTest.java +++ b/src/test/java/com/rootly/client/model/ApiKeyResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.ApiKeyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ApiKeyWithTokenResponseTest.java b/src/test/java/com/rootly/client/model/ApiKeyWithTokenResponseTest.java index 64161e99..b0fa750a 100644 --- a/src/test/java/com/rootly/client/model/ApiKeyWithTokenResponseTest.java +++ b/src/test/java/com/rootly/client/model/ApiKeyWithTokenResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.ApiKeyWithTokenResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParamsTest.java b/src/test/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParamsTest.java new file mode 100644 index 00000000..4a67a130 --- /dev/null +++ b/src/test/java/com/rootly/client/model/ArchiveGoogleChatSpacesTaskParamsTest.java @@ -0,0 +1,59 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for ArchiveGoogleChatSpacesTaskParams + */ +public class ArchiveGoogleChatSpacesTaskParamsTest { + private final ArchiveGoogleChatSpacesTaskParams model = new ArchiveGoogleChatSpacesTaskParams(); + + /** + * Model tests for ArchiveGoogleChatSpacesTaskParams + */ + @Test + public void testArchiveGoogleChatSpacesTaskParams() { + // TODO: test ArchiveGoogleChatSpacesTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'spaces' + */ + @Test + public void spacesTest() { + // TODO: test spaces + } + +} diff --git a/src/test/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParamsTest.java b/src/test/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParamsTest.java new file mode 100644 index 00000000..03b22dbe --- /dev/null +++ b/src/test/java/com/rootly/client/model/AttachRetrospectivePdfToFreshserviceTicketTaskParamsTest.java @@ -0,0 +1,64 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AttachRetrospectivePdfToFreshserviceTicketTaskParams + */ +public class AttachRetrospectivePdfToFreshserviceTicketTaskParamsTest { + private final AttachRetrospectivePdfToFreshserviceTicketTaskParams model = new AttachRetrospectivePdfToFreshserviceTicketTaskParams(); + + /** + * Model tests for AttachRetrospectivePdfToFreshserviceTicketTaskParams + */ + @Test + public void testAttachRetrospectivePdfToFreshserviceTicketTaskParams() { + // TODO: test AttachRetrospectivePdfToFreshserviceTicketTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'ticketId' + */ + @Test + public void ticketIdTest() { + // TODO: test ticketId + } + + /** + * Test the property 'filename' + */ + @Test + public void filenameTest() { + // TODO: test filename + } + +} diff --git a/src/test/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParamsTest.java new file mode 100644 index 00000000..1e4496e3 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AttachRetrospectivePdfToJiraIssueTaskParamsTest.java @@ -0,0 +1,73 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateJiraIssueTaskParamsIntegration; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AttachRetrospectivePdfToJiraIssueTaskParams + */ +public class AttachRetrospectivePdfToJiraIssueTaskParamsTest { + private final AttachRetrospectivePdfToJiraIssueTaskParams model = new AttachRetrospectivePdfToJiraIssueTaskParams(); + + /** + * Model tests for AttachRetrospectivePdfToJiraIssueTaskParams + */ + @Test + public void testAttachRetrospectivePdfToJiraIssueTaskParams() { + // TODO: test AttachRetrospectivePdfToJiraIssueTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'integration' + */ + @Test + public void integrationTest() { + // TODO: test integration + } + + /** + * Test the property 'issueId' + */ + @Test + public void issueIdTest() { + // TODO: test issueId + } + + /** + * Test the property 'filename' + */ + @Test + public void filenameTest() { + // TODO: test filename + } + +} diff --git a/src/test/java/com/rootly/client/model/AuditTest.java b/src/test/java/com/rootly/client/model/AuditTest.java index 06114055..b9a01f3c 100644 --- a/src/test/java/com/rootly/client/model/AuditTest.java +++ b/src/test/java/com/rootly/client/model/AuditTest.java @@ -54,6 +54,14 @@ public void itemTypeTest() { // TODO: test itemType } + /** + * Test the property 'itemTypeDisplay' + */ + @Test + public void itemTypeDisplayTest() { + // TODO: test itemTypeDisplay + } + /** * Test the property '_object' */ @@ -78,6 +86,54 @@ public void userIdTest() { // TODO: test userId } + /** + * Test the property 'userName' + */ + @Test + public void userNameTest() { + // TODO: test userName + } + + /** + * Test the property 'userEmail' + */ + @Test + public void userEmailTest() { + // TODO: test userEmail + } + + /** + * Test the property 'ipAddress' + */ + @Test + public void ipAddressTest() { + // TODO: test ipAddress + } + + /** + * Test the property 'userAgent' + */ + @Test + public void userAgentTest() { + // TODO: test userAgent + } + + /** + * Test the property 'requestId' + */ + @Test + public void requestIdTest() { + // TODO: test requestId + } + + /** + * Test the property 'sessionId' + */ + @Test + public void sessionIdTest() { + // TODO: test sessionId + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/AuditsListTest.java b/src/test/java/com/rootly/client/model/AuditsListTest.java index 605d4c1d..7b4b6031 100644 --- a/src/test/java/com/rootly/client/model/AuditsListTest.java +++ b/src/test/java/com/rootly/client/model/AuditsListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AuditsListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AuthorizationListTest.java b/src/test/java/com/rootly/client/model/AuthorizationListTest.java index 46d67940..67522e7b 100644 --- a/src/test/java/com/rootly/client/model/AuthorizationListTest.java +++ b/src/test/java/com/rootly/client/model/AuthorizationListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AuthorizationResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AuthorizationResponseTest.java b/src/test/java/com/rootly/client/model/AuthorizationResponseTest.java index 580e1122..31dd6272 100644 --- a/src/test/java/com/rootly/client/model/AuthorizationResponseTest.java +++ b/src/test/java/com/rootly/client/model/AuthorizationResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AuthorizationResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1Test.java b/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1Test.java new file mode 100644 index 00000000..dec7d77b --- /dev/null +++ b/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOf1Test.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoAssignRolePagerdutyTaskParamsAnyOf1 + */ +public class AutoAssignRolePagerdutyTaskParamsAnyOf1Test { + private final AutoAssignRolePagerdutyTaskParamsAnyOf1 model = new AutoAssignRolePagerdutyTaskParamsAnyOf1(); + + /** + * Model tests for AutoAssignRolePagerdutyTaskParamsAnyOf1 + */ + @Test + public void testAutoAssignRolePagerdutyTaskParamsAnyOf1() { + // TODO: test AutoAssignRolePagerdutyTaskParamsAnyOf1 + } + + /** + * Test the property 'escalationPolicy' + */ + @Test + public void escalationPolicyTest() { + // TODO: test escalationPolicy + } + +} diff --git a/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOfTest.java b/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOfTest.java new file mode 100644 index 00000000..d7857860 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsAnyOfTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoAssignRolePagerdutyTaskParamsAnyOf + */ +public class AutoAssignRolePagerdutyTaskParamsAnyOfTest { + private final AutoAssignRolePagerdutyTaskParamsAnyOf model = new AutoAssignRolePagerdutyTaskParamsAnyOf(); + + /** + * Model tests for AutoAssignRolePagerdutyTaskParamsAnyOf + */ + @Test + public void testAutoAssignRolePagerdutyTaskParamsAnyOf() { + // TODO: test AutoAssignRolePagerdutyTaskParamsAnyOf + } + + /** + * Test the property 'schedule' + */ + @Test + public void scheduleTest() { + // TODO: test schedule + } + +} diff --git a/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsTest.java b/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsTest.java index 300cd888..4894851a 100644 --- a/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/AutoAssignRolePagerdutyTaskParamsTest.java @@ -18,6 +18,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; @@ -37,4 +40,20 @@ public void testAutoAssignRolePagerdutyTaskParams() { // TODO: test AutoAssignRolePagerdutyTaskParams } + /** + * Test the property 'schedule' + */ + @Test + public void scheduleTest() { + // TODO: test schedule + } + + /** + * Test the property 'escalationPolicy' + */ + @Test + public void escalationPolicyTest() { + // TODO: test escalationPolicy + } + } diff --git a/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1Test.java b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1Test.java new file mode 100644 index 00000000..2b91dfd3 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf1Test.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf1 + */ +public class AutoAssignRoleRootlyTaskParamsOneOf1Test { + private final AutoAssignRoleRootlyTaskParamsOneOf1 model = new AutoAssignRoleRootlyTaskParamsOneOf1(); + + /** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf1 + */ + @Test + public void testAutoAssignRoleRootlyTaskParamsOneOf1() { + // TODO: test AutoAssignRoleRootlyTaskParamsOneOf1 + } + + /** + * Test the property 'serviceTarget' + */ + @Test + public void serviceTargetTest() { + // TODO: test serviceTarget + } + +} diff --git a/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2Test.java b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2Test.java new file mode 100644 index 00000000..e91d309f --- /dev/null +++ b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf2Test.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf2 + */ +public class AutoAssignRoleRootlyTaskParamsOneOf2Test { + private final AutoAssignRoleRootlyTaskParamsOneOf2 model = new AutoAssignRoleRootlyTaskParamsOneOf2(); + + /** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf2 + */ + @Test + public void testAutoAssignRoleRootlyTaskParamsOneOf2() { + // TODO: test AutoAssignRoleRootlyTaskParamsOneOf2 + } + + /** + * Test the property 'userTarget' + */ + @Test + public void userTargetTest() { + // TODO: test userTarget + } + +} diff --git a/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3Test.java b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3Test.java new file mode 100644 index 00000000..fa7a9e12 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf3Test.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf3 + */ +public class AutoAssignRoleRootlyTaskParamsOneOf3Test { + private final AutoAssignRoleRootlyTaskParamsOneOf3 model = new AutoAssignRoleRootlyTaskParamsOneOf3(); + + /** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf3 + */ + @Test + public void testAutoAssignRoleRootlyTaskParamsOneOf3() { + // TODO: test AutoAssignRoleRootlyTaskParamsOneOf3 + } + + /** + * Test the property 'groupTarget' + */ + @Test + public void groupTargetTest() { + // TODO: test groupTarget + } + +} diff --git a/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4Test.java b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4Test.java new file mode 100644 index 00000000..7255c21b --- /dev/null +++ b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOf4Test.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf4 + */ +public class AutoAssignRoleRootlyTaskParamsOneOf4Test { + private final AutoAssignRoleRootlyTaskParamsOneOf4 model = new AutoAssignRoleRootlyTaskParamsOneOf4(); + + /** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf4 + */ + @Test + public void testAutoAssignRoleRootlyTaskParamsOneOf4() { + // TODO: test AutoAssignRoleRootlyTaskParamsOneOf4 + } + + /** + * Test the property 'scheduleTarget' + */ + @Test + public void scheduleTargetTest() { + // TODO: test scheduleTarget + } + +} diff --git a/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOfTest.java b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOfTest.java new file mode 100644 index 00000000..6e7f5669 --- /dev/null +++ b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsOneOfTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf + */ +public class AutoAssignRoleRootlyTaskParamsOneOfTest { + private final AutoAssignRoleRootlyTaskParamsOneOf model = new AutoAssignRoleRootlyTaskParamsOneOf(); + + /** + * Model tests for AutoAssignRoleRootlyTaskParamsOneOf + */ + @Test + public void testAutoAssignRoleRootlyTaskParamsOneOf() { + // TODO: test AutoAssignRoleRootlyTaskParamsOneOf + } + + /** + * Test the property 'escalationPolicyTarget' + */ + @Test + public void escalationPolicyTargetTest() { + // TODO: test escalationPolicyTarget + } + +} diff --git a/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsTest.java b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsTest.java index 74abc23d..830fbe7e 100644 --- a/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/AutoAssignRoleRootlyTaskParamsTest.java @@ -19,6 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf1; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf2; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf3; +import com.rootly.client.model.AutoAssignRoleRootlyTaskParamsOneOf4; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; @@ -38,22 +43,6 @@ public void testAutoAssignRoleRootlyTaskParams() { // TODO: test AutoAssignRoleRootlyTaskParams } - /** - * Test the property 'taskType' - */ - @Test - public void taskTypeTest() { - // TODO: test taskType - } - - /** - * Test the property 'incidentRoleId' - */ - @Test - public void incidentRoleIdTest() { - // TODO: test incidentRoleId - } - /** * Test the property 'escalationPolicyTarget' */ diff --git a/src/test/java/com/rootly/client/model/BulkDeleteCatalogEntities422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkDeleteCatalogEntities422ResponseTest.java new file mode 100644 index 00000000..55b4413c --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDeleteCatalogEntities422ResponseTest.java @@ -0,0 +1,62 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponse; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDeleteCatalogEntities422Response + */ +public class BulkDeleteCatalogEntities422ResponseTest { + private final BulkDeleteCatalogEntities422Response model = new BulkDeleteCatalogEntities422Response(); + + /** + * Model tests for BulkDeleteCatalogEntities422Response + */ + @Test + public void testBulkDeleteCatalogEntities422Response() { + // TODO: test BulkDeleteCatalogEntities422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDeleteEnvironments422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkDeleteEnvironments422ResponseTest.java new file mode 100644 index 00000000..bdf1ff34 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDeleteEnvironments422ResponseTest.java @@ -0,0 +1,62 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyEnvironmentsResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDeleteEnvironments422Response + */ +public class BulkDeleteEnvironments422ResponseTest { + private final BulkDeleteEnvironments422Response model = new BulkDeleteEnvironments422Response(); + + /** + * Model tests for BulkDeleteEnvironments422Response + */ + @Test + public void testBulkDeleteEnvironments422Response() { + // TODO: test BulkDeleteEnvironments422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDeleteFunctionalities422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkDeleteFunctionalities422ResponseTest.java new file mode 100644 index 00000000..296744c6 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDeleteFunctionalities422ResponseTest.java @@ -0,0 +1,62 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyFunctionalitiesResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDeleteFunctionalities422Response + */ +public class BulkDeleteFunctionalities422ResponseTest { + private final BulkDeleteFunctionalities422Response model = new BulkDeleteFunctionalities422Response(); + + /** + * Model tests for BulkDeleteFunctionalities422Response + */ + @Test + public void testBulkDeleteFunctionalities422Response() { + // TODO: test BulkDeleteFunctionalities422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDeleteGroups422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkDeleteGroups422ResponseTest.java new file mode 100644 index 00000000..65703a4f --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDeleteGroups422ResponseTest.java @@ -0,0 +1,62 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyTeamsResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDeleteGroups422Response + */ +public class BulkDeleteGroups422ResponseTest { + private final BulkDeleteGroups422Response model = new BulkDeleteGroups422Response(); + + /** + * Model tests for BulkDeleteGroups422Response + */ + @Test + public void testBulkDeleteGroups422Response() { + // TODO: test BulkDeleteGroups422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDeleteServices422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkDeleteServices422ResponseTest.java new file mode 100644 index 00000000..b7cb992f --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDeleteServices422ResponseTest.java @@ -0,0 +1,62 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import com.rootly.client.model.BulkDestroyServicesResponse; +import com.rootly.client.model.ErrorsList; +import com.rootly.client.model.ErrorsListErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDeleteServices422Response + */ +public class BulkDeleteServices422ResponseTest { + private final BulkDeleteServices422Response model = new BulkDeleteServices422Response(); + + /** + * Model tests for BulkDeleteServices422Response + */ + @Test + public void testBulkDeleteServices422Response() { + // TODO: test BulkDeleteServices422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1Test.java b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1Test.java new file mode 100644 index 00000000..5db5d1b8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOf1Test.java @@ -0,0 +1,58 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyCatalogEntitiesOneOf1 + */ +public class BulkDestroyCatalogEntitiesOneOf1Test { + private final BulkDestroyCatalogEntitiesOneOf1 model = new BulkDestroyCatalogEntitiesOneOf1(); + + /** + * Model tests for BulkDestroyCatalogEntitiesOneOf1 + */ + @Test + public void testBulkDestroyCatalogEntitiesOneOf1() { + // TODO: test BulkDestroyCatalogEntitiesOneOf1 + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'keepExternalIds' + */ + @Test + public void keepExternalIdsTest() { + // TODO: test keepExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOfTest.java b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOfTest.java new file mode 100644 index 00000000..93becd38 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesOneOfTest.java @@ -0,0 +1,50 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyCatalogEntitiesOneOf + */ +public class BulkDestroyCatalogEntitiesOneOfTest { + private final BulkDestroyCatalogEntitiesOneOf model = new BulkDestroyCatalogEntitiesOneOf(); + + /** + * Model tests for BulkDestroyCatalogEntitiesOneOf + */ + @Test + public void testBulkDestroyCatalogEntitiesOneOf() { + // TODO: test BulkDestroyCatalogEntitiesOneOf + } + + /** + * Test the property 'externalIds' + */ + @Test + public void externalIdsTest() { + // TODO: test externalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseDataTest.java b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseDataTest.java new file mode 100644 index 00000000..dcf08a72 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseDataTest.java @@ -0,0 +1,66 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyCatalogEntitiesResponseData + */ +public class BulkDestroyCatalogEntitiesResponseDataTest { + private final BulkDestroyCatalogEntitiesResponseData model = new BulkDestroyCatalogEntitiesResponseData(); + + /** + * Model tests for BulkDestroyCatalogEntitiesResponseData + */ + @Test + public void testBulkDestroyCatalogEntitiesResponseData() { + // TODO: test BulkDestroyCatalogEntitiesResponseData + } + + /** + * Test the property 'deletedExternalIds' + */ + @Test + public void deletedExternalIdsTest() { + // TODO: test deletedExternalIds + } + + /** + * Test the property 'failedExternalIds' + */ + @Test + public void failedExternalIdsTest() { + // TODO: test failedExternalIds + } + + /** + * Test the property 'notFoundExternalIds' + */ + @Test + public void notFoundExternalIdsTest() { + // TODO: test notFoundExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseTest.java b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseTest.java new file mode 100644 index 00000000..dcfd08a5 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyCatalogEntitiesResponse + */ +public class BulkDestroyCatalogEntitiesResponseTest { + private final BulkDestroyCatalogEntitiesResponse model = new BulkDestroyCatalogEntitiesResponse(); + + /** + * Model tests for BulkDestroyCatalogEntitiesResponse + */ + @Test + public void testBulkDestroyCatalogEntitiesResponse() { + // TODO: test BulkDestroyCatalogEntitiesResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesTest.java b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesTest.java new file mode 100644 index 00000000..9786c471 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyCatalogEntitiesTest.java @@ -0,0 +1,68 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf1; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyCatalogEntities + */ +public class BulkDestroyCatalogEntitiesTest { + private final BulkDestroyCatalogEntities model = new BulkDestroyCatalogEntities(); + + /** + * Model tests for BulkDestroyCatalogEntities + */ + @Test + public void testBulkDestroyCatalogEntities() { + // TODO: test BulkDestroyCatalogEntities + } + + /** + * Test the property 'externalIds' + */ + @Test + public void externalIdsTest() { + // TODO: test externalIds + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'keepExternalIds' + */ + @Test + public void keepExternalIdsTest() { + // TODO: test keepExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOfTest.java b/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOfTest.java new file mode 100644 index 00000000..6f7150bb --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsOneOfTest.java @@ -0,0 +1,58 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyEnvironmentsOneOf + */ +public class BulkDestroyEnvironmentsOneOfTest { + private final BulkDestroyEnvironmentsOneOf model = new BulkDestroyEnvironmentsOneOf(); + + /** + * Model tests for BulkDestroyEnvironmentsOneOf + */ + @Test + public void testBulkDestroyEnvironmentsOneOf() { + // TODO: test BulkDestroyEnvironmentsOneOf + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'keepExternalIds' + */ + @Test + public void keepExternalIdsTest() { + // TODO: test keepExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsResponseTest.java b/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsResponseTest.java new file mode 100644 index 00000000..88839ccd --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyEnvironmentsResponse + */ +public class BulkDestroyEnvironmentsResponseTest { + private final BulkDestroyEnvironmentsResponse model = new BulkDestroyEnvironmentsResponse(); + + /** + * Model tests for BulkDestroyEnvironmentsResponse + */ + @Test + public void testBulkDestroyEnvironmentsResponse() { + // TODO: test BulkDestroyEnvironmentsResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsTest.java b/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsTest.java new file mode 100644 index 00000000..aa62ca9f --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyEnvironmentsTest.java @@ -0,0 +1,68 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyEnvironments + */ +public class BulkDestroyEnvironmentsTest { + private final BulkDestroyEnvironments model = new BulkDestroyEnvironments(); + + /** + * Model tests for BulkDestroyEnvironments + */ + @Test + public void testBulkDestroyEnvironments() { + // TODO: test BulkDestroyEnvironments + } + + /** + * Test the property 'externalIds' + */ + @Test + public void externalIdsTest() { + // TODO: test externalIds + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'keepExternalIds' + */ + @Test + public void keepExternalIdsTest() { + // TODO: test keepExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponseTest.java b/src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponseTest.java new file mode 100644 index 00000000..9742b77a --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyFunctionalitiesResponse + */ +public class BulkDestroyFunctionalitiesResponseTest { + private final BulkDestroyFunctionalitiesResponse model = new BulkDestroyFunctionalitiesResponse(); + + /** + * Model tests for BulkDestroyFunctionalitiesResponse + */ + @Test + public void testBulkDestroyFunctionalitiesResponse() { + // TODO: test BulkDestroyFunctionalitiesResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesTest.java b/src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesTest.java new file mode 100644 index 00000000..38656104 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyFunctionalitiesTest.java @@ -0,0 +1,68 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyFunctionalities + */ +public class BulkDestroyFunctionalitiesTest { + private final BulkDestroyFunctionalities model = new BulkDestroyFunctionalities(); + + /** + * Model tests for BulkDestroyFunctionalities + */ + @Test + public void testBulkDestroyFunctionalities() { + // TODO: test BulkDestroyFunctionalities + } + + /** + * Test the property 'externalIds' + */ + @Test + public void externalIdsTest() { + // TODO: test externalIds + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'keepExternalIds' + */ + @Test + public void keepExternalIdsTest() { + // TODO: test keepExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyServicesResponseTest.java b/src/test/java/com/rootly/client/model/BulkDestroyServicesResponseTest.java new file mode 100644 index 00000000..b7dab1de --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyServicesResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyServicesResponse + */ +public class BulkDestroyServicesResponseTest { + private final BulkDestroyServicesResponse model = new BulkDestroyServicesResponse(); + + /** + * Model tests for BulkDestroyServicesResponse + */ + @Test + public void testBulkDestroyServicesResponse() { + // TODO: test BulkDestroyServicesResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyServicesTest.java b/src/test/java/com/rootly/client/model/BulkDestroyServicesTest.java new file mode 100644 index 00000000..adf55c21 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyServicesTest.java @@ -0,0 +1,68 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyServices + */ +public class BulkDestroyServicesTest { + private final BulkDestroyServices model = new BulkDestroyServices(); + + /** + * Model tests for BulkDestroyServices + */ + @Test + public void testBulkDestroyServices() { + // TODO: test BulkDestroyServices + } + + /** + * Test the property 'externalIds' + */ + @Test + public void externalIdsTest() { + // TODO: test externalIds + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'keepExternalIds' + */ + @Test + public void keepExternalIdsTest() { + // TODO: test keepExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyTeamsResponseTest.java b/src/test/java/com/rootly/client/model/BulkDestroyTeamsResponseTest.java new file mode 100644 index 00000000..1501aa5e --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyTeamsResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyTeamsResponse + */ +public class BulkDestroyTeamsResponseTest { + private final BulkDestroyTeamsResponse model = new BulkDestroyTeamsResponse(); + + /** + * Model tests for BulkDestroyTeamsResponse + */ + @Test + public void testBulkDestroyTeamsResponse() { + // TODO: test BulkDestroyTeamsResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkDestroyTeamsTest.java b/src/test/java/com/rootly/client/model/BulkDestroyTeamsTest.java new file mode 100644 index 00000000..ee9c98ee --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkDestroyTeamsTest.java @@ -0,0 +1,68 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkDestroyCatalogEntitiesOneOf; +import com.rootly.client.model.BulkDestroyEnvironmentsOneOf; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkDestroyTeams + */ +public class BulkDestroyTeamsTest { + private final BulkDestroyTeams model = new BulkDestroyTeams(); + + /** + * Model tests for BulkDestroyTeams + */ + @Test + public void testBulkDestroyTeams() { + // TODO: test BulkDestroyTeams + } + + /** + * Test the property 'externalIds' + */ + @Test + public void externalIdsTest() { + // TODO: test externalIds + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'keepExternalIds' + */ + @Test + public void keepExternalIdsTest() { + // TODO: test keepExternalIds + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntities422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntities422ResponseTest.java new file mode 100644 index 00000000..e5304aba --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntities422ResponseTest.java @@ -0,0 +1,53 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesError; +import com.rootly.client.model.BulkUpsertCatalogEntitiesErrorErrorsInner; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntities422Response + */ +public class BulkUpsertCatalogEntities422ResponseTest { + private final BulkUpsertCatalogEntities422Response model = new BulkUpsertCatalogEntities422Response(); + + /** + * Model tests for BulkUpsertCatalogEntities422Response + */ + @Test + public void testBulkUpsertCatalogEntities422Response() { + // TODO: test BulkUpsertCatalogEntities422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInnerTest.java new file mode 100644 index 00000000..cc09b9ad --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerFieldsInnerTest.java @@ -0,0 +1,64 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner + */ +public class BulkUpsertCatalogEntitiesEntitiesInnerFieldsInnerTest { + private final BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner model = new BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner(); + + /** + * Model tests for BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner + */ + @Test + public void testBulkUpsertCatalogEntitiesEntitiesInnerFieldsInner() { + // TODO: test BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner + } + + /** + * Test the property 'catalogFieldId' + */ + @Test + public void catalogFieldIdTest() { + // TODO: test catalogFieldId + } + + /** + * Test the property 'catalogPropertyId' + */ + @Test + public void catalogPropertyIdTest() { + // TODO: test catalogPropertyId + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerTest.java new file mode 100644 index 00000000..02afba1a --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesEntitiesInnerTest.java @@ -0,0 +1,92 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntitiesEntitiesInner + */ +public class BulkUpsertCatalogEntitiesEntitiesInnerTest { + private final BulkUpsertCatalogEntitiesEntitiesInner model = new BulkUpsertCatalogEntitiesEntitiesInner(); + + /** + * Model tests for BulkUpsertCatalogEntitiesEntitiesInner + */ + @Test + public void testBulkUpsertCatalogEntitiesEntitiesInner() { + // TODO: test BulkUpsertCatalogEntitiesEntitiesInner + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + + /** + * Test the property 'backstageId' + */ + @Test + public void backstageIdTest() { + // TODO: test backstageId + } + + /** + * Test the property 'fields' + */ + @Test + public void fieldsTest() { + // TODO: test fields + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInnerTest.java new file mode 100644 index 00000000..cf469684 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorErrorsInnerTest.java @@ -0,0 +1,66 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntitiesErrorErrorsInner + */ +public class BulkUpsertCatalogEntitiesErrorErrorsInnerTest { + private final BulkUpsertCatalogEntitiesErrorErrorsInner model = new BulkUpsertCatalogEntitiesErrorErrorsInner(); + + /** + * Model tests for BulkUpsertCatalogEntitiesErrorErrorsInner + */ + @Test + public void testBulkUpsertCatalogEntitiesErrorErrorsInner() { + // TODO: test BulkUpsertCatalogEntitiesErrorErrorsInner + } + + /** + * Test the property 'index' + */ + @Test + public void indexTest() { + // TODO: test index + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorTest.java new file mode 100644 index 00000000..53c9d993 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesErrorTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntitiesError + */ +public class BulkUpsertCatalogEntitiesErrorTest { + private final BulkUpsertCatalogEntitiesError model = new BulkUpsertCatalogEntitiesError(); + + /** + * Model tests for BulkUpsertCatalogEntitiesError + */ + @Test + public void testBulkUpsertCatalogEntitiesError() { + // TODO: test BulkUpsertCatalogEntitiesError + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInnerTest.java new file mode 100644 index 00000000..9e9ca58c --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseDataInnerTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CatalogEntity; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntitiesResponseDataInner + */ +public class BulkUpsertCatalogEntitiesResponseDataInnerTest { + private final BulkUpsertCatalogEntitiesResponseDataInner model = new BulkUpsertCatalogEntitiesResponseDataInner(); + + /** + * Model tests for BulkUpsertCatalogEntitiesResponseDataInner + */ + @Test + public void testBulkUpsertCatalogEntitiesResponseDataInner() { + // TODO: test BulkUpsertCatalogEntitiesResponseDataInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseTest.java new file mode 100644 index 00000000..4f0a870c --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesResponseTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntitiesResponse + */ +public class BulkUpsertCatalogEntitiesResponseTest { + private final BulkUpsertCatalogEntitiesResponse model = new BulkUpsertCatalogEntitiesResponse(); + + /** + * Model tests for BulkUpsertCatalogEntitiesResponse + */ + @Test + public void testBulkUpsertCatalogEntitiesResponse() { + // TODO: test BulkUpsertCatalogEntitiesResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesTest.java b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesTest.java new file mode 100644 index 00000000..8f5003dd --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertCatalogEntitiesTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertCatalogEntities + */ +public class BulkUpsertCatalogEntitiesTest { + private final BulkUpsertCatalogEntities model = new BulkUpsertCatalogEntities(); + + /** + * Model tests for BulkUpsertCatalogEntities + */ + @Test + public void testBulkUpsertCatalogEntities() { + // TODO: test BulkUpsertCatalogEntities + } + + /** + * Test the property 'entities' + */ + @Test + public void entitiesTest() { + // TODO: test entities + } + +} diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestTest.java b/src/test/java/com/rootly/client/model/BulkUpsertEnvironments422ResponseTest.java similarity index 83% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestTest.java rename to src/test/java/com/rootly/client/model/BulkUpsertEnvironments422ResponseTest.java index 1e487862..3b15b55e 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestTest.java +++ b/src/test/java/com/rootly/client/model/BulkUpsertEnvironments422ResponseTest.java @@ -18,32 +18,36 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction; +import com.rootly.client.model.BulkUpsertEnvironmentsError; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.ErrorsList; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest + * Model tests for BulkUpsertEnvironments422Response */ -public class V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestTest { - private final V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest model = new V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest(); +public class BulkUpsertEnvironments422ResponseTest { + private final BulkUpsertEnvironments422Response model = new BulkUpsertEnvironments422Response(); /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest + * Model tests for BulkUpsertEnvironments422Response */ @Test - public void testV1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest() { - // TODO: test V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequest + public void testBulkUpsertEnvironments422Response() { + // TODO: test BulkUpsertEnvironments422Response } /** - * Test the property 'action' + * Test the property 'errors' */ @Test - public void actionTest() { - // TODO: test action + public void errorsTest() { + // TODO: test errors } } diff --git a/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInnerTest.java new file mode 100644 index 00000000..27ce81d3 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsEntitiesInnerTest.java @@ -0,0 +1,108 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertEnvironmentsEntitiesInner + */ +public class BulkUpsertEnvironmentsEntitiesInnerTest { + private final BulkUpsertEnvironmentsEntitiesInner model = new BulkUpsertEnvironmentsEntitiesInner(); + + /** + * Model tests for BulkUpsertEnvironmentsEntitiesInner + */ + @Test + public void testBulkUpsertEnvironmentsEntitiesInner() { + // TODO: test BulkUpsertEnvironmentsEntitiesInner + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + + /** + * Test the property 'color' + */ + @Test + public void colorTest() { + // TODO: test color + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'notifyEmails' + */ + @Test + public void notifyEmailsTest() { + // TODO: test notifyEmails + } + + /** + * Test the property 'fields' + */ + @Test + public void fieldsTest() { + // TODO: test fields + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInnerTest.java new file mode 100644 index 00000000..69eee522 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorErrorsInnerTest.java @@ -0,0 +1,66 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertEnvironmentsErrorErrorsInner + */ +public class BulkUpsertEnvironmentsErrorErrorsInnerTest { + private final BulkUpsertEnvironmentsErrorErrorsInner model = new BulkUpsertEnvironmentsErrorErrorsInner(); + + /** + * Model tests for BulkUpsertEnvironmentsErrorErrorsInner + */ + @Test + public void testBulkUpsertEnvironmentsErrorErrorsInner() { + // TODO: test BulkUpsertEnvironmentsErrorErrorsInner + } + + /** + * Test the property 'index' + */ + @Test + public void indexTest() { + // TODO: test index + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorTest.java b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorTest.java new file mode 100644 index 00000000..e4923f8a --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsErrorTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertEnvironmentsError + */ +public class BulkUpsertEnvironmentsErrorTest { + private final BulkUpsertEnvironmentsError model = new BulkUpsertEnvironmentsError(); + + /** + * Model tests for BulkUpsertEnvironmentsError + */ + @Test + public void testBulkUpsertEnvironmentsError() { + // TODO: test BulkUpsertEnvironmentsError + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInnerTest.java new file mode 100644 index 00000000..f5f53c13 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseDataInnerTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Environment; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertEnvironmentsResponseDataInner + */ +public class BulkUpsertEnvironmentsResponseDataInnerTest { + private final BulkUpsertEnvironmentsResponseDataInner model = new BulkUpsertEnvironmentsResponseDataInner(); + + /** + * Model tests for BulkUpsertEnvironmentsResponseDataInner + */ + @Test + public void testBulkUpsertEnvironmentsResponseDataInner() { + // TODO: test BulkUpsertEnvironmentsResponseDataInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseTest.java new file mode 100644 index 00000000..deff759e --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsResponseTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertEnvironmentsResponse + */ +public class BulkUpsertEnvironmentsResponseTest { + private final BulkUpsertEnvironmentsResponse model = new BulkUpsertEnvironmentsResponse(); + + /** + * Model tests for BulkUpsertEnvironmentsResponse + */ + @Test + public void testBulkUpsertEnvironmentsResponse() { + // TODO: test BulkUpsertEnvironmentsResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsTest.java b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsTest.java new file mode 100644 index 00000000..036a716e --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertEnvironmentsTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertEnvironments + */ +public class BulkUpsertEnvironmentsTest { + private final BulkUpsertEnvironments model = new BulkUpsertEnvironments(); + + /** + * Model tests for BulkUpsertEnvironments + */ + @Test + public void testBulkUpsertEnvironments() { + // TODO: test BulkUpsertEnvironments + } + + /** + * Test the property 'entities' + */ + @Test + public void entitiesTest() { + // TODO: test entities + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertFunctionalities422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalities422ResponseTest.java new file mode 100644 index 00000000..0e8e8464 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalities422ResponseTest.java @@ -0,0 +1,53 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.BulkUpsertFunctionalitiesError; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertFunctionalities422Response + */ +public class BulkUpsertFunctionalities422ResponseTest { + private final BulkUpsertFunctionalities422Response model = new BulkUpsertFunctionalities422Response(); + + /** + * Model tests for BulkUpsertFunctionalities422Response + */ + @Test + public void testBulkUpsertFunctionalities422Response() { + // TODO: test BulkUpsertFunctionalities422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInnerTest.java new file mode 100644 index 00000000..1880a17b --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesEntitiesInnerTest.java @@ -0,0 +1,180 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertFunctionalitiesEntitiesInner + */ +public class BulkUpsertFunctionalitiesEntitiesInnerTest { + private final BulkUpsertFunctionalitiesEntitiesInner model = new BulkUpsertFunctionalitiesEntitiesInner(); + + /** + * Model tests for BulkUpsertFunctionalitiesEntitiesInner + */ + @Test + public void testBulkUpsertFunctionalitiesEntitiesInner() { + // TODO: test BulkUpsertFunctionalitiesEntitiesInner + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + + /** + * Test the property 'color' + */ + @Test + public void colorTest() { + // TODO: test color + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'showUptime' + */ + @Test + public void showUptimeTest() { + // TODO: test showUptime + } + + /** + * Test the property 'showUptimeLastDays' + */ + @Test + public void showUptimeLastDaysTest() { + // TODO: test showUptimeLastDays + } + + /** + * Test the property 'notifyEmails' + */ + @Test + public void notifyEmailsTest() { + // TODO: test notifyEmails + } + + /** + * Test the property 'pagerdutyId' + */ + @Test + public void pagerdutyIdTest() { + // TODO: test pagerdutyId + } + + /** + * Test the property 'opsgenieId' + */ + @Test + public void opsgenieIdTest() { + // TODO: test opsgenieId + } + + /** + * Test the property 'opsgenieTeamId' + */ + @Test + public void opsgenieTeamIdTest() { + // TODO: test opsgenieTeamId + } + + /** + * Test the property 'backstageId' + */ + @Test + public void backstageIdTest() { + // TODO: test backstageId + } + + /** + * Test the property 'cortexId' + */ + @Test + public void cortexIdTest() { + // TODO: test cortexId + } + + /** + * Test the property 'opslevelId' + */ + @Test + public void opslevelIdTest() { + // TODO: test opslevelId + } + + /** + * Test the property 'serviceNowCiSysId' + */ + @Test + public void serviceNowCiSysIdTest() { + // TODO: test serviceNowCiSysId + } + + /** + * Test the property 'fields' + */ + @Test + public void fieldsTest() { + // TODO: test fields + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesErrorTest.java b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesErrorTest.java new file mode 100644 index 00000000..225f99b0 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesErrorTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertFunctionalitiesError + */ +public class BulkUpsertFunctionalitiesErrorTest { + private final BulkUpsertFunctionalitiesError model = new BulkUpsertFunctionalitiesError(); + + /** + * Model tests for BulkUpsertFunctionalitiesError + */ + @Test + public void testBulkUpsertFunctionalitiesError() { + // TODO: test BulkUpsertFunctionalitiesError + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInnerTest.java new file mode 100644 index 00000000..c2e4e7e8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseDataInnerTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Functionality; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertFunctionalitiesResponseDataInner + */ +public class BulkUpsertFunctionalitiesResponseDataInnerTest { + private final BulkUpsertFunctionalitiesResponseDataInner model = new BulkUpsertFunctionalitiesResponseDataInner(); + + /** + * Model tests for BulkUpsertFunctionalitiesResponseDataInner + */ + @Test + public void testBulkUpsertFunctionalitiesResponseDataInner() { + // TODO: test BulkUpsertFunctionalitiesResponseDataInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseTest.java new file mode 100644 index 00000000..43865daa --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesResponseTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertFunctionalitiesResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertFunctionalitiesResponse + */ +public class BulkUpsertFunctionalitiesResponseTest { + private final BulkUpsertFunctionalitiesResponse model = new BulkUpsertFunctionalitiesResponse(); + + /** + * Model tests for BulkUpsertFunctionalitiesResponse + */ + @Test + public void testBulkUpsertFunctionalitiesResponse() { + // TODO: test BulkUpsertFunctionalitiesResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesTest.java b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesTest.java new file mode 100644 index 00000000..51a90620 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertFunctionalitiesTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertFunctionalitiesEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertFunctionalities + */ +public class BulkUpsertFunctionalitiesTest { + private final BulkUpsertFunctionalities model = new BulkUpsertFunctionalities(); + + /** + * Model tests for BulkUpsertFunctionalities + */ + @Test + public void testBulkUpsertFunctionalities() { + // TODO: test BulkUpsertFunctionalities + } + + /** + * Test the property 'entities' + */ + @Test + public void entitiesTest() { + // TODO: test entities + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertGroups422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertGroups422ResponseTest.java new file mode 100644 index 00000000..001928cc --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertGroups422ResponseTest.java @@ -0,0 +1,53 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.BulkUpsertTeamsError; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertGroups422Response + */ +public class BulkUpsertGroups422ResponseTest { + private final BulkUpsertGroups422Response model = new BulkUpsertGroups422Response(); + + /** + * Model tests for BulkUpsertGroups422Response + */ + @Test + public void testBulkUpsertGroups422Response() { + // TODO: test BulkUpsertGroups422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertServices422ResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertServices422ResponseTest.java new file mode 100644 index 00000000..105cb62b --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertServices422ResponseTest.java @@ -0,0 +1,53 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import com.rootly.client.model.BulkUpsertServicesError; +import com.rootly.client.model.ErrorsList; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertServices422Response + */ +public class BulkUpsertServices422ResponseTest { + private final BulkUpsertServices422Response model = new BulkUpsertServices422Response(); + + /** + * Model tests for BulkUpsertServices422Response + */ + @Test + public void testBulkUpsertServices422Response() { + // TODO: test BulkUpsertServices422Response + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertServicesEntitiesInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertServicesEntitiesInnerTest.java new file mode 100644 index 00000000..00ca7890 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertServicesEntitiesInnerTest.java @@ -0,0 +1,228 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertServicesEntitiesInner + */ +public class BulkUpsertServicesEntitiesInnerTest { + private final BulkUpsertServicesEntitiesInner model = new BulkUpsertServicesEntitiesInner(); + + /** + * Model tests for BulkUpsertServicesEntitiesInner + */ + @Test + public void testBulkUpsertServicesEntitiesInner() { + // TODO: test BulkUpsertServicesEntitiesInner + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + + /** + * Test the property 'color' + */ + @Test + public void colorTest() { + // TODO: test color + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'showUptime' + */ + @Test + public void showUptimeTest() { + // TODO: test showUptime + } + + /** + * Test the property 'showUptimeLastDays' + */ + @Test + public void showUptimeLastDaysTest() { + // TODO: test showUptimeLastDays + } + + /** + * Test the property 'githubRepositoryName' + */ + @Test + public void githubRepositoryNameTest() { + // TODO: test githubRepositoryName + } + + /** + * Test the property 'githubRepositoryBranch' + */ + @Test + public void githubRepositoryBranchTest() { + // TODO: test githubRepositoryBranch + } + + /** + * Test the property 'gitlabRepositoryName' + */ + @Test + public void gitlabRepositoryNameTest() { + // TODO: test gitlabRepositoryName + } + + /** + * Test the property 'gitlabRepositoryBranch' + */ + @Test + public void gitlabRepositoryBranchTest() { + // TODO: test gitlabRepositoryBranch + } + + /** + * Test the property 'kubernetesDeploymentName' + */ + @Test + public void kubernetesDeploymentNameTest() { + // TODO: test kubernetesDeploymentName + } + + /** + * Test the property 'pagerdutyId' + */ + @Test + public void pagerdutyIdTest() { + // TODO: test pagerdutyId + } + + /** + * Test the property 'opsgenieId' + */ + @Test + public void opsgenieIdTest() { + // TODO: test opsgenieId + } + + /** + * Test the property 'opsgenieTeamId' + */ + @Test + public void opsgenieTeamIdTest() { + // TODO: test opsgenieTeamId + } + + /** + * Test the property 'cortexId' + */ + @Test + public void cortexIdTest() { + // TODO: test cortexId + } + + /** + * Test the property 'opslevelId' + */ + @Test + public void opslevelIdTest() { + // TODO: test opslevelId + } + + /** + * Test the property 'backstageId' + */ + @Test + public void backstageIdTest() { + // TODO: test backstageId + } + + /** + * Test the property 'serviceNowCiSysId' + */ + @Test + public void serviceNowCiSysIdTest() { + // TODO: test serviceNowCiSysId + } + + /** + * Test the property 'notifyEmails' + */ + @Test + public void notifyEmailsTest() { + // TODO: test notifyEmails + } + + /** + * Test the property 'alertsEmailEnabled' + */ + @Test + public void alertsEmailEnabledTest() { + // TODO: test alertsEmailEnabled + } + + /** + * Test the property 'fields' + */ + @Test + public void fieldsTest() { + // TODO: test fields + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertServicesErrorTest.java b/src/test/java/com/rootly/client/model/BulkUpsertServicesErrorTest.java new file mode 100644 index 00000000..2447e218 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertServicesErrorTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertServicesError + */ +public class BulkUpsertServicesErrorTest { + private final BulkUpsertServicesError model = new BulkUpsertServicesError(); + + /** + * Model tests for BulkUpsertServicesError + */ + @Test + public void testBulkUpsertServicesError() { + // TODO: test BulkUpsertServicesError + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertServicesResponseDataInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertServicesResponseDataInnerTest.java new file mode 100644 index 00000000..12ea3082 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertServicesResponseDataInnerTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Service; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertServicesResponseDataInner + */ +public class BulkUpsertServicesResponseDataInnerTest { + private final BulkUpsertServicesResponseDataInner model = new BulkUpsertServicesResponseDataInner(); + + /** + * Model tests for BulkUpsertServicesResponseDataInner + */ + @Test + public void testBulkUpsertServicesResponseDataInner() { + // TODO: test BulkUpsertServicesResponseDataInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertServicesResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertServicesResponseTest.java new file mode 100644 index 00000000..f34cf50a --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertServicesResponseTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertServicesResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertServicesResponse + */ +public class BulkUpsertServicesResponseTest { + private final BulkUpsertServicesResponse model = new BulkUpsertServicesResponse(); + + /** + * Model tests for BulkUpsertServicesResponse + */ + @Test + public void testBulkUpsertServicesResponse() { + // TODO: test BulkUpsertServicesResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertServicesTest.java b/src/test/java/com/rootly/client/model/BulkUpsertServicesTest.java new file mode 100644 index 00000000..920f79f5 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertServicesTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertServicesEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertServices + */ +public class BulkUpsertServicesTest { + private final BulkUpsertServices model = new BulkUpsertServices(); + + /** + * Model tests for BulkUpsertServices + */ + @Test + public void testBulkUpsertServices() { + // TODO: test BulkUpsertServices + } + + /** + * Test the property 'entities' + */ + @Test + public void entitiesTest() { + // TODO: test entities + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInnerTest.java new file mode 100644 index 00000000..c6850496 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertTeamsEntitiesInnerTest.java @@ -0,0 +1,188 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertCatalogEntitiesEntitiesInnerFieldsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertTeamsEntitiesInner + */ +public class BulkUpsertTeamsEntitiesInnerTest { + private final BulkUpsertTeamsEntitiesInner model = new BulkUpsertTeamsEntitiesInner(); + + /** + * Model tests for BulkUpsertTeamsEntitiesInner + */ + @Test + public void testBulkUpsertTeamsEntitiesInner() { + // TODO: test BulkUpsertTeamsEntitiesInner + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + + /** + * Test the property 'color' + */ + @Test + public void colorTest() { + // TODO: test color + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'notifyEmails' + */ + @Test + public void notifyEmailsTest() { + // TODO: test notifyEmails + } + + /** + * Test the property 'pagerdutyId' + */ + @Test + public void pagerdutyIdTest() { + // TODO: test pagerdutyId + } + + /** + * Test the property 'pagerdutyServiceId' + */ + @Test + public void pagerdutyServiceIdTest() { + // TODO: test pagerdutyServiceId + } + + /** + * Test the property 'opsgenieId' + */ + @Test + public void opsgenieIdTest() { + // TODO: test opsgenieId + } + + /** + * Test the property 'victorOpsId' + */ + @Test + public void victorOpsIdTest() { + // TODO: test victorOpsId + } + + /** + * Test the property 'pagertreeId' + */ + @Test + public void pagertreeIdTest() { + // TODO: test pagertreeId + } + + /** + * Test the property 'backstageId' + */ + @Test + public void backstageIdTest() { + // TODO: test backstageId + } + + /** + * Test the property 'cortexId' + */ + @Test + public void cortexIdTest() { + // TODO: test cortexId + } + + /** + * Test the property 'opslevelId' + */ + @Test + public void opslevelIdTest() { + // TODO: test opslevelId + } + + /** + * Test the property 'serviceNowCiSysId' + */ + @Test + public void serviceNowCiSysIdTest() { + // TODO: test serviceNowCiSysId + } + + /** + * Test the property 'alertsEmailEnabled' + */ + @Test + public void alertsEmailEnabledTest() { + // TODO: test alertsEmailEnabled + } + + /** + * Test the property 'fields' + */ + @Test + public void fieldsTest() { + // TODO: test fields + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertTeamsErrorTest.java b/src/test/java/com/rootly/client/model/BulkUpsertTeamsErrorTest.java new file mode 100644 index 00000000..3c24a2b1 --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertTeamsErrorTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertEnvironmentsErrorErrorsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertTeamsError + */ +public class BulkUpsertTeamsErrorTest { + private final BulkUpsertTeamsError model = new BulkUpsertTeamsError(); + + /** + * Model tests for BulkUpsertTeamsError + */ + @Test + public void testBulkUpsertTeamsError() { + // TODO: test BulkUpsertTeamsError + } + + /** + * Test the property 'errors' + */ + @Test + public void errorsTest() { + // TODO: test errors + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInnerTest.java b/src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInnerTest.java new file mode 100644 index 00000000..e819f49e --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseDataInnerTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Team; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertTeamsResponseDataInner + */ +public class BulkUpsertTeamsResponseDataInnerTest { + private final BulkUpsertTeamsResponseDataInner model = new BulkUpsertTeamsResponseDataInner(); + + /** + * Model tests for BulkUpsertTeamsResponseDataInner + */ + @Test + public void testBulkUpsertTeamsResponseDataInner() { + // TODO: test BulkUpsertTeamsResponseDataInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseTest.java b/src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseTest.java new file mode 100644 index 00000000..9a7d026d --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertTeamsResponseTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertTeamsResponseDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertTeamsResponse + */ +public class BulkUpsertTeamsResponseTest { + private final BulkUpsertTeamsResponse model = new BulkUpsertTeamsResponse(); + + /** + * Model tests for BulkUpsertTeamsResponse + */ + @Test + public void testBulkUpsertTeamsResponse() { + // TODO: test BulkUpsertTeamsResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/BulkUpsertTeamsTest.java b/src/test/java/com/rootly/client/model/BulkUpsertTeamsTest.java new file mode 100644 index 00000000..9663366c --- /dev/null +++ b/src/test/java/com/rootly/client/model/BulkUpsertTeamsTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.BulkUpsertTeamsEntitiesInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for BulkUpsertTeams + */ +public class BulkUpsertTeamsTest { + private final BulkUpsertTeams model = new BulkUpsertTeams(); + + /** + * Model tests for BulkUpsertTeams + */ + @Test + public void testBulkUpsertTeams() { + // TODO: test BulkUpsertTeams + } + + /** + * Test the property 'entities' + */ + @Test + public void entitiesTest() { + // TODO: test entities + } + +} diff --git a/src/test/java/com/rootly/client/model/CatalogChecklistTemplateListTest.java b/src/test/java/com/rootly/client/model/CatalogChecklistTemplateListTest.java index 383cdcfc..19f5b49d 100644 --- a/src/test/java/com/rootly/client/model/CatalogChecklistTemplateListTest.java +++ b/src/test/java/com/rootly/client/model/CatalogChecklistTemplateListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogChecklistTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogChecklistTemplateResponseTest.java b/src/test/java/com/rootly/client/model/CatalogChecklistTemplateResponseTest.java index f2b7be66..3fdf1de3 100644 --- a/src/test/java/com/rootly/client/model/CatalogChecklistTemplateResponseTest.java +++ b/src/test/java/com/rootly/client/model/CatalogChecklistTemplateResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogChecklistTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogEntityChecklistListTest.java b/src/test/java/com/rootly/client/model/CatalogEntityChecklistListTest.java index bb50c1b7..cdd18646 100644 --- a/src/test/java/com/rootly/client/model/CatalogEntityChecklistListTest.java +++ b/src/test/java/com/rootly/client/model/CatalogEntityChecklistListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityChecklistResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogEntityChecklistResponseTest.java b/src/test/java/com/rootly/client/model/CatalogEntityChecklistResponseTest.java index 296ba514..c455d869 100644 --- a/src/test/java/com/rootly/client/model/CatalogEntityChecklistResponseTest.java +++ b/src/test/java/com/rootly/client/model/CatalogEntityChecklistResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityChecklistResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogEntityListTest.java b/src/test/java/com/rootly/client/model/CatalogEntityListTest.java index 3eda4578..07f9d48b 100644 --- a/src/test/java/com/rootly/client/model/CatalogEntityListTest.java +++ b/src/test/java/com/rootly/client/model/CatalogEntityListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogEntityPropertyListTest.java b/src/test/java/com/rootly/client/model/CatalogEntityPropertyListTest.java index 718e3706..e1fcbc80 100644 --- a/src/test/java/com/rootly/client/model/CatalogEntityPropertyListTest.java +++ b/src/test/java/com/rootly/client/model/CatalogEntityPropertyListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogEntityPropertyResponseTest.java b/src/test/java/com/rootly/client/model/CatalogEntityPropertyResponseTest.java index 318fe859..73fbbda3 100644 --- a/src/test/java/com/rootly/client/model/CatalogEntityPropertyResponseTest.java +++ b/src/test/java/com/rootly/client/model/CatalogEntityPropertyResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogEntityResponseTest.java b/src/test/java/com/rootly/client/model/CatalogEntityResponseTest.java index 2429fba1..6b4b25a2 100644 --- a/src/test/java/com/rootly/client/model/CatalogEntityResponseTest.java +++ b/src/test/java/com/rootly/client/model/CatalogEntityResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogEntityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogEntityTest.java b/src/test/java/com/rootly/client/model/CatalogEntityTest.java index cbd66d63..de5ffb77 100644 --- a/src/test/java/com/rootly/client/model/CatalogEntityTest.java +++ b/src/test/java/com/rootly/client/model/CatalogEntityTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCatalogEntityDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,6 +49,14 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'description' */ @@ -54,6 +65,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'position' */ @@ -62,6 +81,30 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'backstageId' + */ + @Test + public void backstageIdTest() { + // TODO: test backstageId + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + /** * Test the property 'createdAt' */ @@ -78,4 +121,12 @@ public void updatedAtTest() { // TODO: test updatedAt } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogFieldListTest.java b/src/test/java/com/rootly/client/model/CatalogFieldListTest.java index cb836537..7c3c31f4 100644 --- a/src/test/java/com/rootly/client/model/CatalogFieldListTest.java +++ b/src/test/java/com/rootly/client/model/CatalogFieldListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogFieldResponseTest.java b/src/test/java/com/rootly/client/model/CatalogFieldResponseTest.java index 8f14ea4d..b2b29e37 100644 --- a/src/test/java/com/rootly/client/model/CatalogFieldResponseTest.java +++ b/src/test/java/com/rootly/client/model/CatalogFieldResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogFieldTest.java b/src/test/java/com/rootly/client/model/CatalogFieldTest.java index 7a5be223..c180d004 100644 --- a/src/test/java/com/rootly/client/model/CatalogFieldTest.java +++ b/src/test/java/com/rootly/client/model/CatalogFieldTest.java @@ -94,6 +94,38 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'required' + */ + @Test + public void requiredTest() { + // TODO: test required + } + + /** + * Test the property 'catalogType' + */ + @Test + public void catalogTypeTest() { + // TODO: test catalogType + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/CatalogListTest.java b/src/test/java/com/rootly/client/model/CatalogListTest.java index 171dfb79..ebabe34b 100644 --- a/src/test/java/com/rootly/client/model/CatalogListTest.java +++ b/src/test/java/com/rootly/client/model/CatalogListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogPropertyListTest.java b/src/test/java/com/rootly/client/model/CatalogPropertyListTest.java index bbf0bf97..4c68c8d5 100644 --- a/src/test/java/com/rootly/client/model/CatalogPropertyListTest.java +++ b/src/test/java/com/rootly/client/model/CatalogPropertyListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogPropertyResponseTest.java b/src/test/java/com/rootly/client/model/CatalogPropertyResponseTest.java index 4016d5f3..4a4d4b9c 100644 --- a/src/test/java/com/rootly/client/model/CatalogPropertyResponseTest.java +++ b/src/test/java/com/rootly/client/model/CatalogPropertyResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogPropertyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogPropertyTest.java b/src/test/java/com/rootly/client/model/CatalogPropertyTest.java index 4dc2edb7..887901c1 100644 --- a/src/test/java/com/rootly/client/model/CatalogPropertyTest.java +++ b/src/test/java/com/rootly/client/model/CatalogPropertyTest.java @@ -110,6 +110,22 @@ public void catalogTypeTest() { // TODO: test catalogType } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/CatalogResponseTest.java b/src/test/java/com/rootly/client/model/CatalogResponseTest.java index 8c49e00c..3e838b21 100644 --- a/src/test/java/com/rootly/client/model/CatalogResponseTest.java +++ b/src/test/java/com/rootly/client/model/CatalogResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CatalogResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CatalogTest.java b/src/test/java/com/rootly/client/model/CatalogTest.java index 32047958..91185e69 100644 --- a/src/test/java/com/rootly/client/model/CatalogTest.java +++ b/src/test/java/com/rootly/client/model/CatalogTest.java @@ -46,6 +46,14 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'description' */ @@ -70,6 +78,22 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/CauseListTest.java b/src/test/java/com/rootly/client/model/CauseListTest.java index 349d069d..6f6945a7 100644 --- a/src/test/java/com/rootly/client/model/CauseListTest.java +++ b/src/test/java/com/rootly/client/model/CauseListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CauseResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CauseResponseTest.java b/src/test/java/com/rootly/client/model/CauseResponseTest.java index 3dcbdcee..fb0367dc 100644 --- a/src/test/java/com/rootly/client/model/CauseResponseTest.java +++ b/src/test/java/com/rootly/client/model/CauseResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CauseResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CauseTest.java b/src/test/java/com/rootly/client/model/CauseTest.java index 328b2c43..30e4dd99 100644 --- a/src/test/java/com/rootly/client/model/CauseTest.java +++ b/src/test/java/com/rootly/client/model/CauseTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -62,6 +65,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'position' */ @@ -70,6 +81,14 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParamsTest.java b/src/test/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParamsTest.java new file mode 100644 index 00000000..403d6fd9 --- /dev/null +++ b/src/test/java/com/rootly/client/model/ChangeGoogleChatSpacePrivacyTaskParamsTest.java @@ -0,0 +1,66 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for ChangeGoogleChatSpacePrivacyTaskParams + */ +public class ChangeGoogleChatSpacePrivacyTaskParamsTest { + private final ChangeGoogleChatSpacePrivacyTaskParams model = new ChangeGoogleChatSpacePrivacyTaskParams(); + + /** + * Model tests for ChangeGoogleChatSpacePrivacyTaskParams + */ + @Test + public void testChangeGoogleChatSpacePrivacyTaskParams() { + // TODO: test ChangeGoogleChatSpacePrivacyTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'space' + */ + @Test + public void spaceTest() { + // TODO: test space + } + + /** + * Test the property 'audience' + */ + @Test + public void audienceTest() { + // TODO: test audience + } + +} diff --git a/src/test/java/com/rootly/client/model/CommunicationsGroupResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsGroupResponseTest.java index 1e533d6c..381723d6 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsGroupResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsGroupResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CommunicationsGroupsResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsGroupsResponseTest.java index 44f08c7d..65579b25 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsGroupsResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsGroupsResponseTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsGroupResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CommunicationsStageResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsStageResponseTest.java index 98ea98a4..93d3cfb5 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsStageResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsStageResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsStageResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CommunicationsStagesResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsStagesResponseTest.java index 17b88f5a..7c508a53 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsStagesResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsStagesResponseTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsStageResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerTest.java b/src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerTest.java index f6d4c612..efbf5fd9 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsTemplateCommunicationTemplateStagesInnerTest.java @@ -18,9 +18,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CommunicationsTemplateCommunicationTemplateStagesInnerData; import java.io.IOException; import java.util.Arrays; -import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -39,51 +39,11 @@ public void testCommunicationsTemplateCommunicationTemplateStagesInner() { } /** - * Test the property 'id' + * Test the property 'data' */ @Test - public void idTest() { - // TODO: test id - } - - /** - * Test the property 'communicationStageId' - */ - @Test - public void communicationStageIdTest() { - // TODO: test communicationStageId - } - - /** - * Test the property 'smsContent' - */ - @Test - public void smsContentTest() { - // TODO: test smsContent - } - - /** - * Test the property 'emailSubject' - */ - @Test - public void emailSubjectTest() { - // TODO: test emailSubject - } - - /** - * Test the property 'emailBody' - */ - @Test - public void emailBodyTest() { - // TODO: test emailBody - } - - /** - * Test the property 'slackContent' - */ - @Test - public void slackContentTest() { - // TODO: test slackContent + public void dataTest() { + // TODO: test data } } diff --git a/src/test/java/com/rootly/client/model/CommunicationsTemplateResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsTemplateResponseTest.java index 3ecb6070..5f56ca68 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsTemplateResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsTemplateResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CommunicationsTemplatesResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsTemplatesResponseTest.java index c83019ea..7a72b9af 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsTemplatesResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsTemplatesResponseTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTemplateResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CommunicationsTypeResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsTypeResponseTest.java index 8e69150c..9ff76c29 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsTypeResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsTypeResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CommunicationsTypesResponseTest.java b/src/test/java/com/rootly/client/model/CommunicationsTypesResponseTest.java index 16438698..a3e2edbd 100644 --- a/src/test/java/com/rootly/client/model/CommunicationsTypesResponseTest.java +++ b/src/test/java/com/rootly/client/model/CommunicationsTypesResponseTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CommunicationsTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsTest.java index 4e83d658..bbb53d90 100644 --- a/src/test/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateAnthropicChatCompletionTaskParamsTest.java @@ -70,4 +70,12 @@ public void promptTest() { // TODO: test prompt } + /** + * Test the property 'maxTokens' + */ + @Test + public void maxTokensTest() { + // TODO: test maxTokens + } + } diff --git a/src/test/java/com/rootly/client/model/CreateClickupTaskTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateClickupTaskTaskParamsTest.java index d12c347e..1c87a2f0 100644 --- a/src/test/java/com/rootly/client/model/CreateClickupTaskTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateClickupTaskTaskParamsTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import java.io.IOException; import java.util.Arrays; @@ -63,6 +64,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property '_list' + */ + @Test + public void _listTest() { + // TODO: test _list + } + /** * Test the property 'tags' */ diff --git a/src/test/java/com/rootly/client/model/CreateConfluencePageTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateConfluencePageTaskParamsTest.java index d445b5e4..aea1d2e0 100644 --- a/src/test/java/com/rootly/client/model/CreateConfluencePageTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateConfluencePageTaskParamsTest.java @@ -111,4 +111,36 @@ public void markPostMortemAsPublishedTest() { // TODO: test markPostMortemAsPublished } + /** + * Test the property 'includeOverview' + */ + @Test + public void includeOverviewTest() { + // TODO: test includeOverview + } + + /** + * Test the property 'includeTimeline' + */ + @Test + public void includeTimelineTest() { + // TODO: test includeTimeline + } + + /** + * Test the property 'includeFollowUps' + */ + @Test + public void includeFollowUpsTest() { + // TODO: test includeFollowUps + } + + /** + * Test the property 'createAsLiveDoc' + */ + @Test + public void createAsLiveDocTest() { + // TODO: test createAsLiveDoc + } + } diff --git a/src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFiltersTest.java b/src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFiltersTest.java new file mode 100644 index 00000000..a6a8ba46 --- /dev/null +++ b/src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesFiltersTest.java @@ -0,0 +1,74 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for CreateEdgeConnectorRequestDataAttributesFilters + */ +public class CreateEdgeConnectorRequestDataAttributesFiltersTest { + private final CreateEdgeConnectorRequestDataAttributesFilters model = new CreateEdgeConnectorRequestDataAttributesFilters(); + + /** + * Model tests for CreateEdgeConnectorRequestDataAttributesFilters + */ + @Test + public void testCreateEdgeConnectorRequestDataAttributesFilters() { + // TODO: test CreateEdgeConnectorRequestDataAttributesFilters + } + + /** + * Test the property 'groupIds' + */ + @Test + public void groupIdsTest() { + // TODO: test groupIds + } + + /** + * Test the property 'serviceIds' + */ + @Test + public void serviceIdsTest() { + // TODO: test serviceIds + } + + /** + * Test the property 'environmentIds' + */ + @Test + public void environmentIdsTest() { + // TODO: test environmentIds + } + + /** + * Test the property 'functionalityIds' + */ + @Test + public void functionalityIdsTest() { + // TODO: test functionalityIds + } + +} diff --git a/src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesTest.java b/src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesTest.java index b333daea..4cdb5cd1 100644 --- a/src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/CreateEdgeConnectorRequestDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateEdgeConnectorRequestDataAttributesFilters; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -71,4 +72,12 @@ public void subscriptionsTest() { // TODO: test subscriptions } + /** + * Test the property 'filters' + */ + @Test + public void filtersTest() { + // TODO: test filters + } + } diff --git a/src/test/java/com/rootly/client/model/CreateGithubIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateGithubIssueTaskParamsTest.java index d429e9f6..a1b0ff25 100644 --- a/src/test/java/com/rootly/client/model/CreateGithubIssueTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateGithubIssueTaskParamsTest.java @@ -19,8 +19,12 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.CreateGithubIssueTaskParamsIssueType; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -70,4 +74,36 @@ public void repositoryTest() { // TODO: test repository } + /** + * Test the property 'labels' + */ + @Test + public void labelsTest() { + // TODO: test labels + } + + /** + * Test the property 'issueType' + */ + @Test + public void issueTypeTest() { + // TODO: test issueType + } + + /** + * Test the property 'parentIssueNumber' + */ + @Test + public void parentIssueNumberTest() { + // TODO: test parentIssueNumber + } + + /** + * Test the property 'customFieldsMapping' + */ + @Test + public void customFieldsMappingTest() { + // TODO: test customFieldsMapping + } + } diff --git a/src/test/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParamsTest.java new file mode 100644 index 00000000..d62089c8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/CreateGoogleChatSpaceTaskParamsTest.java @@ -0,0 +1,72 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for CreateGoogleChatSpaceTaskParams + */ +public class CreateGoogleChatSpaceTaskParamsTest { + private final CreateGoogleChatSpaceTaskParams model = new CreateGoogleChatSpaceTaskParams(); + + /** + * Model tests for CreateGoogleChatSpaceTaskParams + */ + @Test + public void testCreateGoogleChatSpaceTaskParams() { + // TODO: test CreateGoogleChatSpaceTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'audience' + */ + @Test + public void audienceTest() { + // TODO: test audience + } + +} diff --git a/src/test/java/com/rootly/client/model/CreateGoogleDocsPageTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateGoogleDocsPageTaskParamsTest.java index 0124bc71..d911f578 100644 --- a/src/test/java/com/rootly/client/model/CreateGoogleDocsPageTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateGoogleDocsPageTaskParamsTest.java @@ -110,4 +110,28 @@ public void permissionsTest() { // TODO: test permissions } + /** + * Test the property 'includeOverview' + */ + @Test + public void includeOverviewTest() { + // TODO: test includeOverview + } + + /** + * Test the property 'includeTimeline' + */ + @Test + public void includeTimelineTest() { + // TODO: test includeTimeline + } + + /** + * Test the property 'includeFollowUps' + */ + @Test + public void includeFollowUpsTest() { + // TODO: test includeFollowUps + } + } diff --git a/src/test/java/com/rootly/client/model/CreateGoogleMeetingTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateGoogleMeetingTaskParamsTest.java index 399ac673..97d73f05 100644 --- a/src/test/java/com/rootly/client/model/CreateGoogleMeetingTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateGoogleMeetingTaskParamsTest.java @@ -81,6 +81,14 @@ public void recordMeetingTest() { // TODO: test recordMeeting } + /** + * Test the property 'recordingMode' + */ + @Test + public void recordingModeTest() { + // TODO: test recordingMode + } + /** * Test the property 'postToIncidentTimeline' */ diff --git a/src/test/java/com/rootly/client/model/CreateJiraIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateJiraIssueTaskParamsTest.java index 7ea5edcf..0f76f9a7 100644 --- a/src/test/java/com/rootly/client/model/CreateJiraIssueTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateJiraIssueTaskParamsTest.java @@ -154,4 +154,20 @@ public void updatePayloadTest() { // TODO: test updatePayload } + /** + * Test the property 'retryCount' + */ + @Test + public void retryCountTest() { + // TODO: test retryCount + } + + /** + * Test the property 'retryWaitTime' + */ + @Test + public void retryWaitTimeTest() { + // TODO: test retryWaitTime + } + } diff --git a/src/test/java/com/rootly/client/model/CreateJiraSubtaskTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateJiraSubtaskTaskParamsTest.java index d63465f7..117959e6 100644 --- a/src/test/java/com/rootly/client/model/CreateJiraSubtaskTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateJiraSubtaskTaskParamsTest.java @@ -162,4 +162,20 @@ public void updatePayloadTest() { // TODO: test updatePayload } + /** + * Test the property 'retryCount' + */ + @Test + public void retryCountTest() { + // TODO: test retryCount + } + + /** + * Test the property 'retryWaitTime' + */ + @Test + public void retryWaitTimeTest() { + // TODO: test retryWaitTime + } + } diff --git a/src/test/java/com/rootly/client/model/CreateLinearIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateLinearIssueTaskParamsTest.java index 2076f10e..2e99a553 100644 --- a/src/test/java/com/rootly/client/model/CreateLinearIssueTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateLinearIssueTaskParamsTest.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -116,4 +117,12 @@ public void assignUserEmailTest() { // TODO: test assignUserEmail } + /** + * Test the property 'customFieldsMapping' + */ + @Test + public void customFieldsMappingTest() { + // TODO: test customFieldsMapping + } + } diff --git a/src/test/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParamsTest.java index 084d5c8c..74c660fd 100644 --- a/src/test/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateLinearSubtaskIssueTaskParamsTest.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -106,4 +107,12 @@ public void assignUserEmailTest() { // TODO: test assignUserEmail } + /** + * Test the property 'customFieldsMapping' + */ + @Test + public void customFieldsMappingTest() { + // TODO: test customFieldsMapping + } + } diff --git a/src/test/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParamsTest.java index e59c2b04..d73b07d8 100644 --- a/src/test/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateMicrosoftTeamsMeetingTaskParamsTest.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -72,6 +73,14 @@ public void recordMeetingTest() { // TODO: test recordMeeting } + /** + * Test the property 'recordingMode' + */ + @Test + public void recordingModeTest() { + // TODO: test recordingMode + } + /** * Test the property 'postToIncidentTimeline' */ diff --git a/src/test/java/com/rootly/client/model/CreateMotionTaskTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateMotionTaskTaskParamsTest.java index 9891d7a0..c109396e 100644 --- a/src/test/java/com/rootly/client/model/CreateMotionTaskTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateMotionTaskTaskParamsTest.java @@ -21,9 +21,7 @@ import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1Test.java b/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1Test.java new file mode 100644 index 00000000..df2a268d --- /dev/null +++ b/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOf1Test.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for CreateShortcutStoryTaskParamsAnyOf1 + */ +public class CreateShortcutStoryTaskParamsAnyOf1Test { + private final CreateShortcutStoryTaskParamsAnyOf1 model = new CreateShortcutStoryTaskParamsAnyOf1(); + + /** + * Model tests for CreateShortcutStoryTaskParamsAnyOf1 + */ + @Test + public void testCreateShortcutStoryTaskParamsAnyOf1() { + // TODO: test CreateShortcutStoryTaskParamsAnyOf1 + } + + /** + * Test the property 'workflowState' + */ + @Test + public void workflowStateTest() { + // TODO: test workflowState + } + +} diff --git a/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOfTest.java b/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOfTest.java new file mode 100644 index 00000000..dbb28c66 --- /dev/null +++ b/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsAnyOfTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for CreateShortcutStoryTaskParamsAnyOf + */ +public class CreateShortcutStoryTaskParamsAnyOfTest { + private final CreateShortcutStoryTaskParamsAnyOf model = new CreateShortcutStoryTaskParamsAnyOf(); + + /** + * Model tests for CreateShortcutStoryTaskParamsAnyOf + */ + @Test + public void testCreateShortcutStoryTaskParamsAnyOf() { + // TODO: test CreateShortcutStoryTaskParamsAnyOf + } + + /** + * Test the property 'project' + */ + @Test + public void projectTest() { + // TODO: test project + } + +} diff --git a/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsTest.java index 479ed31a..2117e4b7 100644 --- a/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateShortcutStoryTaskParamsTest.java @@ -18,6 +18,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.CreateShortcutStoryTaskParamsAnyOf; +import com.rootly.client.model.CreateShortcutStoryTaskParamsAnyOf1; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; @@ -37,4 +40,20 @@ public void testCreateShortcutStoryTaskParams() { // TODO: test CreateShortcutStoryTaskParams } + /** + * Test the property 'project' + */ + @Test + public void projectTest() { + // TODO: test project + } + + /** + * Test the property 'workflowState' + */ + @Test + public void workflowStateTest() { + // TODO: test workflowState + } + } diff --git a/src/test/java/com/rootly/client/model/CreateWebexMeetingTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateWebexMeetingTaskParamsTest.java index e9000929..8a2e61d2 100644 --- a/src/test/java/com/rootly/client/model/CreateWebexMeetingTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateWebexMeetingTaskParamsTest.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -72,6 +73,14 @@ public void recordMeetingTest() { // TODO: test recordMeeting } + /** + * Test the property 'recordingMode' + */ + @Test + public void recordingModeTest() { + // TODO: test recordingMode + } + /** * Test the property 'postToIncidentTimeline' */ diff --git a/src/test/java/com/rootly/client/model/CreateZoomMeetingTaskParamsTest.java b/src/test/java/com/rootly/client/model/CreateZoomMeetingTaskParamsTest.java index 9aa63354..e90e8538 100644 --- a/src/test/java/com/rootly/client/model/CreateZoomMeetingTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/CreateZoomMeetingTaskParamsTest.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -96,6 +97,22 @@ public void recordMeetingTest() { // TODO: test recordMeeting } + /** + * Test the property 'recordingMode' + */ + @Test + public void recordingModeTest() { + // TODO: test recordingMode + } + + /** + * Test the property 'enableZoomBotAutoJoin' + */ + @Test + public void enableZoomBotAutoJoinTest() { + // TODO: test enableZoomBotAutoJoin + } + /** * Test the property 'postToIncidentTimeline' */ diff --git a/src/test/java/com/rootly/client/model/CustomFieldListTest.java b/src/test/java/com/rootly/client/model/CustomFieldListTest.java index 6acfa0c4..d6c6e8d4 100644 --- a/src/test/java/com/rootly/client/model/CustomFieldListTest.java +++ b/src/test/java/com/rootly/client/model/CustomFieldListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CustomFieldOptionListTest.java b/src/test/java/com/rootly/client/model/CustomFieldOptionListTest.java index 40950440..53b893b3 100644 --- a/src/test/java/com/rootly/client/model/CustomFieldOptionListTest.java +++ b/src/test/java/com/rootly/client/model/CustomFieldOptionListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CustomFieldOptionResponseTest.java b/src/test/java/com/rootly/client/model/CustomFieldOptionResponseTest.java index bc767be7..fc116728 100644 --- a/src/test/java/com/rootly/client/model/CustomFieldOptionResponseTest.java +++ b/src/test/java/com/rootly/client/model/CustomFieldOptionResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CustomFieldResponseTest.java b/src/test/java/com/rootly/client/model/CustomFieldResponseTest.java index 92ab87e1..c9c658db 100644 --- a/src/test/java/com/rootly/client/model/CustomFieldResponseTest.java +++ b/src/test/java/com/rootly/client/model/CustomFieldResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CustomFieldTest.java b/src/test/java/com/rootly/client/model/CustomFieldTest.java index 51917ea0..83bb31fa 100644 --- a/src/test/java/com/rootly/client/model/CustomFieldTest.java +++ b/src/test/java/com/rootly/client/model/CustomFieldTest.java @@ -19,10 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; -import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -41,91 +38,27 @@ public void testCustomField() { } /** - * Test the property 'label' + * Test the property 'fieldSource' */ @Test - public void labelTest() { - // TODO: test label + public void fieldSourceTest() { + // TODO: test fieldSource } /** - * Test the property 'kind' + * Test the property 'catalogPropertyId' */ @Test - public void kindTest() { - // TODO: test kind + public void catalogPropertyIdTest() { + // TODO: test catalogPropertyId } /** - * Test the property 'enabled' + * Test the property 'fieldKey' */ @Test - public void enabledTest() { - // TODO: test enabled - } - - /** - * Test the property 'slug' - */ - @Test - public void slugTest() { - // TODO: test slug - } - - /** - * Test the property 'description' - */ - @Test - public void descriptionTest() { - // TODO: test description - } - - /** - * Test the property 'shown' - */ - @Test - public void shownTest() { - // TODO: test shown - } - - /** - * Test the property 'required' - */ - @Test - public void requiredTest() { - // TODO: test required - } - - /** - * Test the property '_default' - */ - @Test - public void _defaultTest() { - // TODO: test _default - } - - /** - * Test the property 'position' - */ - @Test - public void positionTest() { - // TODO: test position - } - - /** - * Test the property 'createdAt' - */ - @Test - public void createdAtTest() { - // TODO: test createdAt - } - - /** - * Test the property 'updatedAt' - */ - @Test - public void updatedAtTest() { - // TODO: test updatedAt + public void fieldKeyTest() { + // TODO: test fieldKey } } diff --git a/src/test/java/com/rootly/client/model/CustomFormListTest.java b/src/test/java/com/rootly/client/model/CustomFormListTest.java index e72c56ac..3b3fa91e 100644 --- a/src/test/java/com/rootly/client/model/CustomFormListTest.java +++ b/src/test/java/com/rootly/client/model/CustomFormListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFormResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/CustomFormResponseTest.java b/src/test/java/com/rootly/client/model/CustomFormResponseTest.java index b04f461b..ed9cc649 100644 --- a/src/test/java/com/rootly/client/model/CustomFormResponseTest.java +++ b/src/test/java/com/rootly/client/model/CustomFormResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.CustomFormResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/DashboardListTest.java b/src/test/java/com/rootly/client/model/DashboardListTest.java index 9c4d47ca..627ac64f 100644 --- a/src/test/java/com/rootly/client/model/DashboardListTest.java +++ b/src/test/java/com/rootly/client/model/DashboardListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/DashboardPanelListTest.java b/src/test/java/com/rootly/client/model/DashboardPanelListTest.java index cbbfa6db..e3db6265 100644 --- a/src/test/java/com/rootly/client/model/DashboardPanelListTest.java +++ b/src/test/java/com/rootly/client/model/DashboardPanelListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardPanelResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/DashboardPanelResponseTest.java b/src/test/java/com/rootly/client/model/DashboardPanelResponseTest.java index 53c17c5c..b0c50512 100644 --- a/src/test/java/com/rootly/client/model/DashboardPanelResponseTest.java +++ b/src/test/java/com/rootly/client/model/DashboardPanelResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardPanelResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/DashboardResponseTest.java b/src/test/java/com/rootly/client/model/DashboardResponseTest.java index d875241e..121a5d7e 100644 --- a/src/test/java/com/rootly/client/model/DashboardResponseTest.java +++ b/src/test/java/com/rootly/client/model/DashboardResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.DashboardResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EnvironmentListTest.java b/src/test/java/com/rootly/client/model/EnvironmentListTest.java index 6b20955c..d522775c 100644 --- a/src/test/java/com/rootly/client/model/EnvironmentListTest.java +++ b/src/test/java/com/rootly/client/model/EnvironmentListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EnvironmentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EnvironmentResponseTest.java b/src/test/java/com/rootly/client/model/EnvironmentResponseTest.java index 3ea33932..d5b0c2be 100644 --- a/src/test/java/com/rootly/client/model/EnvironmentResponseTest.java +++ b/src/test/java/com/rootly/client/model/EnvironmentResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EnvironmentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EnvironmentTest.java b/src/test/java/com/rootly/client/model/EnvironmentTest.java index 07d37bbd..1d5b95a1 100644 --- a/src/test/java/com/rootly/client/model/EnvironmentTest.java +++ b/src/test/java/com/rootly/client/model/EnvironmentTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -58,6 +59,22 @@ public void slugTest() { // TODO: test slug } + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + /** * Test the property 'description' */ @@ -66,6 +83,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'notifyEmails' */ @@ -106,6 +131,14 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyLevelListTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyLevelListTest.java index d2647add..fd0b3fd3 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyLevelListTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyLevelListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyLevelListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyLevelResponseTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyLevelResponseTest.java index bfa9ae96..47e66869 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyLevelResponseTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyLevelResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyLevelResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyLevelTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyLevelTest.java index 5c940649..7ebc73ee 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyLevelTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyLevelTest.java @@ -73,6 +73,38 @@ public void pagingStrategyConfigurationScheduleStrategyTest() { // TODO: test pagingStrategyConfigurationScheduleStrategy } + /** + * Test the property 'pagingStrategyConfigurationRepeats' + */ + @Test + public void pagingStrategyConfigurationRepeatsTest() { + // TODO: test pagingStrategyConfigurationRepeats + } + + /** + * Test the property 'pagingStrategyConfigurationRepeatsMode' + */ + @Test + public void pagingStrategyConfigurationRepeatsModeTest() { + // TODO: test pagingStrategyConfigurationRepeatsMode + } + + /** + * Test the property 'pagingStrategyConfigurationRotationScope' + */ + @Test + public void pagingStrategyConfigurationRotationScopeTest() { + // TODO: test pagingStrategyConfigurationRotationScope + } + + /** + * Test the property 'pagingStrategyConfigurationPageUsersCount' + */ + @Test + public void pagingStrategyConfigurationPageUsersCountTest() { + // TODO: test pagingStrategyConfigurationPageUsersCount + } + /** * Test the property 'delay' */ diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyListTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyListTest.java index afe7652f..3d87a28c 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyListTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyPathListTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyPathListTest.java index 582eafe4..3db5e315 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyPathListTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyPathListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyPathListDataInner; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyPathResponseTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyPathResponseTest.java index cb8ae59e..2f71f878 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyPathResponseTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyPathResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyPathResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyPathTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyPathTest.java index a919cf5d..7e8f9be9 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyPathTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyPathTest.java @@ -18,7 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.EscalationPolicyPathRulesInner; +import com.rootly.client.model.UpdateEscalationPolicyPathDataAttributesRulesInner; import com.rootly.client.model.UpdateEscalationPolicyPathDataAttributesTimeRestrictionsInner; import java.io.IOException; import java.util.ArrayList; @@ -66,6 +66,14 @@ public void notificationTypeTest() { // TODO: test notificationType } + /** + * Test the property 'pathType' + */ + @Test + public void pathTypeTest() { + // TODO: test pathType + } + /** * Test the property 'escalationPolicyId' */ @@ -74,6 +82,22 @@ public void escalationPolicyIdTest() { // TODO: test escalationPolicyId } + /** + * Test the property 'afterDeferralBehavior' + */ + @Test + public void afterDeferralBehaviorTest() { + // TODO: test afterDeferralBehavior + } + + /** + * Test the property 'afterDeferralPathId' + */ + @Test + public void afterDeferralPathIdTest() { + // TODO: test afterDeferralPathId + } + /** * Test the property 'matchMode' */ @@ -114,6 +138,14 @@ public void initialDelayTest() { // TODO: test initialDelay } + /** + * Test the property 'retriggerTimeoutMinutes' + */ + @Test + public void retriggerTimeoutMinutesTest() { + // TODO: test retriggerTimeoutMinutes + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyResponseTest.java b/src/test/java/com/rootly/client/model/EscalationPolicyResponseTest.java index 7c283ed3..581a0993 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyResponseTest.java +++ b/src/test/java/com/rootly/client/model/EscalationPolicyResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.EscalationPolicyResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldListTest.java b/src/test/java/com/rootly/client/model/FormFieldListTest.java index d8bc6f79..4f1ab4cd 100644 --- a/src/test/java/com/rootly/client/model/FormFieldListTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldOptionListTest.java b/src/test/java/com/rootly/client/model/FormFieldOptionListTest.java index 9545d039..60a92f35 100644 --- a/src/test/java/com/rootly/client/model/FormFieldOptionListTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldOptionListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldOptionResponseTest.java b/src/test/java/com/rootly/client/model/FormFieldOptionResponseTest.java index 5fb9c3d4..0c80ef00 100644 --- a/src/test/java/com/rootly/client/model/FormFieldOptionResponseTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldOptionResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldOptionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldPlacementConditionListTest.java b/src/test/java/com/rootly/client/model/FormFieldPlacementConditionListTest.java index 46ecf959..99b12fbe 100644 --- a/src/test/java/com/rootly/client/model/FormFieldPlacementConditionListTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldPlacementConditionListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldPlacementConditionResponseTest.java b/src/test/java/com/rootly/client/model/FormFieldPlacementConditionResponseTest.java index b1c86916..2aec3604 100644 --- a/src/test/java/com/rootly/client/model/FormFieldPlacementConditionResponseTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldPlacementConditionResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldPlacementListTest.java b/src/test/java/com/rootly/client/model/FormFieldPlacementListTest.java index 81ab112f..2632ce94 100644 --- a/src/test/java/com/rootly/client/model/FormFieldPlacementListTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldPlacementListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldPlacementResponseTest.java b/src/test/java/com/rootly/client/model/FormFieldPlacementResponseTest.java index 15acd204..0660eaef 100644 --- a/src/test/java/com/rootly/client/model/FormFieldPlacementResponseTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldPlacementResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPlacementResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldPositionListTest.java b/src/test/java/com/rootly/client/model/FormFieldPositionListTest.java index 510513cf..e6b6219c 100644 --- a/src/test/java/com/rootly/client/model/FormFieldPositionListTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldPositionListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPositionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldPositionResponseTest.java b/src/test/java/com/rootly/client/model/FormFieldPositionResponseTest.java index 70a0ccf9..d13ebcdc 100644 --- a/src/test/java/com/rootly/client/model/FormFieldPositionResponseTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldPositionResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldPositionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldResponseTest.java b/src/test/java/com/rootly/client/model/FormFieldResponseTest.java index c39e09f4..770026ae 100644 --- a/src/test/java/com/rootly/client/model/FormFieldResponseTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormFieldResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormFieldTest.java b/src/test/java/com/rootly/client/model/FormFieldTest.java index acd4f359..0ce37407 100644 --- a/src/test/java/com/rootly/client/model/FormFieldTest.java +++ b/src/test/java/com/rootly/client/model/FormFieldTest.java @@ -88,6 +88,14 @@ public void slugTest() { // TODO: test slug } + /** + * Test the property 'resourceType' + */ + @Test + public void resourceTypeTest() { + // TODO: test resourceType + } + /** * Test the property 'description' */ @@ -136,6 +144,14 @@ public void defaultValuesTest() { // TODO: test defaultValues } + /** + * Test the property 'autoSetByCatalogPropertyId' + */ + @Test + public void autoSetByCatalogPropertyIdTest() { + // TODO: test autoSetByCatalogPropertyId + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/FormSetConditionListTest.java b/src/test/java/com/rootly/client/model/FormSetConditionListTest.java index 9b381a7c..04b2e96e 100644 --- a/src/test/java/com/rootly/client/model/FormSetConditionListTest.java +++ b/src/test/java/com/rootly/client/model/FormSetConditionListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormSetConditionResponseTest.java b/src/test/java/com/rootly/client/model/FormSetConditionResponseTest.java index db708bb6..b7f6a79e 100644 --- a/src/test/java/com/rootly/client/model/FormSetConditionResponseTest.java +++ b/src/test/java/com/rootly/client/model/FormSetConditionResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetConditionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormSetListTest.java b/src/test/java/com/rootly/client/model/FormSetListTest.java index 8e0f72f3..86ff7db1 100644 --- a/src/test/java/com/rootly/client/model/FormSetListTest.java +++ b/src/test/java/com/rootly/client/model/FormSetListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FormSetResponseTest.java b/src/test/java/com/rootly/client/model/FormSetResponseTest.java index b809a81a..25af5b9c 100644 --- a/src/test/java/com/rootly/client/model/FormSetResponseTest.java +++ b/src/test/java/com/rootly/client/model/FormSetResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FormSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FunctionalityListTest.java b/src/test/java/com/rootly/client/model/FunctionalityListTest.java index ec81a266..121efb9c 100644 --- a/src/test/java/com/rootly/client/model/FunctionalityListTest.java +++ b/src/test/java/com/rootly/client/model/FunctionalityListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FunctionalityResponseTest.java b/src/test/java/com/rootly/client/model/FunctionalityResponseTest.java index 1992d673..7e65d763 100644 --- a/src/test/java/com/rootly/client/model/FunctionalityResponseTest.java +++ b/src/test/java/com/rootly/client/model/FunctionalityResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.FunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/FunctionalityTest.java b/src/test/java/com/rootly/client/model/FunctionalityTest.java index ec7c234e..6c33d411 100644 --- a/src/test/java/com/rootly/client/model/FunctionalityTest.java +++ b/src/test/java/com/rootly/client/model/FunctionalityTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -58,6 +59,14 @@ public void slugTest() { // TODO: test slug } + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + /** * Test the property 'description' */ @@ -186,6 +195,14 @@ public void ownerUserIdsTest() { // TODO: test ownerUserIds } + /** + * Test the property 'escalationPolicyId' + */ + @Test + public void escalationPolicyIdTest() { + // TODO: test escalationPolicyId + } + /** * Test the property 'slackChannels' */ @@ -202,6 +219,14 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1Test.java b/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1Test.java new file mode 100644 index 00000000..b1b5a280 --- /dev/null +++ b/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOf1Test.java @@ -0,0 +1,50 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for GetGithubCommitsTaskParamsAnyOf1 + */ +public class GetGithubCommitsTaskParamsAnyOf1Test { + private final GetGithubCommitsTaskParamsAnyOf1 model = new GetGithubCommitsTaskParamsAnyOf1(); + + /** + * Model tests for GetGithubCommitsTaskParamsAnyOf1 + */ + @Test + public void testGetGithubCommitsTaskParamsAnyOf1() { + // TODO: test GetGithubCommitsTaskParamsAnyOf1 + } + + /** + * Test the property 'githubRepositoryNames' + */ + @Test + public void githubRepositoryNamesTest() { + // TODO: test githubRepositoryNames + } + +} diff --git a/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOfTest.java b/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOfTest.java new file mode 100644 index 00000000..bbce1225 --- /dev/null +++ b/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsAnyOfTest.java @@ -0,0 +1,50 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for GetGithubCommitsTaskParamsAnyOf + */ +public class GetGithubCommitsTaskParamsAnyOfTest { + private final GetGithubCommitsTaskParamsAnyOf model = new GetGithubCommitsTaskParamsAnyOf(); + + /** + * Model tests for GetGithubCommitsTaskParamsAnyOf + */ + @Test + public void testGetGithubCommitsTaskParamsAnyOf() { + // TODO: test GetGithubCommitsTaskParamsAnyOf + } + + /** + * Test the property 'serviceIds' + */ + @Test + public void serviceIdsTest() { + // TODO: test serviceIds + } + +} diff --git a/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsTest.java b/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsTest.java index 6f2172cf..0c2d77f8 100644 --- a/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/GetGithubCommitsTaskParamsTest.java @@ -18,6 +18,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf; +import com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf1; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -39,4 +41,20 @@ public void testGetGithubCommitsTaskParams() { // TODO: test GetGithubCommitsTaskParams } + /** + * Test the property 'serviceIds' + */ + @Test + public void serviceIdsTest() { + // TODO: test serviceIds + } + + /** + * Test the property 'githubRepositoryNames' + */ + @Test + public void githubRepositoryNamesTest() { + // TODO: test githubRepositoryNames + } + } diff --git a/src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOfTest.java b/src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOfTest.java new file mode 100644 index 00000000..9d04cde6 --- /dev/null +++ b/src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsAnyOfTest.java @@ -0,0 +1,50 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for GetGitlabCommitsTaskParamsAnyOf + */ +public class GetGitlabCommitsTaskParamsAnyOfTest { + private final GetGitlabCommitsTaskParamsAnyOf model = new GetGitlabCommitsTaskParamsAnyOf(); + + /** + * Model tests for GetGitlabCommitsTaskParamsAnyOf + */ + @Test + public void testGetGitlabCommitsTaskParamsAnyOf() { + // TODO: test GetGitlabCommitsTaskParamsAnyOf + } + + /** + * Test the property 'gitlabRepositoryNames' + */ + @Test + public void gitlabRepositoryNamesTest() { + // TODO: test gitlabRepositoryNames + } + +} diff --git a/src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsTest.java b/src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsTest.java index 2cc1f449..46cf2535 100644 --- a/src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/GetGitlabCommitsTaskParamsTest.java @@ -18,6 +18,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.GetGithubCommitsTaskParamsAnyOf; +import com.rootly.client.model.GetGitlabCommitsTaskParamsAnyOf; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -39,4 +41,20 @@ public void testGetGitlabCommitsTaskParams() { // TODO: test GetGitlabCommitsTaskParams } + /** + * Test the property 'serviceIds' + */ + @Test + public void serviceIdsTest() { + // TODO: test serviceIds + } + + /** + * Test the property 'gitlabRepositoryNames' + */ + @Test + public void gitlabRepositoryNamesTest() { + // TODO: test gitlabRepositoryNames + } + } diff --git a/src/test/java/com/rootly/client/model/HeartbeatListTest.java b/src/test/java/com/rootly/client/model/HeartbeatListTest.java index 02eadfdb..dce402a7 100644 --- a/src/test/java/com/rootly/client/model/HeartbeatListTest.java +++ b/src/test/java/com/rootly/client/model/HeartbeatListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.HeartbeatResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/HeartbeatResponseTest.java b/src/test/java/com/rootly/client/model/HeartbeatResponseTest.java index 2670d041..16a1ba3a 100644 --- a/src/test/java/com/rootly/client/model/HeartbeatResponseTest.java +++ b/src/test/java/com/rootly/client/model/HeartbeatResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.HeartbeatResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/HeartbeatTest.java b/src/test/java/com/rootly/client/model/HeartbeatTest.java index 595ef833..59332b38 100644 --- a/src/test/java/com/rootly/client/model/HeartbeatTest.java +++ b/src/test/java/com/rootly/client/model/HeartbeatTest.java @@ -19,7 +19,9 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -110,6 +112,14 @@ public void notificationTargetTypeTest() { // TODO: test notificationTargetType } + /** + * Test the property 'ownerGroupIds' + */ + @Test + public void ownerGroupIdsTest() { + // TODO: test ownerGroupIds + } + /** * Test the property 'enabled' */ diff --git a/src/test/java/com/rootly/client/model/HttpClientTaskParamsTest.java b/src/test/java/com/rootly/client/model/HttpClientTaskParamsTest.java index 97ed7ab0..dada5508 100644 --- a/src/test/java/com/rootly/client/model/HttpClientTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/HttpClientTaskParamsTest.java @@ -128,4 +128,20 @@ public void postToSlackChannelsTest() { // TODO: test postToSlackChannels } + /** + * Test the property 'retryCount' + */ + @Test + public void retryCountTest() { + // TODO: test retryCount + } + + /** + * Test the property 'retryWaitTime' + */ + @Test + public void retryWaitTimeTest() { + // TODO: test retryWaitTime + } + } diff --git a/src/test/java/com/rootly/client/model/ImportMeetingRecordingTest.java b/src/test/java/com/rootly/client/model/ImportMeetingRecordingTest.java new file mode 100644 index 00000000..8ccef4fa --- /dev/null +++ b/src/test/java/com/rootly/client/model/ImportMeetingRecordingTest.java @@ -0,0 +1,91 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for ImportMeetingRecording + */ +public class ImportMeetingRecordingTest { + private final ImportMeetingRecording model = new ImportMeetingRecording(); + + /** + * Model tests for ImportMeetingRecording + */ + @Test + public void testImportMeetingRecording() { + // TODO: test ImportMeetingRecording + } + + /** + * Test the property 'source' + */ + @Test + public void sourceTest() { + // TODO: test source + } + + /** + * Test the property 'recallRecordingId' + */ + @Test + public void recallRecordingIdTest() { + // TODO: test recallRecordingId + } + + /** + * Test the property 'platform' + */ + @Test + public void platformTest() { + // TODO: test platform + } + + /** + * Test the property 'startedAt' + */ + @Test + public void startedAtTest() { + // TODO: test startedAt + } + + /** + * Test the property 'endedAt' + */ + @Test + public void endedAtTest() { + // TODO: test endedAt + } + + /** + * Test the property 'meetingUrl' + */ + @Test + public void meetingUrlTest() { + // TODO: test meetingUrl + } + +} diff --git a/src/test/java/com/rootly/client/model/IncidentActionItemListTest.java b/src/test/java/com/rootly/client/model/IncidentActionItemListTest.java index 5aaeba7f..dd270755 100644 --- a/src/test/java/com/rootly/client/model/IncidentActionItemListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentActionItemListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentActionItemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentActionItemResponseTest.java b/src/test/java/com/rootly/client/model/IncidentActionItemResponseTest.java index 2b371b1b..86362282 100644 --- a/src/test/java/com/rootly/client/model/IncidentActionItemResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentActionItemResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentActionItemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentActionItemTest.java b/src/test/java/com/rootly/client/model/IncidentActionItemTest.java index 8d0925b2..99f0c9fb 100644 --- a/src/test/java/com/rootly/client/model/IncidentActionItemTest.java +++ b/src/test/java/com/rootly/client/model/IncidentActionItemTest.java @@ -129,6 +129,14 @@ public void jiraIssueUrlTest() { // TODO: test jiraIssueUrl } + /** + * Test the property 'createdBy' + */ + @Test + public void createdByTest() { + // TODO: test createdBy + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionListTest.java b/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionListTest.java index e38b27e1..ca4e7ab1 100644 --- a/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentCustomFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseTest.java b/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseTest.java index 0116e734..19e2b1e9 100644 --- a/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentCustomFieldSelectionResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentCustomFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentEventFunctionalityListTest.java b/src/test/java/com/rootly/client/model/IncidentEventFunctionalityListTest.java index 5c78aed1..a0bb75b0 100644 --- a/src/test/java/com/rootly/client/model/IncidentEventFunctionalityListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentEventFunctionalityListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventFunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentEventFunctionalityResponseTest.java b/src/test/java/com/rootly/client/model/IncidentEventFunctionalityResponseTest.java index a8846367..5fc1ec0d 100644 --- a/src/test/java/com/rootly/client/model/IncidentEventFunctionalityResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentEventFunctionalityResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventFunctionalityResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentEventListTest.java b/src/test/java/com/rootly/client/model/IncidentEventListTest.java index 2d562461..795feeac 100644 --- a/src/test/java/com/rootly/client/model/IncidentEventListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentEventListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentEventResponseTest.java b/src/test/java/com/rootly/client/model/IncidentEventResponseTest.java index bf228fe1..5b4f0a07 100644 --- a/src/test/java/com/rootly/client/model/IncidentEventResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentEventResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentEventServiceListTest.java b/src/test/java/com/rootly/client/model/IncidentEventServiceListTest.java index 38664b11..f1b12818 100644 --- a/src/test/java/com/rootly/client/model/IncidentEventServiceListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentEventServiceListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventServiceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentEventServiceResponseTest.java b/src/test/java/com/rootly/client/model/IncidentEventServiceResponseTest.java index d909f4d2..965f2bf0 100644 --- a/src/test/java/com/rootly/client/model/IncidentEventServiceResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentEventServiceResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentEventServiceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentFeedbackListTest.java b/src/test/java/com/rootly/client/model/IncidentFeedbackListTest.java index df03a79b..993da0e8 100644 --- a/src/test/java/com/rootly/client/model/IncidentFeedbackListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentFeedbackListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFeedbackResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentFeedbackResponseTest.java b/src/test/java/com/rootly/client/model/IncidentFeedbackResponseTest.java index 2d657be8..cadfbc9c 100644 --- a/src/test/java/com/rootly/client/model/IncidentFeedbackResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentFeedbackResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFeedbackResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionListTest.java b/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionListTest.java index 9e268dcf..1e6b8340 100644 --- a/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFormFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionResponseTest.java b/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionResponseTest.java index 7b780326..5010d843 100644 --- a/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentFormFieldSelectionResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionTest.java b/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionTest.java index 6568f9c6..06429e59 100644 --- a/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionTest.java +++ b/src/test/java/com/rootly/client/model/IncidentFormFieldSelectionTest.java @@ -112,4 +112,28 @@ public void selectedUserIdsTest() { // TODO: test selectedUserIds } + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentListTest.java b/src/test/java/com/rootly/client/model/IncidentListTest.java index f6c7e5c5..b851962d 100644 --- a/src/test/java/com/rootly/client/model/IncidentListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanListTest.java b/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanListTest.java index 55cb2455..26675d4a 100644 --- a/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetBooleanResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseTest.java b/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseTest.java index 7857668d..e5d20892 100644 --- a/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPermissionSetBooleanResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetBooleanResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPermissionSetListTest.java b/src/test/java/com/rootly/client/model/IncidentPermissionSetListTest.java index 4b788d62..b00a16e5 100644 --- a/src/test/java/com/rootly/client/model/IncidentPermissionSetListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPermissionSetListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceListTest.java b/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceListTest.java index 58992191..1160c21b 100644 --- a/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceResponseTest.java b/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceResponseTest.java index 3d7ea6c1..c71fdd04 100644 --- a/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPermissionSetResourceResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResourceResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPermissionSetResponseTest.java b/src/test/java/com/rootly/client/model/IncidentPermissionSetResponseTest.java index e4b80410..595ea474 100644 --- a/src/test/java/com/rootly/client/model/IncidentPermissionSetResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPermissionSetResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPermissionSetResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPostMortemListTest.java b/src/test/java/com/rootly/client/model/IncidentPostMortemListTest.java index 9acdff7e..9ea5fe85 100644 --- a/src/test/java/com/rootly/client/model/IncidentPostMortemListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPostMortemListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPostMortemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentPostMortemResponseTest.java b/src/test/java/com/rootly/client/model/IncidentPostMortemResponseTest.java index 5fbcec64..51eb4234 100644 --- a/src/test/java/com/rootly/client/model/IncidentPostMortemResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentPostMortemResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentPostMortemResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentResponseTest.java b/src/test/java/com/rootly/client/model/IncidentResponseTest.java index f6b80083..aad29ac8 100644 --- a/src/test/java/com/rootly/client/model/IncidentResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentRetrospectiveStepResponseTest.java b/src/test/java/com/rootly/client/model/IncidentRetrospectiveStepResponseTest.java index 57b5778a..d9a37807 100644 --- a/src/test/java/com/rootly/client/model/IncidentRetrospectiveStepResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentRetrospectiveStepResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRetrospectiveStepResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentRoleListTest.java b/src/test/java/com/rootly/client/model/IncidentRoleListTest.java index 552a0213..0c97a86f 100644 --- a/src/test/java/com/rootly/client/model/IncidentRoleListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentRoleListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentRoleResponseTest.java b/src/test/java/com/rootly/client/model/IncidentRoleResponseTest.java index 50629636..9a8cf4cd 100644 --- a/src/test/java/com/rootly/client/model/IncidentRoleResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentRoleResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentRoleTaskListTest.java b/src/test/java/com/rootly/client/model/IncidentRoleTaskListTest.java index 85d744ab..c476de19 100644 --- a/src/test/java/com/rootly/client/model/IncidentRoleTaskListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentRoleTaskListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleTaskResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentRoleTaskResponseTest.java b/src/test/java/com/rootly/client/model/IncidentRoleTaskResponseTest.java index 07988260..61ca09a8 100644 --- a/src/test/java/com/rootly/client/model/IncidentRoleTaskResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentRoleTaskResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentRoleTaskResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentStatusPageEventListTest.java b/src/test/java/com/rootly/client/model/IncidentStatusPageEventListTest.java index 860c150b..c5c38ff2 100644 --- a/src/test/java/com/rootly/client/model/IncidentStatusPageEventListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentStatusPageEventListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentStatusPageEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentStatusPageEventResponseTest.java b/src/test/java/com/rootly/client/model/IncidentStatusPageEventResponseTest.java index e3d67634..3b181af1 100644 --- a/src/test/java/com/rootly/client/model/IncidentStatusPageEventResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentStatusPageEventResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentStatusPageEventResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInnerTest.java b/src/test/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInnerTest.java new file mode 100644 index 00000000..253e2825 --- /dev/null +++ b/src/test/java/com/rootly/client/model/IncidentStatusPageEventStatusPageComponentsInnerTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for IncidentStatusPageEventStatusPageComponentsInner + */ +public class IncidentStatusPageEventStatusPageComponentsInnerTest { + private final IncidentStatusPageEventStatusPageComponentsInner model = new IncidentStatusPageEventStatusPageComponentsInner(); + + /** + * Model tests for IncidentStatusPageEventStatusPageComponentsInner + */ + @Test + public void testIncidentStatusPageEventStatusPageComponentsInner() { + // TODO: test IncidentStatusPageEventStatusPageComponentsInner + } + + /** + * Test the property 'statusPageComponentId' + */ + @Test + public void statusPageComponentIdTest() { + // TODO: test statusPageComponentId + } + + /** + * Test the property 'status' + */ + @Test + public void statusTest() { + // TODO: test status + } + +} diff --git a/src/test/java/com/rootly/client/model/IncidentStatusPageEventTest.java b/src/test/java/com/rootly/client/model/IncidentStatusPageEventTest.java index 18992af4..daac99e6 100644 --- a/src/test/java/com/rootly/client/model/IncidentStatusPageEventTest.java +++ b/src/test/java/com/rootly/client/model/IncidentStatusPageEventTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.IncidentStatusPageEventStatusPageComponentsInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -77,6 +80,14 @@ public void shouldTweetTest() { // TODO: test shouldTweet } + /** + * Test the property 'statusPageComponents' + */ + @Test + public void statusPageComponentsTest() { + // TODO: test statusPageComponents + } + /** * Test the property 'startedAt' */ diff --git a/src/test/java/com/rootly/client/model/IncidentSubStatusListTest.java b/src/test/java/com/rootly/client/model/IncidentSubStatusListTest.java index 78197324..8cfe42a2 100644 --- a/src/test/java/com/rootly/client/model/IncidentSubStatusListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentSubStatusListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentSubStatusResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentSubStatusResponseTest.java b/src/test/java/com/rootly/client/model/IncidentSubStatusResponseTest.java index 97df89f3..06eccc61 100644 --- a/src/test/java/com/rootly/client/model/IncidentSubStatusResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentSubStatusResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentSubStatusResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentTest.java b/src/test/java/com/rootly/client/model/IncidentTest.java index 598dc6c5..6b5177f1 100644 --- a/src/test/java/com/rootly/client/model/IncidentTest.java +++ b/src/test/java/com/rootly/client/model/IncidentTest.java @@ -21,6 +21,7 @@ import com.rootly.client.model.EnvironmentResponse; import com.rootly.client.model.FunctionalityResponse; import com.rootly.client.model.IncidentTypeResponse; +import com.rootly.client.model.IncidentZoomMeetingGlobalDialInNumbersInner; import com.rootly.client.model.ServiceResponse; import com.rootly.client.model.SeverityResponse; import com.rootly.client.model.TeamResponse; @@ -374,6 +375,142 @@ public void googleMeetingUrlTest() { // TODO: test googleMeetingUrl } + /** + * Test the property 'microsoftTeamsMeetingId' + */ + @Test + public void microsoftTeamsMeetingIdTest() { + // TODO: test microsoftTeamsMeetingId + } + + /** + * Test the property 'microsoftTeamsMeetingUrl' + */ + @Test + public void microsoftTeamsMeetingUrlTest() { + // TODO: test microsoftTeamsMeetingUrl + } + + /** + * Test the property 'microsoftTeamsChannelId' + */ + @Test + public void microsoftTeamsChannelIdTest() { + // TODO: test microsoftTeamsChannelId + } + + /** + * Test the property 'microsoftTeamsChannelName' + */ + @Test + public void microsoftTeamsChannelNameTest() { + // TODO: test microsoftTeamsChannelName + } + + /** + * Test the property 'microsoftTeamsChannelUrl' + */ + @Test + public void microsoftTeamsChannelUrlTest() { + // TODO: test microsoftTeamsChannelUrl + } + + /** + * Test the property 'microsoftTeamsChannelShortUrl' + */ + @Test + public void microsoftTeamsChannelShortUrlTest() { + // TODO: test microsoftTeamsChannelShortUrl + } + + /** + * Test the property 'microsoftTeamsChatId' + */ + @Test + public void microsoftTeamsChatIdTest() { + // TODO: test microsoftTeamsChatId + } + + /** + * Test the property 'microsoftTeamsChatUrl' + */ + @Test + public void microsoftTeamsChatUrlTest() { + // TODO: test microsoftTeamsChatUrl + } + + /** + * Test the property 'microsoftTeamsTeamId' + */ + @Test + public void microsoftTeamsTeamIdTest() { + // TODO: test microsoftTeamsTeamId + } + + /** + * Test the property 'googleChatSpaceId' + */ + @Test + public void googleChatSpaceIdTest() { + // TODO: test googleChatSpaceId + } + + /** + * Test the property 'googleChatSpaceName' + */ + @Test + public void googleChatSpaceNameTest() { + // TODO: test googleChatSpaceName + } + + /** + * Test the property 'googleChatSpaceUrl' + */ + @Test + public void googleChatSpaceUrlTest() { + // TODO: test googleChatSpaceUrl + } + + /** + * Test the property 'googleChatSpaceShortUrl' + */ + @Test + public void googleChatSpaceShortUrlTest() { + // TODO: test googleChatSpaceShortUrl + } + + /** + * Test the property 'googleChatSpaceArchived' + */ + @Test + public void googleChatSpaceArchivedTest() { + // TODO: test googleChatSpaceArchived + } + + /** + * Test the property 'googleChatSpaceDomainId' + */ + @Test + public void googleChatSpaceDomainIdTest() { + // TODO: test googleChatSpaceDomainId + } + + /** + * Test the property 'webexMeetingId' + */ + @Test + public void webexMeetingIdTest() { + // TODO: test webexMeetingId + } + + /** + * Test the property 'webexMeetingUrl' + */ + @Test + public void webexMeetingUrlTest() { + // TODO: test webexMeetingUrl + } + /** * Test the property 'jiraIssueKey' */ diff --git a/src/test/java/com/rootly/client/model/IncidentTriggerParamsTest.java b/src/test/java/com/rootly/client/model/IncidentTriggerParamsTest.java index f2127dac..089e44bc 100644 --- a/src/test/java/com/rootly/client/model/IncidentTriggerParamsTest.java +++ b/src/test/java/com/rootly/client/model/IncidentTriggerParamsTest.java @@ -192,6 +192,30 @@ public void incidentConditionCauseTest() { // TODO: test incidentConditionCause } + /** + * Test the property 'incidentConditionLabel' + */ + @Test + public void incidentConditionLabelTest() { + // TODO: test incidentConditionLabel + } + + /** + * Test the property 'incidentConditionLabelUseRegexp' + */ + @Test + public void incidentConditionLabelUseRegexpTest() { + // TODO: test incidentConditionLabelUseRegexp + } + + /** + * Test the property 'incidentLabels' + */ + @Test + public void incidentLabelsTest() { + // TODO: test incidentLabels + } + /** * Test the property 'incidentPostMortemConditionCause' */ diff --git a/src/test/java/com/rootly/client/model/IncidentTypeListTest.java b/src/test/java/com/rootly/client/model/IncidentTypeListTest.java index 1849fb04..bde9a1fe 100644 --- a/src/test/java/com/rootly/client/model/IncidentTypeListTest.java +++ b/src/test/java/com/rootly/client/model/IncidentTypeListTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import java.io.IOException; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentTypeResponseTest.java b/src/test/java/com/rootly/client/model/IncidentTypeResponseTest.java index 014585b7..7beb408d 100644 --- a/src/test/java/com/rootly/client/model/IncidentTypeResponseTest.java +++ b/src/test/java/com/rootly/client/model/IncidentTypeResponseTest.java @@ -19,8 +19,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.IncidentTypeResponseData; +import com.rootly.client.model.JsonapiIncludedResource; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/IncidentTypeTest.java b/src/test/java/com/rootly/client/model/IncidentTypeTest.java index 91a47a6e..8d09b89c 100644 --- a/src/test/java/com/rootly/client/model/IncidentTypeTest.java +++ b/src/test/java/com/rootly/client/model/IncidentTypeTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -66,6 +67,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'color' */ @@ -106,6 +115,14 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/IncidentsChartResponseTest.java b/src/test/java/com/rootly/client/model/IncidentsChartResponseTest.java new file mode 100644 index 00000000..4ff2f4ff --- /dev/null +++ b/src/test/java/com/rootly/client/model/IncidentsChartResponseTest.java @@ -0,0 +1,48 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for IncidentsChartResponse + */ +public class IncidentsChartResponseTest { + private final IncidentsChartResponse model = new IncidentsChartResponse(); + + /** + * Model tests for IncidentsChartResponse + */ + @Test + public void testIncidentsChartResponse() { + // TODO: test IncidentsChartResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParamsTest.java b/src/test/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParamsTest.java new file mode 100644 index 00000000..e064baa5 --- /dev/null +++ b/src/test/java/com/rootly/client/model/InviteToGoogleChatSpaceTaskParamsTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for InviteToGoogleChatSpaceTaskParams + */ +public class InviteToGoogleChatSpaceTaskParamsTest { + private final InviteToGoogleChatSpaceTaskParams model = new InviteToGoogleChatSpaceTaskParams(); + + /** + * Model tests for InviteToGoogleChatSpaceTaskParams + */ + @Test + public void testInviteToGoogleChatSpaceTaskParams() { + // TODO: test InviteToGoogleChatSpaceTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'space' + */ + @Test + public void spaceTest() { + // TODO: test space + } + + /** + * Test the property 'emails' + */ + @Test + public void emailsTest() { + // TODO: test emails + } + +} diff --git a/src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerTest.java b/src/test/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParamsTest.java similarity index 71% rename from src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerTest.java rename to src/test/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParamsTest.java index e10b6249..8c2020f0 100644 --- a/src/test/java/com/rootly/client/model/EscalationPolicyPathRulesInnerTest.java +++ b/src/test/java/com/rootly/client/model/InviteToMicrosoftTeamsChannelRootlyTaskParamsTest.java @@ -18,76 +18,88 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.EscalationPolicyPathRulesInnerAnyOf; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for EscalationPolicyPathRulesInner + * Model tests for InviteToMicrosoftTeamsChannelRootlyTaskParams */ -public class EscalationPolicyPathRulesInnerTest { - private final EscalationPolicyPathRulesInner model = new EscalationPolicyPathRulesInner(); +public class InviteToMicrosoftTeamsChannelRootlyTaskParamsTest { + private final InviteToMicrosoftTeamsChannelRootlyTaskParams model = new InviteToMicrosoftTeamsChannelRootlyTaskParams(); /** - * Model tests for EscalationPolicyPathRulesInner + * Model tests for InviteToMicrosoftTeamsChannelRootlyTaskParams */ @Test - public void testEscalationPolicyPathRulesInner() { - // TODO: test EscalationPolicyPathRulesInner + public void testInviteToMicrosoftTeamsChannelRootlyTaskParams() { + // TODO: test InviteToMicrosoftTeamsChannelRootlyTaskParams } /** - * Test the property 'ruleType' + * Test the property 'taskType' */ @Test - public void ruleTypeTest() { - // TODO: test ruleType + public void taskTypeTest() { + // TODO: test taskType } /** - * Test the property 'urgencyIds' + * Test the property 'team' */ @Test - public void urgencyIdsTest() { - // TODO: test urgencyIds + public void teamTest() { + // TODO: test team } /** - * Test the property 'withinWorkingHour' + * Test the property 'channel' */ @Test - public void withinWorkingHourTest() { - // TODO: test withinWorkingHour + public void channelTest() { + // TODO: test channel } /** - * Test the property 'jsonPath' + * Test the property 'escalationPolicyTarget' */ @Test - public void jsonPathTest() { - // TODO: test jsonPath + public void escalationPolicyTargetTest() { + // TODO: test escalationPolicyTarget } /** - * Test the property 'operator' + * Test the property 'serviceTarget' */ @Test - public void operatorTest() { - // TODO: test operator + public void serviceTargetTest() { + // TODO: test serviceTarget } /** - * Test the property 'value' + * Test the property 'userTarget' */ @Test - public void valueTest() { - // TODO: test value + public void userTargetTest() { + // TODO: test userTarget + } + + /** + * Test the property 'groupTarget' + */ + @Test + public void groupTargetTest() { + // TODO: test groupTarget + } + + /** + * Test the property 'scheduleTarget' + */ + @Test + public void scheduleTargetTest() { + // TODO: test scheduleTarget } } diff --git a/src/test/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParamsTest.java b/src/test/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParamsTest.java index 00890fbb..4bac5529 100644 --- a/src/test/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/InviteToSlackChannelPagerdutyTaskParamsTest.java @@ -18,6 +18,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf; +import com.rootly.client.model.AutoAssignRolePagerdutyTaskParamsAnyOf1; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -39,4 +42,20 @@ public void testInviteToSlackChannelPagerdutyTaskParams() { // TODO: test InviteToSlackChannelPagerdutyTaskParams } + /** + * Test the property 'escalationPolicy' + */ + @Test + public void escalationPolicyTest() { + // TODO: test escalationPolicy + } + + /** + * Test the property 'schedule' + */ + @Test + public void scheduleTest() { + // TODO: test schedule + } + } diff --git a/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1Test.java b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1Test.java new file mode 100644 index 00000000..3aae962b --- /dev/null +++ b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf1Test.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for InviteToSlackChannelTaskParamsAnyOf1 + */ +public class InviteToSlackChannelTaskParamsAnyOf1Test { + private final InviteToSlackChannelTaskParamsAnyOf1 model = new InviteToSlackChannelTaskParamsAnyOf1(); + + /** + * Model tests for InviteToSlackChannelTaskParamsAnyOf1 + */ + @Test + public void testInviteToSlackChannelTaskParamsAnyOf1() { + // TODO: test InviteToSlackChannelTaskParamsAnyOf1 + } + + /** + * Test the property 'slackUserGroups' + */ + @Test + public void slackUserGroupsTest() { + // TODO: test slackUserGroups + } + +} diff --git a/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2Test.java b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2Test.java new file mode 100644 index 00000000..6d1a45d8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOf2Test.java @@ -0,0 +1,48 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for InviteToSlackChannelTaskParamsAnyOf2 + */ +public class InviteToSlackChannelTaskParamsAnyOf2Test { + private final InviteToSlackChannelTaskParamsAnyOf2 model = new InviteToSlackChannelTaskParamsAnyOf2(); + + /** + * Model tests for InviteToSlackChannelTaskParamsAnyOf2 + */ + @Test + public void testInviteToSlackChannelTaskParamsAnyOf2() { + // TODO: test InviteToSlackChannelTaskParamsAnyOf2 + } + + /** + * Test the property 'slackEmails' + */ + @Test + public void slackEmailsTest() { + // TODO: test slackEmails + } + +} diff --git a/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOfTest.java b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOfTest.java new file mode 100644 index 00000000..e363d951 --- /dev/null +++ b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsAnyOfTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for InviteToSlackChannelTaskParamsAnyOf + */ +public class InviteToSlackChannelTaskParamsAnyOfTest { + private final InviteToSlackChannelTaskParamsAnyOf model = new InviteToSlackChannelTaskParamsAnyOf(); + + /** + * Model tests for InviteToSlackChannelTaskParamsAnyOf + */ + @Test + public void testInviteToSlackChannelTaskParamsAnyOf() { + // TODO: test InviteToSlackChannelTaskParamsAnyOf + } + + /** + * Test the property 'slackUsers' + */ + @Test + public void slackUsersTest() { + // TODO: test slackUsers + } + +} diff --git a/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsTest.java b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsTest.java index 09504f88..62159f31 100644 --- a/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/InviteToSlackChannelTaskParamsTest.java @@ -18,6 +18,10 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf1; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf2; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -39,4 +43,28 @@ public void testInviteToSlackChannelTaskParams() { // TODO: test InviteToSlackChannelTaskParams } + /** + * Test the property 'slackUsers' + */ + @Test + public void slackUsersTest() { + // TODO: test slackUsers + } + + /** + * Test the property 'slackUserGroups' + */ + @Test + public void slackUserGroupsTest() { + // TODO: test slackUserGroups + } + + /** + * Test the property 'slackEmails' + */ + @Test + public void slackEmailsTest() { + // TODO: test slackEmails + } + } diff --git a/src/test/java/com/rootly/client/model/JsonapiIncludedResourceTest.java b/src/test/java/com/rootly/client/model/JsonapiIncludedResourceTest.java new file mode 100644 index 00000000..564f34c1 --- /dev/null +++ b/src/test/java/com/rootly/client/model/JsonapiIncludedResourceTest.java @@ -0,0 +1,74 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for JsonapiIncludedResource + */ +public class JsonapiIncludedResourceTest { + private final JsonapiIncludedResource model = new JsonapiIncludedResource(); + + /** + * Model tests for JsonapiIncludedResource + */ + @Test + public void testJsonapiIncludedResource() { + // TODO: test JsonapiIncludedResource + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + + /** + * Test the property 'relationships' + */ + @Test + public void relationshipsTest() { + // TODO: test relationships + } + +} diff --git a/src/test/java/com/rootly/client/model/LiveCallRouterListTest.java b/src/test/java/com/rootly/client/model/LiveCallRouterListTest.java index cfecb8da..688554f9 100644 --- a/src/test/java/com/rootly/client/model/LiveCallRouterListTest.java +++ b/src/test/java/com/rootly/client/model/LiveCallRouterListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.LiveCallRouterResponseData; import com.rootly.client.model.Meta; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/LiveCallRouterResponseTest.java b/src/test/java/com/rootly/client/model/LiveCallRouterResponseTest.java index c81985b5..89ebad71 100644 --- a/src/test/java/com/rootly/client/model/LiveCallRouterResponseTest.java +++ b/src/test/java/com/rootly/client/model/LiveCallRouterResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.LiveCallRouterResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/LiveCallRouterTest.java b/src/test/java/com/rootly/client/model/LiveCallRouterTest.java index 26c668b4..4b6ed737 100644 --- a/src/test/java/com/rootly/client/model/LiveCallRouterTest.java +++ b/src/test/java/com/rootly/client/model/LiveCallRouterTest.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -105,6 +106,14 @@ public void callerGreetingTest() { // TODO: test callerGreeting } + /** + * Test the property 'unavailableResponderMessage' + */ + @Test + public void unavailableResponderMessageTest() { + // TODO: test unavailableResponderMessage + } + /** * Test the property 'waitingMusicUrl' */ @@ -145,6 +154,30 @@ public void shouldAutoResolveAlertOnCallEndTest() { // TODO: test shouldAutoResolveAlertOnCallEnd } + /** + * Test the property 'notifyViaSms' + */ + @Test + public void notifyViaSmsTest() { + // TODO: test notifyViaSms + } + + /** + * Test the property 'notifyViaPushNotification' + */ + @Test + public void notifyViaPushNotificationTest() { + // TODO: test notifyViaPushNotification + } + + /** + * Test the property 'informationalNotificationMessage' + */ + @Test + public void informationalNotificationMessageTest() { + // TODO: test informationalNotificationMessage + } + /** * Test the property 'alertUrgencyId' */ diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscriptTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscriptTest.java new file mode 100644 index 00000000..1c10ee9c --- /dev/null +++ b/src/test/java/com/rootly/client/model/MeetingRecordingDetailAllOfTranscriptTest.java @@ -0,0 +1,35 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.rootly.client.model.MeetingRecordingTranscriptSegment; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for MeetingRecordingDetailAllOfTranscript + */ +public class MeetingRecordingDetailAllOfTranscriptTest { + private final MeetingRecordingDetailAllOfTranscript model = new MeetingRecordingDetailAllOfTranscript(); + + /** + * Model tests for MeetingRecordingDetailAllOfTranscript + */ + @Test + public void testMeetingRecordingDetailAllOfTranscript() { + // TODO: test MeetingRecordingDetailAllOfTranscript + } + +} diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseDataTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseDataTest.java new file mode 100644 index 00000000..2cb12b17 --- /dev/null +++ b/src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingDetail; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for MeetingRecordingDetailResponseData + */ +public class MeetingRecordingDetailResponseDataTest { + private final MeetingRecordingDetailResponseData model = new MeetingRecordingDetailResponseData(); + + /** + * Model tests for MeetingRecordingDetailResponseData + */ + @Test + public void testMeetingRecordingDetailResponseData() { + // TODO: test MeetingRecordingDetailResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseTest.java new file mode 100644 index 00000000..977fa069 --- /dev/null +++ b/src/test/java/com/rootly/client/model/MeetingRecordingDetailResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingDetailResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for MeetingRecordingDetailResponse + */ +public class MeetingRecordingDetailResponseTest { + private final MeetingRecordingDetailResponse model = new MeetingRecordingDetailResponse(); + + /** + * Model tests for MeetingRecordingDetailResponse + */ + @Test + public void testMeetingRecordingDetailResponse() { + // TODO: test MeetingRecordingDetailResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingDetailTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingDetailTest.java new file mode 100644 index 00000000..638687ac --- /dev/null +++ b/src/test/java/com/rootly/client/model/MeetingRecordingDetailTest.java @@ -0,0 +1,196 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingDetailAllOfTranscript; +import java.io.IOException; +import java.math.BigDecimal; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for MeetingRecordingDetail + */ +public class MeetingRecordingDetailTest { + private final MeetingRecordingDetail model = new MeetingRecordingDetail(); + + /** + * Model tests for MeetingRecordingDetail + */ + @Test + public void testMeetingRecordingDetail() { + // TODO: test MeetingRecordingDetail + } + + /** + * Test the property 'platform' + */ + @Test + public void platformTest() { + // TODO: test platform + } + + /** + * Test the property 'sessionNumber' + */ + @Test + public void sessionNumberTest() { + // TODO: test sessionNumber + } + + /** + * Test the property 'status' + */ + @Test + public void statusTest() { + // TODO: test status + } + + /** + * Test the property 'startedAt' + */ + @Test + public void startedAtTest() { + // TODO: test startedAt + } + + /** + * Test the property 'endedAt' + */ + @Test + public void endedAtTest() { + // TODO: test endedAt + } + + /** + * Test the property 'durationMinutes' + */ + @Test + public void durationMinutesTest() { + // TODO: test durationMinutes + } + + /** + * Test the property 'speakerCount' + */ + @Test + public void speakerCountTest() { + // TODO: test speakerCount + } + + /** + * Test the property 'wordCount' + */ + @Test + public void wordCountTest() { + // TODO: test wordCount + } + + /** + * Test the property 'transcriptSummary' + */ + @Test + public void transcriptSummaryTest() { + // TODO: test transcriptSummary + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'meetingUrl' + */ + @Test + public void meetingUrlTest() { + // TODO: test meetingUrl + } + + /** + * Test the property 'videoUrl' + */ + @Test + public void videoUrlTest() { + // TODO: test videoUrl + } + + /** + * Test the property 'createdBy' + */ + @Test + public void createdByTest() { + // TODO: test createdBy + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + + /** + * Test the property 'transcript' + */ + @Test + public void transcriptTest() { + // TODO: test transcript + } + + /** + * Test the property 'recallUploadId' + */ + @Test + public void recallUploadIdTest() { + // TODO: test recallUploadId + } + + /** + * Test the property 'recordableId' + */ + @Test + public void recordableIdTest() { + // TODO: test recordableId + } + + /** + * Test the property 'recordableType' + */ + @Test + public void recordableTypeTest() { + // TODO: test recordableType + } + +} diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingListTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingListTest.java index 5e0ab4ae..032bc907 100644 --- a/src/test/java/com/rootly/client/model/MeetingRecordingListTest.java +++ b/src/test/java/com/rootly/client/model/MeetingRecordingListTest.java @@ -18,7 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.MeetingRecordingListDataInner; +import com.rootly.client.model.MeetingRecordingResponseData; import com.rootly.client.model.Meta; import java.io.IOException; import java.util.ArrayList; diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingListDataInnerTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingResponseDataTest.java similarity index 91% rename from src/test/java/com/rootly/client/model/MeetingRecordingListDataInnerTest.java rename to src/test/java/com/rootly/client/model/MeetingRecordingResponseDataTest.java index a2104482..a97b58a3 100644 --- a/src/test/java/com/rootly/client/model/MeetingRecordingListDataInnerTest.java +++ b/src/test/java/com/rootly/client/model/MeetingRecordingResponseDataTest.java @@ -25,17 +25,17 @@ import org.junit.jupiter.api.Test; /** - * Model tests for MeetingRecordingListDataInner + * Model tests for MeetingRecordingResponseData */ -public class MeetingRecordingListDataInnerTest { - private final MeetingRecordingListDataInner model = new MeetingRecordingListDataInner(); +public class MeetingRecordingResponseDataTest { + private final MeetingRecordingResponseData model = new MeetingRecordingResponseData(); /** - * Model tests for MeetingRecordingListDataInner + * Model tests for MeetingRecordingResponseData */ @Test - public void testMeetingRecordingListDataInner() { - // TODO: test MeetingRecordingListDataInner + public void testMeetingRecordingResponseData() { + // TODO: test MeetingRecordingResponseData } /** diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingResponseTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingResponseTest.java new file mode 100644 index 00000000..2b60eb89 --- /dev/null +++ b/src/test/java/com/rootly/client/model/MeetingRecordingResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for MeetingRecordingResponse + */ +public class MeetingRecordingResponseTest { + private final MeetingRecordingResponse model = new MeetingRecordingResponse(); + + /** + * Model tests for MeetingRecordingResponse + */ + @Test + public void testMeetingRecordingResponse() { + // TODO: test MeetingRecordingResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingTest.java index 6d1d266f..add19c57 100644 --- a/src/test/java/com/rootly/client/model/MeetingRecordingTest.java +++ b/src/test/java/com/rootly/client/model/MeetingRecordingTest.java @@ -113,11 +113,35 @@ public void transcriptSummaryTest() { } /** - * Test the property 'hasVideo' + * Test the property 'title' */ @Test - public void hasVideoTest() { - // TODO: test hasVideo + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'meetingUrl' + */ + @Test + public void meetingUrlTest() { + // TODO: test meetingUrl + } + + /** + * Test the property 'videoUrl' + */ + @Test + public void videoUrlTest() { + // TODO: test videoUrl + } + + /** + * Test the property 'createdBy' + */ + @Test + public void createdByTest() { + // TODO: test createdBy } /** diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingTranscriptSegmentTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingTranscriptSegmentTest.java new file mode 100644 index 00000000..b1ddaea8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/MeetingRecordingTranscriptSegmentTest.java @@ -0,0 +1,59 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.MeetingRecordingTranscriptWord; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for MeetingRecordingTranscriptSegment + */ +public class MeetingRecordingTranscriptSegmentTest { + private final MeetingRecordingTranscriptSegment model = new MeetingRecordingTranscriptSegment(); + + /** + * Model tests for MeetingRecordingTranscriptSegment + */ + @Test + public void testMeetingRecordingTranscriptSegment() { + // TODO: test MeetingRecordingTranscriptSegment + } + + /** + * Test the property 'speaker' + */ + @Test + public void speakerTest() { + // TODO: test speaker + } + + /** + * Test the property 'words' + */ + @Test + public void wordsTest() { + // TODO: test words + } + +} diff --git a/src/test/java/com/rootly/client/model/MeetingRecordingTranscriptWordTest.java b/src/test/java/com/rootly/client/model/MeetingRecordingTranscriptWordTest.java new file mode 100644 index 00000000..bc4638ff --- /dev/null +++ b/src/test/java/com/rootly/client/model/MeetingRecordingTranscriptWordTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for MeetingRecordingTranscriptWord + */ +public class MeetingRecordingTranscriptWordTest { + private final MeetingRecordingTranscriptWord model = new MeetingRecordingTranscriptWord(); + + /** + * Model tests for MeetingRecordingTranscriptWord + */ + @Test + public void testMeetingRecordingTranscriptWord() { + // TODO: test MeetingRecordingTranscriptWord + } + + /** + * Test the property 'text' + */ + @Test + public void textTest() { + // TODO: test text + } + + /** + * Test the property 'startTimestamp' + */ + @Test + public void startTimestampTest() { + // TODO: test startTimestamp + } + + /** + * Test the property 'endTimestamp' + */ + @Test + public void endTimestampTest() { + // TODO: test endTimestamp + } + +} diff --git a/src/test/java/com/rootly/client/model/MetaTest.java b/src/test/java/com/rootly/client/model/MetaTest.java index 6f02d1c7..bcdfcebb 100644 --- a/src/test/java/com/rootly/client/model/MetaTest.java +++ b/src/test/java/com/rootly/client/model/MetaTest.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -37,6 +38,14 @@ public void testMeta() { // TODO: test Meta } + /** + * Test the property 'nextCursor' + */ + @Test + public void nextCursorTest() { + // TODO: test nextCursor + } + /** * Test the property 'currentPage' */ diff --git a/src/test/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInnerTest.java b/src/test/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInnerTest.java new file mode 100644 index 00000000..9040b3b1 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewAlertDataAttributesNotificationTargetsInnerTest.java @@ -0,0 +1,56 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewAlertDataAttributesNotificationTargetsInner + */ +public class NewAlertDataAttributesNotificationTargetsInnerTest { + private final NewAlertDataAttributesNotificationTargetsInner model = new NewAlertDataAttributesNotificationTargetsInner(); + + /** + * Model tests for NewAlertDataAttributesNotificationTargetsInner + */ + @Test + public void testNewAlertDataAttributesNotificationTargetsInner() { + // TODO: test NewAlertDataAttributesNotificationTargetsInner + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + +} diff --git a/src/test/java/com/rootly/client/model/NewAlertDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewAlertDataAttributesTest.java index be1d9718..0b11d940 100644 --- a/src/test/java/com/rootly/client/model/NewAlertDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewAlertDataAttributesTest.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.NewAlertDataAttributesAlertFieldValuesAttributesInner; import com.rootly.client.model.NewAlertDataAttributesLabelsInner; +import com.rootly.client.model.NewAlertDataAttributesNotificationTargetsInner; import java.io.IOException; import java.time.OffsetDateTime; import java.util.ArrayList; @@ -99,6 +100,14 @@ public void groupIdsTest() { // TODO: test groupIds } + /** + * Test the property 'functionalityIds' + */ + @Test + public void functionalityIdsTest() { + // TODO: test functionalityIds + } + /** * Test the property 'environmentIds' */ @@ -163,6 +172,14 @@ public void notificationTargetIdTest() { // TODO: test notificationTargetId } + /** + * Test the property 'notificationTargets' + */ + @Test + public void notificationTargetsTest() { + // TODO: test notificationTargets + } + /** * Test the property 'labels' */ diff --git a/src/test/java/com/rootly/client/model/NewAlertFieldDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewAlertFieldDataAttributesTest.java index b26cba87..c13647e7 100644 --- a/src/test/java/com/rootly/client/model/NewAlertFieldDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewAlertFieldDataAttributesTest.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -37,6 +38,14 @@ public void testNewAlertFieldDataAttributes() { // TODO: test NewAlertFieldDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewAlertGroupDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewAlertGroupDataAttributesTest.java index ecfddeb0..0a27b6a5 100644 --- a/src/test/java/com/rootly/client/model/NewAlertGroupDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewAlertGroupDataAttributesTest.java @@ -43,6 +43,14 @@ public void testNewAlertGroupDataAttributes() { // TODO: test NewAlertGroupDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInnerTest.java b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInnerTest.java new file mode 100644 index 00000000..432e2d73 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesConditionsInnerTest.java @@ -0,0 +1,83 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewAlertRetriggerRuleDataAttributesConditionsInner + */ +public class NewAlertRetriggerRuleDataAttributesConditionsInnerTest { + private final NewAlertRetriggerRuleDataAttributesConditionsInner model = new NewAlertRetriggerRuleDataAttributesConditionsInner(); + + /** + * Model tests for NewAlertRetriggerRuleDataAttributesConditionsInner + */ + @Test + public void testNewAlertRetriggerRuleDataAttributesConditionsInner() { + // TODO: test NewAlertRetriggerRuleDataAttributesConditionsInner + } + + /** + * Test the property 'kind' + */ + @Test + public void kindTest() { + // TODO: test kind + } + + /** + * Test the property 'operator' + */ + @Test + public void operatorTest() { + // TODO: test operator + } + + /** + * Test the property 'recordIds' + */ + @Test + public void recordIdsTest() { + // TODO: test recordIds + } + + /** + * Test the property 'values' + */ + @Test + public void valuesTest() { + // TODO: test values + } + + /** + * Test the property 'propertyFieldName' + */ + @Test + public void propertyFieldNameTest() { + // TODO: test propertyFieldName + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest.java b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesTest.java similarity index 80% rename from src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest.java rename to src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesTest.java index f0b939cf..bc88cb3b 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest.java +++ b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataAttributesTest.java @@ -18,35 +18,51 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerConditionsInner; +import com.rootly.client.model.NewAlertRetriggerRuleDataAttributesConditionsInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.UUID; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner + * Model tests for NewAlertRetriggerRuleDataAttributes */ -public class UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInnerTest { - private final UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner model = new UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner(); +public class NewAlertRetriggerRuleDataAttributesTest { + private final NewAlertRetriggerRuleDataAttributes model = new NewAlertRetriggerRuleDataAttributes(); /** - * Model tests for UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner + * Model tests for NewAlertRetriggerRuleDataAttributes */ @Test - public void testUpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner() { - // TODO: test UpdateAlertRouteDataAttributesRulesInnerConditionGroupsInner + public void testNewAlertRetriggerRuleDataAttributes() { + // TODO: test NewAlertRetriggerRuleDataAttributes } /** - * Test the property 'id' + * Test the property 'name' */ @Test - public void idTest() { - // TODO: test id + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'matchMode' + */ + @Test + public void matchModeTest() { + // TODO: test matchMode + } + + /** + * Test the property 'timeoutMinutes' + */ + @Test + public void timeoutMinutesTest() { + // TODO: test timeoutMinutes } /** diff --git a/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataTest.java b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataTest.java new file mode 100644 index 00000000..4b2ac1c8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertRetriggerRuleDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewAlertRetriggerRuleData + */ +public class NewAlertRetriggerRuleDataTest { + private final NewAlertRetriggerRuleData model = new NewAlertRetriggerRuleData(); + + /** + * Model tests for NewAlertRetriggerRuleData + */ + @Test + public void testNewAlertRetriggerRuleData() { + // TODO: test NewAlertRetriggerRuleData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleTest.java b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleTest.java new file mode 100644 index 00000000..9b61c12d --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewAlertRetriggerRuleTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertRetriggerRuleData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewAlertRetriggerRule + */ +public class NewAlertRetriggerRuleTest { + private final NewAlertRetriggerRule model = new NewAlertRetriggerRule(); + + /** + * Model tests for NewAlertRetriggerRule + */ + @Test + public void testNewAlertRetriggerRule() { + // TODO: test NewAlertRetriggerRule + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/NewAlertUrgencyDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewAlertUrgencyDataAttributesTest.java index 05fed049..9b57b61f 100644 --- a/src/test/java/com/rootly/client/model/NewAlertUrgencyDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewAlertUrgencyDataAttributesTest.java @@ -62,4 +62,12 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'retriggerTimeoutMinutes' + */ + @Test + public void retriggerTimeoutMinutesTest() { + // TODO: test retriggerTimeoutMinutes + } + } diff --git a/src/test/java/com/rootly/client/model/NewAlertsSourceDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewAlertsSourceDataAttributesTest.java index 65d5529e..f63ba3a7 100644 --- a/src/test/java/com/rootly/client/model/NewAlertsSourceDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewAlertsSourceDataAttributesTest.java @@ -53,6 +53,14 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'enabled' + */ + @Test + public void enabledTest() { + // TODO: test enabled + } + /** * Test the property 'sourceType' */ diff --git a/src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesTest.java index 52b24e62..eaa5fefa 100644 --- a/src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCatalogChecklistTemplateDataAttributesTest.java @@ -42,6 +42,14 @@ public void testNewCatalogChecklistTemplateDataAttributes() { // TODO: test NewCatalogChecklistTemplateDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewCatalogDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCatalogDataAttributesTest.java index ad7ddfd2..e34b8fe1 100644 --- a/src/test/java/com/rootly/client/model/NewCatalogDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCatalogDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewCatalogDataAttributes() { // TODO: test NewCatalogDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -70,4 +78,12 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + } diff --git a/src/test/java/com/rootly/client/model/NewCatalogEntityDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCatalogEntityDataAttributesTest.java index a291726d..c996b88e 100644 --- a/src/test/java/com/rootly/client/model/NewCatalogEntityDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCatalogEntityDataAttributesTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCatalogEntityDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -38,6 +41,14 @@ public void testNewCatalogEntityDataAttributes() { // TODO: test NewCatalogEntityDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -54,6 +65,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'position' */ @@ -62,4 +81,28 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'backstageId' + */ + @Test + public void backstageIdTest() { + // TODO: test backstageId + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/NewCatalogFieldDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCatalogFieldDataAttributesTest.java index b6634038..7cd816cb 100644 --- a/src/test/java/com/rootly/client/model/NewCatalogFieldDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCatalogFieldDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewCatalogFieldDataAttributes() { // TODO: test NewCatalogFieldDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -78,4 +86,28 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'required' + */ + @Test + public void requiredTest() { + // TODO: test required + } + + /** + * Test the property 'catalogType' + */ + @Test + public void catalogTypeTest() { + // TODO: test catalogType + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + } diff --git a/src/test/java/com/rootly/client/model/NewCatalogPropertyDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCatalogPropertyDataAttributesTest.java index 6ea35a67..b7cdb187 100644 --- a/src/test/java/com/rootly/client/model/NewCatalogPropertyDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCatalogPropertyDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewCatalogPropertyDataAttributes() { // TODO: test NewCatalogPropertyDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -94,4 +102,12 @@ public void catalogTypeTest() { // TODO: test catalogType } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + } diff --git a/src/test/java/com/rootly/client/model/NewCauseDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCauseDataAttributesTest.java index 58c905fb..7c1dce66 100644 --- a/src/test/java/com/rootly/client/model/NewCauseDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCauseDataAttributesTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -38,6 +41,14 @@ public void testNewCauseDataAttributes() { // TODO: test NewCauseDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -54,6 +65,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'position' */ @@ -62,4 +81,12 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/NewCommunicationsStageDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCommunicationsStageDataAttributesTest.java index 2c2f4122..ca779d39 100644 --- a/src/test/java/com/rootly/client/model/NewCommunicationsStageDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCommunicationsStageDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewCommunicationsStageDataAttributes() { // TODO: test NewCommunicationsStageDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewCommunicationsTypeDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCommunicationsTypeDataAttributesTest.java index a1ddd327..4ddb6c4a 100644 --- a/src/test/java/com/rootly/client/model/NewCommunicationsTypeDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCommunicationsTypeDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewCommunicationsTypeDataAttributes() { // TODO: test NewCommunicationsTypeDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewCustomFormDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewCustomFormDataAttributesTest.java index f4fa3d91..fe82e6c4 100644 --- a/src/test/java/com/rootly/client/model/NewCustomFormDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewCustomFormDataAttributesTest.java @@ -39,19 +39,19 @@ public void testNewCustomFormDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/NewEnvironmentDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewEnvironmentDataAttributesTest.java index d9a81e0e..fabf202d 100644 --- a/src/test/java/com/rootly/client/model/NewEnvironmentDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewEnvironmentDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -42,6 +43,14 @@ public void testNewEnvironmentDataAttributes() { // TODO: test NewEnvironmentDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -58,6 +67,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'color' */ @@ -74,6 +91,14 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + /** * Test the property 'notifyEmails' */ @@ -98,4 +123,12 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesTest.java index 2a9616b8..cffa5d59 100644 --- a/src/test/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewEscalationPolicyLevelDataAttributesTest.java @@ -73,6 +73,38 @@ public void pagingStrategyConfigurationScheduleStrategyTest() { // TODO: test pagingStrategyConfigurationScheduleStrategy } + /** + * Test the property 'pagingStrategyConfigurationRepeats' + */ + @Test + public void pagingStrategyConfigurationRepeatsTest() { + // TODO: test pagingStrategyConfigurationRepeats + } + + /** + * Test the property 'pagingStrategyConfigurationRepeatsMode' + */ + @Test + public void pagingStrategyConfigurationRepeatsModeTest() { + // TODO: test pagingStrategyConfigurationRepeatsMode + } + + /** + * Test the property 'pagingStrategyConfigurationRotationScope' + */ + @Test + public void pagingStrategyConfigurationRotationScopeTest() { + // TODO: test pagingStrategyConfigurationRotationScope + } + + /** + * Test the property 'pagingStrategyConfigurationPageUsersCount' + */ + @Test + public void pagingStrategyConfigurationPageUsersCountTest() { + // TODO: test pagingStrategyConfigurationPageUsersCount + } + /** * Test the property 'escalationPolicyPathId' */ diff --git a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2Test.java b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6Test.java similarity index 90% rename from src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2Test.java rename to src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6Test.java index bfcd6df8..b93d83fa 100644 --- a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2Test.java +++ b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf6Test.java @@ -19,22 +19,24 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 */ -public class NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2Test { - private final NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 model = new NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2(); +public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf6Test { + private final NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 model = new NewEscalationPolicyPathDataAttributesRulesInnerOneOf6(); /** - * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 */ @Test - public void testNewEscalationPolicyPathDataAttributesRulesInnerAnyOf2() { - // TODO: test NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2 + public void testNewEscalationPolicyPathDataAttributesRulesInnerOneOf6() { + // TODO: test NewEscalationPolicyPathDataAttributesRulesInnerOneOf6 } /** @@ -45,14 +47,6 @@ public void ruleTypeTest() { // TODO: test ruleType } - /** - * Test the property 'jsonPath' - */ - @Test - public void jsonPathTest() { - // TODO: test jsonPath - } - /** * Test the property 'operator' */ @@ -62,11 +56,11 @@ public void operatorTest() { } /** - * Test the property 'value' + * Test the property 'values' */ @Test - public void valueTest() { - // TODO: test value + public void valuesTest() { + // TODO: test values } } diff --git a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1Test.java b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7Test.java similarity index 92% rename from src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1Test.java rename to src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7Test.java index 3ee7c0d8..4695dd40 100644 --- a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1Test.java +++ b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerOneOf7Test.java @@ -24,17 +24,17 @@ import org.junit.jupiter.api.Test; /** - * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 + * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 */ -public class NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1Test { - private final NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 model = new NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1(); +public class NewEscalationPolicyPathDataAttributesRulesInnerOneOf7Test { + private final NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 model = new NewEscalationPolicyPathDataAttributesRulesInnerOneOf7(); /** - * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 + * Model tests for NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 */ @Test - public void testNewEscalationPolicyPathDataAttributesRulesInnerAnyOf1() { - // TODO: test NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1 + public void testNewEscalationPolicyPathDataAttributesRulesInnerOneOf7() { + // TODO: test NewEscalationPolicyPathDataAttributesRulesInnerOneOf7 } /** @@ -46,11 +46,11 @@ public void ruleTypeTest() { } /** - * Test the property 'withinWorkingHour' + * Test the property 'operator' */ @Test - public void withinWorkingHourTest() { - // TODO: test withinWorkingHour + public void operatorTest() { + // TODO: test operator } } diff --git a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerTest.java b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerTest.java index ff5b2d48..69222e99 100644 --- a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerTest.java +++ b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesRulesInnerTest.java @@ -18,13 +18,20 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf1; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf3; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf4; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf6; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf7; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -90,4 +97,52 @@ public void valueTest() { // TODO: test value } + /** + * Test the property 'values' + */ + @Test + public void valuesTest() { + // TODO: test values + } + + /** + * Test the property 'fieldableType' + */ + @Test + public void fieldableTypeTest() { + // TODO: test fieldableType + } + + /** + * Test the property 'fieldableId' + */ + @Test + public void fieldableIdTest() { + // TODO: test fieldableId + } + + /** + * Test the property 'serviceIds' + */ + @Test + public void serviceIdsTest() { + // TODO: test serviceIds + } + + /** + * Test the property 'timeZone' + */ + @Test + public void timeZoneTest() { + // TODO: test timeZone + } + + /** + * Test the property 'timeBlocks' + */ + @Test + public void timeBlocksTest() { + // TODO: test timeBlocks + } + } diff --git a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTest.java index 4a71ef62..a7cf1cbf 100644 --- a/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewEscalationPolicyPathDataAttributesTest.java @@ -58,6 +58,30 @@ public void notificationTypeTest() { // TODO: test notificationType } + /** + * Test the property 'pathType' + */ + @Test + public void pathTypeTest() { + // TODO: test pathType + } + + /** + * Test the property 'afterDeferralBehavior' + */ + @Test + public void afterDeferralBehaviorTest() { + // TODO: test afterDeferralBehavior + } + + /** + * Test the property 'afterDeferralPathId' + */ + @Test + public void afterDeferralPathIdTest() { + // TODO: test afterDeferralPathId + } + /** * Test the property '_default' */ @@ -106,6 +130,14 @@ public void initialDelayTest() { // TODO: test initialDelay } + /** + * Test the property 'retriggerTimeoutMinutes' + */ + @Test + public void retriggerTimeoutMinutesTest() { + // TODO: test retriggerTimeoutMinutes + } + /** * Test the property 'rules' */ diff --git a/src/test/java/com/rootly/client/model/NewFormFieldDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewFormFieldDataAttributesTest.java index 82b6d9c9..3a95d0a3 100644 --- a/src/test/java/com/rootly/client/model/NewFormFieldDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewFormFieldDataAttributesTest.java @@ -40,6 +40,14 @@ public void testNewFormFieldDataAttributes() { // TODO: test NewFormFieldDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'kind' */ @@ -128,4 +136,12 @@ public void defaultValuesTest() { // TODO: test defaultValues } + /** + * Test the property 'autoSetByCatalogPropertyId' + */ + @Test + public void autoSetByCatalogPropertyIdTest() { + // TODO: test autoSetByCatalogPropertyId + } + } diff --git a/src/test/java/com/rootly/client/model/NewFormSetDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewFormSetDataAttributesTest.java index f30d9aeb..e798be35 100644 --- a/src/test/java/com/rootly/client/model/NewFormSetDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewFormSetDataAttributesTest.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -39,6 +40,14 @@ public void testNewFormSetDataAttributes() { // TODO: test NewFormSetDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewFunctionalityDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewFunctionalityDataAttributesTest.java index 83bba631..055c21ca 100644 --- a/src/test/java/com/rootly/client/model/NewFunctionalityDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewFunctionalityDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -42,6 +43,14 @@ public void testNewFunctionalityDataAttributes() { // TODO: test NewFunctionalityDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -194,6 +203,14 @@ public void ownerUserIdsTest() { // TODO: test ownerUserIds } + /** + * Test the property 'escalationPolicyId' + */ + @Test + public void escalationPolicyIdTest() { + // TODO: test escalationPolicyId + } + /** * Test the property 'slackChannels' */ @@ -210,4 +227,12 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/NewHeartbeatDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewHeartbeatDataAttributesTest.java index 987e5dd3..533816eb 100644 --- a/src/test/java/com/rootly/client/model/NewHeartbeatDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewHeartbeatDataAttributesTest.java @@ -19,7 +19,9 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -110,6 +112,14 @@ public void notificationTargetTypeTest() { // TODO: test notificationTargetType } + /** + * Test the property 'ownerGroupIds' + */ + @Test + public void ownerGroupIdsTest() { + // TODO: test ownerGroupIds + } + /** * Test the property 'enabled' */ diff --git a/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerTest.java b/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerTest.java new file mode 100644 index 00000000..f5953627 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerTest.java @@ -0,0 +1,148 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewIncidentActionItemDataAttributesFormFieldSelectionsInner + */ +public class NewIncidentActionItemDataAttributesFormFieldSelectionsInnerTest { + private final NewIncidentActionItemDataAttributesFormFieldSelectionsInner model = new NewIncidentActionItemDataAttributesFormFieldSelectionsInner(); + + /** + * Model tests for NewIncidentActionItemDataAttributesFormFieldSelectionsInner + */ + @Test + public void testNewIncidentActionItemDataAttributesFormFieldSelectionsInner() { + // TODO: test NewIncidentActionItemDataAttributesFormFieldSelectionsInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'formFieldId' + */ + @Test + public void formFieldIdTest() { + // TODO: test formFieldId + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + + /** + * Test the property 'selectedOptionIds' + */ + @Test + public void selectedOptionIdsTest() { + // TODO: test selectedOptionIds + } + + /** + * Test the property 'selectedUserIds' + */ + @Test + public void selectedUserIdsTest() { + // TODO: test selectedUserIds + } + + /** + * Test the property 'selectedGroupIds' + */ + @Test + public void selectedGroupIdsTest() { + // TODO: test selectedGroupIds + } + + /** + * Test the property 'selectedServiceIds' + */ + @Test + public void selectedServiceIdsTest() { + // TODO: test selectedServiceIds + } + + /** + * Test the property 'selectedFunctionalityIds' + */ + @Test + public void selectedFunctionalityIdsTest() { + // TODO: test selectedFunctionalityIds + } + + /** + * Test the property 'selectedCatalogEntityIds' + */ + @Test + public void selectedCatalogEntityIdsTest() { + // TODO: test selectedCatalogEntityIds + } + + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + + /** + * Test the property 'destroy' + */ + @Test + public void destroyTest() { + // TODO: test destroy + } + +} diff --git a/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValueTest.java b/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValueTest.java new file mode 100644 index 00000000..c5815349 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValueTest.java @@ -0,0 +1,34 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue + */ +public class NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValueTest { + private final NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue model = new NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue(); + + /** + * Model tests for NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue + */ + @Test + public void testNewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue() { + // TODO: test NewIncidentActionItemDataAttributesFormFieldSelectionsInnerValue + } + +} diff --git a/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesTest.java index 82668cbf..682df528 100644 --- a/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewIncidentActionItemDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -128,4 +129,12 @@ public void jiraIssueUrlTest() { // TODO: test jiraIssueUrl } + /** + * Test the property 'formFieldSelections' + */ + @Test + public void formFieldSelectionsTest() { + // TODO: test formFieldSelections + } + } diff --git a/src/test/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributesTest.java index 993bee75..0a968121 100644 --- a/src/test/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewIncidentFormFieldSelectionDataAttributesTest.java @@ -112,4 +112,28 @@ public void selectedUserIdsTest() { // TODO: test selectedUserIds } + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + } diff --git a/src/test/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributesTest.java index 25b79f16..b17af3c4 100644 --- a/src/test/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewIncidentPermissionSetDataAttributesTest.java @@ -41,19 +41,19 @@ public void testNewIncidentPermissionSetDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/NewIncidentRoleDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewIncidentRoleDataAttributesTest.java index b25b7c3d..e8580462 100644 --- a/src/test/java/com/rootly/client/model/NewIncidentRoleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewIncidentRoleDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewIncidentRoleDataAttributes() { // TODO: test NewIncidentRoleDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInnerTest.java b/src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInnerTest.java new file mode 100644 index 00000000..646a8c39 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesStatusPageComponentsInnerTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + */ +public class NewIncidentStatusPageEventDataAttributesStatusPageComponentsInnerTest { + private final NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner model = new NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner(); + + /** + * Model tests for NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + */ + @Test + public void testNewIncidentStatusPageEventDataAttributesStatusPageComponentsInner() { + // TODO: test NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner + } + + /** + * Test the property 'statusPageComponentId' + */ + @Test + public void statusPageComponentIdTest() { + // TODO: test statusPageComponentId + } + + /** + * Test the property 'status' + */ + @Test + public void statusTest() { + // TODO: test status + } + +} diff --git a/src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesTest.java index 33e9b723..910b94a3 100644 --- a/src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewIncidentStatusPageEventDataAttributesTest.java @@ -18,8 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentStatusPageEventDataAttributesStatusPageComponentsInner; import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -78,4 +82,20 @@ public void shouldTweetTest() { // TODO: test shouldTweet } + /** + * Test the property 'startedAt' + */ + @Test + public void startedAtTest() { + // TODO: test startedAt + } + + /** + * Test the property 'statusPageComponents' + */ + @Test + public void statusPageComponentsTest() { + // TODO: test statusPageComponents + } + } diff --git a/src/test/java/com/rootly/client/model/NewIncidentTypeDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewIncidentTypeDataAttributesTest.java index bde1dbd6..f1e977d1 100644 --- a/src/test/java/com/rootly/client/model/NewIncidentTypeDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewIncidentTypeDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -42,6 +43,14 @@ public void testNewIncidentTypeDataAttributes() { // TODO: test NewIncidentTypeDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -58,6 +67,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'color' */ @@ -98,4 +115,12 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/NewLiveCallRouterDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewLiveCallRouterDataAttributesTest.java index 47f02cad..27974edb 100644 --- a/src/test/java/com/rootly/client/model/NewLiveCallRouterDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewLiveCallRouterDataAttributesTest.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -105,6 +106,14 @@ public void callerGreetingTest() { // TODO: test callerGreeting } + /** + * Test the property 'unavailableResponderMessage' + */ + @Test + public void unavailableResponderMessageTest() { + // TODO: test unavailableResponderMessage + } + /** * Test the property 'waitingMusicUrl' */ @@ -145,6 +154,30 @@ public void shouldAutoResolveAlertOnCallEndTest() { // TODO: test shouldAutoResolveAlertOnCallEnd } + /** + * Test the property 'notifyViaSms' + */ + @Test + public void notifyViaSmsTest() { + // TODO: test notifyViaSms + } + + /** + * Test the property 'notifyViaPushNotification' + */ + @Test + public void notifyViaPushNotificationTest() { + // TODO: test notifyViaPushNotification + } + + /** + * Test the property 'informationalNotificationMessage' + */ + @Test + public void informationalNotificationMessageTest() { + // TODO: test informationalNotificationMessage + } + /** * Test the property 'alertUrgencyId' */ @@ -153,6 +186,14 @@ public void alertUrgencyIdTest() { // TODO: test alertUrgencyId } + /** + * Test the property 'callingTreeEnabled' + */ + @Test + public void callingTreeEnabledTest() { + // TODO: test callingTreeEnabled + } + /** * Test the property 'callingTreePrompt' */ diff --git a/src/test/java/com/rootly/client/model/NewOnCallPayReportDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewOnCallPayReportDataAttributesTest.java index 68f11bac..05c22e02 100644 --- a/src/test/java/com/rootly/client/model/NewOnCallPayReportDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewOnCallPayReportDataAttributesTest.java @@ -64,4 +64,20 @@ public void scheduleIdsTest() { // TODO: test scheduleIds } + /** + * Test the property 'timeZone' + */ + @Test + public void timeZoneTest() { + // TODO: test timeZone + } + + /** + * Test the property 'useRespondersTimeZone' + */ + @Test + public void useRespondersTimeZoneTest() { + // TODO: test useRespondersTimeZone + } + } diff --git a/src/test/java/com/rootly/client/model/NewOnCallRoleDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewOnCallRoleDataAttributesTest.java index 1a6f29c5..e6dd020c 100644 --- a/src/test/java/com/rootly/client/model/NewOnCallRoleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewOnCallRoleDataAttributesTest.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -40,19 +41,19 @@ public void testNewOnCallRoleDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** @@ -223,6 +224,14 @@ public void servicesPermissionsTest() { // TODO: test servicesPermissions } + /** + * Test the property 'functionalitiesPermissions' + */ + @Test + public void functionalitiesPermissionsTest() { + // TODO: test functionalitiesPermissions + } + /** * Test the property 'webhooksPermissions' */ @@ -239,4 +248,12 @@ public void workflowsPermissionsTest() { // TODO: test workflowsPermissions } + /** + * Test the property 'catalogsPermissions' + */ + @Test + public void catalogsPermissionsTest() { + // TODO: test catalogsPermissions + } + } diff --git a/src/test/java/com/rootly/client/model/NewPostMortemTemplateDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewPostMortemTemplateDataAttributesTest.java index 26c1ffba..869d730c 100644 --- a/src/test/java/com/rootly/client/model/NewPostMortemTemplateDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewPostMortemTemplateDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewPostMortemTemplateDataAttributes() { // TODO: test NewPostMortemTemplateDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewRetrospectiveStepDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewRetrospectiveStepDataAttributesTest.java index a73dc59b..3c687e6b 100644 --- a/src/test/java/com/rootly/client/model/NewRetrospectiveStepDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewRetrospectiveStepDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewRetrospectiveStepDataAttributes() { // TODO: test NewRetrospectiveStepDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'title' */ diff --git a/src/test/java/com/rootly/client/model/NewRoleDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewRoleDataAttributesTest.java index ae962ad8..94b1dbff 100644 --- a/src/test/java/com/rootly/client/model/NewRoleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewRoleDataAttributesTest.java @@ -41,19 +41,19 @@ public void testNewRoleDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** @@ -272,4 +272,60 @@ public void workflowsPermissionsTest() { // TODO: test workflowsPermissions } + /** + * Test the property 'catalogsPermissions' + */ + @Test + public void catalogsPermissionsTest() { + // TODO: test catalogsPermissions + } + + /** + * Test the property 'subStatusesPermissions' + */ + @Test + public void subStatusesPermissionsTest() { + // TODO: test subStatusesPermissions + } + + /** + * Test the property 'edgeConnectorPermissions' + */ + @Test + public void edgeConnectorPermissionsTest() { + // TODO: test edgeConnectorPermissions + } + + /** + * Test the property 'slasPermissions' + */ + @Test + public void slasPermissionsTest() { + // TODO: test slasPermissions + } + + /** + * Test the property 'pagingPermissions' + */ + @Test + public void pagingPermissionsTest() { + // TODO: test pagingPermissions + } + + /** + * Test the property 'incidentCommunicationPermissions' + */ + @Test + public void incidentCommunicationPermissionsTest() { + // TODO: test incidentCommunicationPermissions + } + + /** + * Test the property 'communicationPermissions' + */ + @Test + public void communicationPermissionsTest() { + // TODO: test communicationPermissions + } + } diff --git a/src/test/java/com/rootly/client/model/NewScheduleDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewScheduleDataAttributesTest.java index 3c4ae638..8d3dc8cb 100644 --- a/src/test/java/com/rootly/client/model/NewScheduleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewScheduleDataAttributesTest.java @@ -98,4 +98,68 @@ public void ownerUserIdTest() { // TODO: test ownerUserId } + /** + * Test the property 'syncLinearEnabled' + */ + @Test + public void syncLinearEnabledTest() { + // TODO: test syncLinearEnabled + } + + /** + * Test the property 'includeShadowsInSlackNotifications' + */ + @Test + public void includeShadowsInSlackNotificationsTest() { + // TODO: test includeShadowsInSlackNotifications + } + + /** + * Test the property 'shiftStartNotificationsEnabled' + */ + @Test + public void shiftStartNotificationsEnabledTest() { + // TODO: test shiftStartNotificationsEnabled + } + + /** + * Test the property 'shiftUpdateNotificationsEnabled' + */ + @Test + public void shiftUpdateNotificationsEnabledTest() { + // TODO: test shiftUpdateNotificationsEnabled + } + + /** + * Test the property 'shiftReportEnabled' + */ + @Test + public void shiftReportEnabledTest() { + // TODO: test shiftReportEnabled + } + + /** + * Test the property 'shiftReportDayOfWeek' + */ + @Test + public void shiftReportDayOfWeekTest() { + // TODO: test shiftReportDayOfWeek + } + + /** + * Test the property 'shiftReportTimeOfDay' + */ + @Test + public void shiftReportTimeOfDayTest() { + // TODO: test shiftReportTimeOfDay + } + + /** + * Test the property 'shiftReportTimeZone' + */ + @Test + public void shiftReportTimeZoneTest() { + // TODO: test shiftReportTimeZone + } + } diff --git a/src/test/java/com/rootly/client/model/NewScheduleRotationDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewScheduleRotationDataAttributesTest.java index f3a17803..f043d414 100644 --- a/src/test/java/com/rootly/client/model/NewScheduleRotationDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewScheduleRotationDataAttributesTest.java @@ -22,7 +22,7 @@ import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationMembersInner; import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationableAttributes; import java.io.IOException; -import java.time.LocalDate; +import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/com/rootly/client/model/NewServiceDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewServiceDataAttributesTest.java index bd13c3e4..847e3f56 100644 --- a/src/test/java/com/rootly/client/model/NewServiceDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewServiceDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -44,6 +45,14 @@ public void testNewServiceDataAttributes() { // TODO: test NewServiceDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -308,4 +317,12 @@ public void incidentBroadcastChannelTest() { // TODO: test incidentBroadcastChannel } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/NewSeverityDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewSeverityDataAttributesTest.java index 5b48b3a8..88513322 100644 --- a/src/test/java/com/rootly/client/model/NewSeverityDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewSeverityDataAttributesTest.java @@ -42,6 +42,14 @@ public void testNewSeverityDataAttributes() { // TODO: test NewSeverityDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributesTest.java new file mode 100644 index 00000000..5a11deb0 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataAttributesTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewShiftCoverageRequestDataAttributes + */ +public class NewShiftCoverageRequestDataAttributesTest { + private final NewShiftCoverageRequestDataAttributes model = new NewShiftCoverageRequestDataAttributes(); + + /** + * Model tests for NewShiftCoverageRequestDataAttributes + */ + @Test + public void testNewShiftCoverageRequestDataAttributes() { + // TODO: test NewShiftCoverageRequestDataAttributes + } + + /** + * Test the property 'startsAt' + */ + @Test + public void startsAtTest() { + // TODO: test startsAt + } + + /** + * Test the property 'endsAt' + */ + @Test + public void endsAtTest() { + // TODO: test endsAt + } + + /** + * Test the property 'userId' + */ + @Test + public void userIdTest() { + // TODO: test userId + } + +} diff --git a/src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataTest.java b/src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataTest.java new file mode 100644 index 00000000..355a3c17 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewShiftCoverageRequestDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewShiftCoverageRequestDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewShiftCoverageRequestData + */ +public class NewShiftCoverageRequestDataTest { + private final NewShiftCoverageRequestData model = new NewShiftCoverageRequestData(); + + /** + * Model tests for NewShiftCoverageRequestData + */ + @Test + public void testNewShiftCoverageRequestData() { + // TODO: test NewShiftCoverageRequestData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/NewShiftCoverageRequestTest.java b/src/test/java/com/rootly/client/model/NewShiftCoverageRequestTest.java new file mode 100644 index 00000000..b008bb92 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewShiftCoverageRequestTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewShiftCoverageRequestData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewShiftCoverageRequest + */ +public class NewShiftCoverageRequestTest { + private final NewShiftCoverageRequest model = new NewShiftCoverageRequest(); + + /** + * Model tests for NewShiftCoverageRequest + */ + @Test + public void testNewShiftCoverageRequest() { + // TODO: test NewShiftCoverageRequest + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/NewSlaDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewSlaDataAttributesTest.java index 67dc46f5..98cb4ede 100644 --- a/src/test/java/com/rootly/client/model/NewSlaDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewSlaDataAttributesTest.java @@ -43,6 +43,14 @@ public void testNewSlaDataAttributes() { // TODO: test NewSlaDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributesTest.java new file mode 100644 index 00000000..a1d968f2 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataAttributesTest.java @@ -0,0 +1,64 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageAnnouncementDataAttributes + */ +public class NewStatusPageAnnouncementDataAttributesTest { + private final NewStatusPageAnnouncementDataAttributes model = new NewStatusPageAnnouncementDataAttributes(); + + /** + * Model tests for NewStatusPageAnnouncementDataAttributes + */ + @Test + public void testNewStatusPageAnnouncementDataAttributes() { + // TODO: test NewStatusPageAnnouncementDataAttributes + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'body' + */ + @Test + public void bodyTest() { + // TODO: test body + } + + /** + * Test the property 'notifySubscribers' + */ + @Test + public void notifySubscribersTest() { + // TODO: test notifySubscribers + } + +} diff --git a/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataTest.java b/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataTest.java new file mode 100644 index 00000000..56662ce9 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageAnnouncementDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageAnnouncementData + */ +public class NewStatusPageAnnouncementDataTest { + private final NewStatusPageAnnouncementData model = new NewStatusPageAnnouncementData(); + + /** + * Model tests for NewStatusPageAnnouncementData + */ + @Test + public void testNewStatusPageAnnouncementData() { + // TODO: test NewStatusPageAnnouncementData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementTest.java b/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementTest.java new file mode 100644 index 00000000..232b3cbf --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageAnnouncementTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageAnnouncementData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageAnnouncement + */ +public class NewStatusPageAnnouncementTest { + private final NewStatusPageAnnouncement model = new NewStatusPageAnnouncement(); + + /** + * Model tests for NewStatusPageAnnouncement + */ + @Test + public void testNewStatusPageAnnouncement() { + // TODO: test NewStatusPageAnnouncement + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/NewStatusPageComponentDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewStatusPageComponentDataAttributesTest.java new file mode 100644 index 00000000..f38edebe --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageComponentDataAttributesTest.java @@ -0,0 +1,89 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageComponentDataAttributes + */ +public class NewStatusPageComponentDataAttributesTest { + private final NewStatusPageComponentDataAttributes model = new NewStatusPageComponentDataAttributes(); + + /** + * Model tests for NewStatusPageComponentDataAttributes + */ + @Test + public void testNewStatusPageComponentDataAttributes() { + // TODO: test NewStatusPageComponentDataAttributes + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'statusPageComponentGroupId' + */ + @Test + public void statusPageComponentGroupIdTest() { + // TODO: test statusPageComponentGroupId + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'sourceType' + */ + @Test + public void sourceTypeTest() { + // TODO: test sourceType + } + + /** + * Test the property 'sourceId' + */ + @Test + public void sourceIdTest() { + // TODO: test sourceId + } + +} diff --git a/src/test/java/com/rootly/client/model/NewStatusPageComponentDataTest.java b/src/test/java/com/rootly/client/model/NewStatusPageComponentDataTest.java new file mode 100644 index 00000000..fcbda04b --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageComponentDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageComponentData + */ +public class NewStatusPageComponentDataTest { + private final NewStatusPageComponentData model = new NewStatusPageComponentData(); + + /** + * Model tests for NewStatusPageComponentData + */ + @Test + public void testNewStatusPageComponentData() { + // TODO: test NewStatusPageComponentData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestEdgeConnectorTest.java b/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributesTest.java similarity index 84% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestEdgeConnectorTest.java rename to src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributesTest.java index b5460bc0..70d2e992 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsIdPatchRequestEdgeConnectorTest.java +++ b/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataAttributesTest.java @@ -19,24 +19,23 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsIdPatchRequestEdgeConnector + * Model tests for NewStatusPageComponentGroupDataAttributes */ -public class V1EdgeConnectorsIdPatchRequestEdgeConnectorTest { - private final V1EdgeConnectorsIdPatchRequestEdgeConnector model = new V1EdgeConnectorsIdPatchRequestEdgeConnector(); +public class NewStatusPageComponentGroupDataAttributesTest { + private final NewStatusPageComponentGroupDataAttributes model = new NewStatusPageComponentGroupDataAttributes(); /** - * Model tests for V1EdgeConnectorsIdPatchRequestEdgeConnector + * Model tests for NewStatusPageComponentGroupDataAttributes */ @Test - public void testV1EdgeConnectorsIdPatchRequestEdgeConnector() { - // TODO: test V1EdgeConnectorsIdPatchRequestEdgeConnector + public void testNewStatusPageComponentGroupDataAttributes() { + // TODO: test NewStatusPageComponentGroupDataAttributes } /** @@ -56,19 +55,19 @@ public void descriptionTest() { } /** - * Test the property 'status' + * Test the property 'position' */ @Test - public void statusTest() { - // TODO: test status + public void positionTest() { + // TODO: test position } /** - * Test the property 'subscriptions' + * Test the property 'collapsedByDefault' */ @Test - public void subscriptionsTest() { - // TODO: test subscriptions + public void collapsedByDefaultTest() { + // TODO: test collapsedByDefault } } diff --git a/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataTest.java b/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataTest.java new file mode 100644 index 00000000..868a71b3 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentGroupDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageComponentGroupData + */ +public class NewStatusPageComponentGroupDataTest { + private final NewStatusPageComponentGroupData model = new NewStatusPageComponentGroupData(); + + /** + * Model tests for NewStatusPageComponentGroupData + */ + @Test + public void testNewStatusPageComponentGroupData() { + // TODO: test NewStatusPageComponentGroupData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupTest.java b/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupTest.java new file mode 100644 index 00000000..0b4aa065 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageComponentGroupTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentGroupData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageComponentGroup + */ +public class NewStatusPageComponentGroupTest { + private final NewStatusPageComponentGroup model = new NewStatusPageComponentGroup(); + + /** + * Model tests for NewStatusPageComponentGroup + */ + @Test + public void testNewStatusPageComponentGroup() { + // TODO: test NewStatusPageComponentGroup + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/NewStatusPageComponentTest.java b/src/test/java/com/rootly/client/model/NewStatusPageComponentTest.java new file mode 100644 index 00000000..0cd5ee1d --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewStatusPageComponentTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewStatusPageComponentData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewStatusPageComponent + */ +public class NewStatusPageComponentTest { + private final NewStatusPageComponent model = new NewStatusPageComponent(); + + /** + * Model tests for NewStatusPageComponent + */ + @Test + public void testNewStatusPageComponent() { + // TODO: test NewStatusPageComponent + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/NewStatusPageDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewStatusPageDataAttributesTest.java index dde1553d..1734757b 100644 --- a/src/test/java/com/rootly/client/model/NewStatusPageDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewStatusPageDataAttributesTest.java @@ -40,6 +40,14 @@ public void testNewStatusPageDataAttributes() { // TODO: test NewStatusPageDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'title' */ @@ -184,6 +192,22 @@ public void samlNameIdentifierFormatTest() { // TODO: test samlNameIdentifierFormat } + /** + * Test the property 'sectionOrder' + */ + @Test + public void sectionOrderTest() { + // TODO: test sectionOrder + } + + /** + * Test the property 'externalDomainNames' + */ + @Test + public void externalDomainNamesTest() { + // TODO: test externalDomainNames + } + /** * Test the property 'websiteUrl' */ diff --git a/src/test/java/com/rootly/client/model/NewStatusPageTemplateDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewStatusPageTemplateDataAttributesTest.java index 55967c61..c962847b 100644 --- a/src/test/java/com/rootly/client/model/NewStatusPageTemplateDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewStatusPageTemplateDataAttributesTest.java @@ -54,6 +54,14 @@ public void titleTest() { // TODO: test title } + /** + * Test the property 'updateTitle' + */ + @Test + public void updateTitleTest() { + // TODO: test updateTitle + } + /** * Test the property 'body' */ diff --git a/src/test/java/com/rootly/client/model/NewSubStatusDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewSubStatusDataAttributesTest.java index 2e006dba..c65f5ace 100644 --- a/src/test/java/com/rootly/client/model/NewSubStatusDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewSubStatusDataAttributesTest.java @@ -39,19 +39,19 @@ public void testNewSubStatusDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/NewTeamDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewTeamDataAttributesTest.java index ac53a5c3..147d5ed8 100644 --- a/src/test/java/com/rootly/client/model/NewTeamDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewTeamDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -44,6 +45,14 @@ public void testNewTeamDataAttributes() { // TODO: test NewTeamDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -60,6 +69,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'notifyEmails' */ @@ -252,4 +269,20 @@ public void autoAddMembersWhenAttachedTest() { // TODO: test autoAddMembersWhenAttached } + /** + * Test the property 'autoAddMembersScope' + */ + @Test + public void autoAddMembersScopeTest() { + // TODO: test autoAddMembersScope + } + + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/NewVerifiedDomainDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewVerifiedDomainDataAttributesTest.java new file mode 100644 index 00000000..56cf9f92 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewVerifiedDomainDataAttributesTest.java @@ -0,0 +1,48 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewVerifiedDomainDataAttributes + */ +public class NewVerifiedDomainDataAttributesTest { + private final NewVerifiedDomainDataAttributes model = new NewVerifiedDomainDataAttributes(); + + /** + * Model tests for NewVerifiedDomainDataAttributes + */ + @Test + public void testNewVerifiedDomainDataAttributes() { + // TODO: test NewVerifiedDomainDataAttributes + } + + /** + * Test the property 'domain' + */ + @Test + public void domainTest() { + // TODO: test domain + } + +} diff --git a/src/test/java/com/rootly/client/model/NewVerifiedDomainDataTest.java b/src/test/java/com/rootly/client/model/NewVerifiedDomainDataTest.java new file mode 100644 index 00000000..ada52f46 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewVerifiedDomainDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewVerifiedDomainDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewVerifiedDomainData + */ +public class NewVerifiedDomainDataTest { + private final NewVerifiedDomainData model = new NewVerifiedDomainData(); + + /** + * Model tests for NewVerifiedDomainData + */ + @Test + public void testNewVerifiedDomainData() { + // TODO: test NewVerifiedDomainData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/NewVerifiedDomainTest.java b/src/test/java/com/rootly/client/model/NewVerifiedDomainTest.java new file mode 100644 index 00000000..e7d5a0ee --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewVerifiedDomainTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewVerifiedDomainData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewVerifiedDomain + */ +public class NewVerifiedDomainTest { + private final NewVerifiedDomain model = new NewVerifiedDomain(); + + /** + * Model tests for NewVerifiedDomain + */ + @Test + public void testNewVerifiedDomain() { + // TODO: test NewVerifiedDomain + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInnerTest.java b/src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInnerTest.java new file mode 100644 index 00000000..28e54328 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesCustomHeadersInnerTest.java @@ -0,0 +1,56 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewWebhooksEndpointDataAttributesCustomHeadersInner + */ +public class NewWebhooksEndpointDataAttributesCustomHeadersInnerTest { + private final NewWebhooksEndpointDataAttributesCustomHeadersInner model = new NewWebhooksEndpointDataAttributesCustomHeadersInner(); + + /** + * Model tests for NewWebhooksEndpointDataAttributesCustomHeadersInner + */ + @Test + public void testNewWebhooksEndpointDataAttributesCustomHeadersInner() { + // TODO: test NewWebhooksEndpointDataAttributesCustomHeadersInner + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + +} diff --git a/src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesTest.java index de5143c0..2887bfc6 100644 --- a/src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewWebhooksEndpointDataAttributesTest.java @@ -18,10 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWebhooksEndpointDataAttributesCustomHeadersInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -39,6 +41,14 @@ public void testNewWebhooksEndpointDataAttributes() { // TODO: test NewWebhooksEndpointDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -79,4 +89,12 @@ public void enabledTest() { // TODO: test enabled } + /** + * Test the property 'customHeaders' + */ + @Test + public void customHeadersTest() { + // TODO: test customHeaders + } + } diff --git a/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributesTest.java new file mode 100644 index 00000000..5b54dd02 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataAttributesTest.java @@ -0,0 +1,138 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewWorkflowActionItemFormFieldConditionDataAttributes + */ +public class NewWorkflowActionItemFormFieldConditionDataAttributesTest { + private final NewWorkflowActionItemFormFieldConditionDataAttributes model = new NewWorkflowActionItemFormFieldConditionDataAttributes(); + + /** + * Model tests for NewWorkflowActionItemFormFieldConditionDataAttributes + */ + @Test + public void testNewWorkflowActionItemFormFieldConditionDataAttributes() { + // TODO: test NewWorkflowActionItemFormFieldConditionDataAttributes + } + + /** + * Test the property 'formFieldId' + */ + @Test + public void formFieldIdTest() { + // TODO: test formFieldId + } + + /** + * Test the property 'actionItemCondition' + */ + @Test + public void actionItemConditionTest() { + // TODO: test actionItemCondition + } + + /** + * Test the property 'values' + */ + @Test + public void valuesTest() { + // TODO: test values + } + + /** + * Test the property 'selectedCatalogEntityIds' + */ + @Test + public void selectedCatalogEntityIdsTest() { + // TODO: test selectedCatalogEntityIds + } + + /** + * Test the property 'selectedFunctionalityIds' + */ + @Test + public void selectedFunctionalityIdsTest() { + // TODO: test selectedFunctionalityIds + } + + /** + * Test the property 'selectedGroupIds' + */ + @Test + public void selectedGroupIdsTest() { + // TODO: test selectedGroupIds + } + + /** + * Test the property 'selectedOptionIds' + */ + @Test + public void selectedOptionIdsTest() { + // TODO: test selectedOptionIds + } + + /** + * Test the property 'selectedServiceIds' + */ + @Test + public void selectedServiceIdsTest() { + // TODO: test selectedServiceIds + } + + /** + * Test the property 'selectedUserIds' + */ + @Test + public void selectedUserIdsTest() { + // TODO: test selectedUserIds + } + + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + +} diff --git a/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataTest.java b/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataTest.java new file mode 100644 index 00000000..9a685f67 --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWorkflowActionItemFormFieldConditionDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewWorkflowActionItemFormFieldConditionData + */ +public class NewWorkflowActionItemFormFieldConditionDataTest { + private final NewWorkflowActionItemFormFieldConditionData model = new NewWorkflowActionItemFormFieldConditionData(); + + /** + * Model tests for NewWorkflowActionItemFormFieldConditionData + */ + @Test + public void testNewWorkflowActionItemFormFieldConditionData() { + // TODO: test NewWorkflowActionItemFormFieldConditionData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionTest.java b/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionTest.java new file mode 100644 index 00000000..f35fe4fa --- /dev/null +++ b/src/test/java/com/rootly/client/model/NewWorkflowActionItemFormFieldConditionTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWorkflowActionItemFormFieldConditionData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for NewWorkflowActionItemFormFieldCondition + */ +public class NewWorkflowActionItemFormFieldConditionTest { + private final NewWorkflowActionItemFormFieldCondition model = new NewWorkflowActionItemFormFieldCondition(); + + /** + * Model tests for NewWorkflowActionItemFormFieldCondition + */ + @Test + public void testNewWorkflowActionItemFormFieldCondition() { + // TODO: test NewWorkflowActionItemFormFieldCondition + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTest.java index 8a0b28ca..b7c5c7b1 100644 --- a/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTest.java @@ -42,19 +42,19 @@ public void testNewWorkflowDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParamsTest.java b/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParamsTest.java index 675b49ed..060f8dec 100644 --- a/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParamsTest.java +++ b/src/test/java/com/rootly/client/model/NewWorkflowDataAttributesTriggerParamsTest.java @@ -21,6 +21,7 @@ import com.rootly.client.model.ActionItemTriggerParams; import com.rootly.client.model.AlertTriggerParams; import com.rootly.client.model.AlertTriggerParamsAlertFieldConditionsInner; +import com.rootly.client.model.AlertTriggerParamsAlertPayloadConditions; import com.rootly.client.model.IncidentTriggerParams; import com.rootly.client.model.PulseTriggerParams; import com.rootly.client.model.SimpleTriggerParams; @@ -28,6 +29,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.UUID; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -198,6 +200,30 @@ public void incidentConditionCauseTest() { // TODO: test incidentConditionCause } + /** + * Test the property 'incidentConditionLabel' + */ + @Test + public void incidentConditionLabelTest() { + // TODO: test incidentConditionLabel + } + + /** + * Test the property 'incidentConditionLabelUseRegexp' + */ + @Test + public void incidentConditionLabelUseRegexpTest() { + // TODO: test incidentConditionLabelUseRegexp + } + + /** + * Test the property 'incidentLabels' + */ + @Test + public void incidentLabelsTest() { + // TODO: test incidentLabels + } + /** * Test the property 'incidentPostMortemConditionCause' */ @@ -414,6 +440,22 @@ public void alertLabelsTest() { // TODO: test alertLabels } + /** + * Test the property 'alertConditionUrgency' + */ + @Test + public void alertConditionUrgencyTest() { + // TODO: test alertConditionUrgency + } + + /** + * Test the property 'alertUrgencyIds' + */ + @Test + public void alertUrgencyIdsTest() { + // TODO: test alertUrgencyIds + } + /** * Test the property 'alertConditionPayload' */ @@ -454,6 +496,14 @@ public void alertFieldConditionsTest() { // TODO: test alertFieldConditions } + /** + * Test the property 'alertPayloadConditions' + */ + @Test + public void alertPayloadConditionsTest() { + // TODO: test alertPayloadConditions + } + /** * Test the property 'pulseCondition' */ diff --git a/src/test/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributesTest.java index 2f7fa475..48236d67 100644 --- a/src/test/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewWorkflowFormFieldConditionDataAttributesTest.java @@ -119,4 +119,28 @@ public void selectedUserIdsTest() { // TODO: test selectedUserIds } + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + } diff --git a/src/test/java/com/rootly/client/model/NewWorkflowGroupDataAttributesTest.java b/src/test/java/com/rootly/client/model/NewWorkflowGroupDataAttributesTest.java index 4c465261..6c771261 100644 --- a/src/test/java/com/rootly/client/model/NewWorkflowGroupDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/NewWorkflowGroupDataAttributesTest.java @@ -38,6 +38,14 @@ public void testNewWorkflowGroupDataAttributes() { // TODO: test NewWorkflowGroupDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'kind' */ diff --git a/src/test/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParamsTest.java b/src/test/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParamsTest.java index 5d5ee08c..37e428bb 100644 --- a/src/test/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/NewWorkflowTaskDataAttributesTaskParamsTest.java @@ -20,20 +20,25 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParams; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AddMicrosoftTeamsChatTabTaskParams; import com.rootly.client.model.AddMicrosoftTeamsTabTaskParams; import com.rootly.client.model.AddRoleTaskParams; import com.rootly.client.model.AddRoleTaskParamsAssignedToUser; import com.rootly.client.model.AddSlackBookmarkTaskParams; import com.rootly.client.model.AddTeamTaskParams; import com.rootly.client.model.AddToTimelineTaskParams; +import com.rootly.client.model.ArchiveGoogleChatSpacesTaskParams; import com.rootly.client.model.ArchiveMicrosoftTeamsChannelsTaskParams; import com.rootly.client.model.ArchiveSlackChannelsTaskParams; import com.rootly.client.model.AttachDatadogDashboardsTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToFreshserviceTicketTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToJiraIssueTaskParams; import com.rootly.client.model.AutoAssignRoleOpsgenieTaskParams; import com.rootly.client.model.AutoAssignRolePagerdutyTaskParams; import com.rootly.client.model.AutoAssignRoleRootlyTaskParams; import com.rootly.client.model.AutoAssignRoleVictorOpsTaskParams; import com.rootly.client.model.CallPeopleTaskParams; +import com.rootly.client.model.ChangeGoogleChatSpacePrivacyTaskParams; import com.rootly.client.model.ChangeSlackChannelPrivacyTaskParams; import com.rootly.client.model.CreateAirtableTableRecordTaskParams; import com.rootly.client.model.CreateAnthropicChatCompletionTaskParams; @@ -50,6 +55,7 @@ import com.rootly.client.model.CreateGitlabIssueTaskParams; import com.rootly.client.model.CreateGoToMeetingTaskParams; import com.rootly.client.model.CreateGoogleCalendarEventTaskParams; +import com.rootly.client.model.CreateGoogleChatSpaceTaskParams; import com.rootly.client.model.CreateGoogleDocsPageTaskParams; import com.rootly.client.model.CreateGoogleDocsPermissionsTaskParams; import com.rootly.client.model.CreateGoogleGeminiChatCompletionTaskParams; @@ -61,6 +67,7 @@ import com.rootly.client.model.CreateJiraIssueTaskParamsIssueType; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import com.rootly.client.model.CreateJiraSubtaskTaskParams; +import com.rootly.client.model.CreateJsmopsAlertTaskParams; import com.rootly.client.model.CreateLinearIssueCommentTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParamsProject; @@ -100,12 +107,15 @@ import com.rootly.client.model.GetGitlabCommitsTaskParams; import com.rootly.client.model.GetPulsesTaskParams; import com.rootly.client.model.HttpClientTaskParams; +import com.rootly.client.model.InviteToGoogleChatSpaceTaskParams; +import com.rootly.client.model.InviteToMicrosoftTeamsChannelRootlyTaskParams; import com.rootly.client.model.InviteToMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelOpsgenieTaskParams; import com.rootly.client.model.InviteToSlackChannelPagerdutyTaskParams; import com.rootly.client.model.InviteToSlackChannelRootlyTaskParams; import com.rootly.client.model.InviteToSlackChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelVictorOpsTaskParams; +import com.rootly.client.model.PageJsmopsOnCallRespondersTaskParams; import com.rootly.client.model.PageOpsgenieOnCallRespondersTaskParams; import com.rootly.client.model.PagePagerdutyOnCallRespondersTaskParams; import com.rootly.client.model.PageRootlyOnCallRespondersTaskParams; @@ -114,12 +124,16 @@ import com.rootly.client.model.PublishIncidentTaskParams; import com.rootly.client.model.RedisClientTaskParams; import com.rootly.client.model.RemoveGoogleDocsPermissionsTaskParams; +import com.rootly.client.model.RenameGoogleChatSpaceTaskParams; import com.rootly.client.model.RenameMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.RenameSlackChannelTaskParams; import com.rootly.client.model.RunCommandHerokuTaskParams; import com.rootly.client.model.SendDashboardReportTaskParams; import com.rootly.client.model.SendEmailTaskParams; +import com.rootly.client.model.SendGoogleChatAttachmentsTaskParams; +import com.rootly.client.model.SendGoogleChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsBlocksTaskParams; +import com.rootly.client.model.SendMicrosoftTeamsChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsMessageTaskParams; import com.rootly.client.model.SendSlackBlocksTaskParams; import com.rootly.client.model.SendSlackMessageTaskParams; @@ -142,8 +156,10 @@ import com.rootly.client.model.UpdateDatadogNotebookTaskParamsTemplate; import com.rootly.client.model.UpdateDropboxPaperPageTaskParams; import com.rootly.client.model.UpdateGithubIssueTaskParams; +import com.rootly.client.model.UpdateGithubIssueTaskParamsRepository; import com.rootly.client.model.UpdateGitlabIssueTaskParams; import com.rootly.client.model.UpdateGoogleCalendarEventTaskParams; +import com.rootly.client.model.UpdateGoogleChatSpaceDescriptionTaskParams; import com.rootly.client.model.UpdateGoogleDocsPageTaskParams; import com.rootly.client.model.UpdateIncidentPostmortemTaskParams; import com.rootly.client.model.UpdateIncidentStatusTimestampTaskParams; @@ -702,6 +718,38 @@ public void markPostMortemAsPublishedTest() { // TODO: test markPostMortemAsPublished } + /** + * Test the property 'includeOverview' + */ + @Test + public void includeOverviewTest() { + // TODO: test includeOverview + } + + /** + * Test the property 'includeTimeline' + */ + @Test + public void includeTimelineTest() { + // TODO: test includeTimeline + } + + /** + * Test the property 'includeFollowUps' + */ + @Test + public void includeFollowUpsTest() { + // TODO: test includeFollowUps + } + + /** + * Test the property 'createAsLiveDoc' + */ + @Test + public void createAsLiveDocTest() { + // TODO: test createAsLiveDoc + } + /** * Test the property 'subtitle' */ @@ -758,6 +806,14 @@ public void repositoryTest() { // TODO: test repository } + /** + * Test the property 'labels' + */ + @Test + public void labelsTest() { + // TODO: test labels + } + /** * Test the property 'issueType' */ @@ -767,11 +823,11 @@ public void issueTypeTest() { } /** - * Test the property 'labels' + * Test the property 'parentIssueNumber' */ @Test - public void labelsTest() { - // TODO: test labels + public void parentIssueNumberTest() { + // TODO: test parentIssueNumber } /** @@ -1006,6 +1062,14 @@ public void recordMeetingTest() { // TODO: test recordMeeting } + /** + * Test the property 'recordingMode' + */ + @Test + public void recordingModeTest() { + // TODO: test recordingMode + } + /** * Test the property 'subject' */ @@ -1110,6 +1174,22 @@ public void updatePayloadTest() { // TODO: test updatePayload } + /** + * Test the property 'retryCount' + */ + @Test + public void retryCountTest() { + // TODO: test retryCount + } + + /** + * Test the property 'retryWaitTime' + */ + @Test + public void retryWaitTimeTest() { + // TODO: test retryWaitTime + } + /** * Test the property 'parentIssueId' */ @@ -1126,6 +1206,30 @@ public void subtaskIssueTypeTest() { // TODO: test subtaskIssueType } + /** + * Test the property 'issueId' + */ + @Test + public void issueIdTest() { + // TODO: test issueId + } + + /** + * Test the property 'filename' + */ + @Test + public void filenameTest() { + // TODO: test filename + } + + /** + * Test the property 'ticketId' + */ + @Test + public void ticketIdTest() { + // TODO: test ticketId + } + /** * Test the property 'state' */ @@ -1142,14 +1246,6 @@ public void projectTest() { // TODO: test project } - /** - * Test the property 'issueId' - */ - @Test - public void issueIdTest() { - // TODO: test issueId - } - /** * Test the property 'topic' */ @@ -1174,6 +1270,54 @@ public void membersTest() { // TODO: test members } + /** + * Test the property 'chat' + */ + @Test + public void chatTest() { + // TODO: test chat + } + + /** + * Test the property 'audience' + */ + @Test + public void audienceTest() { + // TODO: test audience + } + + /** + * Test the property 'spaces' + */ + @Test + public void spacesTest() { + // TODO: test spaces + } + + /** + * Test the property 'text' + */ + @Test + public void textTest() { + // TODO: test text + } + + /** + * Test the property 'threadKey' + */ + @Test + public void threadKeyTest() { + // TODO: test threadKey + } + + /** + * Test the property 'attachments' + */ + @Test + public void attachmentsTest() { + // TODO: test attachments + } + /** * Test the property 'emails' */ @@ -1207,19 +1351,11 @@ public void showActionItemsAsTableTest() { } /** - * Test the property 'text' + * Test the property 'chats' */ @Test - public void textTest() { - // TODO: test text - } - - /** - * Test the property 'attachments' - */ - @Test - public void attachmentsTest() { - // TODO: test attachments + public void chatsTest() { + // TODO: test chats } /** @@ -1366,6 +1502,14 @@ public void autoRecordingTest() { // TODO: test autoRecording } + /** + * Test the property 'enableZoomBotAutoJoin' + */ + @Test + public void enableZoomBotAutoJoinTest() { + // TODO: test enableZoomBotAutoJoin + } + /** * Test the property 'githubRepositoryNames' */ @@ -1550,6 +1694,14 @@ public void opsgenieIncidentIdTest() { // TODO: test opsgenieIncidentId } + /** + * Test the property 'functionalityTarget' + */ + @Test + public void functionalityTargetTest() { + // TODO: test functionalityTarget + } + /** * Test the property 'alertUrgencyId' */ @@ -1566,6 +1718,14 @@ public void escalationNoteTest() { // TODO: test escalationNote } + /** + * Test the property 'createNewAlert' + */ + @Test + public void createNewAlertTest() { + // TODO: test createNewAlert + } + /** * Test the property 'escalationPolicies' */ @@ -1638,6 +1798,14 @@ public void statusPageIdTest() { // TODO: test statusPageId } + /** + * Test the property 'statusPageIds' + */ + @Test + public void statusPageIdsTest() { + // TODO: test statusPageIds + } + /** * Test the property 'integrationPayload' */ @@ -1878,6 +2046,14 @@ public void taskIdTest() { // TODO: test taskId } + /** + * Test the property 'labelsMode' + */ + @Test + public void labelsModeTest() { + // TODO: test labelsMode + } + /** * Test the property 'startedAt' */ @@ -1966,14 +2142,6 @@ public void cardIdTest() { // TODO: test cardId } - /** - * Test the property 'ticketId' - */ - @Test - public void ticketIdTest() { - // TODO: test ticketId - } - /** * Test the property 'resource' */ diff --git a/src/test/java/com/rootly/client/model/OnCallPayReportListTest.java b/src/test/java/com/rootly/client/model/OnCallPayReportListTest.java index d0c888a0..4443d7a6 100644 --- a/src/test/java/com/rootly/client/model/OnCallPayReportListTest.java +++ b/src/test/java/com/rootly/client/model/OnCallPayReportListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OnCallPayReportResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/OnCallPayReportResponseTest.java b/src/test/java/com/rootly/client/model/OnCallPayReportResponseTest.java index 666ad2dc..58d89d3c 100644 --- a/src/test/java/com/rootly/client/model/OnCallPayReportResponseTest.java +++ b/src/test/java/com/rootly/client/model/OnCallPayReportResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OnCallPayReportResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/OnCallPayReportTest.java b/src/test/java/com/rootly/client/model/OnCallPayReportTest.java index 20812c09..ad6721a9 100644 --- a/src/test/java/com/rootly/client/model/OnCallPayReportTest.java +++ b/src/test/java/com/rootly/client/model/OnCallPayReportTest.java @@ -169,6 +169,14 @@ public void timeZoneTest() { // TODO: test timeZone } + /** + * Test the property 'useRespondersTimeZone' + */ + @Test + public void useRespondersTimeZoneTest() { + // TODO: test useRespondersTimeZone + } + /** * Test the property 'csvFileUrl' */ diff --git a/src/test/java/com/rootly/client/model/OnCallRoleListTest.java b/src/test/java/com/rootly/client/model/OnCallRoleListTest.java index b7cbce70..6f37dce5 100644 --- a/src/test/java/com/rootly/client/model/OnCallRoleListTest.java +++ b/src/test/java/com/rootly/client/model/OnCallRoleListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OnCallRoleResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/OnCallRoleResponseTest.java b/src/test/java/com/rootly/client/model/OnCallRoleResponseTest.java index 10137afe..15d0e217 100644 --- a/src/test/java/com/rootly/client/model/OnCallRoleResponseTest.java +++ b/src/test/java/com/rootly/client/model/OnCallRoleResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OnCallRoleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/OnCallRoleTest.java b/src/test/java/com/rootly/client/model/OnCallRoleTest.java index 455727c4..23794540 100644 --- a/src/test/java/com/rootly/client/model/OnCallRoleTest.java +++ b/src/test/java/com/rootly/client/model/OnCallRoleTest.java @@ -223,6 +223,14 @@ public void servicesPermissionsTest() { // TODO: test servicesPermissions } + /** + * Test the property 'functionalitiesPermissions' + */ + @Test + public void functionalitiesPermissionsTest() { + // TODO: test functionalitiesPermissions + } + /** * Test the property 'webhooksPermissions' */ @@ -239,6 +247,14 @@ public void workflowsPermissionsTest() { // TODO: test workflowsPermissions } + /** + * Test the property 'catalogsPermissions' + */ + @Test + public void catalogsPermissionsTest() { + // TODO: test catalogsPermissions + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/OnCallShadowResponseTest.java b/src/test/java/com/rootly/client/model/OnCallShadowResponseTest.java index 1b482ec6..e4141505 100644 --- a/src/test/java/com/rootly/client/model/OnCallShadowResponseTest.java +++ b/src/test/java/com/rootly/client/model/OnCallShadowResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OnCallShadowResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/OnCallShadowsListTest.java b/src/test/java/com/rootly/client/model/OnCallShadowsListTest.java index f64b2701..671436a6 100644 --- a/src/test/java/com/rootly/client/model/OnCallShadowsListTest.java +++ b/src/test/java/com/rootly/client/model/OnCallShadowsListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OnCallShadowsListDataInner; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/OncallListDataInnerTest.java b/src/test/java/com/rootly/client/model/OncallListDataInnerTest.java new file mode 100644 index 00000000..5a986118 --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallListDataInnerTest.java @@ -0,0 +1,74 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.Oncall; +import com.rootly.client.model.OncallRelationships; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallListDataInner + */ +public class OncallListDataInnerTest { + private final OncallListDataInner model = new OncallListDataInner(); + + /** + * Model tests for OncallListDataInner + */ + @Test + public void testOncallListDataInner() { + // TODO: test OncallListDataInner + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + + /** + * Test the property 'relationships' + */ + @Test + public void relationshipsTest() { + // TODO: test relationships + } + +} diff --git a/src/test/java/com/rootly/client/model/OncallListTest.java b/src/test/java/com/rootly/client/model/OncallListTest.java new file mode 100644 index 00000000..6da52c98 --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallListTest.java @@ -0,0 +1,60 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.OncallListDataInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallList + */ +public class OncallListTest { + private final OncallList model = new OncallList(); + + /** + * Model tests for OncallList + */ + @Test + public void testOncallList() { + // TODO: test OncallList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyDataTest.java b/src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyDataTest.java new file mode 100644 index 00000000..5abbbd1b --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyDataTest.java @@ -0,0 +1,56 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallRelationshipsEscalationPolicyData + */ +public class OncallRelationshipsEscalationPolicyDataTest { + private final OncallRelationshipsEscalationPolicyData model = new OncallRelationshipsEscalationPolicyData(); + + /** + * Model tests for OncallRelationshipsEscalationPolicyData + */ + @Test + public void testOncallRelationshipsEscalationPolicyData() { + // TODO: test OncallRelationshipsEscalationPolicyData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + +} diff --git a/src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyTest.java b/src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyTest.java new file mode 100644 index 00000000..0d5459d6 --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallRelationshipsEscalationPolicyTest.java @@ -0,0 +1,50 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsEscalationPolicyData; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallRelationshipsEscalationPolicy + */ +public class OncallRelationshipsEscalationPolicyTest { + private final OncallRelationshipsEscalationPolicy model = new OncallRelationshipsEscalationPolicy(); + + /** + * Model tests for OncallRelationshipsEscalationPolicy + */ + @Test + public void testOncallRelationshipsEscalationPolicy() { + // TODO: test OncallRelationshipsEscalationPolicy + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/OncallRelationshipsScheduleDataTest.java b/src/test/java/com/rootly/client/model/OncallRelationshipsScheduleDataTest.java new file mode 100644 index 00000000..65a4650d --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallRelationshipsScheduleDataTest.java @@ -0,0 +1,56 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallRelationshipsScheduleData + */ +public class OncallRelationshipsScheduleDataTest { + private final OncallRelationshipsScheduleData model = new OncallRelationshipsScheduleData(); + + /** + * Model tests for OncallRelationshipsScheduleData + */ + @Test + public void testOncallRelationshipsScheduleData() { + // TODO: test OncallRelationshipsScheduleData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + +} diff --git a/src/test/java/com/rootly/client/model/OncallRelationshipsScheduleTest.java b/src/test/java/com/rootly/client/model/OncallRelationshipsScheduleTest.java new file mode 100644 index 00000000..dffb5af5 --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallRelationshipsScheduleTest.java @@ -0,0 +1,50 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsScheduleData; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallRelationshipsSchedule + */ +public class OncallRelationshipsScheduleTest { + private final OncallRelationshipsSchedule model = new OncallRelationshipsSchedule(); + + /** + * Model tests for OncallRelationshipsSchedule + */ + @Test + public void testOncallRelationshipsSchedule() { + // TODO: test OncallRelationshipsSchedule + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/OncallRelationshipsTest.java b/src/test/java/com/rootly/client/model/OncallRelationshipsTest.java new file mode 100644 index 00000000..04edef9d --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallRelationshipsTest.java @@ -0,0 +1,67 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsEscalationPolicy; +import com.rootly.client.model.OncallRelationshipsSchedule; +import com.rootly.client.model.OncallRelationshipsUser; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallRelationships + */ +public class OncallRelationshipsTest { + private final OncallRelationships model = new OncallRelationships(); + + /** + * Model tests for OncallRelationships + */ + @Test + public void testOncallRelationships() { + // TODO: test OncallRelationships + } + + /** + * Test the property 'user' + */ + @Test + public void userTest() { + // TODO: test user + } + + /** + * Test the property 'schedule' + */ + @Test + public void scheduleTest() { + // TODO: test schedule + } + + /** + * Test the property 'escalationPolicy' + */ + @Test + public void escalationPolicyTest() { + // TODO: test escalationPolicy + } + +} diff --git a/src/test/java/com/rootly/client/model/OncallRelationshipsUserDataTest.java b/src/test/java/com/rootly/client/model/OncallRelationshipsUserDataTest.java new file mode 100644 index 00000000..f23dc91f --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallRelationshipsUserDataTest.java @@ -0,0 +1,56 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for OncallRelationshipsUserData + */ +public class OncallRelationshipsUserDataTest { + private final OncallRelationshipsUserData model = new OncallRelationshipsUserData(); + + /** + * Model tests for OncallRelationshipsUserData + */ + @Test + public void testOncallRelationshipsUserData() { + // TODO: test OncallRelationshipsUserData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + +} diff --git a/src/test/java/com/rootly/client/model/ShiftRelationshipsUserTest.java b/src/test/java/com/rootly/client/model/OncallRelationshipsUserTest.java similarity index 90% rename from src/test/java/com/rootly/client/model/ShiftRelationshipsUserTest.java rename to src/test/java/com/rootly/client/model/OncallRelationshipsUserTest.java index e75802ce..02fce8ae 100644 --- a/src/test/java/com/rootly/client/model/ShiftRelationshipsUserTest.java +++ b/src/test/java/com/rootly/client/model/OncallRelationshipsUserTest.java @@ -18,7 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.ShiftRelationshipsUserData; +import com.rootly.client.model.OncallRelationshipsUserData; import java.io.IOException; import java.util.Arrays; import org.openapitools.jackson.nullable.JsonNullable; @@ -26,17 +26,17 @@ import org.junit.jupiter.api.Test; /** - * Model tests for ShiftRelationshipsUser + * Model tests for OncallRelationshipsUser */ -public class ShiftRelationshipsUserTest { - private final ShiftRelationshipsUser model = new ShiftRelationshipsUser(); +public class OncallRelationshipsUserTest { + private final OncallRelationshipsUser model = new OncallRelationshipsUser(); /** - * Model tests for ShiftRelationshipsUser + * Model tests for OncallRelationshipsUser */ @Test - public void testShiftRelationshipsUser() { - // TODO: test ShiftRelationshipsUser + public void testOncallRelationshipsUser() { + // TODO: test OncallRelationshipsUser } /** diff --git a/src/test/java/com/rootly/client/model/OncallTest.java b/src/test/java/com/rootly/client/model/OncallTest.java new file mode 100644 index 00000000..577e5729 --- /dev/null +++ b/src/test/java/com/rootly/client/model/OncallTest.java @@ -0,0 +1,138 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Oncall + */ +public class OncallTest { + private final Oncall model = new Oncall(); + + /** + * Model tests for Oncall + */ + @Test + public void testOncall() { + // TODO: test Oncall + } + + /** + * Test the property 'escalationPolicyId' + */ + @Test + public void escalationPolicyIdTest() { + // TODO: test escalationPolicyId + } + + /** + * Test the property 'escalationPolicyName' + */ + @Test + public void escalationPolicyNameTest() { + // TODO: test escalationPolicyName + } + + /** + * Test the property 'escalationPolicyPathId' + */ + @Test + public void escalationPolicyPathIdTest() { + // TODO: test escalationPolicyPathId + } + + /** + * Test the property 'escalationPolicyPathName' + */ + @Test + public void escalationPolicyPathNameTest() { + // TODO: test escalationPolicyPathName + } + + /** + * Test the property 'notificationType' + */ + @Test + public void notificationTypeTest() { + // TODO: test notificationType + } + + /** + * Test the property 'isDefaultPath' + */ + @Test + public void isDefaultPathTest() { + // TODO: test isDefaultPath + } + + /** + * Test the property 'escalationLevel' + */ + @Test + public void escalationLevelTest() { + // TODO: test escalationLevel + } + + /** + * Test the property 'scheduleId' + */ + @Test + public void scheduleIdTest() { + // TODO: test scheduleId + } + + /** + * Test the property 'scheduleName' + */ + @Test + public void scheduleNameTest() { + // TODO: test scheduleName + } + + /** + * Test the property 'userId' + */ + @Test + public void userIdTest() { + // TODO: test userId + } + + /** + * Test the property 'startsAt' + */ + @Test + public void startsAtTest() { + // TODO: test startsAt + } + + /** + * Test the property 'endsAt' + */ + @Test + public void endsAtTest() { + // TODO: test endsAt + } + +} diff --git a/src/test/java/com/rootly/client/model/OverrideShiftListTest.java b/src/test/java/com/rootly/client/model/OverrideShiftListTest.java index 1bff44ac..868403f9 100644 --- a/src/test/java/com/rootly/client/model/OverrideShiftListTest.java +++ b/src/test/java/com/rootly/client/model/OverrideShiftListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.OverrideShiftResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/OverrideShiftResponseTest.java b/src/test/java/com/rootly/client/model/OverrideShiftResponseTest.java index 9ff749aa..393b4cfc 100644 --- a/src/test/java/com/rootly/client/model/OverrideShiftResponseTest.java +++ b/src/test/java/com/rootly/client/model/OverrideShiftResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.OverrideShiftResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParamsTest.java b/src/test/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParamsTest.java index bdad4c58..a2a51745 100644 --- a/src/test/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/PageRootlyOnCallRespondersTaskParamsTest.java @@ -78,6 +78,14 @@ public void groupTargetTest() { // TODO: test groupTarget } + /** + * Test the property 'functionalityTarget' + */ + @Test + public void functionalityTargetTest() { + // TODO: test functionalityTarget + } + /** * Test the property 'alertUrgencyId' */ @@ -110,4 +118,12 @@ public void escalationNoteTest() { // TODO: test escalationNote } + /** + * Test the property 'createNewAlert' + */ + @Test + public void createNewAlertTest() { + // TODO: test createNewAlert + } + } diff --git a/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1Test.java b/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1Test.java new file mode 100644 index 00000000..7ec25a26 --- /dev/null +++ b/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOf1Test.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + */ +public class PageVictorOpsOnCallRespondersTaskParamsAnyOf1Test { + private final PageVictorOpsOnCallRespondersTaskParamsAnyOf1 model = new PageVictorOpsOnCallRespondersTaskParamsAnyOf1(); + + /** + * Model tests for PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + */ + @Test + public void testPageVictorOpsOnCallRespondersTaskParamsAnyOf1() { + // TODO: test PageVictorOpsOnCallRespondersTaskParamsAnyOf1 + } + + /** + * Test the property 'escalationPolicies' + */ + @Test + public void escalationPoliciesTest() { + // TODO: test escalationPolicies + } + +} diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestTest.java b/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOfTest.java similarity index 83% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestTest.java rename to src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOfTest.java index 3a27fa28..3e78e5c9 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestTest.java +++ b/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsAnyOfTest.java @@ -18,32 +18,34 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequest + * Model tests for PageVictorOpsOnCallRespondersTaskParamsAnyOf */ -public class V1EdgeConnectorsEdgeConnectorIdActionsPostRequestTest { - private final V1EdgeConnectorsEdgeConnectorIdActionsPostRequest model = new V1EdgeConnectorsEdgeConnectorIdActionsPostRequest(); +public class PageVictorOpsOnCallRespondersTaskParamsAnyOfTest { + private final PageVictorOpsOnCallRespondersTaskParamsAnyOf model = new PageVictorOpsOnCallRespondersTaskParamsAnyOf(); /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequest + * Model tests for PageVictorOpsOnCallRespondersTaskParamsAnyOf */ @Test - public void testV1EdgeConnectorsEdgeConnectorIdActionsPostRequest() { - // TODO: test V1EdgeConnectorsEdgeConnectorIdActionsPostRequest + public void testPageVictorOpsOnCallRespondersTaskParamsAnyOf() { + // TODO: test PageVictorOpsOnCallRespondersTaskParamsAnyOf } /** - * Test the property 'action' + * Test the property 'users' */ @Test - public void actionTest() { - // TODO: test action + public void usersTest() { + // TODO: test users } } diff --git a/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsTest.java b/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsTest.java index 328ff502..2df653e9 100644 --- a/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/PageVictorOpsOnCallRespondersTaskParamsTest.java @@ -18,6 +18,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.PageVictorOpsOnCallRespondersTaskParamsAnyOf; +import com.rootly.client.model.PageVictorOpsOnCallRespondersTaskParamsAnyOf1; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -40,4 +43,20 @@ public void testPageVictorOpsOnCallRespondersTaskParams() { // TODO: test PageVictorOpsOnCallRespondersTaskParams } + /** + * Test the property 'users' + */ + @Test + public void usersTest() { + // TODO: test users + } + + /** + * Test the property 'escalationPolicies' + */ + @Test + public void escalationPoliciesTest() { + // TODO: test escalationPolicies + } + } diff --git a/src/test/java/com/rootly/client/model/PlaybookListTest.java b/src/test/java/com/rootly/client/model/PlaybookListTest.java index 72196afd..4113a63c 100644 --- a/src/test/java/com/rootly/client/model/PlaybookListTest.java +++ b/src/test/java/com/rootly/client/model/PlaybookListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PlaybookResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PlaybookResponseTest.java b/src/test/java/com/rootly/client/model/PlaybookResponseTest.java index ca70180c..e1ee0a26 100644 --- a/src/test/java/com/rootly/client/model/PlaybookResponseTest.java +++ b/src/test/java/com/rootly/client/model/PlaybookResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PlaybookResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PlaybookTaskListTest.java b/src/test/java/com/rootly/client/model/PlaybookTaskListTest.java index d1c825ed..87e3477f 100644 --- a/src/test/java/com/rootly/client/model/PlaybookTaskListTest.java +++ b/src/test/java/com/rootly/client/model/PlaybookTaskListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PlaybookTaskResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PlaybookTaskResponseTest.java b/src/test/java/com/rootly/client/model/PlaybookTaskResponseTest.java index 30f82f9a..69b0a809 100644 --- a/src/test/java/com/rootly/client/model/PlaybookTaskResponseTest.java +++ b/src/test/java/com/rootly/client/model/PlaybookTaskResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PlaybookTaskResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PostMortemTemplateListTest.java b/src/test/java/com/rootly/client/model/PostMortemTemplateListTest.java index 562b3091..3028a83a 100644 --- a/src/test/java/com/rootly/client/model/PostMortemTemplateListTest.java +++ b/src/test/java/com/rootly/client/model/PostMortemTemplateListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PostMortemTemplateResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PostMortemTemplateResponseTest.java b/src/test/java/com/rootly/client/model/PostMortemTemplateResponseTest.java index d4fd7516..b387031a 100644 --- a/src/test/java/com/rootly/client/model/PostMortemTemplateResponseTest.java +++ b/src/test/java/com/rootly/client/model/PostMortemTemplateResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PostMortemTemplateResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PostMortemTriggerParamsTest.java b/src/test/java/com/rootly/client/model/PostMortemTriggerParamsTest.java index 7c294d5f..277dd837 100644 --- a/src/test/java/com/rootly/client/model/PostMortemTriggerParamsTest.java +++ b/src/test/java/com/rootly/client/model/PostMortemTriggerParamsTest.java @@ -192,6 +192,30 @@ public void incidentConditionCauseTest() { // TODO: test incidentConditionCause } + /** + * Test the property 'incidentConditionLabel' + */ + @Test + public void incidentConditionLabelTest() { + // TODO: test incidentConditionLabel + } + + /** + * Test the property 'incidentConditionLabelUseRegexp' + */ + @Test + public void incidentConditionLabelUseRegexpTest() { + // TODO: test incidentConditionLabelUseRegexp + } + + /** + * Test the property 'incidentLabels' + */ + @Test + public void incidentLabelsTest() { + // TODO: test incidentLabels + } + /** * Test the property 'incidentPostMortemConditionCause' */ diff --git a/src/test/java/com/rootly/client/model/PublishIncidentTaskParamsTest.java b/src/test/java/com/rootly/client/model/PublishIncidentTaskParamsTest.java index aaf3402b..be41f4b0 100644 --- a/src/test/java/com/rootly/client/model/PublishIncidentTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/PublishIncidentTaskParamsTest.java @@ -20,7 +20,9 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -111,6 +113,14 @@ public void statusPageIdTest() { // TODO: test statusPageId } + /** + * Test the property 'statusPageIds' + */ + @Test + public void statusPageIdsTest() { + // TODO: test statusPageIds + } + /** * Test the property 'integrationPayload' */ diff --git a/src/test/java/com/rootly/client/model/PulseListTest.java b/src/test/java/com/rootly/client/model/PulseListTest.java index b38d2801..114fb04d 100644 --- a/src/test/java/com/rootly/client/model/PulseListTest.java +++ b/src/test/java/com/rootly/client/model/PulseListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.PulseResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/PulseResponseTest.java b/src/test/java/com/rootly/client/model/PulseResponseTest.java index 11ebb148..61ee8e7c 100644 --- a/src/test/java/com/rootly/client/model/PulseResponseTest.java +++ b/src/test/java/com/rootly/client/model/PulseResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.PulseResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ReceiptTest.java b/src/test/java/com/rootly/client/model/ReceiptTest.java new file mode 100644 index 00000000..f626cd13 --- /dev/null +++ b/src/test/java/com/rootly/client/model/ReceiptTest.java @@ -0,0 +1,72 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for Receipt + */ +public class ReceiptTest { + private final Receipt model = new Receipt(); + + /** + * Model tests for Receipt + */ + @Test + public void testReceipt() { + // TODO: test Receipt + } + + /** + * Test the property 'state' + */ + @Test + public void stateTest() { + // TODO: test state + } + + /** + * Test the property 'reason' + */ + @Test + public void reasonTest() { + // TODO: test reason + } + + /** + * Test the property 'resourceType' + */ + @Test + public void resourceTypeTest() { + // TODO: test resourceType + } + + /** + * Test the property 'resourceId' + */ + @Test + public void resourceIdTest() { + // TODO: test resourceId + } + +} diff --git a/src/test/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParamsTest.java b/src/test/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParamsTest.java new file mode 100644 index 00000000..5535d950 --- /dev/null +++ b/src/test/java/com/rootly/client/model/RenameGoogleChatSpaceTaskParamsTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for RenameGoogleChatSpaceTaskParams + */ +public class RenameGoogleChatSpaceTaskParamsTest { + private final RenameGoogleChatSpaceTaskParams model = new RenameGoogleChatSpaceTaskParams(); + + /** + * Model tests for RenameGoogleChatSpaceTaskParams + */ + @Test + public void testRenameGoogleChatSpaceTaskParams() { + // TODO: test RenameGoogleChatSpaceTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'space' + */ + @Test + public void spaceTest() { + // TODO: test space + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + +} diff --git a/src/test/java/com/rootly/client/model/RetrospectiveConfigurationListTest.java b/src/test/java/com/rootly/client/model/RetrospectiveConfigurationListTest.java index d8ab4bce..ab926e9a 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveConfigurationListTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveConfigurationListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveConfigurationListDataInner; import java.io.IOException; import java.util.ArrayList; @@ -48,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveConfigurationResponseTest.java b/src/test/java/com/rootly/client/model/RetrospectiveConfigurationResponseTest.java index 308482d6..185086c1 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveConfigurationResponseTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveConfigurationResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveConfigurationResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupListTest.java b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupListTest.java index b91615be..2ffb7a0e 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupListTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveProcessGroupResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupResponseTest.java b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupResponseTest.java index 41277160..e4612078 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupResponseTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveProcessGroupResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepListTest.java b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepListTest.java index 41b1e714..41c145ac 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepListTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveProcessGroupStepResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseTest.java b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseTest.java index 5e07080a..9afa69f0 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveProcessGroupStepResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveProcessGroupStepResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveProcessListTest.java b/src/test/java/com/rootly/client/model/RetrospectiveProcessListTest.java index 5d96e70e..5023aa65 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveProcessListTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveProcessListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveProcessListDataInner; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveProcessResponseTest.java b/src/test/java/com/rootly/client/model/RetrospectiveProcessResponseTest.java index 951a82aa..2f719070 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveProcessResponseTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveProcessResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveProcessResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveStepListTest.java b/src/test/java/com/rootly/client/model/RetrospectiveStepListTest.java index 5d5ff7d9..d87289d3 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveStepListTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveStepListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RetrospectiveStepResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RetrospectiveStepResponseTest.java b/src/test/java/com/rootly/client/model/RetrospectiveStepResponseTest.java index 25fe0e26..e39f77cd 100644 --- a/src/test/java/com/rootly/client/model/RetrospectiveStepResponseTest.java +++ b/src/test/java/com/rootly/client/model/RetrospectiveStepResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RetrospectiveStepResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RoleListTest.java b/src/test/java/com/rootly/client/model/RoleListTest.java index 98c80921..1f94c7c0 100644 --- a/src/test/java/com/rootly/client/model/RoleListTest.java +++ b/src/test/java/com/rootly/client/model/RoleListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.RoleResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RoleResponseTest.java b/src/test/java/com/rootly/client/model/RoleResponseTest.java index 9324f2b2..db9be7b8 100644 --- a/src/test/java/com/rootly/client/model/RoleResponseTest.java +++ b/src/test/java/com/rootly/client/model/RoleResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.RoleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/RoleTest.java b/src/test/java/com/rootly/client/model/RoleTest.java index 40d20b7a..5a18c1dc 100644 --- a/src/test/java/com/rootly/client/model/RoleTest.java +++ b/src/test/java/com/rootly/client/model/RoleTest.java @@ -288,6 +288,62 @@ public void workflowsPermissionsTest() { // TODO: test workflowsPermissions } + /** + * Test the property 'catalogsPermissions' + */ + @Test + public void catalogsPermissionsTest() { + // TODO: test catalogsPermissions + } + + /** + * Test the property 'subStatusesPermissions' + */ + @Test + public void subStatusesPermissionsTest() { + // TODO: test subStatusesPermissions + } + + /** + * Test the property 'edgeConnectorPermissions' + */ + @Test + public void edgeConnectorPermissionsTest() { + // TODO: test edgeConnectorPermissions + } + + /** + * Test the property 'slasPermissions' + */ + @Test + public void slasPermissionsTest() { + // TODO: test slasPermissions + } + + /** + * Test the property 'pagingPermissions' + */ + @Test + public void pagingPermissionsTest() { + // TODO: test pagingPermissions + } + + /** + * Test the property 'incidentCommunicationPermissions' + */ + @Test + public void incidentCommunicationPermissionsTest() { + // TODO: test incidentCommunicationPermissions + } + + /** + * Test the property 'communicationPermissions' + */ + @Test + public void communicationPermissionsTest() { + // TODO: test communicationPermissions + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/ScheduleListTest.java b/src/test/java/com/rootly/client/model/ScheduleListTest.java index 95ce8117..f8177524 100644 --- a/src/test/java/com/rootly/client/model/ScheduleListTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleListDataInner; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleResponseTest.java b/src/test/java/com/rootly/client/model/ScheduleResponseTest.java index 1c2d51b6..010092b9 100644 --- a/src/test/java/com/rootly/client/model/ScheduleResponseTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayListTest.java b/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayListTest.java index 7a2c96ab..d8afa861 100644 --- a/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayListTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleRotationActiveDayListDataInner; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayResponseTest.java b/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayResponseTest.java index 52bd3e33..610e5eb1 100644 --- a/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayResponseTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleRotationActiveDayResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleRotationActiveDayResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleRotationListTest.java b/src/test/java/com/rootly/client/model/ScheduleRotationListTest.java index 7cd9f862..d5a910e7 100644 --- a/src/test/java/com/rootly/client/model/ScheduleRotationListTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleRotationListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleRotationResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleRotationResponseTest.java b/src/test/java/com/rootly/client/model/ScheduleRotationResponseTest.java index aea94300..c6875434 100644 --- a/src/test/java/com/rootly/client/model/ScheduleRotationResponseTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleRotationResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleRotationResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleRotationTest.java b/src/test/java/com/rootly/client/model/ScheduleRotationTest.java index 20d4d5e9..76cf3246 100644 --- a/src/test/java/com/rootly/client/model/ScheduleRotationTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleRotationTest.java @@ -21,7 +21,7 @@ import com.rootly.client.model.NewScheduleRotationDataAttributesActiveTimeAttributesInner; import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationableAttributes; import java.io.IOException; -import java.time.LocalDate; +import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/com/rootly/client/model/ScheduleRotationUserListTest.java b/src/test/java/com/rootly/client/model/ScheduleRotationUserListTest.java index 65dd0dec..e1d21e67 100644 --- a/src/test/java/com/rootly/client/model/ScheduleRotationUserListTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleRotationUserListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ScheduleRotationUserListDataInner; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleRotationUserResponseTest.java b/src/test/java/com/rootly/client/model/ScheduleRotationUserResponseTest.java index ab4ecf4c..49cb44e3 100644 --- a/src/test/java/com/rootly/client/model/ScheduleRotationUserResponseTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleRotationUserResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ScheduleRotationUserListDataInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ScheduleTest.java b/src/test/java/com/rootly/client/model/ScheduleTest.java index db36b777..8fa252d1 100644 --- a/src/test/java/com/rootly/client/model/ScheduleTest.java +++ b/src/test/java/com/rootly/client/model/ScheduleTest.java @@ -98,6 +98,70 @@ public void ownerUserIdTest() { // TODO: test ownerUserId } + /** + * Test the property 'syncLinearEnabled' + */ + @Test + public void syncLinearEnabledTest() { + // TODO: test syncLinearEnabled + } + + /** + * Test the property 'includeShadowsInSlackNotifications' + */ + @Test + public void includeShadowsInSlackNotificationsTest() { + // TODO: test includeShadowsInSlackNotifications + } + + /** + * Test the property 'shiftStartNotificationsEnabled' + */ + @Test + public void shiftStartNotificationsEnabledTest() { + // TODO: test shiftStartNotificationsEnabled + } + + /** + * Test the property 'shiftUpdateNotificationsEnabled' + */ + @Test + public void shiftUpdateNotificationsEnabledTest() { + // TODO: test shiftUpdateNotificationsEnabled + } + + /** + * Test the property 'shiftReportEnabled' + */ + @Test + public void shiftReportEnabledTest() { + // TODO: test shiftReportEnabled + } + + /** + * Test the property 'shiftReportDayOfWeek' + */ + @Test + public void shiftReportDayOfWeekTest() { + // TODO: test shiftReportDayOfWeek + } + + /** + * Test the property 'shiftReportTimeOfDay' + */ + @Test + public void shiftReportTimeOfDayTest() { + // TODO: test shiftReportTimeOfDay + } + + /** + * Test the property 'shiftReportTimeZone' + */ + @Test + public void shiftReportTimeZoneTest() { + // TODO: test shiftReportTimeZone + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParamsTest.java b/src/test/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParamsTest.java new file mode 100644 index 00000000..a45023f2 --- /dev/null +++ b/src/test/java/com/rootly/client/model/SendGoogleChatAttachmentsTaskParamsTest.java @@ -0,0 +1,67 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for SendGoogleChatAttachmentsTaskParams + */ +public class SendGoogleChatAttachmentsTaskParamsTest { + private final SendGoogleChatAttachmentsTaskParams model = new SendGoogleChatAttachmentsTaskParams(); + + /** + * Model tests for SendGoogleChatAttachmentsTaskParams + */ + @Test + public void testSendGoogleChatAttachmentsTaskParams() { + // TODO: test SendGoogleChatAttachmentsTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'spaces' + */ + @Test + public void spacesTest() { + // TODO: test spaces + } + + /** + * Test the property 'attachments' + */ + @Test + public void attachmentsTest() { + // TODO: test attachments + } + +} diff --git a/src/test/java/com/rootly/client/model/SendGoogleChatMessageTaskParamsTest.java b/src/test/java/com/rootly/client/model/SendGoogleChatMessageTaskParamsTest.java new file mode 100644 index 00000000..9cfb19d0 --- /dev/null +++ b/src/test/java/com/rootly/client/model/SendGoogleChatMessageTaskParamsTest.java @@ -0,0 +1,76 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for SendGoogleChatMessageTaskParams + */ +public class SendGoogleChatMessageTaskParamsTest { + private final SendGoogleChatMessageTaskParams model = new SendGoogleChatMessageTaskParams(); + + /** + * Model tests for SendGoogleChatMessageTaskParams + */ + @Test + public void testSendGoogleChatMessageTaskParams() { + // TODO: test SendGoogleChatMessageTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'spaces' + */ + @Test + public void spacesTest() { + // TODO: test spaces + } + + /** + * Test the property 'text' + */ + @Test + public void textTest() { + // TODO: test text + } + + /** + * Test the property 'threadKey' + */ + @Test + public void threadKeyTest() { + // TODO: test threadKey + } + +} diff --git a/src/test/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParamsTest.java b/src/test/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParamsTest.java index 45860a07..c72ccb64 100644 --- a/src/test/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/SendMicrosoftTeamsBlocksTaskParamsTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -37,4 +40,12 @@ public void testSendMicrosoftTeamsBlocksTaskParams() { // TODO: test SendMicrosoftTeamsBlocksTaskParams } + /** + * Test the property 'channels' + */ + @Test + public void channelsTest() { + // TODO: test channels + } + } diff --git a/src/test/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParamsTest.java b/src/test/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParamsTest.java index 9b9c3489..9f0263ac 100644 --- a/src/test/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/SendMicrosoftTeamsMessageTaskParamsTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -39,4 +40,12 @@ public void testSendMicrosoftTeamsMessageTaskParams() { // TODO: test SendMicrosoftTeamsMessageTaskParams } + /** + * Test the property 'channels' + */ + @Test + public void channelsTest() { + // TODO: test channels + } + } diff --git a/src/test/java/com/rootly/client/model/SendSlackBlocksTaskParamsTest.java b/src/test/java/com/rootly/client/model/SendSlackBlocksTaskParamsTest.java index 9f0e50ea..e6833cbf 100644 --- a/src/test/java/com/rootly/client/model/SendSlackBlocksTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/SendSlackBlocksTaskParamsTest.java @@ -18,6 +18,10 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf1; +import com.rootly.client.model.SendSlackMessageTaskParamsAnyOf; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -39,4 +43,28 @@ public void testSendSlackBlocksTaskParams() { // TODO: test SendSlackBlocksTaskParams } + /** + * Test the property 'channels' + */ + @Test + public void channelsTest() { + // TODO: test channels + } + + /** + * Test the property 'slackUsers' + */ + @Test + public void slackUsersTest() { + // TODO: test slackUsers + } + + /** + * Test the property 'slackUserGroups' + */ + @Test + public void slackUserGroupsTest() { + // TODO: test slackUserGroups + } + } diff --git a/src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOfTest.java b/src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOfTest.java new file mode 100644 index 00000000..a1a7cd1c --- /dev/null +++ b/src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsAnyOfTest.java @@ -0,0 +1,51 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for SendSlackMessageTaskParamsAnyOf + */ +public class SendSlackMessageTaskParamsAnyOfTest { + private final SendSlackMessageTaskParamsAnyOf model = new SendSlackMessageTaskParamsAnyOf(); + + /** + * Model tests for SendSlackMessageTaskParamsAnyOf + */ + @Test + public void testSendSlackMessageTaskParamsAnyOf() { + // TODO: test SendSlackMessageTaskParamsAnyOf + } + + /** + * Test the property 'channels' + */ + @Test + public void channelsTest() { + // TODO: test channels + } + +} diff --git a/src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsTest.java b/src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsTest.java index 57a64ec6..a5cfce2a 100644 --- a/src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/SendSlackMessageTaskParamsTest.java @@ -18,6 +18,10 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf; +import com.rootly.client.model.InviteToSlackChannelTaskParamsAnyOf1; +import com.rootly.client.model.SendSlackMessageTaskParamsAnyOf; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -39,4 +43,28 @@ public void testSendSlackMessageTaskParams() { // TODO: test SendSlackMessageTaskParams } + /** + * Test the property 'channels' + */ + @Test + public void channelsTest() { + // TODO: test channels + } + + /** + * Test the property 'slackUsers' + */ + @Test + public void slackUsersTest() { + // TODO: test slackUsers + } + + /** + * Test the property 'slackUserGroups' + */ + @Test + public void slackUserGroupsTest() { + // TODO: test slackUserGroups + } + } diff --git a/src/test/java/com/rootly/client/model/ServiceListTest.java b/src/test/java/com/rootly/client/model/ServiceListTest.java index 85dd5820..dbbebebb 100644 --- a/src/test/java/com/rootly/client/model/ServiceListTest.java +++ b/src/test/java/com/rootly/client/model/ServiceListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.ServiceResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ServiceResponseTest.java b/src/test/java/com/rootly/client/model/ServiceResponseTest.java index 1c5312de..f01596d6 100644 --- a/src/test/java/com/rootly/client/model/ServiceResponseTest.java +++ b/src/test/java/com/rootly/client/model/ServiceResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ServiceResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ServiceTest.java b/src/test/java/com/rootly/client/model/ServiceTest.java index fd66c600..0fad50f3 100644 --- a/src/test/java/com/rootly/client/model/ServiceTest.java +++ b/src/test/java/com/rootly/client/model/ServiceTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.ServiceAlertBroadcastChannel; @@ -60,6 +61,14 @@ public void slugTest() { // TODO: test slug } + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + /** * Test the property 'description' */ @@ -300,6 +309,14 @@ public void incidentBroadcastChannelTest() { // TODO: test incidentBroadcastChannel } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/SeverityListTest.java b/src/test/java/com/rootly/client/model/SeverityListTest.java index fd8b1f77..59b77723 100644 --- a/src/test/java/com/rootly/client/model/SeverityListTest.java +++ b/src/test/java/com/rootly/client/model/SeverityListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.SeverityResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/SeverityResponseTest.java b/src/test/java/com/rootly/client/model/SeverityResponseTest.java index 7eb55a49..bcdb8de3 100644 --- a/src/test/java/com/rootly/client/model/SeverityResponseTest.java +++ b/src/test/java/com/rootly/client/model/SeverityResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.SeverityResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ShiftCoverageRequestListTest.java b/src/test/java/com/rootly/client/model/ShiftCoverageRequestListTest.java new file mode 100644 index 00000000..ac2ca845 --- /dev/null +++ b/src/test/java/com/rootly/client/model/ShiftCoverageRequestListTest.java @@ -0,0 +1,78 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.ShiftCoverageRequestResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for ShiftCoverageRequestList + */ +public class ShiftCoverageRequestListTest { + private final ShiftCoverageRequestList model = new ShiftCoverageRequestList(); + + /** + * Model tests for ShiftCoverageRequestList + */ + @Test + public void testShiftCoverageRequestList() { + // TODO: test ShiftCoverageRequestList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'links' + */ + @Test + public void linksTest() { + // TODO: test links + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseDataTest.java b/src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseDataTest.java new file mode 100644 index 00000000..4328df74 --- /dev/null +++ b/src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.ShiftCoverageRequest; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for ShiftCoverageRequestResponseData + */ +public class ShiftCoverageRequestResponseDataTest { + private final ShiftCoverageRequestResponseData model = new ShiftCoverageRequestResponseData(); + + /** + * Model tests for ShiftCoverageRequestResponseData + */ + @Test + public void testShiftCoverageRequestResponseData() { + // TODO: test ShiftCoverageRequestResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseTest.java b/src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseTest.java new file mode 100644 index 00000000..1e3846c8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/ShiftCoverageRequestResponseTest.java @@ -0,0 +1,60 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.ShiftCoverageRequestResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for ShiftCoverageRequestResponse + */ +public class ShiftCoverageRequestResponseTest { + private final ShiftCoverageRequestResponse model = new ShiftCoverageRequestResponse(); + + /** + * Model tests for ShiftCoverageRequestResponse + */ + @Test + public void testShiftCoverageRequestResponse() { + // TODO: test ShiftCoverageRequestResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/ShiftCoverageRequestTest.java b/src/test/java/com/rootly/client/model/ShiftCoverageRequestTest.java new file mode 100644 index 00000000..859659bd --- /dev/null +++ b/src/test/java/com/rootly/client/model/ShiftCoverageRequestTest.java @@ -0,0 +1,139 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.ScheduleResponse; +import com.rootly.client.model.Shift; +import com.rootly.client.model.UserResponse; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for ShiftCoverageRequest + */ +public class ShiftCoverageRequestTest { + private final ShiftCoverageRequest model = new ShiftCoverageRequest(); + + /** + * Model tests for ShiftCoverageRequest + */ + @Test + public void testShiftCoverageRequest() { + // TODO: test ShiftCoverageRequest + } + + /** + * Test the property 'scheduleId' + */ + @Test + public void scheduleIdTest() { + // TODO: test scheduleId + } + + /** + * Test the property 'shiftId' + */ + @Test + public void shiftIdTest() { + // TODO: test shiftId + } + + /** + * Test the property 'originalShiftUserId' + */ + @Test + public void originalShiftUserIdTest() { + // TODO: test originalShiftUserId + } + + /** + * Test the property 'createdByUserId' + */ + @Test + public void createdByUserIdTest() { + // TODO: test createdByUserId + } + + /** + * Test the property 'startsAt' + */ + @Test + public void startsAtTest() { + // TODO: test startsAt + } + + /** + * Test the property 'endsAt' + */ + @Test + public void endsAtTest() { + // TODO: test endsAt + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + + /** + * Test the property 'schedule' + */ + @Test + public void scheduleTest() { + // TODO: test schedule + } + + /** + * Test the property 'shift' + */ + @Test + public void shiftTest() { + // TODO: test shift + } + + /** + * Test the property 'originalShiftUser' + */ + @Test + public void originalShiftUserTest() { + // TODO: test originalShiftUser + } + + /** + * Test the property 'createdByUser' + */ + @Test + public void createdByUserTest() { + // TODO: test createdByUser + } + +} diff --git a/src/test/java/com/rootly/client/model/ShiftListTest.java b/src/test/java/com/rootly/client/model/ShiftListTest.java index afb6a742..ddd81d13 100644 --- a/src/test/java/com/rootly/client/model/ShiftListTest.java +++ b/src/test/java/com/rootly/client/model/ShiftListTest.java @@ -18,6 +18,8 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Meta; import com.rootly.client.model.ShiftListDataInner; import java.io.IOException; import java.util.ArrayList; @@ -48,4 +50,20 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ShiftOverrideResponseTest.java b/src/test/java/com/rootly/client/model/ShiftOverrideResponseTest.java index 8fe9c812..48cf23a9 100644 --- a/src/test/java/com/rootly/client/model/ShiftOverrideResponseTest.java +++ b/src/test/java/com/rootly/client/model/ShiftOverrideResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.ShiftOverrideResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/ShiftRelationshipsTest.java b/src/test/java/com/rootly/client/model/ShiftRelationshipsTest.java index 4fa040e5..bff8fbd2 100644 --- a/src/test/java/com/rootly/client/model/ShiftRelationshipsTest.java +++ b/src/test/java/com/rootly/client/model/ShiftRelationshipsTest.java @@ -18,9 +18,9 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.OncallRelationshipsUser; import com.rootly.client.model.ShiftRelationshipsAssignee; import com.rootly.client.model.ShiftRelationshipsShiftOverride; -import com.rootly.client.model.ShiftRelationshipsUser; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; diff --git a/src/test/java/com/rootly/client/model/ShiftTest.java b/src/test/java/com/rootly/client/model/ShiftTest.java index fc099ee7..3a64a362 100644 --- a/src/test/java/com/rootly/client/model/ShiftTest.java +++ b/src/test/java/com/rootly/client/model/ShiftTest.java @@ -78,6 +78,14 @@ public void isOverrideTest() { // TODO: test isOverride } + /** + * Test the property 'isShadow' + */ + @Test + public void isShadowTest() { + // TODO: test isShadow + } + /** * Test the property 'userId' */ diff --git a/src/test/java/com/rootly/client/model/SlaListTest.java b/src/test/java/com/rootly/client/model/SlaListTest.java index a2dea984..ed64144a 100644 --- a/src/test/java/com/rootly/client/model/SlaListTest.java +++ b/src/test/java/com/rootly/client/model/SlaListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.SlaResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/SlaResponseTest.java b/src/test/java/com/rootly/client/model/SlaResponseTest.java index ab764c08..6aeb7f7d 100644 --- a/src/test/java/com/rootly/client/model/SlaResponseTest.java +++ b/src/test/java/com/rootly/client/model/SlaResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.SlaResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/SlackChannelTest.java b/src/test/java/com/rootly/client/model/SlackChannelTest.java new file mode 100644 index 00000000..0dcc6c82 --- /dev/null +++ b/src/test/java/com/rootly/client/model/SlackChannelTest.java @@ -0,0 +1,88 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for SlackChannel + */ +public class SlackChannelTest { + private final SlackChannel model = new SlackChannel(); + + /** + * Model tests for SlackChannel + */ + @Test + public void testSlackChannel() { + // TODO: test SlackChannel + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'slackChannelName' + */ + @Test + public void slackChannelNameTest() { + // TODO: test slackChannelName + } + + /** + * Test the property 'slackChannelId' + */ + @Test + public void slackChannelIdTest() { + // TODO: test slackChannelId + } + + /** + * Test the property 'slackTeamId' + */ + @Test + public void slackTeamIdTest() { + // TODO: test slackTeamId + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/com/rootly/client/model/StartSessionRequestTest.java b/src/test/java/com/rootly/client/model/StartSessionRequestTest.java new file mode 100644 index 00000000..2e5cf589 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StartSessionRequestTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StartSessionRequest + */ +public class StartSessionRequestTest { + private final StartSessionRequest model = new StartSessionRequest(); + + /** + * Model tests for StartSessionRequest + */ + @Test + public void testStartSessionRequest() { + // TODO: test StartSessionRequest + } + + /** + * Test the property 'platform' + */ + @Test + public void platformTest() { + // TODO: test platform + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + +} diff --git a/src/test/java/com/rootly/client/model/StartSessionResponseDataTest.java b/src/test/java/com/rootly/client/model/StartSessionResponseDataTest.java new file mode 100644 index 00000000..bd9e8a84 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StartSessionResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.UUID; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StartSessionResponseData + */ +public class StartSessionResponseDataTest { + private final StartSessionResponseData model = new StartSessionResponseData(); + + /** + * Model tests for StartSessionResponseData + */ + @Test + public void testStartSessionResponseData() { + // TODO: test StartSessionResponseData + } + + /** + * Test the property 'sessionId' + */ + @Test + public void sessionIdTest() { + // TODO: test sessionId + } + + /** + * Test the property 'streamToken' + */ + @Test + public void streamTokenTest() { + // TODO: test streamToken + } + + /** + * Test the property 'meetingRecordingId' + */ + @Test + public void meetingRecordingIdTest() { + // TODO: test meetingRecordingId + } + +} diff --git a/src/test/java/com/rootly/client/model/StartSessionResponseTest.java b/src/test/java/com/rootly/client/model/StartSessionResponseTest.java new file mode 100644 index 00000000..642eaacb --- /dev/null +++ b/src/test/java/com/rootly/client/model/StartSessionResponseTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StartSessionResponseData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StartSessionResponse + */ +public class StartSessionResponseTest { + private final StartSessionResponse model = new StartSessionResponse(); + + /** + * Model tests for StartSessionResponse + */ + @Test + public void testStartSessionResponse() { + // TODO: test StartSessionResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusListTest.java b/src/test/java/com/rootly/client/model/StatusListTest.java index 18f7b7d3..43196737 100644 --- a/src/test/java/com/rootly/client/model/StatusListTest.java +++ b/src/test/java/com/rootly/client/model/StatusListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.StatusResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/StatusPageAnnouncementListTest.java b/src/test/java/com/rootly/client/model/StatusPageAnnouncementListTest.java new file mode 100644 index 00000000..5dddc419 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageAnnouncementListTest.java @@ -0,0 +1,78 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.StatusPageAnnouncementResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageAnnouncementList + */ +public class StatusPageAnnouncementListTest { + private final StatusPageAnnouncementList model = new StatusPageAnnouncementList(); + + /** + * Model tests for StatusPageAnnouncementList + */ + @Test + public void testStatusPageAnnouncementList() { + // TODO: test StatusPageAnnouncementList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'links' + */ + @Test + public void linksTest() { + // TODO: test links + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseDataTest.java b/src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseDataTest.java new file mode 100644 index 00000000..0fb75f28 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StatusPageAnnouncement; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageAnnouncementResponseData + */ +public class StatusPageAnnouncementResponseDataTest { + private final StatusPageAnnouncementResponseData model = new StatusPageAnnouncementResponseData(); + + /** + * Model tests for StatusPageAnnouncementResponseData + */ + @Test + public void testStatusPageAnnouncementResponseData() { + // TODO: test StatusPageAnnouncementResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseTest.java b/src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseTest.java new file mode 100644 index 00000000..86ffcc95 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageAnnouncementResponseTest.java @@ -0,0 +1,60 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.StatusPageAnnouncementResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageAnnouncementResponse + */ +public class StatusPageAnnouncementResponseTest { + private final StatusPageAnnouncementResponse model = new StatusPageAnnouncementResponse(); + + /** + * Model tests for StatusPageAnnouncementResponse + */ + @Test + public void testStatusPageAnnouncementResponse() { + // TODO: test StatusPageAnnouncementResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageAnnouncementTest.java b/src/test/java/com/rootly/client/model/StatusPageAnnouncementTest.java new file mode 100644 index 00000000..e5f2f4d2 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageAnnouncementTest.java @@ -0,0 +1,97 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageAnnouncement + */ +public class StatusPageAnnouncementTest { + private final StatusPageAnnouncement model = new StatusPageAnnouncement(); + + /** + * Model tests for StatusPageAnnouncement + */ + @Test + public void testStatusPageAnnouncement() { + // TODO: test StatusPageAnnouncement + } + + /** + * Test the property 'statusPageId' + */ + @Test + public void statusPageIdTest() { + // TODO: test statusPageId + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'body' + */ + @Test + public void bodyTest() { + // TODO: test body + } + + /** + * Test the property 'userId' + */ + @Test + public void userIdTest() { + // TODO: test userId + } + + /** + * Test the property 'publishedAt' + */ + @Test + public void publishedAtTest() { + // TODO: test publishedAt + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentGroupListTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentGroupListTest.java new file mode 100644 index 00000000..7a4951b0 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentGroupListTest.java @@ -0,0 +1,78 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.StatusPageComponentGroupResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponentGroupList + */ +public class StatusPageComponentGroupListTest { + private final StatusPageComponentGroupList model = new StatusPageComponentGroupList(); + + /** + * Model tests for StatusPageComponentGroupList + */ + @Test + public void testStatusPageComponentGroupList() { + // TODO: test StatusPageComponentGroupList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'links' + */ + @Test + public void linksTest() { + // TODO: test links + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseDataTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseDataTest.java new file mode 100644 index 00000000..14fca588 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StatusPageComponentGroup; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponentGroupResponseData + */ +public class StatusPageComponentGroupResponseDataTest { + private final StatusPageComponentGroupResponseData model = new StatusPageComponentGroupResponseData(); + + /** + * Model tests for StatusPageComponentGroupResponseData + */ + @Test + public void testStatusPageComponentGroupResponseData() { + // TODO: test StatusPageComponentGroupResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseTest.java new file mode 100644 index 00000000..622a2b7e --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentGroupResponseTest.java @@ -0,0 +1,60 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.StatusPageComponentGroupResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponentGroupResponse + */ +public class StatusPageComponentGroupResponseTest { + private final StatusPageComponentGroupResponse model = new StatusPageComponentGroupResponse(); + + /** + * Model tests for StatusPageComponentGroupResponse + */ + @Test + public void testStatusPageComponentGroupResponse() { + // TODO: test StatusPageComponentGroupResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentGroupTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentGroupTest.java new file mode 100644 index 00000000..1f01af6c --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentGroupTest.java @@ -0,0 +1,98 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponentGroup + */ +public class StatusPageComponentGroupTest { + private final StatusPageComponentGroup model = new StatusPageComponentGroup(); + + /** + * Model tests for StatusPageComponentGroup + */ + @Test + public void testStatusPageComponentGroup() { + // TODO: test StatusPageComponentGroup + } + + /** + * Test the property 'statusPageId' + */ + @Test + public void statusPageIdTest() { + // TODO: test statusPageId + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'collapsedByDefault' + */ + @Test + public void collapsedByDefaultTest() { + // TODO: test collapsedByDefault + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentListTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentListTest.java new file mode 100644 index 00000000..6aeb1af7 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentListTest.java @@ -0,0 +1,78 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.StatusPageComponentResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponentList + */ +public class StatusPageComponentListTest { + private final StatusPageComponentList model = new StatusPageComponentList(); + + /** + * Model tests for StatusPageComponentList + */ + @Test + public void testStatusPageComponentList() { + // TODO: test StatusPageComponentList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'links' + */ + @Test + public void linksTest() { + // TODO: test links + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentResponseDataTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentResponseDataTest.java new file mode 100644 index 00000000..674c4836 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.StatusPageComponent; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponentResponseData + */ +public class StatusPageComponentResponseDataTest { + private final StatusPageComponentResponseData model = new StatusPageComponentResponseData(); + + /** + * Model tests for StatusPageComponentResponseData + */ + @Test + public void testStatusPageComponentResponseData() { + // TODO: test StatusPageComponentResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentResponseTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentResponseTest.java new file mode 100644 index 00000000..cd159343 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentResponseTest.java @@ -0,0 +1,60 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.StatusPageComponentResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponentResponse + */ +public class StatusPageComponentResponseTest { + private final StatusPageComponentResponse model = new StatusPageComponentResponse(); + + /** + * Model tests for StatusPageComponentResponse + */ + @Test + public void testStatusPageComponentResponse() { + // TODO: test StatusPageComponentResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageComponentTest.java b/src/test/java/com/rootly/client/model/StatusPageComponentTest.java new file mode 100644 index 00000000..6320b240 --- /dev/null +++ b/src/test/java/com/rootly/client/model/StatusPageComponentTest.java @@ -0,0 +1,122 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for StatusPageComponent + */ +public class StatusPageComponentTest { + private final StatusPageComponent model = new StatusPageComponent(); + + /** + * Model tests for StatusPageComponent + */ + @Test + public void testStatusPageComponent() { + // TODO: test StatusPageComponent + } + + /** + * Test the property 'statusPageId' + */ + @Test + public void statusPageIdTest() { + // TODO: test statusPageId + } + + /** + * Test the property 'statusPageComponentGroupId' + */ + @Test + public void statusPageComponentGroupIdTest() { + // TODO: test statusPageComponentGroupId + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'sourceType' + */ + @Test + public void sourceTypeTest() { + // TODO: test sourceType + } + + /** + * Test the property 'sourceId' + */ + @Test + public void sourceIdTest() { + // TODO: test sourceId + } + + /** + * Test the property 'status' + */ + @Test + public void statusTest() { + // TODO: test status + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/com/rootly/client/model/StatusPageListTest.java b/src/test/java/com/rootly/client/model/StatusPageListTest.java index 2703bf54..15b97c59 100644 --- a/src/test/java/com/rootly/client/model/StatusPageListTest.java +++ b/src/test/java/com/rootly/client/model/StatusPageListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.StatusPageResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/StatusPageResponseTest.java b/src/test/java/com/rootly/client/model/StatusPageResponseTest.java index 6657fe8e..4e34c07e 100644 --- a/src/test/java/com/rootly/client/model/StatusPageResponseTest.java +++ b/src/test/java/com/rootly/client/model/StatusPageResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.StatusPageResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/StatusPageTemplateListTest.java b/src/test/java/com/rootly/client/model/StatusPageTemplateListTest.java index d6d2db88..df3cb995 100644 --- a/src/test/java/com/rootly/client/model/StatusPageTemplateListTest.java +++ b/src/test/java/com/rootly/client/model/StatusPageTemplateListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.StatusPageTemplateListDataInner; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/StatusPageTemplateResponseTest.java b/src/test/java/com/rootly/client/model/StatusPageTemplateResponseTest.java index 80bde2a6..6460894d 100644 --- a/src/test/java/com/rootly/client/model/StatusPageTemplateResponseTest.java +++ b/src/test/java/com/rootly/client/model/StatusPageTemplateResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.StatusPageTemplateResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/StatusPageTemplateTest.java b/src/test/java/com/rootly/client/model/StatusPageTemplateTest.java index baa4c9e4..c04b785f 100644 --- a/src/test/java/com/rootly/client/model/StatusPageTemplateTest.java +++ b/src/test/java/com/rootly/client/model/StatusPageTemplateTest.java @@ -54,6 +54,14 @@ public void titleTest() { // TODO: test title } + /** + * Test the property 'updateTitle' + */ + @Test + public void updateTitleTest() { + // TODO: test updateTitle + } + /** * Test the property 'body' */ diff --git a/src/test/java/com/rootly/client/model/StatusPageTest.java b/src/test/java/com/rootly/client/model/StatusPageTest.java index df59981b..c977b78a 100644 --- a/src/test/java/com/rootly/client/model/StatusPageTest.java +++ b/src/test/java/com/rootly/client/model/StatusPageTest.java @@ -21,7 +21,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -200,6 +202,14 @@ public void samlNameIdentifierFormatTest() { // TODO: test samlNameIdentifierFormat } + /** + * Test the property 'sectionOrder' + */ + @Test + public void sectionOrderTest() { + // TODO: test sectionOrder + } + /** * Test the property 'websiteUrl' */ @@ -272,6 +282,14 @@ public void externalDomainNamesTest() { // TODO: test externalDomainNames } + /** + * Test the property 'cnameRecords' + */ + @Test + public void cnameRecordsTest() { + // TODO: test cnameRecords + } + /** * Test the property 'enabled' */ diff --git a/src/test/java/com/rootly/client/model/StatusResponseTest.java b/src/test/java/com/rootly/client/model/StatusResponseTest.java index 44776f87..05a5902d 100644 --- a/src/test/java/com/rootly/client/model/StatusResponseTest.java +++ b/src/test/java/com/rootly/client/model/StatusResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.StatusResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/SubStatusListTest.java b/src/test/java/com/rootly/client/model/SubStatusListTest.java index 36c522e0..d86eb7d1 100644 --- a/src/test/java/com/rootly/client/model/SubStatusListTest.java +++ b/src/test/java/com/rootly/client/model/SubStatusListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.SubStatusResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/SubStatusResponseTest.java b/src/test/java/com/rootly/client/model/SubStatusResponseTest.java index ce969e93..4ff4685a 100644 --- a/src/test/java/com/rootly/client/model/SubStatusResponseTest.java +++ b/src/test/java/com/rootly/client/model/SubStatusResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.SubStatusResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/TeamListTest.java b/src/test/java/com/rootly/client/model/TeamListTest.java index 4b6fdaf9..97223b67 100644 --- a/src/test/java/com/rootly/client/model/TeamListTest.java +++ b/src/test/java/com/rootly/client/model/TeamListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.TeamResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/TeamResponseTest.java b/src/test/java/com/rootly/client/model/TeamResponseTest.java index a3284190..dc6f5609 100644 --- a/src/test/java/com/rootly/client/model/TeamResponseTest.java +++ b/src/test/java/com/rootly/client/model/TeamResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.TeamResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/TeamTest.java b/src/test/java/com/rootly/client/model/TeamTest.java index f9ba1e58..1b7f188a 100644 --- a/src/test/java/com/rootly/client/model/TeamTest.java +++ b/src/test/java/com/rootly/client/model/TeamTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.ServiceAlertBroadcastChannel; @@ -60,6 +61,14 @@ public void slugTest() { // TODO: test slug } + /** + * Test the property 'managedBy' + */ + @Test + public void managedByTest() { + // TODO: test managedBy + } + /** * Test the property 'description' */ @@ -68,6 +77,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'notifyEmails' */ @@ -260,6 +277,22 @@ public void autoAddMembersWhenAttachedTest() { // TODO: test autoAddMembersWhenAttached } + /** + * Test the property 'autoAddMembersScope' + */ + @Test + public void autoAddMembersScopeTest() { + // TODO: test autoAddMembersScope + } + + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/UpdateAlertDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateAlertDataAttributesTest.java index 985db06c..a302984f 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateAlertDataAttributesTest.java @@ -91,6 +91,14 @@ public void groupIdsTest() { // TODO: test groupIds } + /** + * Test the property 'functionalityIds' + */ + @Test + public void functionalityIdsTest() { + // TODO: test functionalityIds + } + /** * Test the property 'environmentIds' */ diff --git a/src/test/java/com/rootly/client/model/UpdateAlertFieldDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateAlertFieldDataAttributesTest.java index c71310fb..e221f2c5 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertFieldDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateAlertFieldDataAttributesTest.java @@ -20,6 +20,7 @@ import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -37,6 +38,14 @@ public void testUpdateAlertFieldDataAttributes() { // TODO: test UpdateAlertFieldDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateAlertGroupDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateAlertGroupDataAttributesTest.java index e7f7aa87..f716d85d 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertGroupDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateAlertGroupDataAttributesTest.java @@ -43,6 +43,14 @@ public void testUpdateAlertGroupDataAttributes() { // TODO: test UpdateAlertGroupDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributesTest.java new file mode 100644 index 00000000..6a37422a --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataAttributesTest.java @@ -0,0 +1,84 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewAlertRetriggerRuleDataAttributesConditionsInner; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateAlertRetriggerRuleDataAttributes + */ +public class UpdateAlertRetriggerRuleDataAttributesTest { + private final UpdateAlertRetriggerRuleDataAttributes model = new UpdateAlertRetriggerRuleDataAttributes(); + + /** + * Model tests for UpdateAlertRetriggerRuleDataAttributes + */ + @Test + public void testUpdateAlertRetriggerRuleDataAttributes() { + // TODO: test UpdateAlertRetriggerRuleDataAttributes + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'matchMode' + */ + @Test + public void matchModeTest() { + // TODO: test matchMode + } + + /** + * Test the property 'timeoutMinutes' + */ + @Test + public void timeoutMinutesTest() { + // TODO: test timeoutMinutes + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'conditions' + */ + @Test + public void conditionsTest() { + // TODO: test conditions + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataTest.java b/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataTest.java new file mode 100644 index 00000000..7c472119 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateAlertRetriggerRuleDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateAlertRetriggerRuleData + */ +public class UpdateAlertRetriggerRuleDataTest { + private final UpdateAlertRetriggerRuleData model = new UpdateAlertRetriggerRuleData(); + + /** + * Model tests for UpdateAlertRetriggerRuleData + */ + @Test + public void testUpdateAlertRetriggerRuleData() { + // TODO: test UpdateAlertRetriggerRuleData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleTest.java b/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleTest.java new file mode 100644 index 00000000..c66a8db6 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateAlertRetriggerRuleTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateAlertRetriggerRuleData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateAlertRetriggerRule + */ +public class UpdateAlertRetriggerRuleTest { + private final UpdateAlertRetriggerRule model = new UpdateAlertRetriggerRule(); + + /** + * Model tests for UpdateAlertRetriggerRule + */ + @Test + public void testUpdateAlertRetriggerRule() { + // TODO: test UpdateAlertRetriggerRule + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesTest.java index 069bca8e..48c9a1e8 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateAlertRouteDataAttributesTest.java @@ -18,7 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.UpdateAlertRouteDataAttributesRulesInner; +import com.rootly.client.model.NewAlertRouteDataAttributesRulesInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/test/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributesTest.java index d571e0b1..4194c32e 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateAlertUrgencyDataAttributesTest.java @@ -62,4 +62,12 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'retriggerTimeoutMinutes' + */ + @Test + public void retriggerTimeoutMinutesTest() { + // TODO: test retriggerTimeoutMinutes + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateAlertsSourceDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateAlertsSourceDataAttributesTest.java index 8f0198bf..1efbf4d2 100644 --- a/src/test/java/com/rootly/client/model/UpdateAlertsSourceDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateAlertsSourceDataAttributesTest.java @@ -53,6 +53,14 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'enabled' + */ + @Test + public void enabledTest() { + // TODO: test enabled + } + /** * Test the property 'sourceType' */ diff --git a/src/test/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributesTest.java index 0f0220e7..503e7daa 100644 --- a/src/test/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCatalogChecklistTemplateDataAttributesTest.java @@ -42,6 +42,14 @@ public void testUpdateCatalogChecklistTemplateDataAttributes() { // TODO: test UpdateCatalogChecklistTemplateDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateCatalogDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCatalogDataAttributesTest.java index 17de1eb7..af2edf6f 100644 --- a/src/test/java/com/rootly/client/model/UpdateCatalogDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCatalogDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdateCatalogDataAttributes() { // TODO: test UpdateCatalogDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -70,4 +78,12 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateCatalogEntityDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCatalogEntityDataAttributesTest.java index 999e785e..862f3983 100644 --- a/src/test/java/com/rootly/client/model/UpdateCatalogEntityDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCatalogEntityDataAttributesTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCatalogEntityDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -38,6 +41,14 @@ public void testUpdateCatalogEntityDataAttributes() { // TODO: test UpdateCatalogEntityDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -54,6 +65,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'position' */ @@ -62,4 +81,28 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'backstageId' + */ + @Test + public void backstageIdTest() { + // TODO: test backstageId + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateCatalogFieldDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCatalogFieldDataAttributesTest.java index 8caae957..86490ad1 100644 --- a/src/test/java/com/rootly/client/model/UpdateCatalogFieldDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCatalogFieldDataAttributesTest.java @@ -39,19 +39,19 @@ public void testUpdateCatalogFieldDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** @@ -78,4 +78,28 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'required' + */ + @Test + public void requiredTest() { + // TODO: test required + } + + /** + * Test the property 'catalogType' + */ + @Test + public void catalogTypeTest() { + // TODO: test catalogType + } + + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributesTest.java index 53c2bbae..0c9af69a 100644 --- a/src/test/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCatalogPropertyDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdateCatalogPropertyDataAttributes() { // TODO: test UpdateCatalogPropertyDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -86,4 +94,12 @@ public void catalogTypeTest() { // TODO: test catalogType } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateCauseDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCauseDataAttributesTest.java index be4d10c1..69a1499b 100644 --- a/src/test/java/com/rootly/client/model/UpdateCauseDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCauseDataAttributesTest.java @@ -18,8 +18,11 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -38,6 +41,14 @@ public void testUpdateCauseDataAttributes() { // TODO: test UpdateCauseDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -54,6 +65,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'position' */ @@ -62,4 +81,12 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributesTest.java index f5a85454..ce894391 100644 --- a/src/test/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCommunicationsStageDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdateCommunicationsStageDataAttributes() { // TODO: test UpdateCommunicationsStageDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributesTest.java index f2e2a90e..663bfe41 100644 --- a/src/test/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCommunicationsTypeDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdateCommunicationsTypeDataAttributes() { // TODO: test UpdateCommunicationsTypeDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTest.java b/src/test/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTest.java index 46bd3c6f..1638ac07 100644 --- a/src/test/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/UpdateConfluencePageTaskParamsTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateConfluencePageTaskParamsIntegration; import com.rootly.client.model.UpdateConfluencePageTaskParamsTemplate; import java.io.IOException; import java.util.Arrays; @@ -46,6 +47,14 @@ public void taskTypeTest() { // TODO: test taskType } + /** + * Test the property 'integration' + */ + @Test + public void integrationTest() { + // TODO: test integration + } + /** * Test the property 'fileId' */ @@ -86,4 +95,28 @@ public void templateTest() { // TODO: test template } + /** + * Test the property 'includeOverview' + */ + @Test + public void includeOverviewTest() { + // TODO: test includeOverview + } + + /** + * Test the property 'includeTimeline' + */ + @Test + public void includeTimelineTest() { + // TODO: test includeTimeline + } + + /** + * Test the property 'includeFollowUps' + */ + @Test + public void includeFollowUpsTest() { + // TODO: test includeFollowUps + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateCustomFieldDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCustomFieldDataAttributesTest.java index 618a95d0..bd22de8d 100644 --- a/src/test/java/com/rootly/client/model/UpdateCustomFieldDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCustomFieldDataAttributesTest.java @@ -48,14 +48,6 @@ public void labelTest() { // TODO: test label } - /** - * Test the property 'slug' - */ - @Test - public void slugTest() { - // TODO: test slug - } - /** * Test the property 'description' */ diff --git a/src/test/java/com/rootly/client/model/UpdateCustomFormDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateCustomFormDataAttributesTest.java index 2448ccb9..f2dc7c4b 100644 --- a/src/test/java/com/rootly/client/model/UpdateCustomFormDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateCustomFormDataAttributesTest.java @@ -39,19 +39,19 @@ public void testUpdateCustomFormDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/UpdateEdgeConnectorActionTest.java b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorActionTest.java index 73366008..c35e15ca 100644 --- a/src/test/java/com/rootly/client/model/UpdateEdgeConnectorActionTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorActionTest.java @@ -18,7 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsIdPatchRequestAction; +import com.rootly.client.model.UpdateEdgeConnectorActionRequestAction; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestEdgeConnectorTest.java b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnectorTest.java similarity index 90% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestEdgeConnectorTest.java rename to src/test/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnectorTest.java index bc597520..2e8b4a83 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsPostRequestEdgeConnectorTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorEdgeConnectorTest.java @@ -26,17 +26,17 @@ import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsPostRequestEdgeConnector + * Model tests for UpdateEdgeConnectorEdgeConnector */ -public class V1EdgeConnectorsPostRequestEdgeConnectorTest { - private final V1EdgeConnectorsPostRequestEdgeConnector model = new V1EdgeConnectorsPostRequestEdgeConnector(); +public class UpdateEdgeConnectorEdgeConnectorTest { + private final UpdateEdgeConnectorEdgeConnector model = new UpdateEdgeConnectorEdgeConnector(); /** - * Model tests for V1EdgeConnectorsPostRequestEdgeConnector + * Model tests for UpdateEdgeConnectorEdgeConnector */ @Test - public void testV1EdgeConnectorsPostRequestEdgeConnector() { - // TODO: test V1EdgeConnectorsPostRequestEdgeConnector + public void testUpdateEdgeConnectorEdgeConnector() { + // TODO: test UpdateEdgeConnectorEdgeConnector } /** diff --git a/src/test/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributesTest.java index f60b215f..374f1de5 100644 --- a/src/test/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorRequestDataAttributesTest.java @@ -71,4 +71,12 @@ public void subscriptionsTest() { // TODO: test subscriptions } + /** + * Test the property 'filters' + */ + @Test + public void filtersTest() { + // TODO: test filters + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateEdgeConnectorTest.java b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorTest.java index bf2bb680..fe0527da 100644 --- a/src/test/java/com/rootly/client/model/UpdateEdgeConnectorTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEdgeConnectorTest.java @@ -18,7 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsIdPatchRequestEdgeConnector; +import com.rootly.client.model.UpdateEdgeConnectorEdgeConnector; import java.io.IOException; import java.util.Arrays; import org.junit.jupiter.api.Disabled; diff --git a/src/test/java/com/rootly/client/model/UpdateEnvironmentDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateEnvironmentDataAttributesTest.java index 2f09eeed..6b81a3dd 100644 --- a/src/test/java/com/rootly/client/model/UpdateEnvironmentDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEnvironmentDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -42,6 +43,14 @@ public void testUpdateEnvironmentDataAttributes() { // TODO: test UpdateEnvironmentDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -58,6 +67,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'color' */ @@ -74,6 +91,14 @@ public void positionTest() { // TODO: test position } + /** + * Test the property 'externalId' + */ + @Test + public void externalIdTest() { + // TODO: test externalId + } + /** * Test the property 'notifyEmails' */ @@ -98,4 +123,12 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesTest.java index 8748baf8..6c646dbd 100644 --- a/src/test/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEscalationPolicyLevelDataAttributesTest.java @@ -81,6 +81,38 @@ public void pagingStrategyConfigurationScheduleStrategyTest() { // TODO: test pagingStrategyConfigurationScheduleStrategy } + /** + * Test the property 'pagingStrategyConfigurationRepeats' + */ + @Test + public void pagingStrategyConfigurationRepeatsTest() { + // TODO: test pagingStrategyConfigurationRepeats + } + + /** + * Test the property 'pagingStrategyConfigurationRepeatsMode' + */ + @Test + public void pagingStrategyConfigurationRepeatsModeTest() { + // TODO: test pagingStrategyConfigurationRepeatsMode + } + + /** + * Test the property 'pagingStrategyConfigurationRotationScope' + */ + @Test + public void pagingStrategyConfigurationRotationScopeTest() { + // TODO: test pagingStrategyConfigurationRotationScope + } + + /** + * Test the property 'pagingStrategyConfigurationPageUsersCount' + */ + @Test + public void pagingStrategyConfigurationPageUsersCountTest() { + // TODO: test pagingStrategyConfigurationPageUsersCount + } + /** * Test the property 'notificationTargetParams' */ diff --git a/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInnerTest.java b/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInnerTest.java index 95a0df75..83805019 100644 --- a/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInnerTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesRulesInnerTest.java @@ -18,13 +18,20 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf1; -import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerAnyOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf1; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf2; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf3; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf4; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf5TimeBlocksInner; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf6; +import com.rootly.client.model.NewEscalationPolicyPathDataAttributesRulesInnerOneOf7; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -90,4 +97,52 @@ public void valueTest() { // TODO: test value } + /** + * Test the property 'values' + */ + @Test + public void valuesTest() { + // TODO: test values + } + + /** + * Test the property 'fieldableType' + */ + @Test + public void fieldableTypeTest() { + // TODO: test fieldableType + } + + /** + * Test the property 'fieldableId' + */ + @Test + public void fieldableIdTest() { + // TODO: test fieldableId + } + + /** + * Test the property 'serviceIds' + */ + @Test + public void serviceIdsTest() { + // TODO: test serviceIds + } + + /** + * Test the property 'timeZone' + */ + @Test + public void timeZoneTest() { + // TODO: test timeZone + } + + /** + * Test the property 'timeBlocks' + */ + @Test + public void timeBlocksTest() { + // TODO: test timeBlocks + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTest.java index b94659fe..91a6be2c 100644 --- a/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateEscalationPolicyPathDataAttributesTest.java @@ -58,6 +58,30 @@ public void notificationTypeTest() { // TODO: test notificationType } + /** + * Test the property 'pathType' + */ + @Test + public void pathTypeTest() { + // TODO: test pathType + } + + /** + * Test the property 'afterDeferralBehavior' + */ + @Test + public void afterDeferralBehaviorTest() { + // TODO: test afterDeferralBehavior + } + + /** + * Test the property 'afterDeferralPathId' + */ + @Test + public void afterDeferralPathIdTest() { + // TODO: test afterDeferralPathId + } + /** * Test the property '_default' */ @@ -106,6 +130,14 @@ public void initialDelayTest() { // TODO: test initialDelay } + /** + * Test the property 'retriggerTimeoutMinutes' + */ + @Test + public void retriggerTimeoutMinutesTest() { + // TODO: test retriggerTimeoutMinutes + } + /** * Test the property 'rules' */ diff --git a/src/test/java/com/rootly/client/model/UpdateFormFieldDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateFormFieldDataAttributesTest.java index 04ae3049..509c9f4e 100644 --- a/src/test/java/com/rootly/client/model/UpdateFormFieldDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateFormFieldDataAttributesTest.java @@ -40,6 +40,14 @@ public void testUpdateFormFieldDataAttributes() { // TODO: test UpdateFormFieldDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'kind' */ @@ -128,4 +136,12 @@ public void defaultValuesTest() { // TODO: test defaultValues } + /** + * Test the property 'autoSetByCatalogPropertyId' + */ + @Test + public void autoSetByCatalogPropertyIdTest() { + // TODO: test autoSetByCatalogPropertyId + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateFormSetDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateFormSetDataAttributesTest.java index 3df842e0..50ff8652 100644 --- a/src/test/java/com/rootly/client/model/UpdateFormSetDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateFormSetDataAttributesTest.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -39,6 +40,14 @@ public void testUpdateFormSetDataAttributes() { // TODO: test UpdateFormSetDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateFunctionalityDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateFunctionalityDataAttributesTest.java index 6f793e63..9a7365fe 100644 --- a/src/test/java/com/rootly/client/model/UpdateFunctionalityDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateFunctionalityDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -42,6 +43,14 @@ public void testUpdateFunctionalityDataAttributes() { // TODO: test UpdateFunctionalityDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -178,6 +187,14 @@ public void ownerUserIdsTest() { // TODO: test ownerUserIds } + /** + * Test the property 'escalationPolicyId' + */ + @Test + public void escalationPolicyIdTest() { + // TODO: test escalationPolicyId + } + /** * Test the property 'slackChannels' */ @@ -194,4 +211,12 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateGithubIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/UpdateGithubIssueTaskParamsTest.java index 76acefdc..66110522 100644 --- a/src/test/java/com/rootly/client/model/UpdateGithubIssueTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/UpdateGithubIssueTaskParamsTest.java @@ -19,8 +19,13 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.CreateGithubIssueTaskParamsIssueType; +import com.rootly.client.model.UpdateGithubIssueTaskParamsRepository; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -54,6 +59,14 @@ public void issueIdTest() { // TODO: test issueId } + /** + * Test the property 'repository' + */ + @Test + public void repositoryTest() { + // TODO: test repository + } + /** * Test the property 'title' */ @@ -70,6 +83,30 @@ public void bodyTest() { // TODO: test body } + /** + * Test the property 'labels' + */ + @Test + public void labelsTest() { + // TODO: test labels + } + + /** + * Test the property 'labelsMode' + */ + @Test + public void labelsModeTest() { + // TODO: test labelsMode + } + + /** + * Test the property 'issueType' + */ + @Test + public void issueTypeTest() { + // TODO: test issueType + } + /** * Test the property 'completion' */ @@ -78,4 +115,12 @@ public void completionTest() { // TODO: test completion } + /** + * Test the property 'customFieldsMapping' + */ + @Test + public void customFieldsMappingTest() { + // TODO: test customFieldsMapping + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParamsTest.java b/src/test/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParamsTest.java new file mode 100644 index 00000000..0be94119 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateGoogleChatSpaceDescriptionTaskParamsTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateGoogleChatSpaceDescriptionTaskParams + */ +public class UpdateGoogleChatSpaceDescriptionTaskParamsTest { + private final UpdateGoogleChatSpaceDescriptionTaskParams model = new UpdateGoogleChatSpaceDescriptionTaskParams(); + + /** + * Model tests for UpdateGoogleChatSpaceDescriptionTaskParams + */ + @Test + public void testUpdateGoogleChatSpaceDescriptionTaskParams() { + // TODO: test UpdateGoogleChatSpaceDescriptionTaskParams + } + + /** + * Test the property 'taskType' + */ + @Test + public void taskTypeTest() { + // TODO: test taskType + } + + /** + * Test the property 'space' + */ + @Test + public void spaceTest() { + // TODO: test space + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParamsTest.java b/src/test/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParamsTest.java index e73e6af1..485717aa 100644 --- a/src/test/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/UpdateGoogleDocsPageTaskParamsTest.java @@ -85,4 +85,28 @@ public void templateIdTest() { // TODO: test templateId } + /** + * Test the property 'includeOverview' + */ + @Test + public void includeOverviewTest() { + // TODO: test includeOverview + } + + /** + * Test the property 'includeTimeline' + */ + @Test + public void includeTimelineTest() { + // TODO: test includeTimeline + } + + /** + * Test the property 'includeFollowUps' + */ + @Test + public void includeFollowUpsTest() { + // TODO: test includeFollowUps + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateHeartbeatDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateHeartbeatDataAttributesTest.java index 0dc5b811..690a9be1 100644 --- a/src/test/java/com/rootly/client/model/UpdateHeartbeatDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateHeartbeatDataAttributesTest.java @@ -19,7 +19,9 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -110,6 +112,14 @@ public void notificationTargetTypeTest() { // TODO: test notificationTargetType } + /** + * Test the property 'ownerGroupIds' + */ + @Test + public void ownerGroupIdsTest() { + // TODO: test ownerGroupIds + } + /** * Test the property 'enabled' */ diff --git a/src/test/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributesTest.java index 86fd1386..0d5c2e55 100644 --- a/src/test/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateIncidentActionItemDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewIncidentActionItemDataAttributesFormFieldSelectionsInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -128,4 +129,12 @@ public void jiraIssueUrlTest() { // TODO: test jiraIssueUrl } + /** + * Test the property 'formFieldSelections' + */ + @Test + public void formFieldSelectionsTest() { + // TODO: test formFieldSelections + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributesTest.java index dc089a72..f7d7c392 100644 --- a/src/test/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateIncidentFormFieldSelectionDataAttributesTest.java @@ -96,4 +96,28 @@ public void selectedUserIdsTest() { // TODO: test selectedUserIds } + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributesTest.java index 54cdc30f..e248de50 100644 --- a/src/test/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateIncidentPermissionSetDataAttributesTest.java @@ -41,19 +41,19 @@ public void testUpdateIncidentPermissionSetDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/UpdateIncidentRoleDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateIncidentRoleDataAttributesTest.java index cd7a1036..c42cffb6 100644 --- a/src/test/java/com/rootly/client/model/UpdateIncidentRoleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateIncidentRoleDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdateIncidentRoleDataAttributes() { // TODO: test UpdateIncidentRoleDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributesTest.java index 123f65ba..ed0a55f0 100644 --- a/src/test/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateIncidentStatusPageEventDataAttributesTest.java @@ -19,6 +19,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.Arrays; import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; @@ -78,4 +79,12 @@ public void shouldTweetTest() { // TODO: test shouldTweet } + /** + * Test the property 'startedAt' + */ + @Test + public void startedAtTest() { + // TODO: test startedAt + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateIncidentTypeDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateIncidentTypeDataAttributesTest.java index 17c06d2a..5dddcea3 100644 --- a/src/test/java/com/rootly/client/model/UpdateIncidentTypeDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateIncidentTypeDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import java.io.IOException; @@ -42,6 +43,14 @@ public void testUpdateIncidentTypeDataAttributes() { // TODO: test UpdateIncidentTypeDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -58,6 +67,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'color' */ @@ -98,4 +115,12 @@ public void slackAliasesTest() { // TODO: test slackAliases } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateJiraIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/UpdateJiraIssueTaskParamsTest.java index e8c58bcd..4d8f8ffa 100644 --- a/src/test/java/com/rootly/client/model/UpdateJiraIssueTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/UpdateJiraIssueTaskParamsTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.CreateJiraIssueTaskParamsIntegration; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import com.rootly.client.model.CreateJiraIssueTaskParamsStatus; import java.io.IOException; @@ -48,6 +49,14 @@ public void taskTypeTest() { // TODO: test taskType } + /** + * Test the property 'integration' + */ + @Test + public void integrationTest() { + // TODO: test integration + } + /** * Test the property 'issueId' */ @@ -144,4 +153,20 @@ public void updatePayloadTest() { // TODO: test updatePayload } + /** + * Test the property 'retryCount' + */ + @Test + public void retryCountTest() { + // TODO: test retryCount + } + + /** + * Test the property 'retryWaitTime' + */ + @Test + public void retryWaitTimeTest() { + // TODO: test retryWaitTime + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateLinearIssueTaskParamsTest.java b/src/test/java/com/rootly/client/model/UpdateLinearIssueTaskParamsTest.java index 1936aea3..4e212c9b 100644 --- a/src/test/java/com/rootly/client/model/UpdateLinearIssueTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/UpdateLinearIssueTaskParamsTest.java @@ -116,4 +116,12 @@ public void assignUserEmailTest() { // TODO: test assignUserEmail } + /** + * Test the property 'customFieldsMapping' + */ + @Test + public void customFieldsMappingTest() { + // TODO: test customFieldsMapping + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesTest.java index cc4882bc..22dddb07 100644 --- a/src/test/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateLiveCallRouterDataAttributesTest.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -97,6 +98,14 @@ public void callerGreetingTest() { // TODO: test callerGreeting } + /** + * Test the property 'unavailableResponderMessage' + */ + @Test + public void unavailableResponderMessageTest() { + // TODO: test unavailableResponderMessage + } + /** * Test the property 'waitingMusicUrl' */ @@ -137,6 +146,30 @@ public void shouldAutoResolveAlertOnCallEndTest() { // TODO: test shouldAutoResolveAlertOnCallEnd } + /** + * Test the property 'notifyViaSms' + */ + @Test + public void notifyViaSmsTest() { + // TODO: test notifyViaSms + } + + /** + * Test the property 'notifyViaPushNotification' + */ + @Test + public void notifyViaPushNotificationTest() { + // TODO: test notifyViaPushNotification + } + + /** + * Test the property 'informationalNotificationMessage' + */ + @Test + public void informationalNotificationMessageTest() { + // TODO: test informationalNotificationMessage + } + /** * Test the property 'alertUrgencyId' */ @@ -145,6 +178,14 @@ public void alertUrgencyIdTest() { // TODO: test alertUrgencyId } + /** + * Test the property 'callingTreeEnabled' + */ + @Test + public void callingTreeEnabledTest() { + // TODO: test callingTreeEnabled + } + /** * Test the property 'callingTreePrompt' */ diff --git a/src/test/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributesTest.java index 0591b208..e090c636 100644 --- a/src/test/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateOnCallPayReportDataAttributesTest.java @@ -64,4 +64,20 @@ public void scheduleIdsTest() { // TODO: test scheduleIds } + /** + * Test the property 'timeZone' + */ + @Test + public void timeZoneTest() { + // TODO: test timeZone + } + + /** + * Test the property 'useRespondersTimeZone' + */ + @Test + public void useRespondersTimeZoneTest() { + // TODO: test useRespondersTimeZone + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateOnCallRoleDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateOnCallRoleDataAttributesTest.java index 3af11b97..b89daab4 100644 --- a/src/test/java/com/rootly/client/model/UpdateOnCallRoleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateOnCallRoleDataAttributesTest.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -40,19 +41,19 @@ public void testUpdateOnCallRoleDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** @@ -223,6 +224,14 @@ public void servicesPermissionsTest() { // TODO: test servicesPermissions } + /** + * Test the property 'functionalitiesPermissions' + */ + @Test + public void functionalitiesPermissionsTest() { + // TODO: test functionalitiesPermissions + } + /** * Test the property 'webhooksPermissions' */ @@ -239,4 +248,12 @@ public void workflowsPermissionsTest() { // TODO: test workflowsPermissions } + /** + * Test the property 'catalogsPermissions' + */ + @Test + public void catalogsPermissionsTest() { + // TODO: test catalogsPermissions + } + } diff --git a/src/test/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributesTest.java index 876ad759..af04ee69 100644 --- a/src/test/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdatePostMortemTemplateDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdatePostMortemTemplateDataAttributes() { // TODO: test UpdatePostMortemTemplateDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributesTest.java index e836675f..a1837d90 100644 --- a/src/test/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateRetrospectiveStepDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdateRetrospectiveStepDataAttributes() { // TODO: test UpdateRetrospectiveStepDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'title' */ diff --git a/src/test/java/com/rootly/client/model/UpdateRoleDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateRoleDataAttributesTest.java index 6ecd1b56..beb4b80b 100644 --- a/src/test/java/com/rootly/client/model/UpdateRoleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateRoleDataAttributesTest.java @@ -41,19 +41,19 @@ public void testUpdateRoleDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** @@ -64,6 +64,22 @@ public void incidentPermissionSetIdTest() { // TODO: test incidentPermissionSetId } + /** + * Test the property 'isDeletable' + */ + @Test + public void isDeletableTest() { + // TODO: test isDeletable + } + + /** + * Test the property 'isEditable' + */ + @Test + public void isEditableTest() { + // TODO: test isEditable + } + /** * Test the property 'apiKeysPermissions' */ @@ -256,4 +272,60 @@ public void workflowsPermissionsTest() { // TODO: test workflowsPermissions } + /** + * Test the property 'catalogsPermissions' + */ + @Test + public void catalogsPermissionsTest() { + // TODO: test catalogsPermissions + } + + /** + * Test the property 'subStatusesPermissions' + */ + @Test + public void subStatusesPermissionsTest() { + // TODO: test subStatusesPermissions + } + + /** + * Test the property 'edgeConnectorPermissions' + */ + @Test + public void edgeConnectorPermissionsTest() { + // TODO: test edgeConnectorPermissions + } + + /** + * Test the property 'slasPermissions' + */ + @Test + public void slasPermissionsTest() { + // TODO: test slasPermissions + } + + /** + * Test the property 'pagingPermissions' + */ + @Test + public void pagingPermissionsTest() { + // TODO: test pagingPermissions + } + + /** + * Test the property 'incidentCommunicationPermissions' + */ + @Test + public void incidentCommunicationPermissionsTest() { + // TODO: test incidentCommunicationPermissions + } + + /** + * Test the property 'communicationPermissions' + */ + @Test + public void communicationPermissionsTest() { + // TODO: test communicationPermissions + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateScheduleDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateScheduleDataAttributesTest.java index c7ccb2b5..561fcb31 100644 --- a/src/test/java/com/rootly/client/model/UpdateScheduleDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateScheduleDataAttributesTest.java @@ -98,4 +98,68 @@ public void ownerUserIdTest() { // TODO: test ownerUserId } + /** + * Test the property 'syncLinearEnabled' + */ + @Test + public void syncLinearEnabledTest() { + // TODO: test syncLinearEnabled + } + + /** + * Test the property 'includeShadowsInSlackNotifications' + */ + @Test + public void includeShadowsInSlackNotificationsTest() { + // TODO: test includeShadowsInSlackNotifications + } + + /** + * Test the property 'shiftStartNotificationsEnabled' + */ + @Test + public void shiftStartNotificationsEnabledTest() { + // TODO: test shiftStartNotificationsEnabled + } + + /** + * Test the property 'shiftUpdateNotificationsEnabled' + */ + @Test + public void shiftUpdateNotificationsEnabledTest() { + // TODO: test shiftUpdateNotificationsEnabled + } + + /** + * Test the property 'shiftReportEnabled' + */ + @Test + public void shiftReportEnabledTest() { + // TODO: test shiftReportEnabled + } + + /** + * Test the property 'shiftReportDayOfWeek' + */ + @Test + public void shiftReportDayOfWeekTest() { + // TODO: test shiftReportDayOfWeek + } + + /** + * Test the property 'shiftReportTimeOfDay' + */ + @Test + public void shiftReportTimeOfDayTest() { + // TODO: test shiftReportTimeOfDay + } + + /** + * Test the property 'shiftReportTimeZone' + */ + @Test + public void shiftReportTimeZoneTest() { + // TODO: test shiftReportTimeZone + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateScheduleRotationDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateScheduleRotationDataAttributesTest.java index b3f9f441..98ae4e90 100644 --- a/src/test/java/com/rootly/client/model/UpdateScheduleRotationDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateScheduleRotationDataAttributesTest.java @@ -22,6 +22,7 @@ import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationMembersInner; import com.rootly.client.model.NewScheduleRotationDataAttributesScheduleRotationableAttributes; import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/com/rootly/client/model/UpdateServiceDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateServiceDataAttributesTest.java index 904b6ab8..5f13cc37 100644 --- a/src/test/java/com/rootly/client/model/UpdateServiceDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateServiceDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -44,6 +45,14 @@ public void testUpdateServiceDataAttributes() { // TODO: test UpdateServiceDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -284,4 +293,12 @@ public void incidentBroadcastChannelTest() { // TODO: test incidentBroadcastChannel } + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateSeverityDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateSeverityDataAttributesTest.java index 29f9131a..69575714 100644 --- a/src/test/java/com/rootly/client/model/UpdateSeverityDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateSeverityDataAttributesTest.java @@ -42,6 +42,14 @@ public void testUpdateSeverityDataAttributes() { // TODO: test UpdateSeverityDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateSlaDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateSlaDataAttributesTest.java index c2df3d48..a5036d80 100644 --- a/src/test/java/com/rootly/client/model/UpdateSlaDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateSlaDataAttributesTest.java @@ -43,6 +43,14 @@ public void testUpdateSlaDataAttributes() { // TODO: test UpdateSlaDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributesTest.java new file mode 100644 index 00000000..8449b252 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataAttributesTest.java @@ -0,0 +1,56 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageAnnouncementDataAttributes + */ +public class UpdateStatusPageAnnouncementDataAttributesTest { + private final UpdateStatusPageAnnouncementDataAttributes model = new UpdateStatusPageAnnouncementDataAttributes(); + + /** + * Model tests for UpdateStatusPageAnnouncementDataAttributes + */ + @Test + public void testUpdateStatusPageAnnouncementDataAttributes() { + // TODO: test UpdateStatusPageAnnouncementDataAttributes + } + + /** + * Test the property 'title' + */ + @Test + public void titleTest() { + // TODO: test title + } + + /** + * Test the property 'body' + */ + @Test + public void bodyTest() { + // TODO: test body + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataTest.java new file mode 100644 index 00000000..ec985cef --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageAnnouncementDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageAnnouncementData + */ +public class UpdateStatusPageAnnouncementDataTest { + private final UpdateStatusPageAnnouncementData model = new UpdateStatusPageAnnouncementData(); + + /** + * Model tests for UpdateStatusPageAnnouncementData + */ + @Test + public void testUpdateStatusPageAnnouncementData() { + // TODO: test UpdateStatusPageAnnouncementData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementTest.java new file mode 100644 index 00000000..148b7715 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageAnnouncementTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageAnnouncementData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageAnnouncement + */ +public class UpdateStatusPageAnnouncementTest { + private final UpdateStatusPageAnnouncement model = new UpdateStatusPageAnnouncement(); + + /** + * Model tests for UpdateStatusPageAnnouncement + */ + @Test + public void testUpdateStatusPageAnnouncement() { + // TODO: test UpdateStatusPageAnnouncement + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributesTest.java similarity index 80% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionTest.java rename to src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributesTest.java index f438ca2a..875e557c 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionTest.java +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataAttributesTest.java @@ -18,24 +18,24 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata; import java.io.IOException; import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction + * Model tests for UpdateStatusPageComponentDataAttributes */ -public class V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionTest { - private final V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction model = new V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction(); +public class UpdateStatusPageComponentDataAttributesTest { + private final UpdateStatusPageComponentDataAttributes model = new UpdateStatusPageComponentDataAttributes(); /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction + * Model tests for UpdateStatusPageComponentDataAttributes */ @Test - public void testV1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction() { - // TODO: test V1EdgeConnectorsEdgeConnectorIdActionsPostRequestAction + public void testUpdateStatusPageComponentDataAttributes() { + // TODO: test UpdateStatusPageComponentDataAttributes } /** @@ -47,19 +47,27 @@ public void nameTest() { } /** - * Test the property 'actionType' + * Test the property 'description' */ @Test - public void actionTypeTest() { - // TODO: test actionType + public void descriptionTest() { + // TODO: test description } /** - * Test the property 'metadata' + * Test the property 'statusPageComponentGroupId' */ @Test - public void metadataTest() { - // TODO: test metadata + public void statusPageComponentGroupIdTest() { + // TODO: test statusPageComponentGroupId + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position } } diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataTest.java new file mode 100644 index 00000000..7b2575e6 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageComponentData + */ +public class UpdateStatusPageComponentDataTest { + private final UpdateStatusPageComponentData model = new UpdateStatusPageComponentData(); + + /** + * Model tests for UpdateStatusPageComponentData + */ + @Test + public void testUpdateStatusPageComponentData() { + // TODO: test UpdateStatusPageComponentData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributesTest.java new file mode 100644 index 00000000..474b2aef --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataAttributesTest.java @@ -0,0 +1,73 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageComponentGroupDataAttributes + */ +public class UpdateStatusPageComponentGroupDataAttributesTest { + private final UpdateStatusPageComponentGroupDataAttributes model = new UpdateStatusPageComponentGroupDataAttributes(); + + /** + * Model tests for UpdateStatusPageComponentGroupDataAttributes + */ + @Test + public void testUpdateStatusPageComponentGroupDataAttributes() { + // TODO: test UpdateStatusPageComponentGroupDataAttributes + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + + /** + * Test the property 'position' + */ + @Test + public void positionTest() { + // TODO: test position + } + + /** + * Test the property 'collapsedByDefault' + */ + @Test + public void collapsedByDefaultTest() { + // TODO: test collapsedByDefault + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataTest.java new file mode 100644 index 00000000..d705e3de --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentGroupDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageComponentGroupData + */ +public class UpdateStatusPageComponentGroupDataTest { + private final UpdateStatusPageComponentGroupData model = new UpdateStatusPageComponentGroupData(); + + /** + * Model tests for UpdateStatusPageComponentGroupData + */ + @Test + public void testUpdateStatusPageComponentGroupData() { + // TODO: test UpdateStatusPageComponentGroupData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupTest.java new file mode 100644 index 00000000..a0003340 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentGroupTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentGroupData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageComponentGroup + */ +public class UpdateStatusPageComponentGroupTest { + private final UpdateStatusPageComponentGroup model = new UpdateStatusPageComponentGroup(); + + /** + * Model tests for UpdateStatusPageComponentGroup + */ + @Test + public void testUpdateStatusPageComponentGroup() { + // TODO: test UpdateStatusPageComponentGroup + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageComponentTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentTest.java new file mode 100644 index 00000000..b7d034d6 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageComponentTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateStatusPageComponentData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateStatusPageComponent + */ +public class UpdateStatusPageComponentTest { + private final UpdateStatusPageComponent model = new UpdateStatusPageComponent(); + + /** + * Model tests for UpdateStatusPageComponent + */ + @Test + public void testUpdateStatusPageComponent() { + // TODO: test UpdateStatusPageComponent + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageDataAttributesTest.java index aa24793a..bc385b25 100644 --- a/src/test/java/com/rootly/client/model/UpdateStatusPageDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageDataAttributesTest.java @@ -40,6 +40,14 @@ public void testUpdateStatusPageDataAttributes() { // TODO: test UpdateStatusPageDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'title' */ @@ -184,6 +192,22 @@ public void samlNameIdentifierFormatTest() { // TODO: test samlNameIdentifierFormat } + /** + * Test the property 'sectionOrder' + */ + @Test + public void sectionOrderTest() { + // TODO: test sectionOrder + } + + /** + * Test the property 'externalDomainNames' + */ + @Test + public void externalDomainNamesTest() { + // TODO: test externalDomainNames + } + /** * Test the property 'websiteUrl' */ diff --git a/src/test/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributesTest.java index 6edfec6f..c7d2f46b 100644 --- a/src/test/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateStatusPageTemplateDataAttributesTest.java @@ -46,6 +46,14 @@ public void titleTest() { // TODO: test title } + /** + * Test the property 'updateTitle' + */ + @Test + public void updateTitleTest() { + // TODO: test updateTitle + } + /** * Test the property 'body' */ diff --git a/src/test/java/com/rootly/client/model/UpdateSubStatusDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateSubStatusDataAttributesTest.java index 6e2b83a7..ca4d48ef 100644 --- a/src/test/java/com/rootly/client/model/UpdateSubStatusDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateSubStatusDataAttributesTest.java @@ -39,19 +39,19 @@ public void testUpdateSubStatusDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/UpdateTeamDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateTeamDataAttributesTest.java index 2623fe6c..6469c2c6 100644 --- a/src/test/java/com/rootly/client/model/UpdateTeamDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateTeamDataAttributesTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewCauseDataAttributesPropertiesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackAliasesInner; import com.rootly.client.model.NewEnvironmentDataAttributesSlackChannelsInner; import com.rootly.client.model.NewServiceDataAttributesAlertBroadcastChannel; @@ -44,6 +45,14 @@ public void testUpdateTeamDataAttributes() { // TODO: test UpdateTeamDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -60,6 +69,14 @@ public void descriptionTest() { // TODO: test description } + /** + * Test the property 'publicDescription' + */ + @Test + public void publicDescriptionTest() { + // TODO: test publicDescription + } + /** * Test the property 'notifyEmails' */ @@ -244,4 +261,20 @@ public void autoAddMembersWhenAttachedTest() { // TODO: test autoAddMembersWhenAttached } + /** + * Test the property 'autoAddMembersScope' + */ + @Test + public void autoAddMembersScopeTest() { + // TODO: test autoAddMembersScope + } + + /** + * Test the property 'properties' + */ + @Test + public void propertiesTest() { + // TODO: test properties + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributesTest.java index fb4fdb24..0f691a11 100644 --- a/src/test/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateWebhooksEndpointDataAttributesTest.java @@ -18,10 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWebhooksEndpointDataAttributesCustomHeadersInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.openapitools.jackson.nullable.JsonNullable; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -39,6 +41,14 @@ public void testUpdateWebhooksEndpointDataAttributes() { // TODO: test UpdateWebhooksEndpointDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'name' */ @@ -63,4 +73,12 @@ public void enabledTest() { // TODO: test enabled } + /** + * Test the property 'customHeaders' + */ + @Test + public void customHeadersTest() { + // TODO: test customHeaders + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributesTest.java new file mode 100644 index 00000000..0538de51 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataAttributesTest.java @@ -0,0 +1,130 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateWorkflowActionItemFormFieldConditionDataAttributes + */ +public class UpdateWorkflowActionItemFormFieldConditionDataAttributesTest { + private final UpdateWorkflowActionItemFormFieldConditionDataAttributes model = new UpdateWorkflowActionItemFormFieldConditionDataAttributes(); + + /** + * Model tests for UpdateWorkflowActionItemFormFieldConditionDataAttributes + */ + @Test + public void testUpdateWorkflowActionItemFormFieldConditionDataAttributes() { + // TODO: test UpdateWorkflowActionItemFormFieldConditionDataAttributes + } + + /** + * Test the property 'actionItemCondition' + */ + @Test + public void actionItemConditionTest() { + // TODO: test actionItemCondition + } + + /** + * Test the property 'values' + */ + @Test + public void valuesTest() { + // TODO: test values + } + + /** + * Test the property 'selectedCatalogEntityIds' + */ + @Test + public void selectedCatalogEntityIdsTest() { + // TODO: test selectedCatalogEntityIds + } + + /** + * Test the property 'selectedFunctionalityIds' + */ + @Test + public void selectedFunctionalityIdsTest() { + // TODO: test selectedFunctionalityIds + } + + /** + * Test the property 'selectedGroupIds' + */ + @Test + public void selectedGroupIdsTest() { + // TODO: test selectedGroupIds + } + + /** + * Test the property 'selectedOptionIds' + */ + @Test + public void selectedOptionIdsTest() { + // TODO: test selectedOptionIds + } + + /** + * Test the property 'selectedServiceIds' + */ + @Test + public void selectedServiceIdsTest() { + // TODO: test selectedServiceIds + } + + /** + * Test the property 'selectedUserIds' + */ + @Test + public void selectedUserIdsTest() { + // TODO: test selectedUserIds + } + + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataTest.java new file mode 100644 index 00000000..e366d4b5 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionDataTest.java @@ -0,0 +1,57 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateWorkflowActionItemFormFieldConditionDataAttributes; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateWorkflowActionItemFormFieldConditionData + */ +public class UpdateWorkflowActionItemFormFieldConditionDataTest { + private final UpdateWorkflowActionItemFormFieldConditionData model = new UpdateWorkflowActionItemFormFieldConditionData(); + + /** + * Model tests for UpdateWorkflowActionItemFormFieldConditionData + */ + @Test + public void testUpdateWorkflowActionItemFormFieldConditionData() { + // TODO: test UpdateWorkflowActionItemFormFieldConditionData + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionTest.java new file mode 100644 index 00000000..57be72b7 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowActionItemFormFieldConditionTest.java @@ -0,0 +1,49 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.UpdateWorkflowActionItemFormFieldConditionData; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UpdateWorkflowActionItemFormFieldCondition + */ +public class UpdateWorkflowActionItemFormFieldConditionTest { + private final UpdateWorkflowActionItemFormFieldCondition model = new UpdateWorkflowActionItemFormFieldCondition(); + + /** + * Model tests for UpdateWorkflowActionItemFormFieldCondition + */ + @Test + public void testUpdateWorkflowActionItemFormFieldCondition() { + // TODO: test UpdateWorkflowActionItemFormFieldCondition + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowDataAttributesTest.java index 7a258605..9881215c 100644 --- a/src/test/java/com/rootly/client/model/UpdateWorkflowDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowDataAttributesTest.java @@ -42,19 +42,19 @@ public void testUpdateWorkflowDataAttributes() { } /** - * Test the property 'name' + * Test the property 'slug' */ @Test - public void nameTest() { - // TODO: test name + public void slugTest() { + // TODO: test slug } /** - * Test the property 'slug' + * Test the property 'name' */ @Test - public void slugTest() { - // TODO: test slug + public void nameTest() { + // TODO: test name } /** diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowDataTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowDataTest.java index 4640a14a..3eb9c9c0 100644 --- a/src/test/java/com/rootly/client/model/UpdateWorkflowDataTest.java +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowDataTest.java @@ -38,6 +38,14 @@ public void testUpdateWorkflowData() { // TODO: test UpdateWorkflowData } + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + /** * Test the property 'type' */ diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributesTest.java index 1a866fc9..6137763b 100644 --- a/src/test/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowFormFieldConditionDataAttributesTest.java @@ -103,4 +103,28 @@ public void selectedUserIdsTest() { // TODO: test selectedUserIds } + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + } diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributesTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributesTest.java index 084255b0..29aad448 100644 --- a/src/test/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributesTest.java +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowGroupDataAttributesTest.java @@ -38,6 +38,14 @@ public void testUpdateWorkflowGroupDataAttributes() { // TODO: test UpdateWorkflowGroupDataAttributes } + /** + * Test the property 'slug' + */ + @Test + public void slugTest() { + // TODO: test slug + } + /** * Test the property 'kind' */ diff --git a/src/test/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParamsTest.java b/src/test/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParamsTest.java index db5d33d4..ff0f55d3 100644 --- a/src/test/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParamsTest.java +++ b/src/test/java/com/rootly/client/model/UpdateWorkflowTaskDataAttributesTaskParamsTest.java @@ -20,20 +20,25 @@ import com.google.gson.stream.JsonWriter; import com.rootly.client.model.AddActionItemTaskParams; import com.rootly.client.model.AddActionItemTaskParamsPostToSlackChannelsInner; +import com.rootly.client.model.AddMicrosoftTeamsChatTabTaskParams; import com.rootly.client.model.AddMicrosoftTeamsTabTaskParams; import com.rootly.client.model.AddRoleTaskParams; import com.rootly.client.model.AddRoleTaskParamsAssignedToUser; import com.rootly.client.model.AddSlackBookmarkTaskParams; import com.rootly.client.model.AddTeamTaskParams; import com.rootly.client.model.AddToTimelineTaskParams; +import com.rootly.client.model.ArchiveGoogleChatSpacesTaskParams; import com.rootly.client.model.ArchiveMicrosoftTeamsChannelsTaskParams; import com.rootly.client.model.ArchiveSlackChannelsTaskParams; import com.rootly.client.model.AttachDatadogDashboardsTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToFreshserviceTicketTaskParams; +import com.rootly.client.model.AttachRetrospectivePdfToJiraIssueTaskParams; import com.rootly.client.model.AutoAssignRoleOpsgenieTaskParams; import com.rootly.client.model.AutoAssignRolePagerdutyTaskParams; import com.rootly.client.model.AutoAssignRoleRootlyTaskParams; import com.rootly.client.model.AutoAssignRoleVictorOpsTaskParams; import com.rootly.client.model.CallPeopleTaskParams; +import com.rootly.client.model.ChangeGoogleChatSpacePrivacyTaskParams; import com.rootly.client.model.ChangeSlackChannelPrivacyTaskParams; import com.rootly.client.model.CreateAirtableTableRecordTaskParams; import com.rootly.client.model.CreateAnthropicChatCompletionTaskParams; @@ -50,6 +55,7 @@ import com.rootly.client.model.CreateGitlabIssueTaskParams; import com.rootly.client.model.CreateGoToMeetingTaskParams; import com.rootly.client.model.CreateGoogleCalendarEventTaskParams; +import com.rootly.client.model.CreateGoogleChatSpaceTaskParams; import com.rootly.client.model.CreateGoogleDocsPageTaskParams; import com.rootly.client.model.CreateGoogleDocsPermissionsTaskParams; import com.rootly.client.model.CreateGoogleGeminiChatCompletionTaskParams; @@ -61,6 +67,7 @@ import com.rootly.client.model.CreateJiraIssueTaskParamsIssueType; import com.rootly.client.model.CreateJiraIssueTaskParamsPriority; import com.rootly.client.model.CreateJiraSubtaskTaskParams; +import com.rootly.client.model.CreateJsmopsAlertTaskParams; import com.rootly.client.model.CreateLinearIssueCommentTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParams; import com.rootly.client.model.CreateLinearIssueTaskParamsProject; @@ -100,12 +107,15 @@ import com.rootly.client.model.GetGitlabCommitsTaskParams; import com.rootly.client.model.GetPulsesTaskParams; import com.rootly.client.model.HttpClientTaskParams; +import com.rootly.client.model.InviteToGoogleChatSpaceTaskParams; +import com.rootly.client.model.InviteToMicrosoftTeamsChannelRootlyTaskParams; import com.rootly.client.model.InviteToMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelOpsgenieTaskParams; import com.rootly.client.model.InviteToSlackChannelPagerdutyTaskParams; import com.rootly.client.model.InviteToSlackChannelRootlyTaskParams; import com.rootly.client.model.InviteToSlackChannelTaskParams; import com.rootly.client.model.InviteToSlackChannelVictorOpsTaskParams; +import com.rootly.client.model.PageJsmopsOnCallRespondersTaskParams; import com.rootly.client.model.PageOpsgenieOnCallRespondersTaskParams; import com.rootly.client.model.PagePagerdutyOnCallRespondersTaskParams; import com.rootly.client.model.PageRootlyOnCallRespondersTaskParams; @@ -114,12 +124,16 @@ import com.rootly.client.model.PublishIncidentTaskParams; import com.rootly.client.model.RedisClientTaskParams; import com.rootly.client.model.RemoveGoogleDocsPermissionsTaskParams; +import com.rootly.client.model.RenameGoogleChatSpaceTaskParams; import com.rootly.client.model.RenameMicrosoftTeamsChannelTaskParams; import com.rootly.client.model.RenameSlackChannelTaskParams; import com.rootly.client.model.RunCommandHerokuTaskParams; import com.rootly.client.model.SendDashboardReportTaskParams; import com.rootly.client.model.SendEmailTaskParams; +import com.rootly.client.model.SendGoogleChatAttachmentsTaskParams; +import com.rootly.client.model.SendGoogleChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsBlocksTaskParams; +import com.rootly.client.model.SendMicrosoftTeamsChatMessageTaskParams; import com.rootly.client.model.SendMicrosoftTeamsMessageTaskParams; import com.rootly.client.model.SendSlackBlocksTaskParams; import com.rootly.client.model.SendSlackMessageTaskParams; @@ -142,8 +156,10 @@ import com.rootly.client.model.UpdateDatadogNotebookTaskParamsTemplate; import com.rootly.client.model.UpdateDropboxPaperPageTaskParams; import com.rootly.client.model.UpdateGithubIssueTaskParams; +import com.rootly.client.model.UpdateGithubIssueTaskParamsRepository; import com.rootly.client.model.UpdateGitlabIssueTaskParams; import com.rootly.client.model.UpdateGoogleCalendarEventTaskParams; +import com.rootly.client.model.UpdateGoogleChatSpaceDescriptionTaskParams; import com.rootly.client.model.UpdateGoogleDocsPageTaskParams; import com.rootly.client.model.UpdateIncidentPostmortemTaskParams; import com.rootly.client.model.UpdateIncidentStatusTimestampTaskParams; @@ -702,6 +718,38 @@ public void markPostMortemAsPublishedTest() { // TODO: test markPostMortemAsPublished } + /** + * Test the property 'includeOverview' + */ + @Test + public void includeOverviewTest() { + // TODO: test includeOverview + } + + /** + * Test the property 'includeTimeline' + */ + @Test + public void includeTimelineTest() { + // TODO: test includeTimeline + } + + /** + * Test the property 'includeFollowUps' + */ + @Test + public void includeFollowUpsTest() { + // TODO: test includeFollowUps + } + + /** + * Test the property 'createAsLiveDoc' + */ + @Test + public void createAsLiveDocTest() { + // TODO: test createAsLiveDoc + } + /** * Test the property 'subtitle' */ @@ -758,6 +806,14 @@ public void repositoryTest() { // TODO: test repository } + /** + * Test the property 'labels' + */ + @Test + public void labelsTest() { + // TODO: test labels + } + /** * Test the property 'issueType' */ @@ -767,11 +823,11 @@ public void issueTypeTest() { } /** - * Test the property 'labels' + * Test the property 'parentIssueNumber' */ @Test - public void labelsTest() { - // TODO: test labels + public void parentIssueNumberTest() { + // TODO: test parentIssueNumber } /** @@ -1006,6 +1062,14 @@ public void recordMeetingTest() { // TODO: test recordMeeting } + /** + * Test the property 'recordingMode' + */ + @Test + public void recordingModeTest() { + // TODO: test recordingMode + } + /** * Test the property 'subject' */ @@ -1110,6 +1174,22 @@ public void updatePayloadTest() { // TODO: test updatePayload } + /** + * Test the property 'retryCount' + */ + @Test + public void retryCountTest() { + // TODO: test retryCount + } + + /** + * Test the property 'retryWaitTime' + */ + @Test + public void retryWaitTimeTest() { + // TODO: test retryWaitTime + } + /** * Test the property 'parentIssueId' */ @@ -1126,6 +1206,30 @@ public void subtaskIssueTypeTest() { // TODO: test subtaskIssueType } + /** + * Test the property 'issueId' + */ + @Test + public void issueIdTest() { + // TODO: test issueId + } + + /** + * Test the property 'filename' + */ + @Test + public void filenameTest() { + // TODO: test filename + } + + /** + * Test the property 'ticketId' + */ + @Test + public void ticketIdTest() { + // TODO: test ticketId + } + /** * Test the property 'state' */ @@ -1142,14 +1246,6 @@ public void projectTest() { // TODO: test project } - /** - * Test the property 'issueId' - */ - @Test - public void issueIdTest() { - // TODO: test issueId - } - /** * Test the property 'topic' */ @@ -1174,6 +1270,54 @@ public void membersTest() { // TODO: test members } + /** + * Test the property 'chat' + */ + @Test + public void chatTest() { + // TODO: test chat + } + + /** + * Test the property 'audience' + */ + @Test + public void audienceTest() { + // TODO: test audience + } + + /** + * Test the property 'spaces' + */ + @Test + public void spacesTest() { + // TODO: test spaces + } + + /** + * Test the property 'text' + */ + @Test + public void textTest() { + // TODO: test text + } + + /** + * Test the property 'threadKey' + */ + @Test + public void threadKeyTest() { + // TODO: test threadKey + } + + /** + * Test the property 'attachments' + */ + @Test + public void attachmentsTest() { + // TODO: test attachments + } + /** * Test the property 'emails' */ @@ -1207,19 +1351,11 @@ public void showActionItemsAsTableTest() { } /** - * Test the property 'text' + * Test the property 'chats' */ @Test - public void textTest() { - // TODO: test text - } - - /** - * Test the property 'attachments' - */ - @Test - public void attachmentsTest() { - // TODO: test attachments + public void chatsTest() { + // TODO: test chats } /** @@ -1366,6 +1502,14 @@ public void autoRecordingTest() { // TODO: test autoRecording } + /** + * Test the property 'enableZoomBotAutoJoin' + */ + @Test + public void enableZoomBotAutoJoinTest() { + // TODO: test enableZoomBotAutoJoin + } + /** * Test the property 'githubRepositoryNames' */ @@ -1550,6 +1694,14 @@ public void opsgenieIncidentIdTest() { // TODO: test opsgenieIncidentId } + /** + * Test the property 'functionalityTarget' + */ + @Test + public void functionalityTargetTest() { + // TODO: test functionalityTarget + } + /** * Test the property 'alertUrgencyId' */ @@ -1566,6 +1718,14 @@ public void escalationNoteTest() { // TODO: test escalationNote } + /** + * Test the property 'createNewAlert' + */ + @Test + public void createNewAlertTest() { + // TODO: test createNewAlert + } + /** * Test the property 'escalationPolicies' */ @@ -1638,6 +1798,14 @@ public void statusPageIdTest() { // TODO: test statusPageId } + /** + * Test the property 'statusPageIds' + */ + @Test + public void statusPageIdsTest() { + // TODO: test statusPageIds + } + /** * Test the property 'integrationPayload' */ @@ -1878,6 +2046,14 @@ public void taskIdTest() { // TODO: test taskId } + /** + * Test the property 'labelsMode' + */ + @Test + public void labelsModeTest() { + // TODO: test labelsMode + } + /** * Test the property 'startedAt' */ @@ -1966,14 +2142,6 @@ public void cardIdTest() { // TODO: test cardId } - /** - * Test the property 'ticketId' - */ - @Test - public void ticketIdTest() { - // TODO: test ticketId - } - /** * Test the property 'resource' */ diff --git a/src/test/java/com/rootly/client/model/UptimeChartResponseTest.java b/src/test/java/com/rootly/client/model/UptimeChartResponseTest.java new file mode 100644 index 00000000..06325197 --- /dev/null +++ b/src/test/java/com/rootly/client/model/UptimeChartResponseTest.java @@ -0,0 +1,48 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for UptimeChartResponse + */ +public class UptimeChartResponseTest { + private final UptimeChartResponse model = new UptimeChartResponse(); + + /** + * Model tests for UptimeChartResponse + */ + @Test + public void testUptimeChartResponse() { + // TODO: test UptimeChartResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/com/rootly/client/model/UserEmailAddressListTest.java b/src/test/java/com/rootly/client/model/UserEmailAddressListTest.java index 35d956ff..ba99dcb1 100644 --- a/src/test/java/com/rootly/client/model/UserEmailAddressListTest.java +++ b/src/test/java/com/rootly/client/model/UserEmailAddressListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserEmailAddressResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/UserEmailAddressResponseTest.java b/src/test/java/com/rootly/client/model/UserEmailAddressResponseTest.java index 1747b24d..2d54178f 100644 --- a/src/test/java/com/rootly/client/model/UserEmailAddressResponseTest.java +++ b/src/test/java/com/rootly/client/model/UserEmailAddressResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserEmailAddressResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/UserFlatResponseTest.java b/src/test/java/com/rootly/client/model/UserFlatResponseTest.java index 78bdddcc..2a922e7d 100644 --- a/src/test/java/com/rootly/client/model/UserFlatResponseTest.java +++ b/src/test/java/com/rootly/client/model/UserFlatResponseTest.java @@ -46,6 +46,14 @@ public void idTest() { // TODO: test id } + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + /** * Test the property 'email' */ @@ -54,6 +62,22 @@ public void emailTest() { // TODO: test email } + /** + * Test the property 'phone' + */ + @Test + public void phoneTest() { + // TODO: test phone + } + + /** + * Test the property 'phone2' + */ + @Test + public void phone2Test() { + // TODO: test phone2 + } + /** * Test the property 'firstName' */ @@ -70,6 +94,14 @@ public void lastNameTest() { // TODO: test lastName } + /** + * Test the property 'preferredName' + */ + @Test + public void preferredNameTest() { + // TODO: test preferredName + } + /** * Test the property 'fullName' */ @@ -86,6 +118,14 @@ public void fullNameWithTeamTest() { // TODO: test fullNameWithTeam } + /** + * Test the property 'slackId' + */ + @Test + public void slackIdTest() { + // TODO: test slackId + } + /** * Test the property 'timeZone' */ diff --git a/src/test/java/com/rootly/client/model/UserListTest.java b/src/test/java/com/rootly/client/model/UserListTest.java index 8931ccce..c74b9b35 100644 --- a/src/test/java/com/rootly/client/model/UserListTest.java +++ b/src/test/java/com/rootly/client/model/UserListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/UserNotificationRuleListTest.java b/src/test/java/com/rootly/client/model/UserNotificationRuleListTest.java index b9129a54..fee95bbb 100644 --- a/src/test/java/com/rootly/client/model/UserNotificationRuleListTest.java +++ b/src/test/java/com/rootly/client/model/UserNotificationRuleListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserNotificationRuleResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/UserNotificationRuleResponseTest.java b/src/test/java/com/rootly/client/model/UserNotificationRuleResponseTest.java index de3f0b9a..94845f2b 100644 --- a/src/test/java/com/rootly/client/model/UserNotificationRuleResponseTest.java +++ b/src/test/java/com/rootly/client/model/UserNotificationRuleResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserNotificationRuleResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/UserNotificationRuleTest.java b/src/test/java/com/rootly/client/model/UserNotificationRuleTest.java index 7bc40b17..6a0e3ab6 100644 --- a/src/test/java/com/rootly/client/model/UserNotificationRuleTest.java +++ b/src/test/java/com/rootly/client/model/UserNotificationRuleTest.java @@ -104,6 +104,14 @@ public void enabledContactTypesTest() { // TODO: test enabledContactTypes } + /** + * Test the property 'notificationType' + */ + @Test + public void notificationTypeTest() { + // TODO: test notificationType + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/UserPhoneNumberListTest.java b/src/test/java/com/rootly/client/model/UserPhoneNumberListTest.java index 5dd82404..f95b029e 100644 --- a/src/test/java/com/rootly/client/model/UserPhoneNumberListTest.java +++ b/src/test/java/com/rootly/client/model/UserPhoneNumberListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.UserPhoneNumberResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/UserPhoneNumberResponseTest.java b/src/test/java/com/rootly/client/model/UserPhoneNumberResponseTest.java index f81f2497..5bd91057 100644 --- a/src/test/java/com/rootly/client/model/UserPhoneNumberResponseTest.java +++ b/src/test/java/com/rootly/client/model/UserPhoneNumberResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserPhoneNumberResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/UserResponseTest.java b/src/test/java/com/rootly/client/model/UserResponseTest.java index d6d50c7c..85b4af7c 100644 --- a/src/test/java/com/rootly/client/model/UserResponseTest.java +++ b/src/test/java/com/rootly/client/model/UserResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.UserResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/VerifiedDomainListTest.java b/src/test/java/com/rootly/client/model/VerifiedDomainListTest.java new file mode 100644 index 00000000..7e6b3101 --- /dev/null +++ b/src/test/java/com/rootly/client/model/VerifiedDomainListTest.java @@ -0,0 +1,78 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.VerifiedDomainResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for VerifiedDomainList + */ +public class VerifiedDomainListTest { + private final VerifiedDomainList model = new VerifiedDomainList(); + + /** + * Model tests for VerifiedDomainList + */ + @Test + public void testVerifiedDomainList() { + // TODO: test VerifiedDomainList + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'links' + */ + @Test + public void linksTest() { + // TODO: test links + } + + /** + * Test the property 'meta' + */ + @Test + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/VerifiedDomainResponseDataTest.java b/src/test/java/com/rootly/client/model/VerifiedDomainResponseDataTest.java new file mode 100644 index 00000000..7059767a --- /dev/null +++ b/src/test/java/com/rootly/client/model/VerifiedDomainResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.VerifiedDomain; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for VerifiedDomainResponseData + */ +public class VerifiedDomainResponseDataTest { + private final VerifiedDomainResponseData model = new VerifiedDomainResponseData(); + + /** + * Model tests for VerifiedDomainResponseData + */ + @Test + public void testVerifiedDomainResponseData() { + // TODO: test VerifiedDomainResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/VerifiedDomainResponseTest.java b/src/test/java/com/rootly/client/model/VerifiedDomainResponseTest.java new file mode 100644 index 00000000..a21fb94a --- /dev/null +++ b/src/test/java/com/rootly/client/model/VerifiedDomainResponseTest.java @@ -0,0 +1,60 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.VerifiedDomainResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for VerifiedDomainResponse + */ +public class VerifiedDomainResponseTest { + private final VerifiedDomainResponse model = new VerifiedDomainResponse(); + + /** + * Model tests for VerifiedDomainResponse + */ + @Test + public void testVerifiedDomainResponse() { + // TODO: test VerifiedDomainResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/VerifiedDomainTest.java b/src/test/java/com/rootly/client/model/VerifiedDomainTest.java new file mode 100644 index 00000000..a89e5ccf --- /dev/null +++ b/src/test/java/com/rootly/client/model/VerifiedDomainTest.java @@ -0,0 +1,137 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.Arrays; +import org.openapitools.jackson.nullable.JsonNullable; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for VerifiedDomain + */ +public class VerifiedDomainTest { + private final VerifiedDomain model = new VerifiedDomain(); + + /** + * Model tests for VerifiedDomain + */ + @Test + public void testVerifiedDomain() { + // TODO: test VerifiedDomain + } + + /** + * Test the property 'domain' + */ + @Test + public void domainTest() { + // TODO: test domain + } + + /** + * Test the property 'verificationStatus' + */ + @Test + public void verificationStatusTest() { + // TODO: test verificationStatus + } + + /** + * Test the property 'verificationToken' + */ + @Test + public void verificationTokenTest() { + // TODO: test verificationToken + } + + /** + * Test the property 'txtHost' + */ + @Test + public void txtHostTest() { + // TODO: test txtHost + } + + /** + * Test the property 'txtValue' + */ + @Test + public void txtValueTest() { + // TODO: test txtValue + } + + /** + * Test the property 'verifiedAt' + */ + @Test + public void verifiedAtTest() { + // TODO: test verifiedAt + } + + /** + * Test the property 'lastCheckedAt' + */ + @Test + public void lastCheckedAtTest() { + // TODO: test lastCheckedAt + } + + /** + * Test the property 'lastCheckPassedAt' + */ + @Test + public void lastCheckPassedAtTest() { + // TODO: test lastCheckPassedAt + } + + /** + * Test the property 'checkFailuresCount' + */ + @Test + public void checkFailuresCountTest() { + // TODO: test checkFailuresCount + } + + /** + * Test the property 'source' + */ + @Test + public void sourceTest() { + // TODO: test source + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/com/rootly/client/model/WebhooksDeliveryListTest.java b/src/test/java/com/rootly/client/model/WebhooksDeliveryListTest.java index 86986302..4609dee3 100644 --- a/src/test/java/com/rootly/client/model/WebhooksDeliveryListTest.java +++ b/src/test/java/com/rootly/client/model/WebhooksDeliveryListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WebhooksDeliveryResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WebhooksDeliveryResponseTest.java b/src/test/java/com/rootly/client/model/WebhooksDeliveryResponseTest.java index 674a158d..b9cd79f5 100644 --- a/src/test/java/com/rootly/client/model/WebhooksDeliveryResponseTest.java +++ b/src/test/java/com/rootly/client/model/WebhooksDeliveryResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WebhooksDeliveryResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WebhooksDeliveryTest.java b/src/test/java/com/rootly/client/model/WebhooksDeliveryTest.java index c2f0efd4..79060226 100644 --- a/src/test/java/com/rootly/client/model/WebhooksDeliveryTest.java +++ b/src/test/java/com/rootly/client/model/WebhooksDeliveryTest.java @@ -53,6 +53,22 @@ public void payloadTest() { // TODO: test payload } + /** + * Test the property 'status' + */ + @Test + public void statusTest() { + // TODO: test status + } + + /** + * Test the property 'responseStatus' + */ + @Test + public void responseStatusTest() { + // TODO: test responseStatus + } + /** * Test the property 'deliveredAt' */ diff --git a/src/test/java/com/rootly/client/model/WebhooksEndpointListTest.java b/src/test/java/com/rootly/client/model/WebhooksEndpointListTest.java index bc93b0be..f75272e3 100644 --- a/src/test/java/com/rootly/client/model/WebhooksEndpointListTest.java +++ b/src/test/java/com/rootly/client/model/WebhooksEndpointListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WebhooksEndpointResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WebhooksEndpointResponseTest.java b/src/test/java/com/rootly/client/model/WebhooksEndpointResponseTest.java index 8a85dc15..53185346 100644 --- a/src/test/java/com/rootly/client/model/WebhooksEndpointResponseTest.java +++ b/src/test/java/com/rootly/client/model/WebhooksEndpointResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WebhooksEndpointResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WebhooksEndpointTest.java b/src/test/java/com/rootly/client/model/WebhooksEndpointTest.java index 1ac5dd44..1907b209 100644 --- a/src/test/java/com/rootly/client/model/WebhooksEndpointTest.java +++ b/src/test/java/com/rootly/client/model/WebhooksEndpointTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.NewWebhooksEndpointDataAttributesCustomHeadersInner; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -87,6 +88,14 @@ public void enabledTest() { // TODO: test enabled } + /** + * Test the property 'customHeaders' + */ + @Test + public void customHeadersTest() { + // TODO: test customHeaders + } + /** * Test the property 'createdAt' */ diff --git a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataTest.java b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionListTest.java similarity index 77% rename from src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataTest.java rename to src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionListTest.java index edd0f9d6..586c99e0 100644 --- a/src/test/java/com/rootly/client/model/V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionListTest.java @@ -18,7 +18,10 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.rootly.client.model.V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataParametersInner; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.Links; +import com.rootly.client.model.Meta; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionResponseData; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -27,41 +30,49 @@ import org.junit.jupiter.api.Test; /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata + * Model tests for WorkflowActionItemFormFieldConditionList */ -public class V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadataTest { - private final V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata model = new V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata(); +public class WorkflowActionItemFormFieldConditionListTest { + private final WorkflowActionItemFormFieldConditionList model = new WorkflowActionItemFormFieldConditionList(); /** - * Model tests for V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata + * Model tests for WorkflowActionItemFormFieldConditionList */ @Test - public void testV1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata() { - // TODO: test V1EdgeConnectorsEdgeConnectorIdActionsPostRequestActionMetadata + public void testWorkflowActionItemFormFieldConditionList() { + // TODO: test WorkflowActionItemFormFieldConditionList } /** - * Test the property 'description' + * Test the property 'data' */ @Test - public void descriptionTest() { - // TODO: test description + public void dataTest() { + // TODO: test data } /** - * Test the property 'timeout' + * Test the property 'links' */ @Test - public void timeoutTest() { - // TODO: test timeout + public void linksTest() { + // TODO: test links } /** - * Test the property 'parameters' + * Test the property 'meta' */ @Test - public void parametersTest() { - // TODO: test parameters + public void metaTest() { + // TODO: test meta + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included } } diff --git a/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseDataTest.java b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseDataTest.java new file mode 100644 index 00000000..9d36c493 --- /dev/null +++ b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseDataTest.java @@ -0,0 +1,65 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.WorkflowActionItemFormFieldCondition; +import java.io.IOException; +import java.util.Arrays; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for WorkflowActionItemFormFieldConditionResponseData + */ +public class WorkflowActionItemFormFieldConditionResponseDataTest { + private final WorkflowActionItemFormFieldConditionResponseData model = new WorkflowActionItemFormFieldConditionResponseData(); + + /** + * Model tests for WorkflowActionItemFormFieldConditionResponseData + */ + @Test + public void testWorkflowActionItemFormFieldConditionResponseData() { + // TODO: test WorkflowActionItemFormFieldConditionResponseData + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + +} diff --git a/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseTest.java b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseTest.java new file mode 100644 index 00000000..4bf73170 --- /dev/null +++ b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionResponseTest.java @@ -0,0 +1,60 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; +import com.rootly.client.model.WorkflowActionItemFormFieldConditionResponseData; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for WorkflowActionItemFormFieldConditionResponse + */ +public class WorkflowActionItemFormFieldConditionResponseTest { + private final WorkflowActionItemFormFieldConditionResponse model = new WorkflowActionItemFormFieldConditionResponse(); + + /** + * Model tests for WorkflowActionItemFormFieldConditionResponse + */ + @Test + public void testWorkflowActionItemFormFieldConditionResponse() { + // TODO: test WorkflowActionItemFormFieldConditionResponse + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + +} diff --git a/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionTest.java b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionTest.java new file mode 100644 index 00000000..8afd21b8 --- /dev/null +++ b/src/test/java/com/rootly/client/model/WorkflowActionItemFormFieldConditionTest.java @@ -0,0 +1,146 @@ +/* + * Rootly API v1 + * # How to generate an API Key? - **Organization dropdown** > **Organization Settings** > **API Keys** # JSON:API Specification Rootly is using **JSON:API** (https://jsonapi.org) specification: - JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests. - JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. - JSON:API requires use of the JSON:API media type (**application/vnd.api+json**) for exchanging data. # Authentication and Requests We use standard HTTP Authentication over HTTPS to authorize your requests. ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents ```
# Rate limiting - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - There is a default limit of **3** **POST**, **PUT**, **PATCH** or **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit is calculated over a **0-hour sliding window** looking back from the current time. While the limit can be configured to support higher thresholds, you must first contact your **Rootly Customer Success Manager** to make any adjustments. - When rate limits are exceeded, the API will return a **429 Too Many Requests** HTTP status code with the response: `{\"error\": \"Rate limit exceeded. Try again later.\"}` - **X-RateLimit headers** are included in every API response, providing real-time rate limit information: - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., \"1000, 1000;window=3600\" for 1000 requests per hour) - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window - **X-RateLimit-Used** - The number of requests already made in the current window - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds # Pagination - Pagination is supported for all endpoints that return a collection of items. - Pagination is controlled by the **page** query parameter ## Example ``` curl --request GET \\ --header 'Content-Type: application/vnd.api+json' \\ --header 'Authorization: Bearer YOUR-TOKEN' \\ --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10 ``` + * + * The version of the OpenAPI document: v1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package com.rootly.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +/** + * Model tests for WorkflowActionItemFormFieldCondition + */ +public class WorkflowActionItemFormFieldConditionTest { + private final WorkflowActionItemFormFieldCondition model = new WorkflowActionItemFormFieldCondition(); + + /** + * Model tests for WorkflowActionItemFormFieldCondition + */ + @Test + public void testWorkflowActionItemFormFieldCondition() { + // TODO: test WorkflowActionItemFormFieldCondition + } + + /** + * Test the property 'workflowId' + */ + @Test + public void workflowIdTest() { + // TODO: test workflowId + } + + /** + * Test the property 'formFieldId' + */ + @Test + public void formFieldIdTest() { + // TODO: test formFieldId + } + + /** + * Test the property 'actionItemCondition' + */ + @Test + public void actionItemConditionTest() { + // TODO: test actionItemCondition + } + + /** + * Test the property 'values' + */ + @Test + public void valuesTest() { + // TODO: test values + } + + /** + * Test the property 'selectedCatalogEntityIds' + */ + @Test + public void selectedCatalogEntityIdsTest() { + // TODO: test selectedCatalogEntityIds + } + + /** + * Test the property 'selectedFunctionalityIds' + */ + @Test + public void selectedFunctionalityIdsTest() { + // TODO: test selectedFunctionalityIds + } + + /** + * Test the property 'selectedGroupIds' + */ + @Test + public void selectedGroupIdsTest() { + // TODO: test selectedGroupIds + } + + /** + * Test the property 'selectedOptionIds' + */ + @Test + public void selectedOptionIdsTest() { + // TODO: test selectedOptionIds + } + + /** + * Test the property 'selectedServiceIds' + */ + @Test + public void selectedServiceIdsTest() { + // TODO: test selectedServiceIds + } + + /** + * Test the property 'selectedUserIds' + */ + @Test + public void selectedUserIdsTest() { + // TODO: test selectedUserIds + } + + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + +} diff --git a/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionListTest.java b/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionListTest.java index f7f66415..4140df32 100644 --- a/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionListTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowCustomFieldSelectionResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseTest.java b/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseTest.java index f46d5e50..95c45c8f 100644 --- a/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowCustomFieldSelectionResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowCustomFieldSelectionResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionListTest.java b/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionListTest.java index 9021589e..51736e6b 100644 --- a/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionListTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowFormFieldConditionResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionResponseTest.java b/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionResponseTest.java index 3e1421f3..a16c7563 100644 --- a/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionResponseTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowFormFieldConditionResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionTest.java b/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionTest.java index 35be8189..0b3f2f0b 100644 --- a/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowFormFieldConditionTest.java @@ -119,4 +119,28 @@ public void selectedUserIdsTest() { // TODO: test selectedUserIds } + /** + * Test the property 'selectedCauseIds' + */ + @Test + public void selectedCauseIdsTest() { + // TODO: test selectedCauseIds + } + + /** + * Test the property 'selectedEnvironmentIds' + */ + @Test + public void selectedEnvironmentIdsTest() { + // TODO: test selectedEnvironmentIds + } + + /** + * Test the property 'selectedIncidentTypeIds' + */ + @Test + public void selectedIncidentTypeIdsTest() { + // TODO: test selectedIncidentTypeIds + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowGroupListTest.java b/src/test/java/com/rootly/client/model/WorkflowGroupListTest.java index 0cc0132f..c5d23485 100644 --- a/src/test/java/com/rootly/client/model/WorkflowGroupListTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowGroupListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowGroupResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowGroupResponseTest.java b/src/test/java/com/rootly/client/model/WorkflowGroupResponseTest.java index 410762e7..ab23fdb6 100644 --- a/src/test/java/com/rootly/client/model/WorkflowGroupResponseTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowGroupResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowGroupResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowListTest.java b/src/test/java/com/rootly/client/model/WorkflowListTest.java index 7959d796..ec850a6d 100644 --- a/src/test/java/com/rootly/client/model/WorkflowListTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowResponseTest.java b/src/test/java/com/rootly/client/model/WorkflowResponseTest.java index 3776169e..58b6bee1 100644 --- a/src/test/java/com/rootly/client/model/WorkflowResponseTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowRunResponseTest.java b/src/test/java/com/rootly/client/model/WorkflowRunResponseTest.java index d22dbc5a..48e02e91 100644 --- a/src/test/java/com/rootly/client/model/WorkflowRunResponseTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowRunResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowRunResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowRunsListTest.java b/src/test/java/com/rootly/client/model/WorkflowRunsListTest.java index efbfebc8..9aa82259 100644 --- a/src/test/java/com/rootly/client/model/WorkflowRunsListTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowRunsListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowRunResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowTaskListTest.java b/src/test/java/com/rootly/client/model/WorkflowTaskListTest.java index a8efcfd1..6c5a84da 100644 --- a/src/test/java/com/rootly/client/model/WorkflowTaskListTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowTaskListTest.java @@ -18,6 +18,7 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.Links; import com.rootly.client.model.Meta; import com.rootly.client.model.WorkflowTaskResponseData; @@ -66,4 +67,12 @@ public void metaTest() { // TODO: test meta } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + } diff --git a/src/test/java/com/rootly/client/model/WorkflowTaskResponseTest.java b/src/test/java/com/rootly/client/model/WorkflowTaskResponseTest.java index 635469c3..de4e0096 100644 --- a/src/test/java/com/rootly/client/model/WorkflowTaskResponseTest.java +++ b/src/test/java/com/rootly/client/model/WorkflowTaskResponseTest.java @@ -18,9 +18,12 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.rootly.client.model.JsonapiIncludedResource; import com.rootly.client.model.WorkflowTaskResponseData; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -46,4 +49,12 @@ public void dataTest() { // TODO: test data } + /** + * Test the property 'included' + */ + @Test + public void includedTest() { + // TODO: test included + } + }